LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: _ze_pedro_ em 10 de Novembro de 2009, 19:44

Título: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: _ze_pedro_ em 10 de Novembro de 2009, 19:44
boas!

eu ando do 12º ano  tenho de fazer a pap

vi um projecto no you tube que me despertou a atenção e decidi avançar

Sonda Móvel (Video1) ESTG - IPVC (http://www.youtube.com/watch?v=QQGsZUiRqTk#)

agora tenho algumas duvidas

eu em relação a comunicação estou a pensar em ultilizar o x-bee que tambem nao conheço muito bem
agora a minha duvida principal ocomo fazer a interface com o computador ? como o consigo visualizar as imagens e fazer um software para conseguir controlar a sonda?

cump.
Título: Re: proejcto d final de curso
Enviado por: TigPT em 10 de Novembro de 2009, 21:02
Boa tarde.

Creio que esse projecto português já foi postado antes, contudo e infelizmente, o seu autor só quer ter muitas views no vídeo pois em todos os fóruns que vi o seu dono posta-lo só colocou o vídeo e um pequeno texto.

Podes controlar por Xbee facilmente com um computador com um arduino ligado a este ou com um xbee explorer:
http://www.sparkfun.com/commerce/product_info.php?products_id=8687 (http://www.sparkfun.com/commerce/product_info.php?products_id=8687)

Terás de qualquer das formas que o controlar ou por linha de comandos, ou com um software que terás que desenvolver para o efeito utilizando comunicação serial.

O microbyte fez um excelente projecto e pode-te ajudar:
http://lusorobotica.com/index.php/topic,82.0.html (http://lusorobotica.com/index.php/topic,82.0.html)


Ahh bem-vindo ;)
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 10 de Novembro de 2009, 22:09
obrigado ;)

eu vou pesquisar e vou postando aqui as novidades para que me possam tambem ajudar em algo que nao saiba

cump.
Título: Re: proejcto d final de curso
Enviado por: microbyte em 10 de Novembro de 2009, 22:10
Boas. ;)

Bem, podes guiar-te pelo trabalho que fiz...
Para teres uma ideia, o objectivo foi criar um protótipo de um veículo de combate a incêndios.

No vídeo que mostraste, tens à mesma o controlo do "carro" e um sistema de Pan+Tilt (que tem a câmara acoplada).

Na página do projecto tens várias informações, vídeos, e também download do programa de controlo e também do código do Arduino.

http://protovci.wordpress.com/ (http://protovci.wordpress.com/)

Qualquer dúvida específica, podes falar comigo (http://ricardodias.wordpress.com/contactos/). ;)
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 10 de Novembro de 2009, 22:48
eu ja li o  post do teu trabalho todo lol

acho que te vou solicitar muitas vezes

vou precisar de umas dicas principalmente na interface com o pc

cump.
Título: Re: proejcto d final de curso
Enviado por: microbyte em 10 de Novembro de 2009, 22:54
De onde és? Se fores de perto, podemos combinar um encontro e eu explico-te tudo tim tim por tim tim.  :P
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 10 de Novembro de 2009, 23:16
lisboa
espero que sejas daqui lool
Título: Re: proejcto d final de curso
Enviado por: microbyte em 11 de Novembro de 2009, 13:01
Infelizmente não...  :P Entroncamento. Ainda é longe. Mas se quiseres cá vir, falamos.
É um trabalho de grupo ou individual?
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 11 de Novembro de 2009, 15:11
hum isso da para ir de comboio para ai não da? lol
 era uma grande ajuda mesmo

para fazer a interface no computador como fizes.te assim de forma muito simples

vou fazer o trabalho sosinho ;)

cump.

Título: Re: proejcto d final de curso
Enviado por: microbyte em 11 de Novembro de 2009, 15:14
Dá... Entroncamento é a cidade dos comboios :D

Bom, o GUI foi feito em Python utilizando 2 bibliotecas: PyGame (esta biblioteca permitiu receber os dados do Joystick, ou gamepad, mas também de construir todo o ambiente gráfico das instruções que se enviavam para o carro) e PySerial (esta biblioteca basicamente dá a oportunidade ao teu código Python para comunicar com um dispositivo Serial, neste caso com o XBee acoplato ao XBee Explorer USB)

É claro que não tens de o fazer em Python... Podes fazer em VB.NET, em C++, ou noutra linguagem qualquer que te sintas mais à vontade.
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 11 de Novembro de 2009, 18:11
ok
olha tens msn? assim era mais facil para falarmos...

cump.
Título: Re: proejcto d final de curso
Enviado por: microbyte em 11 de Novembro de 2009, 18:13
Eu tenho MSN mas acho que para o bem da "comunidade" devias pôr as tuas dúvidas aqui para que todos possam ter acesso às perguntas e respectivas respostas.

Apenas porque um fórum é isso mesmo, é partilha de informação. E se calhar as tuas dúvidas agora, poderão vir a ser dúvidas de alguém daqui a uns dias...
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 11 de Novembro de 2009, 18:31
claro claro tens razao ;)

eu nunca trabalhei com esses softwares nem sei como funcionam
por exemplo como posso ler dados de um comando que se ligue ao computador por usb?

cump.
Título: Re: proejcto d final de curso
Enviado por: microbyte em 11 de Novembro de 2009, 18:36
Bem, isso é uma questão muito genérica.
Para responder, tens de me dizer antes se tens bases de programação... E qual a linguagem com que te sentes mais à vontade?
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 11 de Novembro de 2009, 18:47
basic ou linguagem c ;)
Título: Re: proejcto d final de curso
Enviado por: microbyte em 11 de Novembro de 2009, 18:59
Então, abres o google e pesquisas:
"basic joystick input"
"c joystick input"

Depois comparas e vês a que achas mais simples e escolhes.
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 11 de Novembro de 2009, 21:10
por exemplo no python como consegues fazer isso ?



Título: Re: proejcto d final de curso
Enviado por: microbyte em 11 de Novembro de 2009, 21:12
Já sacaste o código fonte do ProtoVCI? De certeza que não...  :P

Sacas e ves aquilo... Basicamente isso vai responder à tua pergunta.
Há uma parte do código responsável por pegar nos dados do Joystick. E outra parte para enviar o que é para enviar por Serial.
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 11 de Novembro de 2009, 21:29
onde vou sacar isso podes.me mandar o link?

loool
Título: Re: proejcto d final de curso
Enviado por: microbyte em 11 de Novembro de 2009, 21:40
protovci.wordpress.com

Está lá uma página de Downloads.
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 11 de Novembro de 2009, 21:57
ja consegui ver ;)

agora em termos graficos como funciona essa parte?

obrigado pela paciencia ;)
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 14 de Novembro de 2009, 22:58
alguem aqui ja fez umas lagartas?
eu gostava de por umas no carro
mas as de compra normalmente sao caras

cump.
Título: Re: proejcto d final de curso
Enviado por: ricardo-reis em 15 de Novembro de 2009, 01:51
eu tenho aí um post que link(a) um site de um pessoal que se dedica à construção de tanques rc (enooormes) que explicam mt bem como fazer as lagartas (e não só) pesquisa no portal por 'lagartas' ou 'construção de lagartas'..
Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 04 de Fevereiro de 2010, 22:31
PRECISAVA DE UMA AJUDINHA ;)
ALGUEM ME PODE AJUDAR NISTO POR AQUI?
tenho uma pequena grande duvida lool

eu quero comunicar 2 arduinos com o xbee

vou ter um sensor de temperatura 2 motores que vao estar num carro

depois vou ter de controlar

a minha duvida é

por os xbee a comunicar e em termos de programaçao por exemplo no xbee que envia

ter "1" do pin 3 e o arduino que recebe vai por os motores a funcionar para a frente
e o sinal do sensor como envia.lo e conseguir ler o sinal nas saidas do arduino

gostava de saber em termos de programaça uma ideia para perceber melhor como se faz essa programaçao eu tenho alguns conhecimentos de C mas nao muito

podem.me ajudar?;)

cump.
ze pedro

Título: Re: proejcto d final de curso
Enviado por: guibot em 04 de Fevereiro de 2010, 22:49
Citar
tenho uma pequena grande duvida lool

eu quero comunicar 2 arduinos com o xbee

vou ter um sensor de temperatura 2 motores que vao estar num carro

depois vou ter de controlar

a minha duvida é

por os xbee a comunicar e em termos de programaçao por exemplo no xbee que envia

ter "1" do pin 3 e o arduino que recebe vai por os motores a funcionar para a frente
e o sinal do sensor como envia.lo e conseguir ler o sinal nas saidas do arduino

gostava de saber em termos de programaça uma ideia para perceber melhor como se faz essa programaçao eu tenho alguns conhecimentos de C mas nao muito

podem.me ajudar?;)

cump.
ze pedro

tens que mudar de compilador para o teu português, não está facil de entender exactamente o que pretendes  :p

para usares xbee com arduinos, podes começar por experimentar comunicação Serial. Tenho um breve post em que mostro um exemplo: http://lusorobotica.com/index.php/topic,319.0.html (http://lusorobotica.com/index.php/topic,319.0.html)

se fizeres uma pesquisa no forum por "comunicação serial" obterás muita informação útil

boa sorte

Título: Re: proejcto d final de curso
Enviado por: _ze_pedro_ em 05 de Fevereiro de 2010, 23:36
vou tentar ser mais explicito..

imagina que  tenho um botão e carrego no botão que está ligado ao arduino  (por exemplo ao pin 1)
depois como o pin 1 foi a 1  vai enviar para o outro arduino que estão a comunicar através do xbee a ordem de fazer andar os dois motores para a frente

os motores vão estar ligados com o L293D

imagina que o motor 1 está ligado ao pin 1 e 2 e o motor 2 esta ligado ao pin 3 e 4


isto é so para ter uma ideia

ja entendes.te melhor? lool

obrigado pela atençao;)
Título: Re: proejcto d final de curso
Enviado por: guibot em 06 de Fevereiro de 2010, 00:46
leste o post que eu escrevi? qual foi a parte que não percebeste?   

tens aqui mais informação (http://lab.guilhermemartins.net/2008/12/24/serial-comunication-with-xbee-arduino/)
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: _ze_pedro_ em 07 de Fevereiro de 2010, 15:37
ja li ;)

Citar
// SENDER

int analogValue2, analogValue5, val2, val5;

void setup()
{
// start serial port at 19200 bps
Serial.begin(19200);
}

void loop()
{
// read analog input
analogValue2 = analogRead(2);
analogValue5 = analogRead(5);

val2 = map(analogValue2, 0, 1023, 253, 0);  // 254 and 255 for SYNC
val5 = map(analogValue5, 0, 1023, 253, 0);

Serial.print(254, BYTE); //SYNC char
Serial.print(val2, BYTE);

Serial.print(255, BYTE); //SYNC char
Serial.print(val5, BYTE);


delay(150);
}


Citar
// RECIEVER

byte incomingByte, sensor1, sensor2;

void setup() {

// start serial port at 19200 bps
Serial.begin(19200);
Serial.println(”Ready!”);

pinMode (5, OUTPUT);
pinMode (6, OUTPUT);

delay(1000);

}

void loop() {

if (Serial.available()) {
incomingByte = Serial.read();


Serial.print(int(incomingByte));

if ((int(incomingByte) == 254)) {
sensor1 = Serial.read();
Serial.print(”Sensor 1 = “);
Serial.print(int(sensor1));
}

if ((int(incomingByte) == 255)) {
sensor2 = Serial.read();
Serial.print(”  Sensor 2 = “);
Serial.print(int(sensor2));

}
}

analogWrite (5, sensor1);
analogWrite (6, sensor2);
}

 o que ta com o risco por cima é o que  nao percebo bem como isso "funciona" lol

obrigado mais uma vez pela paciência mas nunca trabalhei com isto e tenho so alguns conhecimentos de linguagem c e quero aprender mais qualquer coisa ;)
 
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: guibot em 07 de Fevereiro de 2010, 22:04
porque não lês antes uns bons tutoriais para entenderes melhor aquilo com que vais lidar?
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: _ze_pedro_ em 08 de Fevereiro de 2010, 19:59
ja tou a entender melhor ;) ja li umas coisitas

so uma pergunta

a ligaçao do xbee ao arduino é feito dessa maneira nao è?

http://www.rogercom.com/ZigBee/XBeeConfig1.gif (http://www.rogercom.com/ZigBee/XBeeConfig1.gif)

os 3.3V ligam ao pin 1
os pin 10 vai a massa

para comunicar os dois basta fazer isso nos dois x bee nao é?
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: guibot em 08 de Fevereiro de 2010, 20:10
iap é assim mesmo, cuidado que os chip da xbee é muito sensível, mais voltagem do que 3.3v ou amperagem a mais e diz-lhe adeus...    se puderes e se tiveres € usa um adaptador para xbee, facilita imenso a sua utilização
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: _ze_pedro_ em 08 de Fevereiro de 2010, 23:26
hum ok ok

no arduino onde diz power 3.3v o xbee pode ser alimentado ai?

a escola é que vai investir mas nao me posso esticar e o adaptador nao dever assim tao barato nao é?
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: TigPT em 08 de Fevereiro de 2010, 23:35
Sim, pode ser alimentado por ai.

Mas se os pinos deste não forem 5V compatíveis, terás que utilizar divisores de tensão com resistencias ou logic level converters.
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: _ze_pedro_ em 09 de Fevereiro de 2010, 10:44
ok ok ;)

eu vou ver isso bem qualquer duvida ponho aqui ;)

vou postar tambem umas fotos do que ja tenho feito
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: _ze_pedro_ em 17 de Maio de 2010, 20:01
BOAS

alguem aqui me pode tirar uma duvida?

eu tenho um programa feito em python e no pc que o fiz funciona agora no pc para onde o passei nao funciona mas os programas sao da memso versao è tudo igual
a unica diferença é que no outro tinha o vista e neste tinha o xp

sera que isso tem alguma influencia??

da.me este erro

Traceback (most recent call last):
  File "C:\Documents and Settings\Pedro\Ambiente de trabalho\pap.py", line 44, in <module>
    screen = pygame.display.set_mode(size, pygame.FULLSCREEN)
error: No available video device

nao consigo perceber porque num pc funciona no outro nao

cump.
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: _ze_pedro_ em 26 de Maio de 2010, 10:49
BOAS TENHO UMA DUVIDA

eu estou a fazer ums testes

gostava de saber pqq me da um erro no programa no arduino

 

alguem me pode ajudar?

Código: [Seleccione]
int pwn_esq = (5);
int pwn_dir = (6);



void setup()
{
 
  Serial.begin(9600);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);
  pinMode (7, OUTPUT);
  pinMode (8, OUTPUT);
  pinMode (pwn_esq, OUTPUT);
  pinMode (pwn_dir, OUTPUT);
 
}

void loop()

{
  if ( Serial.available() > 0)
    {
    char inByte = Serial.read();
    delay(10);
    if (inByte == '*')
      {
      int len = 5;
      char inString[len];
      for (int i = 0; i <= len; i++)
        {
        inString[i] = Serial.read();
        }
     
   
      // Motores / Direcção
      if ((inString[0] == 0 + 0x30) && (inString[1] == 0 + 0x30))
        {
        // Mortor esquerda parado 
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
             
        // Motor direita parado
        digitalWrite(7, LOW);
        digitalWrite(8, LOW);
        }
     
      else
        if ((inString[0] == 1 + 0x30) && (inString[1] == 0 + 0x30))
          {
           // Mortor esquerda frente 
          digitalWrite(3, LOW);
          digitalWrite(4, HIGH);
          analogWrite (pwn_esq, 255);
             
          // Motor direita frente
          digitalWrite(7, LOW);
          digitalWrite(8, HIGH);
          analogWrite (pwn_dir, 255);
          }     
       
        else
          if ((inString[0] == 2 + 0x30) && (inString[1] == 0 + 0x30))
            {
            // Mortor esquerda tras 
            digitalWrite(3, HIGH);
            digitalWrite(4, LOW);
            analogWrite (pwn_esq, 255);
             
            // Motor direita tras
            digitalWrite(7, HIGH);
            digitalWrite(8, LOW);
            analogWrite (pwn_dir, 255);
            }
               
          else
            if ((inString[0] == 0 + 0x30) && (inString[1] == 1 + 0x30))
              {
              // Mortor esquerda tras 
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
              analogWrite (pwn_esq, 255);
             
              // Motor direita frente
              digitalWrite(7, LOW);
              digitalWrite(8, HIGH);
              analogWrite (pwn_dir, 255);
              }
           
            else
              if ((inString[0] == 1 + 0x30) && (inString[1] == 1 + 0x30))
                {
                // Mortor esquerda parado 
                digitalWrite(3, LOW);
                digitalWrite(4, LOW);
                             
                // Motor direita frente
                digitalWrite(7, LOW);
                digitalWrite(8, HIGH);
                analogWrite (pwn_dir, 255);
                }
             
              else
                if ((inString[0] == 2 + 0x30) && (inString[1] == 1 + 0x30))
                  {
                  // Mortor esquerda parado 
                  digitalWrite(3, LOW);
                  digitalWrite(4, LOW);
                               
                  // Motor direita tras
                  digitalWrite(7, HIGH);
                  digitalWrite(8, LOW);
                  analogWrite (pwn_dir, 255);
                  }
               
                else
                  if ((inString[0] == 0 + 0x30) && (inString[1] == 2 + 0x30))
                    {
                    // Mortor esquerda frente 
                    digitalWrite(3, LOW);
                    digitalWrite(4, HIGH);
                    analogWrite (pwn_dir, 255)
                               
                    // Motor direita tras
                    digitalWrite (7, HIGH); // -----> O ERRO É A PARTIR DAQUI <-----
                    digitalWrite(8, LOW);
                    analogWrite (pwn_dir, 255);
                    }
                 
                  else
                    if ((inString[0] == 1 + 0x30) && (inString[1] == 2 + 0x30))
                      {
                      // Mortor esquerda frente 
                      digitalWrite(3,LOW);
                      digitalWrite(4,HIGH);
                      analogWrite (pwn_dir, 255)
                               
                      // Motor direita parado
                      digitalWrite(7,LOW);
                      digitalWrite(8,LOW);
                      }
                   
                    else
                      if ((inString[0] == 2 + 0x30) && (inString[1] == 2 + 0x30))
                        {
                        // Mortor esquerda tras 
                        digitalWrite(3,HIGH);
                        digitalWrite(4,LOW);
                        analogWrite (pwn_dir, 255)
                               
                        // Motor direita parado
                        digitalWrite(7,LOW);
                        digitalWrite(8,LOW);
                        }
                     
                                   
       
     
      }
  }
}

cump.
ze pedro
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: RicardoSantos em 26 de Maio de 2010, 11:57
Supostamente tens vários erros:

1º (neste tenho algumas duvidas mas acho que está correcto como tenho)

Código: [Seleccione]
   
int inString[len];
      for (int i = 0; i <= len; i++)
        {
        inString[i] = Serial.read();
        }

2º faltam-te ; em todos os analogWrite a partir de aqui
Código: [Seleccione]
                   
 analogWrite (pwn_dir, 255);
                               
 // Motor direita tras
 digitalWrite (7, HIGH); // -----> O ERRO É A PARTIR DAQUI <-----
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: _ze_pedro_ em 26 de Maio de 2010, 12:38
Supostamente tens vários erros:

1º (neste tenho algumas duvidas mas acho que está correcto como tenho)

Código: [Seleccione]
   
int inString[len];
      for (int i = 0; i <= len; i++)
        {
        inString[i] = Serial.read();
        }

2º faltam-te ; em todos os analogWrite a partir de aqui
Código: [Seleccione]
                   
 analogWrite (pwn_dir, 255);
                               
 // Motor direita tras
 digitalWrite (7, HIGH); // -----> O ERRO É A PARTIR DAQUI <-----

2º o motor ai vai estar parado por isso nao necessita de pwn para controlar a velocidade acho que nao è disso :)

cump.
ze pedro
Título: Re: PAP - Comunicações sem fios duvida
Enviado por: _ze_pedro_ em 26 de Maio de 2010, 12:43
o erro que me da è este

Citar
error: expected';' before 'digitalWrite'
in function 'void loop()':
error: expected ';' before 'digitalWrite'
Título: Re: PAP - SONDA MOVEL
Enviado por: amando96 em 26 de Maio de 2010, 13:28
Citar
2º faltam-te ; em todos os analogWrite a partir de aqui
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 26 de Maio de 2010, 13:53
ja experimentei e da.me o mesmo erro:S
Título: Re: PAP - SONDA MOVEL
Enviado por: amando96 em 26 de Maio de 2010, 15:11
Código: [Seleccione]
int pwn_esq = (5);
int pwn_dir = (6);



void setup()
{
 
  Serial.begin(9600);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);
  pinMode (7, OUTPUT);
  pinMode (8, OUTPUT);
  pinMode (pwn_esq, OUTPUT);
  pinMode (pwn_dir, OUTPUT);
 
}

void loop()

{
  if ( Serial.available() > 0)
    {
    char inByte = Serial.read();
    delay(10);
    if (inByte == '*')
      {
      int len = 5;
      char inString[len];
      for (int i = 0; i <= len; i++)
        {
        inString[i] = Serial.read();
        }
     
   
      // Motores / Direcção
      if ((inString[0] == 0 + 0x30) && (inString[1] == 0 + 0x30))
        {
        // Mortor esquerda parado 
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
             
        // Motor direita parado
        digitalWrite(7, LOW);
        digitalWrite(8, LOW);
        }
     
      else
        if ((inString[0] == 1 + 0x30) && (inString[1] == 0 + 0x30))
          {
           // Mortor esquerda frente 
          digitalWrite(3, LOW);
          digitalWrite(4, HIGH);
          analogWrite (pwn_esq, 255);
             
          // Motor direita frente
          digitalWrite(7, LOW);
          digitalWrite(8, HIGH);
          analogWrite (pwn_dir, 255);
          }     
       
        else
          if ((inString[0] == 2 + 0x30) && (inString[1] == 0 + 0x30))
            {
            // Mortor esquerda tras 
            digitalWrite(3, HIGH);
            digitalWrite(4, LOW);
            analogWrite (pwn_esq, 255);
             
            // Motor direita tras
            digitalWrite(7, HIGH);
            digitalWrite(8, LOW);
            analogWrite (pwn_dir, 255);
            }
               
          else
            if ((inString[0] == 0 + 0x30) && (inString[1] == 1 + 0x30))
              {
              // Mortor esquerda tras 
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
              analogWrite (pwn_esq, 255);
             
              // Motor direita frente
              digitalWrite(7, LOW);
              digitalWrite(8, HIGH);
              analogWrite (pwn_dir, 255);
              }
           
            else
              if ((inString[0] == 1 + 0x30) && (inString[1] == 1 + 0x30))
                {
                // Mortor esquerda parado 
                digitalWrite(3, LOW);
                digitalWrite(4, LOW);
                             
                // Motor direita frente
                digitalWrite(7, LOW);
                digitalWrite(8, HIGH);
                analogWrite (pwn_dir, 255);
                }
             
              else
                if ((inString[0] == 2 + 0x30) && (inString[1] == 1 + 0x30))
                  {
                  // Mortor esquerda parado 
                  digitalWrite(3, LOW);
                  digitalWrite(4, LOW);
                               
                  // Motor direita tras
                  digitalWrite(7, HIGH);
                  digitalWrite(8, LOW);
                  analogWrite (pwn_dir, 255);
                  }
               
                else
                  if ((inString[0] == 0 + 0x30) && (inString[1] == 2 + 0x30))
                    {
                    // Mortor esquerda frente 
                    digitalWrite(3, LOW);
                    digitalWrite(4, HIGH);
                    analogWrite (pwn_dir, 255);
                               
                    // Motor direita tras
                    digitalWrite (7, HIGH); // -----> O ERRO É A PARTIR DAQUI <-----
                    digitalWrite(8, LOW);
                    analogWrite (pwn_dir, 255);
                    }
                 
                  else
                    if ((inString[0] == 1 + 0x30) && (inString[1] == 2 + 0x30))
                      {
                      // Mortor esquerda frente 
                      digitalWrite(3,LOW);
                      digitalWrite(4,HIGH);
                      analogWrite (pwn_dir, 255);
                               
                      // Motor direita parado
                      digitalWrite(7,LOW);
                      digitalWrite(8,LOW);
                      }
                   
                    else
                      if ((inString[0] == 2 + 0x30) && (inString[1] == 2 + 0x30))
                        {
                        // Mortor esquerda tras 
                        digitalWrite(3,HIGH);
                        digitalWrite(4,LOW);
                        analogWrite (pwn_dir, 255);
                               
                        // Motor direita parado
                        digitalWrite(7,LOW);
                        digitalWrite(8,LOW);
                        }
                     
                                   
       
     
      }
  }
}

Foi só por ";" no fim dos analogWrite, aqui compila...
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 26 de Maio de 2010, 17:07
pura falta de atençao  ;D

obrigado ;);)
Título: Re: PAP - SONDA MOVEL
Enviado por: RicardoSantos em 26 de Maio de 2010, 17:42
O que importa é que agora funciona ;)

Cumps
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 26 de Maio de 2010, 17:59
agora a ver se faz o que quero

daqui a bocado quando ja estiver em casa ja vou ver :D depois ja digo aqui se funcionou

cumps
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 01 de Junho de 2010, 17:31
tenho aqui uma questão para colocar se alguem me puder ajudar agradecia

eu no carro estou a pensar em por uma camara e pensei numa camara wireless mas sao muito caras por isso quero tentar resolver o problema de uma maneira mais barata

eu vou enviar os dados por xbee para o pc e depois visualizo num programa em python a minha questao é....

sera possivel fazer isso?
as velocidades serao compativeis? sera que posso utilizar so um arduino e um xbee no carro ou necessito de outro porque eu vou comandar o carro a partir do python depois vou enviar tudo por usb para o xbee e recebo no carro depois conforme os comando o carro vai funcionar

esquematizando:

-o que envio no pc:

comando(usb) --> python --> envio para xbee (usb) --> recebo no carro pelo xbee --> o carro faz as funçoes que lhe envio

- o que recebo no pc:

sensor(es) e camara --> xbee do carro --> xbee pc --> visualizo o valor do(s) sensor(es) e visualizo a imagem da camara

sera que posso fazer isso tudo so um xbee no carro?

se alguem nao percebeu diga que eu explico melhor

ah!! a camara seria uma web usb normal

cump.
ze pedro;)
Título: Re: PAP - SONDA MOVEL
Enviado por: senso em 01 de Junho de 2010, 18:02
É tudo possivel, menos a parte da camera, um arduino não consegue enviar um filme, pois mesmo a 320x240x16 bits já são 1228800bits para cada imagem, se quiseres uns miseros 20fps são 20 vezes isso, um arduino tem 2kb de ram que se vão embora bem depressa, é impossivel mesmo.
Título: Re: PAP - SONDA MOVEL
Enviado por: AcidDagger em 01 de Junho de 2010, 19:31
ele pode enviar o video pelo xbee
Título: Re: PAP - SONDA MOVEL
Enviado por: senso em 01 de Junho de 2010, 19:37
Isso não sei que não conheço, mas o arduino a processar o video e a enviar para o xbee bem que podes esquecer, a não ser que só esteja a fazer isso e uses cores hsl ou yuv, ou mesmo escala de cinzas, mas mesmo assim é muitos muitos dados e é preciso uma boa pericia a programar e não é concerteza a usar o wiring para o fazer, mas sim puro c.
Título: Re: PAP - SONDA MOVEL
Enviado por: antonio_jose em 01 de Junho de 2010, 20:10
Isso não sei que não conheço, mas o arduino a processar o video e a enviar para o xbee bem que podes esquecer, a não ser que só esteja a fazer isso e uses cores hsl ou yuv, ou mesmo escala de cinzas, mas mesmo assim é muitos muitos dados e é preciso uma boa pericia a programar e não é concerteza a usar o wiring para o fazer, mas sim puro c.

Off-topic: É possível com micro-controlador "mbed - LPC1768 Development Board" ligar uma câmara ou um microfone para criar aplicações de processamento de vídeo ou de som? Por exemplo no vídeo conseguir destingir entre um objecto e o outro? E no som conseguir identificar num ruído a nossa comunicação, do tipo dizemos uma palavra qualquer e durante o processamento comparava os dados desse ruído com outros predefinidos na base de dados, e o micro-controlador escrevia essa palavra por exemplo num LCD, ou dar uma resposta, conforme as várias palavras que recebe.
Título: Re: PAP - SONDA MOVEL
Enviado por: senso em 01 de Junho de 2010, 21:05
Possivelmente sim, mas com muitas limitações e mesmo assim não sei se consegues, analise e processamento de sinal requerem grandes quantidades de ram para ir armazenando os dados processados e tudo o que lhes vais fazendo, na casa dos gigas, tratar imagens é em PC's que têm grande capacidade para trabalhar com numeros, som, deve ser mais facil, os telemoveis já fazem isso á uns anos, mas mesmo assim é preciso algoritmos muito bem trabalhados.
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 01 de Junho de 2010, 23:05
pois tou a ver que è muito complicado assim :S

entao alguem sabe de alguma  uma soluçao facil e barata ???

obrigado pelas respostas

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL
Enviado por: senso em 01 de Junho de 2010, 23:20
procura no ebay por wireless camera ou algo assim.
Olha ai, agora procura um que envie para portugal e que tenha a camera e o receptor, depois no pc terás de usar uma placa de captura de tv, mas por menos de 50$ estão ai dezenas se não mesmo centenas delas:
http://shop.ebay.com/?_from=R40&_trksid=p3907.m570.l1311&_nkw=wireless+camera&_sacat=See-All-Categories (http://shop.ebay.com/?_from=R40&_trksid=p3907.m570.l1311&_nkw=wireless+camera&_sacat=See-All-Categories)

Até parece impossivel:
camera+receptor+placa de captura de video por 20 dolares falta é saber se tem qualidade que chegue:
http://cgi.ebay.com/Wireless-Spy-Nanny-Mini-Camera-USB-DVR-Recording-PC-/260612614194?cmd=ViewItem&pt=LH_DefaultDomain_0&hash=item3cadb8e832 (http://cgi.ebay.com/Wireless-Spy-Nanny-Mini-Camera-USB-DVR-Recording-PC-/260612614194?cmd=ViewItem&pt=LH_DefaultDomain_0&hash=item3cadb8e832)
Título: Re: PAP - SONDA MOVEL
Enviado por: amando96 em 02 de Junho de 2010, 10:23
^^ e era mais 30$ de portes... mas já acabou.
Tmb existe isto:
http://cgi.ebay.com/Easy-CAP-Video-Capture-Adapter-USB-2-0-Audio-Laptop-/150432986346?cmd=ViewItem&pt=LH_DefaultDomain_0&hash=item23068134ea (http://cgi.ebay.com/Easy-CAP-Video-Capture-Adapter-USB-2-0-Audio-Laptop-/150432986346?cmd=ViewItem&pt=LH_DefaultDomain_0&hash=item23068134ea)
nunca experimentei, mas penso que faz o que procuras, ele consegue receber info de uma camera com fios, agora receber do receptor, com uma wireless há de ser o mesmo não?
Título: Re: PAP - SONDA MOVEL
Enviado por: senso em 02 de Junho de 2010, 14:26
Mas á lá muitas iguais a esse mete nanny camera na busca que te aparecem muitas, isso é só uma placa para pegar em video e passar para o pc, não recebe nada sem fios.
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 03 de Junho de 2010, 00:10
eu vou fazer uma pesquisa por o ebay loool

ja vi que ha muita oferta ;)

obrigado :D

Título: Re: PAP - SONDA MOVEL
Enviado por: amando96 em 03 de Junho de 2010, 00:52
Mas á lá muitas iguais a esse mete nanny camera na busca que te aparecem muitas, isso é só uma placa para pegar em video e passar para o pc, não recebe nada sem fios.

Estava a dizer ligar aquilo ao receptor wireless da camera, com fios, tipo
computador------easy cap------receptor ~~~~ emissor/camera.

---- = fios
~~ = sem fios

Título: Re: PAP - SONDA MOVEL
Enviado por: senso em 03 de Junho de 2010, 00:58
Sim, isso deve dar, mas atenção que aquilo faz uma resolução bastante baixa, 320x240
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 08 de Junho de 2010, 12:02
tenho mais uma duvida :D

qual é a maneira mais adequada para ligar um sensor lm35 ao arduino e para ter valores +- certos sem ruido para ler os valores e depois envia.los para o python

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL
Enviado por: senso em 08 de Junho de 2010, 12:45
Por exemplo, assim:
http://pscmpf.blogspot.com/2008/12/arduino-lm35-sensor.html (http://pscmpf.blogspot.com/2008/12/arduino-lm35-sensor.html)
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 08 de Junho de 2010, 13:01
pois a minha duvida era essa :D

eu pensei em ligar assim mas nao sabia se podia haver alguns contras mas ja vi que nao ;)

obrigado ;)

Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 09 de Junho de 2010, 09:39
boas

alguem ja comprou algo na inMotion??

https://www.inmotion.pt (https://www.inmotion.pt)

alguem me sabe dar um feed back??

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL
Enviado por: microbyte em 09 de Junho de 2010, 09:48
Já comprei e recomendo.

Talvez um bocadinho cara, comparado com os preços da Sparkfun, mas com os portes é capaz de ficar ela por ela...
É uma questão de fazeres as contas.

Cumprimentos.
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 09 de Junho de 2010, 09:51
eu quero mandar vir um xbee explore e preciso dele o mais rapido possivel

obrigado microbyte
Título: Re: PAP - SONDA MOVEL
Enviado por: microbyte em 09 de Junho de 2010, 10:06
Mandei vir o meu de lá, pela mesma razão.  ;)

De nada.
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 09 de Junho de 2010, 10:14
os nossos trabalhos sao muito parecidos loool

eu a base do meu projecto é o o teu ;)

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL
Enviado por: microbyte em 09 de Junho de 2010, 10:49
Fixe! Então depois manda-me fotos ou assim, quero saber como correu, que nota tiveste, etc...

Mandaste-me uma PM há uns tempos, mas não te consigo responder, parece k me bloqueaste ou então tens a caixa de entrada cheia...

Aqui fica a resposta que tinha para ti:
Citar
ola tudo bem?

eu estou a basear.me no teu projecto para fazer a minha pap

nao esto ua estudar agora o programa do arduino tenho algumas duvidas

na pasta que tens no site tem o programa receiver2 , motores, e servos

tu so utilizas o receiver2 nao è? è so isso que envias para o arduino

tenho outra duvida

"if(inString[5] == 1 + 0x30)" que significa esse 0x30?

obrigado mais uma vez ;)
cump.
ze pedro
Boas novamente.
Estás à vontade para usar e alterar o código ao teu gosto.

Dizes bem... Na pasta do projecto Arduino estão lá 3 pedaços do mesmo código.
Isso está assim, porque quando crias uma nova "aba" no IDE do Arduino, ele cria-te outro ficheiro. Essa foi a forma que encontrei para separar as várias partes do carro.
Na verdade, se isso te faz confusão, podes juntar o código todo no mesmo ficheiro ".pde"

Respondendo mais especificamente à tua pergunta, não é só o receiver2 que está a ser usado, precisas de todos os outros ficheiros na mesma pasta, ou como te disse, o código junto no mesmo ficheiro.

Quanto à tua questão... Vou tentar explicar-te.
Tudo começa com a Tabela ASCII (http://www.asciitable.com/ (http://www.asciitable.com/)).
Se ainda não conheces, dá uma vista de olhos pela tabela e facilmente repararás que cada caracter tem um código associado (por exemplo o caracter '*' é o código 42 em decimal, ou 2A em hexadecimal).
Ora, o que o GUI envia são caracteres. Na verdade, envia os códigos desses caracteres. Ou seja, se eu do GUI mandar o caracter 'a', o que o Arduino vai ler é 97 (em decimal), que é o código desse caracter.

Como nós enviamos caracteres numéricos, só temos de começar a contar no caracter '0', que é 30 em hexadecimal.
Como é que fazemos isso? Subtraímos 0x30 (ou 48, é equivalente) ao caracter que recebemos e ficamos com um inteiro. Esse inteiro coincide com o caracter numérico.

Exemplo: Se nós recebermos 50 (corresponde ao caracter '2'), se subtraírmos 48 (ou 0x30), ficamos com 2. Daí o 0x30.

Percebeste? Se não percebeste, diz que eu tento explicar de outra maneira.

Vai dando notícias do teu projecto. ;)

Cumprimentos,
Ricardo Dias
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 09 de Junho de 2010, 11:52
loool

obrigado pela resposta :D

ja percebi mais ou menos

eu em casa vou ler melhor agora nao tenho muito tempo para ler com atençao porque estou no estagio

eu ja tenho o python feito com algumas alteraçoes e o programa do arduino tambem

eu vou postar aqui para dares uma vista de olhos e para veres se gostas claro :D

so um pouco :P
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 09 de Junho de 2010, 12:19
aqui esta o programa do python

tem umas " mariquices " espero que gostem ;)

micro da.me depois opiniao

Citar
# -*- coding: iso-8859-15 -*-

import serial # biblioteca pyserial
import time # biblioteca do tempo para o relogio
import pygame # biblioteca pygame
import os
import sys
from pygame.locals import *
from pygame import joystick, event

i = 0 # variavel inicial do botao btn_2 (luz on)
a = 0 # variavel inicial da botao btn_1 (luz off)

b = 1 # tentativas esgotadas
c = 3 # numero de tentativas

s = 1 # variavel do while para a porta serie
p = 0 # variavel do while da porta serie
#--------------------------------------------------------------------------------------------------------------------------------

 ##########
#-PASSWORD-#
 ##########

pw = 9999 # Password
print "AVISO\n\nTEM 3 TENTATIVAS" # imprime o numero de tentativas no inicio
password = raw_input ("\nInserir Password:")# valor inserido na password

   
while password != str(pw): # enquando a password nao foi correcta imprime "pass errada" e permite colocar outra vez nova password

    c = c - 1 # menos uma tentativa
    print ("\nPassword Errada\n___________________________________")

    if c == 1: #se o numero de tentativa for = 1
        print "\nAVISO\n\nTEM", c, "TENTATIVA" # imprime "tentativa"
    else:
        if c != 0: #se for diferente de 0
            print "\nAVISO\n\nTEM", c, "TENTATIVAS" #imprime "tentativas" 
   
    if (b == 3): #se o numero de tentativas utilizadas for = 3
       
        print ("\n\nNUMERO DE TENTATIVAS ESGOTADAS")
        time.sleep(2)
        os._exit(1) # para o python shell e nao avança mais

    else: # se nao
        b = b + 1 # incrementa 1
       
   
    password = raw_input ("\nInserir Password:") # inserir de novo a password
       
print "\n\nPASSWORD CORRECTA\n\n___________________________________"     
       

       
   
#---------------------------------------------------------------------------------------------------------------------------------

# normalizar os valores do joystick de -1 e 1 para 1 e 2

def normalizar(num):
    if num == -1:
        num = 1
    elif num == 1:
        num = 2
    return num



def load_image(name, colorkey=None):
    fullname = os.path.join('images', name)
    try:
        image = pygame.image.load(fullname)
    except pygame.error, message:
        print 'Cannot load image:', name
        raise SystemExit, message
    image = image.convert()
    if colorkey is not None:
        if colorkey is -1:
            colorkey = image.get_at((0,0))
        image.set_colorkey(colorkey, RLEACCEL)
    return image, image.get_rect()

#---------------------------------------------------------------------------------------------------------

#########################
""" Porta Série setup """
#########################

print ("\nPORTA SÉRIE")
porta1 = raw_input("\nNumero da porta: ") # inserir o numero da porta
#porta1 = 3
porta = int(porta1) - 1


while ((s == 1) and (p == 0)):

   print ("___________________________________\n\nPORTA SÉRIE\n\nInserir Novamente")
    porta1 = raw_input("\nNumero da porta: ") # inserir numero de novo
    porta = int(porta1) - 1

    try:
        ser = serial.Serial(porta)  # abre a porta usb
        print 'A usar a porta',ser.portstr       
        s = 1
        p = 1

    except:
        print '\nERRO: Porta nao encontrada ou em uso.'
        s = 1
        p = 0


ser.baudrate = 9600 # velocidade de transmissao 9600 bps

#ser.open()

#-----------------------------------------------------------------------------------------------------------------


# ################# #
""" Setup Inicial """
# ################# #

pygame.init()

background = pygame.image.load(os.path.join('images', "bem_V.png")) # imagem de inicio "bem vido!"
backgroundRect = background.get_rect()
size = (width, height) = background.get_size() # Tira as dimensões da imagem de fundo
#size = (640, 480)
screen = pygame.display.set_mode(size) # Cria uma janela do tamanho da imagem de fundo
#screen = pygame.display.set_mode(size, pygame.FULLSCREEN)
screen.blit(background, backgroundRect)

pygame.display.flip()
pygame.display.set_caption('ExplorUino - Painel de Controlo') # coloca o nome do projecto na barra do windows


clock = pygame.time.Clock()
screen.blit(background, (0, 0))
pygame.display.flip()

time.sleep(3)

# Fim do Setup

#------------------------------------------------------------------------------------------------------------------


img_fundo = pygame.image.load(os.path.join('images', "fundo.png")) # coloca a imagem de fundo
background.blit(img_fundo, (0, 0))




# declara as variaveis do joystick (esquerda) para comandar o sentido e a direcçao do carro
eixox = 0
eixoy = 0

# declara as variaveis do joystick (direita) para comandar a direcçao da camara
rot1 = 0
rot2 = 0

# declara as variaveis dos botoes do comando
btn_1 = a # luz off
btn_2 = i # luz on
btn_3 = 0 # start


try:
   j = pygame.joystick.Joystick(0) # create a joystick instance
   j.init() # init instance
   print 'Enabled joystick: ' + j.get_name()
except pygame.error:
   print 'AVISO: Nao foi encontrado nenhum joystick.'
   

while 1:
    clock.tick(60)# velocidade do ciclo era 60
    time.sleep(0.05)
    pygame.event.pump()# inicio do ciclo das imagens e dos valores dos comandos
    for evento in pygame.event.get():
       
        if evento.type == pygame.JOYAXISMOTION: # se os joystick apresentarem um valor

            # faz uma aproximaçao de 0 casas decimais para evitar o ruido e o tremor dos joysticks
            eixox = round(j.get_axis(0), 0)
            eixoy = round(j.get_axis(1), 0)
            rot1 = round(j.get_axis(2), 0)
            rot2 = round(j.get_axis(3), 0)

            # vai "normalizar" os valores dos joysticks de -1 ou 1 para 1 ou 2
            eixox = normalizar(int(eixox))
            eixoy = normalizar(int(eixoy))
            rot1 = normalizar(int(rot1))
            rot2 = normalizar(int(rot2))

        elif evento.type == pygame.JOYBUTTONDOWN or evento.type == pygame.JOYBUTTONUP:# se os botoes do comando apresentarem algum valor

            #declara quais sao os botoes das variaveis
            btn_1 = j.get_button(3)
            btn_2 = j.get_button(2)
            btn_3 = j.get_button(9)
           
           
   
#------------------------------------------------
   
    ###############
    # Porta Série #
    ###############
   
    ser.write("*")         
    ser.write(str(eixoy))   #0
    ser.write(str(eixox))   #1
    ser.write(str(btn_1))   #2 b1
    ser.write(str(btn_2))   #3 b2
    #ser.write(str(rot1))    #4
    #ser.write(str(rot2))    #5   
    #ser.write(str(btn_3))   # botao start (parar tudo)
   
    #ser.write("0")          #4
    #ser.write("+")          #5

#------------------------------------------------


   
   
    print "\nX=", eixox, " Y=", eixoy, " B1=", btn_1, " B2=", btn_2, " B3=", btn_3, "rot1=", rot1, "rot2=", rot2,  # valores das variaveis do comando
    pygame.draw.rect(background, (255, 255, 255), pygame.Rect(49, 90, 550, 350), 0)


#Parte da Direccao do Carro
   
    if eixox == 1:
        img_dir = pygame.image.load(os.path.join('images', "esq.png"))
    elif eixox == 2:
        img_dir = pygame.image.load(os.path.join('images', "dir.png"))
    else:
        img_dir = pygame.image.load(os.path.join('images', "0.png"))
    background.blit(img_dir, (50, 110))

#Motores
   
    if eixoy == 1:
        img_mot = pygame.image.load(os.path.join('images', "frent.png"))
    elif eixoy == 2:
        img_mot = pygame.image.load(os.path.join('images', "tr_tr.png"))
    else:
        img_mot = pygame.image.load(os.path.join('images', "parado.png"))

    background.blit(img_mot, (25, 290))

#Luz

    if ((btn_2 == 1) or ((btn_1 == 0) and (i == 1) and (a == 1))):
        i = 1
        a = 1
        img_luz = pygame.image.load(os.path.join('images', "luz_on.png"))
        background.blit(img_luz, (350, 130))
       
    elif ((btn_1 == 1) or ((btn_2 == 0) and (i == 0)and (a == 0))):
        i = 0
        a = 0
        img_luz = pygame.image.load(os.path.join('images', "luz_off.png"))
        background.blit(img_luz, (350, 130))

#Relógio
   
        font = pygame.font.Font(None, 16) # tipo de letra e tamanho
        curtime = time.strftime("%d-%m-%Y  %H:%M:%S") # como vai ser colocadas a hora e a data
        txt_time = font.render(curtime, 1, (255, 255, 255), (0,0,0))# cor da letra
        pygame.draw.rect(background, (0, 0, 0), pygame.Rect(500, 30, 150, 20), 0)
        background.blit(txt_time, (495, 459))#posiçao da hora e da data

        img_sensor = pygame.image.load(os.path.join('images', "sensores.png")) # coloca a imagem de fundo
        background.blit(img_sensor, (430, 250))


    if (btn_3)== 0: # se o botao do start nao for pressionado
        screen.blit(background, (0, 0))
        pygame.display.flip()# executa o ciclo de novo
   

    else: # se for pressionado
        pygame.quit()# sai da janela do projecto
        os._exit(1)# sair


as imagens vao em anexo

a imagens com os valores dos sensores foi uma que fiz so para ver como ficavam
so mesmo para ter uma ideia lol

ainda falta algumas coisas no python

tenho mostrar os valores dos sensores é so o que falta

em termos de material

chegaram hoje os xbee vou busca.los a tarde
ja mandei vir o xbee explore usb

acho que esta no bom caminho



cump.

Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 09 de Junho de 2010, 12:27
em relaçao ao arduino

o programa que tenho por agora esta nestes modos lol

ainda falta ler os dados dos sensores fazer a conversao dos valores e enviar para o xbee

Citar
/*

Comentário:

  -> LIGAÇÕES

       ----------------------------------------------
       | IN/OUT DIGITAIS:      | IN/OUT ANALÓGICAS: |
-----------------------------------------------------
0(rx)  | xbee                  | Temperatura        |
-----------------------------------------------------
1(tx)  | xbee                  | Humidade           |
-----------------------------------------------------
2      | Luz                   | Pressao            |
-----------------------------------------------------
3 (pwn)| Motor Esq             |                    |
-----------------------------------------------------
4      | Motor Esq             |                    |
-----------------------------------------------------
5(pwn) | Pwn Motor Esq         |             
--------------------------------
6(pwn) | Pwn Motor Dir         |
--------------------------------
7      | Motor Dir             |
--------------------------------
8      | Motor Dir             |
--------------------------------
9(pwn) | "Servo camara dir/esq"|
--------------------------------
10(pwn)| "Servo camara frt/trs"|
--------------------------------
11(pwn)|                       |
--------------------------------
12     |                       |
--------------------------------
13     |                       |
--------------------------------
*/





/************
 ** INICIO **
 ************/





/* Declaração de Variáveis */

int luz = (2);
int pwn_esq = (5);
int pwn_dir = (6);
int camara1 = (12);
int camara2 = (13);
int a = 0;
int i = 0;


/* Configuração de Arranque */
void setup()
{
 
  Serial.begin(9600); // Abrir a porta série
  pinMode (3, OUTPUT); // Declarar o o pin do motor esquerdo OUTPUT
  pinMode (4, OUTPUT); // Declarar o o pin do motor esquerdo OUTPUT
  pinMode (7, OUTPUT); // Declarar o o pin do motor direito OUTPUT
  pinMode (8, OUTPUT); // Declarar o o pin do motor direito OUTPUT
  pinMode (pwn_esq, OUTPUT); // Declarar o o pin do pwn do motor esquerdo OUTPUT
  pinMode (pwn_dir, OUTPUT); // Declarar o o pin do pwn do motor direito OUTPUT
   
}

void loop()

{
  if ( Serial.available() > 0) // Se ouver entrada de dados por Serial...
    {
    char inByte = Serial.read(); // ler um BYTE
    delay(10);
    if (inByte == '*') // Se o BYTE lido for um asterisco a seguir vem os dados...
      {
      int len = 5; // A string esperada tem 6 BYTES
      char inString[len]; // declarar a variavel da string
      for (int i = 0; i <= len; i++)
        {
        inString = Serial.read();
        }
     
   
      // Motores / Direcção
      {
      if ((inString[0] == 0 + 0x30) && (inString[1] == 0 + 0x30))
        {
        // Mortor esquerda parado 
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        analogWrite (pwn_esq, 0);
             
        // Motor direita parado
        digitalWrite(7, LOW);
        digitalWrite(8, LOW);
        analogWrite (pwn_dir, 0);
        }
     
      else
        if ((inString[0] == 1 + 0x30) && (inString[1] == 0 + 0x30))
          {
           // Mortor esquerda frente 
          digitalWrite(3, LOW);
          digitalWrite(4, HIGH);
          analogWrite (pwn_esq, 255);
             
          // Motor direita frente
          digitalWrite(7, LOW);
          digitalWrite(8, HIGH);
          analogWrite (pwn_dir, 255);
          }     
       
        else
          if ((inString[0] == 2 + 0x30) && (inString[1] == 0 + 0x30))
            {
            // Mortor esquerda tras 
            digitalWrite(3, HIGH);
            digitalWrite(4, LOW);
            analogWrite (pwn_esq, 255);
             
            // Motor direita tras
            digitalWrite(7, HIGH);
            digitalWrite(8, LOW);
            analogWrite (pwn_dir, 255);
            }
               
          else
            if ((inString[0] == 0 + 0x30) && (inString[1] == 1 + 0x30))
              {
              // Mortor esquerda tras 
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
              analogWrite (pwn_esq, 255);
             
              // Motor direita frente
              digitalWrite(7, LOW);
              digitalWrite(8, HIGH);
              analogWrite (pwn_dir, 255);
              }
           
            else
              if ((inString[0] == 1 + 0x30) && (inString[1] == 1 + 0x30))
                {
                // Mortor esquerda parado 
                digitalWrite(3, LOW);
                digitalWrite(4, LOW);
                analogWrite (pwn_esq, 0);
                             
                // Motor direita frente
                digitalWrite(7, LOW);
                digitalWrite(8, HIGH);
                analogWrite (pwn_dir, 255);
                }
             
              else
                if ((inString[0] == 2 + 0x30) && (inString[1] == 1 + 0x30))
                  {
                  // Mortor esquerda parado 
                  digitalWrite(3, LOW);
                  digitalWrite(4, LOW);
                  analogWrite (pwn_esq, 0); 
                 
                  // Motor direita tras
                  digitalWrite(7, HIGH);
                  digitalWrite(8, LOW);
                  analogWrite (pwn_dir, 255);
                  }
               
                else
                  if ((inString[0] == 0 + 0x30) && (inString[1] == 2 + 0x30))
                    {
                    // Mortor esquerda frente 
                    digitalWrite(3, LOW);
                    digitalWrite(4, HIGH);
                    analogWrite (pwn_esq, 255);
                               
                    // Motor direita tras
                    digitalWrite (7, HIGH);
                    digitalWrite(8, LOW);
                    analogWrite (pwn_dir, 255);
                    }
                 
                  else
                    if ((inString[0] == 1 + 0x30) && (inString[1] == 2 + 0x30))
                      {
                      // Mortor esquerda frente 
                      digitalWrite(3,LOW);
                      digitalWrite(4,HIGH);
                      analogWrite (pwn_esq, 255);
                               
                      // Motor direita parado
                      digitalWrite(7,LOW);
                      digitalWrite(8,LOW);
                      analogWrite (pwn_dir, 0);
                     
                      }
                   
                    else
                      if ((inString[0] == 2 + 0x30) && (inString[1] == 2 + 0x30))
                        {
                        // Mortor esquerda tras 
                        digitalWrite(3,HIGH);
                        digitalWrite(4,LOW);
                        analogWrite (pwn_esq, 255);
                               
                        // Motor direita parado
                        digitalWrite(7,LOW);
                        digitalWrite(8,LOW);
                        analogWrite (pwn_dir, 0);
                     
                        }
      }               
                   
        // luz
       
        if((inString[3] == 1 + 0x30) || ((inString[2] == 0 + 0x30) && (i == 1)) && (a == 1))
          {
          digitalWrite(luz, HIGH);
          i = 1;
          a = 1;
          }
         
          else
            if ((inString[2] == 1 + 0x30) || ((inString[3] == 0 + 0x30) && (i == 0) && (a == 0)))
              {
              digitalWrite(luz, LOW); 
              i = 0;
              a = 0;
              }
         
     
     
      }
  }
}
     

eu ja fiz uns testes e ja consigo enviar os dados para o xbee com o cabo usb e ja consigo cotrolar os motores conforme a posiçao do joystick do comando

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL
Enviado por: microbyte em 09 de Junho de 2010, 12:56
Está fixe...
A ideia de ter algum feedback do carro também não me escapou... O que escapou na altura foi o tempo.  ;D

Força com isso, quero ver alguns vídeos no fim.
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 09 de Junho de 2010, 13:00
pois eu queria por uma camara tambem no carro mas ainda estou a procura de soluçoes baratas e simples porque tambem ja nao tenho muito tempo

eu assim que puder vou pondo fotos e filmes ;)
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 09 de Junho de 2010, 23:19
ja tenho os xbee :D

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg812.imageshack.us%2Fimg812%2F2723%2Fdsc0010.th.jpg&hash=1567a6b0b677c48ab8dbebb35cc658e0) (http://img812.imageshack.us/i/dsc0010.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

agora so ja falta o xbee explore usb e a shield para o arduino

Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 10 de Junho de 2010, 11:10
mais uma foto :D

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg685.imageshack.us%2Fimg685%2F4009%2Ftgrg.th.jpg&hash=777f8d60280fe3d9f5c5fc1b31b207bf) (http://img685.imageshack.us/i/tgrg.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

agora tou a testar o lm35
Título: Re: PAP - SONDA MOVEL
Enviado por: _ze_pedro_ em 10 de Junho de 2010, 16:17
boas pessoal

estou a tentar escrever o valor do sensor no python mas nao estou a conseguir

alguem me pode ajudar??

no arduino tenho este programa

Citar
tempC = analogRead(tempPin);           //read the value from the sensor
  tempC = (5.0 * tempC * 100.0)/1024.0;  //convert the analog data to temperature
  //Serial.print(byte(tempC));
  Serial.print((byte)tempC);             //send the data to the computer
  delay(500);

isto è so a parte para enviar falta o resto do programa todo

mas è so para perceberem
no python eu quero ler esse valor e escreve.lo

alguem me pode ajudar?

ja estive a tentar mas nao consigo

o programa do python é o que esta em cima

obrigado

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: senso em 10 de Junho de 2010, 16:24
Se vais ler a temperatura no pc e é lá que a vais ver, envia só o valor lido da adc e faz as contas para a conversão no pc, operações matemáticas em virgula flutuante, principalmente divisões demorarm centenas de ciclos de relógio, assim ficas com o programa mais leve.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 10 de Junho de 2010, 19:14
hum... yah tens razao lool

mas pronto entao tenho aqui uma duvida

eu leio o adc e envio logo o valor nao è?

mas depois no python como vou ler essee valor essa è a minha duvida maior
Citar
temp = analogRead(tempPin);           //read the value from the sensor
Serial.print(byte(temp));

basicamente no arduino pode ser assim ne?
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: AcidDagger em 10 de Junho de 2010, 21:11
entao e fotos? :P
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 10 de Junho de 2010, 21:14
ja postei uma na outra pagina

eu agora tenho estado mais na programaçao quando acabar o meus estagio è que vou começar na parte "mecanica" da coisa lol

Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: AcidDagger em 10 de Junho de 2010, 21:18
de onde mandas-te vir os xbee?
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 10 de Junho de 2010, 21:25
foram os stores da minha escola que mandaram vir acho que foi da aliatron

para a semana vai chegar a shield para o arduino e o xbee explore usb
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 10 de Junho de 2010, 22:04
hum... yah tens razao lool

mas pronto entao tenho aqui uma duvida

eu leio o adc e envio logo o valor nao è?

mas depois no python como vou ler essee valor essa è a minha duvida maior
Citar
temp = analogRead(tempPin);           //read the value from the sensor
Serial.print(byte(temp));


basicamente no arduino pode ser assim ne?

eu ja estive a tentar ler o dado e escreve.lo no ecra no python nao consegui...:S
 
help me!! :P

Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 08:44
hum... yah tens razao lool

mas pronto entao tenho aqui uma duvida

eu leio o adc e envio logo o valor nao è?

mas depois no python como vou ler essee valor essa è a minha duvida maior
Citar
temp = analogRead(tempPin);           //read the value from the sensor
Serial.print(byte(temp));


basicamente no arduino pode ser assim ne?

eu ja estive a tentar ler o dado e escreve.lo no ecra no python nao consegui...:S
 
help me!! :P

Calma aí... Que o que estás a fazer não faz muito sentido...

Relembrando... O analogRead() devolve valores entre 0 e 1023...
Um byte vai de 0 a 255, ao fazeres um cast do valor para um byte, eu não faço ideia do que o que o Arduino faz.

Divide por 8 para mapeares para um valor que possa ser recebido por um byte (e quando fores a calcular tens de fazer os respectuvos ajustes na fórmula), ou então tenta enviar um inteiro.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 09:50
pois tens razao micro  ::)

eu ontem estive em busca da soluçao a noite toda loool

eu vou por aqui os programas que tenho

eu acho que so tenho o problema è em ler o byte e depois escrever o numero  porque de resto acho que esta bem no python da uma olhada ;)

pyhton:
Citar
# -*- coding: cp1252 -*-
import pygame
import sys
import serial

temp = "0"

#print ("\nPORTA SÉRIE")
#porta1 = raw_input("\nNumero da porta: ") # inserir o numero da porta
porta1 = 3
porta = int(porta1) - 1

try:
    ser = serial.Serial(porta)  # abre a porta usb
    print 'A usar a porta',ser.portstr       # diz qual é a porta realmente usada
except:
    print 'ERRO: Porta nao encontrada ou em uso.'
   

ser.baudrate = 9600

pygame.init()

temp = ser.read()



screen = pygame.display.set_mode((256, 256))

screen.fill((159, 182, 205))

# Create a font
font = pygame.font.Font(None, 17)

# Render the text
text = font.render(temp, True, (255,
255, 255), (159, 182, 205))

# Create a rectangle
textRect = text.get_rect()

# Center the rectangle
textRect.centerx = screen.get_rect().centerx
textRect.centery = screen.get_rect().centery

# Blit the text
screen.blit(text, textRect)

pygame.display.update()

while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         sys.exit()

arduino:
Citar
float tempC;
int tempPin = 0;

void setup()
{
  Serial.begin(9600); //opens serial port, sets data rate to 9600 bps
}

void loop()
{
  tempC = analogRead(tempPin);           //read the value from the sensor
  tempC = (5.0 * tempC * 100.0)/1024.0;  //convert the analog data to temperature
  //Serial.println(tempC);
  Serial.print((byte)tempC);             //send the data to the computer
  delay(1000);                           //wait one second before sending new data
}

estes sao os programas em que tou a fazer os testes so nao consigo mesmo è ler no python o valor

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 09:53
Tu meteste a função que lê da porta de série no arranque do programa...
O ser.read() devia estar dentro do while...

Mas deve haver uma função que vê se há alguma coisa para ler da porta de série, porque tal como no arduino só faz sentido correr a funcao de leitura se houver algo para ler.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 09:56
hum...tou a perceber +- ha algum exemplo disso? por ai?
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 09:58
hum...tou a perceber +- ha algum exemplo disso? por ai?

Não precisas de exemplos... Basta consultares as referências das bilbiotecas que estás a usar...
Só pesquisei por "pyserial", apareceu-me logo a página da bilbioteca, fui às classes:
http://pyserial.sourceforge.net/pyserial_api.html#classes (http://pyserial.sourceforge.net/pyserial_api.html#classes)

Encontrei uma:
Citar
inWaiting()
    Return the number of chars in the receive buffer.

Ora, se inWaiting() for maior que 0, há qualquer coisa para ler.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 10:10
eu ja andei por ai a ler mas nao percebi muito bem certas coisas loool  ::)

è o que da ser "maçarico" lool

vou experimentar ja te digo algo ;)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 10:11
eu ja andei por ai a ler mas nao percebi muito bem certas coisas loool  ::)

è o que da ser "maçarico" lool

vou experimentar ja te digo algo ;)
Lol, o objectivo era perceberes que eu também não sei estas coisas de cor, e explicar-te como cheguei à resposta...
Saber procurar as coisas também é importante.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 10:16
eu sei e eu ando a procura :D

passo os dias a procura de coisas ahahah algumas vao funcionando outras nem por isso lool mas vou conseguindo ;)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 10:42
ja estive a fazer ficou assim mas nao funciona falta.me algo ainda

Citar
while (ser.inWaiting() >= 0):
       

            temp = ser.read()
            print "è :",temp

eu tenh oa certeza que esta certo eu experimentei a mandar um '*' e consigo escreve.lo
no  "ser.read()" è que me falta algo porque eu mando o byte mas tenho de descodificar o byte isso é que acho que me falta
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 11:50
ja estive a fazer ficou assim mas nao funciona falta.me algo ainda

Citar
while (ser.inWaiting() >= 0):
       

            temp = ser.read()
            print "è :",temp

eu tenh oa certeza que esta certo eu experimentei a mandar um '*' e consigo escreve.lo
no  "ser.read()" è que me falta algo porque eu mando o byte mas tenho de descodificar o byte isso é que acho que me falta

ser.inWaiting() >= 0 ????
Isso é sempre... A função retorna-te o nº de caracteres em buffer, ou seja, ou não tem nenhum (=0) ou tem algum (>0).
Tu tens de meter no while principal uma condição if(ser.inWaiting() >= 0) ... bla bla bla :D
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 12:05
yah tens razao

mas assim ele nem me envia nada mas supostamente o valor devia de ser maior que 0 eu estou a enviar dados :S
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 12:30
yah tens razao

mas assim ele nem me envia nada mas supostamente o valor devia de ser maior que 0 eu estou a enviar dados :S

"Ele" quem? Tens de te explicar porque eu não percebi nada dessa frase.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 12:42
o arduino loool

eu tou a ler o sensor depois envio por serie

mas se tiver "while (ser.inWaiting() > 0):"  nao me faz nada , ou seja tenho 0

Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 12:45
Bom, vamos separar esta questão do resto do projecto.

No Arduino vais carregar o exemplo "AnalogInSerial" e vais ligar o sensor ao pino analógico 0, seguidamente abres a janela de Serial do programa do Arduino, para ver se realmente ele está a enviar o que é suposto.

Depois vais fazer um programa Python NOVO, com um loop, a imprimir o valor da funcao inWaiting().
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 12:57
entao vamos la com calma ;)

no arduino tenho isto

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg180.imageshack.us%2Fimg180%2F282%2F69510618.th.png&hash=f69e58ccd850169eac19a6a27eabb2a7) (http://img180.imageshack.us/i/69510618.png/)

Uploaded with ImageShack.us (http://imageshack.us)

os valores estao correctos
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 14:05
Isso está certo, mas se calhar é desnecessário enviares tantos bytes. (Um float tem 4 bytes, um int também)
E se enviares só a parte inteira (num byte)? Reduzes 8 bytes para 1 byte (que vai de 0 a 255 - já é uma margem boa para a temperatura xD).
É só uma ideia, não estou a dizer que está mal, só que em princípio facilita a parte da leitura pelo Python.

Serial.print((byte)((int)tempC));

Se não perceberes pergunta...
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 14:13
eu percebi ;) lool

agora è a questao do python que quando vou ler o que vem do arduino o que me escreve no ecra é isto :
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg96.imageshack.us%2Fimg96%2F5621%2F22236005.th.png&hash=b0736486fec8f82693bcc17b833da413) (http://img96.imageshack.us/i/22236005.png/)

Uploaded with ImageShack.us (http://imageshack.us)

eu acho que tem a ver da maneira como estou a ler os dados

essa è a minha grande duvida lool

obrigado pela paciencia ;)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 14:16
eu percebi ;) lool

agora è a questao do python que quando vou ler o que vem do arduino o que me escreve no ecra é isto :
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg96.imageshack.us%2Fimg96%2F5621%2F22236005.th.png&hash=b0736486fec8f82693bcc17b833da413) (http://img96.imageshack.us/i/22236005.png/)

Uploaded with ImageShack.us (http://imageshack.us)

eu acho que tem a ver da maneira como estou a ler os dados

obrigado pela paciencia ;)

Eu gostei muito dessa imagem, mas eu não vejo é código nenhum!!!!  :P
Achas que eu me alimento a JPEGs? A minha alimentação é à base de Java e C++ xD
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 14:17
eu percebi ;) lool

agora è a questao do python que quando vou ler o que vem do arduino o que me escreve no ecra é isto :
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg96.imageshack.us%2Fimg96%2F5621%2F22236005.th.png&hash=b0736486fec8f82693bcc17b833da413) (http://img96.imageshack.us/i/22236005.png/)

Uploaded with ImageShack.us (http://imageshack.us)

eu acho que tem a ver da maneira como estou a ler os dados

obrigado pela paciencia ;)

Eu gostei muito dessa imagem, mas eu não vejo é código nenhum!!!!  :P
Achas que eu me alimento a JPEGs? A minha alimentação é à base de Java e C++ xD

lool mas nao é codigo é a imagem quando ponho em run ahahah

o que esta no meio é o que me aparece em vez do valor lool

eu ponho aqui o codigo so um pouco
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 14:18
eu percebi ;) lool

agora è a questao do python que quando vou ler o que vem do arduino o que me escreve no ecra é isto :
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg96.imageshack.us%2Fimg96%2F5621%2F22236005.th.png&hash=b0736486fec8f82693bcc17b833da413) (http://img96.imageshack.us/i/22236005.png/)

Uploaded with ImageShack.us (http://imageshack.us)

eu acho que tem a ver da maneira como estou a ler os dados

obrigado pela paciencia ;)

Eu gostei muito dessa imagem, mas eu não vejo é código nenhum!!!!  :P
Achas que eu me alimento a JPEGs? A minha alimentação é à base de Java e C++ xD

lool mas nao é codigo é a imagem quando ponho em run ahahah

o que esta no meio é o que me aparece em vez do valor lool

eu ponho aqui o codigo so um pouco

Eu percebi, estava a ser irónico  ;D
Mete aí o código.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 14:23
ai esta o codigo
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg688.imageshack.us%2Fimg688%2F5671%2F15545565.th.png&hash=28231fc086ec43e098f619634692e9e6) (http://img688.imageshack.us/i/15545565.png/)

Uploaded with ImageShack.us (http://imageshack.us)


eu tenho o "while(ser.inWaiting() >= 0):" porque se estiver "while(ser.inWaiting() > 0):" nao passa dai o programa :S

Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 14:25
Mete aqui em texto sff, senão tenho de estar a escrever tudo outra vez...
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 14:26
Citar
# -*- coding: cp1252 -*-
import pygame
import sys
import serial

temp = 0


#print ("\nPORTA SÉRIE")
#porta1 = raw_input("\nNumero da porta: ") # inserir o numero da porta
porta1 = 3
porta = int(porta1) - 1

try:
    ser = serial.Serial(porta)  # abre a porta usb
    print 'A usar a porta',ser.portstr       # diz qual é a porta realmente usada
except:
    print 'ERRO: Porta nao encontrada ou em uso.'
   

ser.baudrate = 9600

pygame.init()


print "è :",temp
while(ser.inWaiting() > 0):
   
            temp = ser.read()
           
            print temp
                   
           


            screen = pygame.display.set_mode((256, 256))

            screen.fill((159, 182, 205))
            font = pygame.font.Font(None, 17)
            text = font.render(temp, True, (255,255, 255), (159, 182, 205))
            textRect = text.get_rect()

            textRect.centerx = screen.get_rect().centerx
            textRect.centery = screen.get_rect().centery
            screen.blit(text, textRect)
            pygame.display.update()

         

ai esta
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 14:36
Eu não tenho a certeza se a função font.render() aceita no primeiro argumento um byte.

Sabes que a funçao Read da bilbioteca serial te retorna um byte. Agora tens de construir uma String para passar como argumento à função render().

penso que basta fazeres:
text = font.render(""+temp, True, (255,255, 255), (159, 182, 205))

O Python vai concatenar um byte a uma String nula e o resultado é uma string.

Não sei se será disto, mas pelo menos despistamos já esta hipótese.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 14:44
é so substituir isso ?? ou tenho de fazer mals alguma coisa?

è que ja substitui e da a mesma cena :(
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 14:57
Então vamos lá ver outra coisa...
Qual é o número da tua porta COM?
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 14:59
é a porta 3
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 15:11
é a porta 3
Eu não tenho a certeza, mas como tens no código estás a usar a 2...
Esquece... Estás a usar a 3.

Código: [Seleccione]
import serial
ser = serial.Serial(2)  # abrir a porta 3
print ser.portstr       # check which port was really used

temp = 0

while true:
  if(ser.inWaiting() > 0):
    temp = int(ser.read(1))
    print ""+temp

ser.close()             # close port

Experimenta este código... Na consola.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 15:40
Citar
Traceback (most recent call last):
  File "C:/Documents and Settings/Zé Pedro/Desktop/test.py", line 10, in <module>
    while true:
NameError: name 'true' is not defined

nao da :(
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 15:44
Citar
import serial


ser = serial.Serial(2)  # abrir a porta 3
print ser.portstr       # check which port was really used
#ser.baudrate (9600)
temp = 0

while 1:# true:
  if(ser.inWaiting() >0):
    temp = int(ser.read(1))
    print ""+temp

ser.close()             # close port

pus assim

agora da.me este erro:

Citar
COM3

Traceback (most recent call last):
  File "C:/Documents and Settings/Zé Pedro/Desktop/test.py", line 11, in <module>
    temp = int(ser.read(1))
ValueError: invalid literal for int() with base 10: '\x18'
>>>
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 19:27
Citar
import serial


ser = serial.Serial(2)  # abrir a porta 3
print ser.portstr       # check which port was really used
#ser.baudrate (9600)
temp = 0

while 1:# true:
  if(ser.inWaiting() >0):
    temp = int(ser.read(1))
    print ""+temp

ser.close()             # close port

pus assim

agora da.me este erro:

Citar
COM3

Traceback (most recent call last):
  File "C:/Documents and Settings/Zé Pedro/Desktop/test.py", line 11, in <module>
    temp = int(ser.read(1))
ValueError: invalid literal for int() with base 10: '\x18'
>>>

Muda para:
Citar
import serial


ser = serial.Serial(2)  # abrir a porta 3
print ser.portstr       # check which port was really used
#ser.baudrate (9600)
temp = 0

while 1:# true:
  if(ser.inWaiting() >0):
    temp = ord(ser.read(1))
    print ""+temp

ser.close()             # close port
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 11 de Junho de 2010, 21:33
ja da!! mas tive que mudar o print""+temp para print temp

ahahah :D aleluia :D

Citar
import serial


ser = serial.Serial(2)  # abrir a porta 3
print ser.portstr       # check which port was really used
#ser.baudrate (9600)
temp = 0

while 1:# true:
  if(ser.inWaiting() >0):
    temp = ord(ser.read(1))
    print temp

ser.close()         

obrigado micro!! ;)



Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 11 de Junho de 2010, 22:03
Ainda bem!  ;D

Siga a marinha!  :P
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 12 de Junho de 2010, 13:14
bem ja esta tudo a funcionar a 100% :D em termos de temperatura claro lool o controle do carro começo a fazer teste para a proxima semana è quando chega  o resto do material!

python :

Citar
# -*- coding: iso-8859-15 -*-

import serial # biblioteca pyserial
import time # biblioteca do tempo para o relogio
import pygame # biblioteca pygame
import os
import sys
from pygame.locals import *
from pygame import joystick, event

i = 0 # variavel inicial do botao btn_2 (luz on)
a = 0 # variavel inicial da botao btn_1 (luz off)

b = 1 # tentativas esgotadas
c = 3 # numero de tentativas

s = 1 # variavel do while para a porta serie
p = 0 # variavel do while da porta serie

temp = 0
#--------------------------------------------------------------------------------------------------------------------------------

 ##########
#-PASSWORD-#
 ##########

pw = 9999 # Password
print "AVISO\n\nTEM 3 TENTATIVAS" # imprime o numero de tentativas no inicio
password = raw_input ("\nInserir Password:")# valor inserido na password

   
while password != str(pw): # enquando a password nao foi correcta imprime "pass errada" e permite colocar outra vez nova password

    c = c - 1 # menos uma tentativa
    print ("\nPassword Errada\n___________________________________")

    if c == 1: #se o numero de tentativa for = 1
        print "\nAVISO\n\nTEM", c, "TENTATIVA" # imprime "tentativa"
    else:
        if c != 0: #se for diferente de 0
            print "\nAVISO\n\nTEM", c, "TENTATIVAS" #imprime "tentativas" 
   
    if (b == 3): #se o numero de tentativas utilizadas for = 3
       
        print ("\n\nNUMERO DE TENTATIVAS ESGOTADAS")
        time.sleep(2)
        os._exit(1) # para o python shell e nao avança mais

    else: # se nao
        b = b + 1 # incrementa 1
       
   
    password = raw_input ("\nInserir Password:") # inserir de novo a password
       
print "\n\nPASSWORD CORRECTA\n\n___________________________________"     
       

       
   
#---------------------------------------------------------------------------------------------------------------------------------

# normalizar os valores do joystick de -1 e 1 para 1 e 2

def normalizar(num):
    if num == -1:
        num = 1
    elif num == 1:
        num = 2
    return num



def load_image(name, colorkey=None):
    fullname = os.path.join('images', name)
    try:
        image = pygame.image.load(fullname)
    except pygame.error, message:
        print 'Cannot load image:', name
        raise SystemExit, message
    image = image.convert()
    if colorkey is not None:
        if colorkey is -1:
            colorkey = image.get_at((0,0))
        image.set_colorkey(colorkey, RLEACCEL)
    return image, image.get_rect()

#---------------------------------------------------------------------------------------------------------

#########################
""" Porta Série setup """
#########################

print ("\nPORTA SÉRIE")
#porta1 = raw_input("\nNumero da porta: ") # inserir o numero da porta
porta1 = 3
porta = int(porta1) - 1 # numero que inserido menos 1 para dar o numero verdadeiro da porta

try:
    ser = serial.Serial(porta)  # abre a porta usb
    print '\nA usar a porta',ser.portstr       # diz qual é a porta realmente usada
except:
    print '\nERRO: Porta nao encontrada ou em uso.'
   

ser.baudrate = 9600 # velocidade de transmissao 9600 bps



#-----------------------------------------------------------------------------------------------------------------

# ################# #
""" Setup Inicial """
# ################# #

pygame.init()

background = pygame.image.load(os.path.join('images', "bem_V.png")) # imagem de inicio "bem vido!"
backgroundRect = background.get_rect()
size = (width, height) = background.get_size() # Tira as dimensões da imagem de fundo
#size = (640, 480)
screen = pygame.display.set_mode(size) # Cria uma janela do tamanho da imagem de fundo
#screen = pygame.display.set_mode(size, pygame.FULLSCREEN)
screen.blit(background, backgroundRect)

pygame.display.flip()
pygame.display.set_caption('ExplorUino - Painel de Controlo') # coloca o nome do projecto na barra do windows

#pygame.mouse.set_visible(1) # rato visivel

#OK = [pygame.JOYBUTTONDOWN, pygame.JOYHATMOTION, pygame.JOYAXISMOTION ]#pygame.KEYDOWN

clock = pygame.time.Clock()
screen.blit(background, (0, 0))
pygame.display.flip()

time.sleep(3)

# Fim do Setup

#------------------------------------------------------------------------------------------------------------------   

img_fundo = pygame.image.load(os.path.join('images', "fundo.png")) # coloca a imagem de fundo
background.blit(img_fundo, (0, 0))


# declara as variaveis do joystick (esquerda) para comandar o sentido e a direcçao do carro
eixox = 0
eixoy = 0

# declara as variaveis do joystick (direita) para comandar a direcçao da camara
rot1 = 0
rot2 = 0

# declara as variaveis dos botoes do comando
btn_1 = a # luz off
btn_2 = i # luz on
btn_3 = 0 # start


try:
   j = pygame.joystick.Joystick(0) # create a joystick instance
   j.init() # init instance
   print '\nEnabled joystick: ' + j.get_name()
except pygame.error:
   print '\nAVISO: Nao foi encontrado nenhum joystick.'

while 1:
    clock.tick(60)
    time.sleep(0.05)
    pygame.event.pump()
    for evento in pygame.event.get():
       
        if evento.type == pygame.JOYAXISMOTION: # se os joystick apresentarem um valor

            # faz uma aproximaçao de 0 casas decimais para evitar o ruido e o tremor dos joysticks
            eixox = round(j.get_axis(0), 0)
            eixoy = round(j.get_axis(1), 0)
            rot1 = round(j.get_axis(2), 0)
            rot2 = round(j.get_axis(3), 0)

            # vai "normalizar" os valores dos joysticks de -1 ou 1 para 1 ou 2
            eixox = normalizar(int(eixox))
            eixoy = normalizar(int(eixoy))
            rot1 = normalizar(int(rot1))
            rot2 = normalizar(int(rot2))

        elif evento.type == pygame.JOYBUTTONDOWN or evento.type == pygame.JOYBUTTONUP:# se os botoes do comando apresentarem algum valor

            #declara quais sao os botoes das variaveis
            btn_1 = j.get_button(3)
            btn_2 = j.get_button(2)
            btn_3 = j.get_button(9)
           
       

           
           
   
#------------------------------------------------
   
    ###############
    # Porta Série #
    ###############
   
    ser.write("*")         
    ser.write(str(eixoy))   #0
    ser.write(str(eixox))   #1
    ser.write(str(btn_1))   #2 b1
    ser.write(str(btn_2))   #3 b2
    ser.write(str(rot1))    #4
    ser.write(str(rot2))    #5   
   
   
   
#-------------------------------------------------------------------------------------------   

   
   
    print "\nX=", eixox, " Y=", eixoy, " B1=", btn_1, " B2=", btn_2, " B3=", btn_3, "rot1=", rot1, "rot2=", rot2,"T=", temp,  # valores das variaveis do comando
    pygame.draw.rect(background, (255, 255, 255), pygame.Rect(49, 90, 550, 350), 0)

   
#Parte da Direccao do Carro
   
    if eixox == 1:
        img_dir = pygame.image.load(os.path.join('images', "esq.png"))
    elif eixox == 2:
        img_dir = pygame.image.load(os.path.join('images', "dir.png"))
    else:
        img_dir = pygame.image.load(os.path.join('images', "0.png"))
    background.blit(img_dir, (50, 110))

#Motores
   
    if eixoy == 1:
        img_mot = pygame.image.load(os.path.join('images', "frent.png"))
    elif eixoy == 2:
        img_mot = pygame.image.load(os.path.join('images', "tras.png"))
    else:
        img_mot = pygame.image.load(os.path.join('images', "parado.png"))

    background.blit(img_mot, (25, 290))

#Luz

    if ((btn_2 == 1) or ((btn_1 == 0) and (i == 1) and (a == 1))):
        i = 1
        a = 1
        img_luz = pygame.image.load(os.path.join('images', "luz_on.png"))
        background.blit(img_luz, (350, 130))
       
    else:
        if ((btn_1 == 1) or ((btn_2 == 0) and (i == 0)and (a == 0))):
            i = 0
            a = 0
            img_luz = pygame.image.load(os.path.join('images', "luz_off.png"))
            background.blit(img_luz, (350, 130))

#Relógio
   
    font = pygame.font.Font(None, 16) # tipo de letra e tamanho
    curtime = time.strftime("%d %B %Y  %H:%M:%S") # como vai ser colocadas a hora e a data
    txt_time = font.render(curtime, 1, (255, 255, 255), (0,0,0))# cor da letra
    pygame.draw.rect(background, (0, 0, 0), pygame.Rect(500, 30, 150, 20), 0)
    background.blit(txt_time, (495, 459))#posiçao da hora e da data

   
#Sensor

    img_sensor = pygame.image.load(os.path.join('images', "sensores.png")) # coloca a imagem de fundo
    background.blit(img_sensor, (430, 245))
   
    #if(ser.inWaiting() >0):

    temp = ord(ser.read(1))
    font2 = pygame.font.Font(None, 15)
    text = font.render(str(temp), True, (0,0, 0), (227, 108, 10))
       
    background.blit(text, (456, 267))
     
       
       

    if (btn_3)== 0: # se o botao do start nao for pressionado
        screen.blit(background, (0, 0))
        pygame.display.flip()# executa o ciclo de novo
   

    else: # se for pressionado
        pygame.quit()# sai da janela do projecto
        os._exit(1)# para o python shell

   

esta +- assim

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg810.imageshack.us%2Fimg810%2F7561%2Flusoimage.png&hash=400cc11a21dad78ff6d9f7004d1f276b) (http://img810.imageshack.us/i/lusoimage.png/)

Uploaded with ImageShack.us (http://imageshack.us)

opinioes!!! aceitam-se :)

imagens do pyhton em anexo para quem quizer

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: AcidDagger em 12 de Junho de 2010, 13:39
Muito bom mesmo  :D
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: amando96 em 12 de Junho de 2010, 13:42
Altamente, a humidade e pressão vais medir com o que?
já tinha houvido falar de python, mas nunca tinha visto código, nem nada feito com ele, acho que lhe vou dar um test drive.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 12 de Junho de 2010, 13:45
os sensores de humidade e pressao ainda nao sei se vou por agora ta ai so por uma questao de imagem para ver como fica

so o sensor de temperatura esta a funcionar

depende do tempo e se a escola estiver disponivel para comprar

ha sensores de pressao e humidade è so procurares eu ainda tenho de procurar uns nao muito caros  lool

mais uma vez obrigado micro por tudo ;)

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 12 de Junho de 2010, 13:57
sensor de pressao
http://aliatron.com/loja/catalog/product_info.php?products_id=728 (http://aliatron.com/loja/catalog/product_info.php?products_id=728)
sensor de humidade
http://aliatron.com/loja/catalog/product_info.php?products_id=821 (http://aliatron.com/loja/catalog/product_info.php?products_id=821)

mas acho isso muito caro vou ter que procurar

se alguem souber de sensores mais baratos que me diga algo ;)

lol

cump.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: metRo_ em 12 de Junho de 2010, 14:39
De pressão não estou a ver mas de humidade tens uns muito conhecidos que são de humidade e temperatura sht11.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 12 de Junho de 2010, 15:01
e sao muito caros?
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: metRo_ em 12 de Junho de 2010, 15:25
Não são lá muito baratos: http://pt.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6675265 (http://pt.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6675265)

Mas tens estes:
Sensor Humidade - http://www.sparkfun.com/commerce/product_info.php?products_id=9569 (http://www.sparkfun.com/commerce/product_info.php?products_id=9569) -    
$16.95
Sensor Humidade + Temperatura - http://www.sparkfun.com/commerce/product_info.php?products_id=8257 (http://www.sparkfun.com/commerce/product_info.php?products_id=8257) - $41.95

Fala com o TigPT que a Loja LusoRobótica é distribuidora da SparkFun!
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: TigPT em 12 de Junho de 2010, 15:56
De momento só temos o SHT15, mas vamos tentar arranjar mais:
http://loja.lusorobotica.com/meteorologia/44-humidity-and-temperature-sensor-sht15-breakout.html (http://loja.lusorobotica.com/meteorologia/44-humidity-and-temperature-sensor-sht15-breakout.html)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: metRo_ em 12 de Junho de 2010, 16:02
Tinha andado lá a dar uma volta mas não o vi mas também não usei a pesquisa :p O preço até é bom em relação ao que anda por aí :)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: TigPT em 12 de Junho de 2010, 16:40
InMotion tb o vende:
http://www.inmotion.pt/store/product_info.php?products_id=101 (http://www.inmotion.pt/store/product_info.php?products_id=101) (preço sem IVA)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 12 de Junho de 2010, 19:45
epah sao um bocado caros lool

nao me posso "esticar" muito mesmo assim para me comprarem este material ja foi o que foi loool  :P
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 12 de Junho de 2010, 20:21
como o sensor ja esta funcionar... ::)

hoje dediquei.me a testar a parte dos motores em 5 min fiz um carro de teste arranjei um bocado de madeira e um rolon :D
a foto nao esta grande coisa pois è tirada de uma web
ora vejam:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg231.imageshack.us%2Fimg231%2F1457%2Fpicture001pr.jpg&hash=ca20472782669c1614861550669c2157) (http://img231.imageshack.us/i/picture001pr.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

falta.me uma roda :( nao arranjei nenhuma para por o bicho a andar mas ja deu para fazer testes e para ver se estava tudo correcto esta tudo a funcionar como previsto mas ha um problema de gestao de dados

para conseguir escrever o valor da temperatura no python correctamente tenho de ter um delay de 300 milisegundos no arduino quando leio o valor do sensor entao como tenho de ter esse delay vou ter problemas em controlar o carro fica muito lento

entao o que acontece é

eu carrego para andar para a frente ao fim de 5.... 6 segundos os motores começam a rodar ou entao nao roda fica tipo bloqueado

se tirar a leitura do sensor no arduino ja funciona tudo na perfeiçao

alguem tem ideias de como posso dar a volta  isto

eu pensei numa coisa nao sei se é possivel

eu pensei em fazer tipo um loop so para a temperatura e ter outro para os motores é possivel ??




Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 14 de Junho de 2010, 00:16
bem...

depois de um dia a pensar na soluçao para o problema...ja consegui resolver  ;D

o que fiz foi fazer esperar a leitura do sensor de forma a nao ter de esperar todo o programa

o programa:

Citar
int luz = (2);
int pwn_esq = (5);
int pwn_dir = (6);
int camara1 = (12);
int camara2 = (13);
int a = 0;
int i = 0;

float tempC;

int tempPin = 0;
int s = 0;


/* Configuração de Arranque */
void setup()
{
 
  Serial.begin(9600); // Abrir a porta série
  pinMode (3, OUTPUT); // Declarar o o pin do motor esquerdo OUTPUT
  pinMode (4, OUTPUT); // Declarar o o pin do motor esquerdo OUTPUT
  pinMode (7, OUTPUT); // Declarar o o pin do motor direito OUTPUT
  pinMode (8, OUTPUT); // Declarar o o pin do motor direito OUTPUT
  pinMode (pwn_esq, OUTPUT); // Declarar o o pin do pwn do motor esquerdo OUTPUT
  pinMode (pwn_dir, OUTPUT); // Declarar o o pin do pwn do motor direito OUTPUT
  pinMode (camara1, INPUT); // Declarar o o pin da camara OUTPUT
  pinMode (camara2, INPUT); // Declarar o o pin da camara OUTPUT
 
}

void loop()

{
  if (s == 10000)
    {
    tempC = analogRead(tempPin); 
    tempC = (5.0 * tempC * 100.0)/1024.0; 
    Serial.print((byte)tempC);             
    s = 0;
    }
  else
    s = s + 1;
 
  if ( Serial.available() > 0) // Se ouver entrada de dados por Serial...
    {
    char inByte = Serial.read(); // ler um BYTE
    delay(10);
    if (inByte == '*') // Se o BYTE lido for um asterisco a seguir vem os dados...
      {
      int len = 3; // A string esperada tem 6 BYTES
      char inString[len]; // declarar a variavel da string
      for (int i = 0; i <= len; i++)
        {
        inString = Serial.read();
        }
     
   
      // Motores / Direcção
      {
      if ((inString[0] == 0 + 0x30) && (inString[1] == 0 + 0x30))
        {
        // Mortor esquerda parado 
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        analogWrite (pwn_esq, 0);
             
        // Motor direita parado
        digitalWrite(7, LOW);
        digitalWrite(8, LOW);
        analogWrite (pwn_dir, 0);
        }
     
      else
        if ((inString[0] == 1 + 0x30) && (inString[1] == 0 + 0x30))
          {
           // Mortor esquerda frente 
          digitalWrite(3, LOW);
          digitalWrite(4, HIGH);
          analogWrite (pwn_esq, 255);
             
          // Motor direita frente
          digitalWrite(7, LOW);
          digitalWrite(8, HIGH);
          analogWrite (pwn_dir, 255);
          }     
       
        else
          if ((inString[0] == 2 + 0x30) && (inString[1] == 0 + 0x30))
            {
            // Mortor esquerda tras 
            digitalWrite(3, HIGH);
            digitalWrite(4, LOW);
            analogWrite (pwn_esq, 255);
             
            // Motor direita tras
            digitalWrite(7, HIGH);
            digitalWrite(8, LOW);
            analogWrite (pwn_dir, 255);
            }
               
          else
            if ((inString[0] == 0 + 0x30) && (inString[1] == 1 + 0x30))
              {
              // Mortor esquerda tras 
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
              analogWrite (pwn_esq, 255);
             
              // Motor direita frente
              digitalWrite(7, LOW);
              digitalWrite(8, HIGH);
              analogWrite (pwn_dir, 255);
              }
           
            else
              if ((inString[0] == 1 + 0x30) && (inString[1] == 1 + 0x30))
                {
                // Mortor esquerda parado 
                digitalWrite(3, LOW);
                digitalWrite(4, LOW);
                analogWrite (pwn_esq, 0);
                             
                // Motor direita frente
                digitalWrite(7, LOW);
                digitalWrite(8, HIGH);
                analogWrite (pwn_dir, 255);
                }
             
              else
                if ((inString[0] == 2 + 0x30) && (inString[1] == 1 + 0x30))
                  {
                  // Mortor esquerda parado 
                  digitalWrite(3, LOW);
                  digitalWrite(4, LOW);
                  analogWrite (pwn_esq, 0); 
                 
                  // Motor direita tras
                  digitalWrite(7, HIGH);
                  digitalWrite(8, LOW);
                  analogWrite (pwn_dir, 255);
                  }
               
                else
                  if ((inString[0] == 0 + 0x30) && (inString[1] == 2 + 0x30))
                    {
                    // Mortor esquerda frente 
                    digitalWrite(3, LOW);
                    digitalWrite(4, HIGH);
                    analogWrite (pwn_esq, 255);
                               
                    // Motor direita tras
                    digitalWrite (7, HIGH);
                    digitalWrite(8, LOW);
                    analogWrite (pwn_dir, 255);
                    }
                 
                  else
                    if ((inString[0] == 1 + 0x30) && (inString[1] == 2 + 0x30))
                      {
                      // Mortor esquerda frente 
                      digitalWrite(3,LOW);
                      digitalWrite(4,HIGH);
                      analogWrite (pwn_esq, 255);
                               
                      // Motor direita parado
                      digitalWrite(7,LOW);
                      digitalWrite(8,LOW);
                      analogWrite (pwn_dir, 0);
                     
                      }
                   
                    else
                      if ((inString[0] == 2 + 0x30) && (inString[1] == 2 + 0x30))
                        {
                        // Mortor esquerda tras 
                        digitalWrite(3,HIGH);
                        digitalWrite(4,LOW);
                        analogWrite (pwn_esq, 255);
                               
                        // Motor direita parado
                        digitalWrite(7,LOW);
                        digitalWrite(8,LOW);
                        analogWrite (pwn_dir, 0);
                     
                        }
      }               
                   
        // luz
       
        if((inString[3] == 1 + 0x30) || ((inString[2] == 0 + 0x30) && (i == 1)) && (a == 1))
          {
          digitalWrite(luz, HIGH);
          i = 1;
          a = 1;
          }
         
          else
            if ((inString[2] == 1 + 0x30) || ((inString[3] == 0 + 0x30) && (i == 0) && (a == 0)))
              {
              digitalWrite(luz, LOW); 
              i = 0;
              a = 0;
              }
         
     
     
      }
  }
}

foi a maneira que arranjei

secalhar ha maneira de fazer de forma mais simples mas o que interessa è que esta a funcionar

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 15 de Junho de 2010, 22:48
bem chegou hoje a carta do xbee explore :D

amanha vou buscar aos correios

so ja falta a shield para o arduino

queria fazer uma perguntinha a quem percebe da coisa

em termos de xbee é muito complicado de configurar?? nunca trabalhei com nada igual nem parecido lool

se alguem me puder dar umas dicas agradecia ;)

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: guibot em 16 de Junho de 2010, 09:23
Se o que pretendes é apenas comunicação entre dois módulos é relativamente fácil configurar, experimenta ver esta página onde tem muita informação, julgo que o que precisas mesmo está no ponto 3.

http://www.ladyada.net/make/xbee/usermanual.html (http://www.ladyada.net/make/xbee/usermanual.html)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 16 de Junho de 2010, 12:37
obrigado ;)

tenho de seguir esses passos todos nao è ?;)

http://www.ladyada.net/make/xbee/arduino.html (http://www.ladyada.net/make/xbee/arduino.html)

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: guibot em 16 de Junho de 2010, 13:31
Tens 2 maneiras de configurar, ou usando o terminal ou usando o X-CTU que é o software disponibilizado pelo fabricante da XBEE. Eu prefiro o X-CTU   :)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 16 de Junho de 2010, 13:35
ok ok :D

eu ja fiz o download do X-CTU vou utilizar essa maneira lool :P

mas ainda me falta a shield para o arduino è so o que falta depois é que vou fazer a configuraçao

se tiver duvidas vou postando aqui ;)

obrigado;)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 16 de Junho de 2010, 22:16
micro tenho uma questao para te fazer è sobre o teu pan and tilt eu nao vou utilizar isso no projecto mas è so para saber lool

é que tenho estado a ver e na o consigo perceber lool


Citar
ser.write("0")
ser.write("+")

envias isto para o arduino que é a string 4 e 5

depois no arduino tens :

Citar
if(inString[4] == 1 + 0x30){
        dim_pan(6);
      }else if(inString[4] == 2 + 0x30){
        dim_pan(4);
      }else if(inString[4] == 3 + 0x30){
        dim_pan(2);
      }else if(inString[4] == 4 + 0x30){
        dim_pan(1);
      }else if(inString[4] == 5 + 0x30){
        aum_pan(1);
      }else if(inString[4] == 6 + 0x30){
        aum_pan(2);
      }else if(inString[4] == 7 + 0x30){
        aum_pan(4);
      }else if(inString[4] == 8 + 0x30){
        aum_pan(6);
      }
     
     
      /* Tilt */
      if(inString[5] == 1 + 0x30){
        aum_tilt(6);
      }else if(inString[5] == 2 + 0x30){
        aum_tilt(4);
      }else if(inString[5] == 3 + 0x30){
        aum_tilt(2);
      }else if(inString[5] == 4 + 0x30){
        aum_tilt(1);
      }else if(inString[5] == 5 + 0x30){
        dim_tilt(1);
      }else if(inString[5] == 6 + 0x30){
        dim_tilt(2);
      }else if(inString[5] == 7 + 0x30){
        dim_tilt(4);
      }else if(inString[5] == 8 + 0x30){
        dim_tilt(6);
      }
     

nao estou a entender como consegues enviar o  valor do joystick e de onde vem esse" if(inString[5] == 8 + 0x30){", ou seja o 8 o 7  o 6....por ai fora:S

se me puderes explicar :D


cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 16 de Junho de 2010, 23:21
A parte do
ser.write("0")
ser.write("+")

Era para ter um caracter de fim (o +) e outro "canal" se fosse necessário. Não são usados para nada.

O código Python do site é que está desactualizado.
O novo, lê os dados do segundo joystick do comando e envia o X no lugar desse "0" e o Y no lugar desse "+", pois o caracter de fim não tinha utilidade nenhuma.

Não cheguei a actualizar no site.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 17 de Junho de 2010, 09:04
pois eu estava a achar estranho lool

a maneira como envias os dados do joystick da esquerda é da mesma maneira que envias do da direita nao é?

quer dizer nao deve ser pois tens de 1 a 8
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 17 de Junho de 2010, 11:44
pois eu estava a achar estranho lool

a maneira como envias os dados do joystick da esquerda é da mesma maneira que envias do da direita nao é?

quer dizer nao deve ser pois tens de 1 a 8

Sim sim, divido cada eixo em várias partes, para ter várias velocidades.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 17 de Junho de 2010, 12:23
yah ja estou a perceber ;);)

por exemplo:

tens 8 combinaçoes no joystick:

x :
- 1
- 2

y:
- 1
- 2

x     y :
1     1
1     2
2     1
2     2

è assim nao è?

cump.
ze pedro

obrigado pela explicaçao ;)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 17 de Junho de 2010, 15:47
Não, olha para o código Arduino, penso que está bastantes explícito o que é suposto o Arduino receber... E não é só 1 e 2...
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 17 de Junho de 2010, 17:37
eu sei lool

eu ja entendi como funciona ;)

obrigado micro! ;)
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 17 de Junho de 2010, 17:38
eu sei lool

eu ja entendi como funciona ;)

obrigado micro! ;)
Não tem nada a ver com aquilo que puseste, mas pronto xD
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 17 de Junho de 2010, 17:46
o que eu pus foi as 8 combinaçoes que consegues fazer no joystick

nao è isso que utilizas para ter as 8?
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: microbyte em 17 de Junho de 2010, 17:47
o que eu pus foi as 8 combinaçoes que consegues fazer no joystick

nao è isso que utilizas para ter as 8?
Não, por isso é que disse para ires ver o código do Arduino.
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 17 de Junho de 2010, 17:48
ah ok :P lool
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 27 de Junho de 2010, 19:13
como prometido aqui vai um filme do bicho :D

as imagens nao sao muito boas foi de um telemovel mas ja da para ver algo

o carro é de testes no final nao vai ser esse esse foi um improviso rapido :D

ainda me falta a shield do xbee para o arduino em principio vem esta semana

espero que gostem

ExplorUino (http://www.youtube.com/watch?v=X_LqNABnkHM#)

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 05 de Julho de 2010, 10:16
boas :D

venho por aqui mais umas fotos do meu projecto

este fds estive a cacabar o carro final espero que gostem ;)

aceitam.se ideias para melhorar :D

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg443.imageshack.us%2Fimg443%2F3113%2Fdsc0264j.th.jpg&hash=66959e0c884b9eb5521a835f41245cf2) (http://img443.imageshack.us/i/dsc0264j.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg251.imageshack.us%2Fimg251%2F3435%2Fdsc0262i.th.jpg&hash=82e69106f23c8ecfd91565d01ce7f4a0) (http://img251.imageshack.us/i/dsc0262i.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg714.imageshack.us%2Fimg714%2F9885%2Fdsc0261t.th.jpg&hash=f1ae2d07d4d4cfc3f4f295473295e0e8) (http://img714.imageshack.us/i/dsc0261t.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

espero que gostem

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: metRo_ em 05 de Julho de 2010, 12:58
Estás com uma base muito fixe. Aqueles rodas são de onde?
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 05 de Julho de 2010, 16:34
sao de umas impressoras hp muito velhinhas se nao tou em erro 550c ou 500 é algo assim

nao me lembro bem

mas cada impressora tras uma roda so

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 05 de Julho de 2010, 18:55
ja tenho a shield para o arduino

agora estou é com dificuldaddes em configurar os xbee:S

alguem me pode ajudar?

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino
Enviado por: _ze_pedro_ em 06 de Julho de 2010, 13:59
ja consegui configurar os xbee's :D

depois ponho fotos e filmes

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: _ze_pedro_ em 11 de Julho de 2010, 12:05
BOAS PESSOAL :D

ja conclui o meu projecto :D

apresentei na quinta feira de manha a minha nota foi 18 correu tudo muito bem

quero agradecer a toda a gente que me ajudou a realizar o projecto
obrigado!!

eu ja ponho imagens lool

depois vou por um video mas ainda tenho de fazer  loool :D

cump.
ze pedro
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: metRo_ em 11 de Julho de 2010, 13:18
Parabéns! :) Mas fico à espera das imagens e dos videos :p
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: Arknum em 12 de Julho de 2010, 15:09
Boas

Muitos parabens e faço minhas as palavras do metro, fico à espera de fotos e videos

cump
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: TigPT em 12 de Julho de 2010, 16:49
Parabéns!

É bom ver o nosso esforço e trabalho reconhecido!
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: GnGz em 12 de Julho de 2010, 17:14
Parabéns !!!
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: _ze_pedro_ em 13 de Julho de 2010, 18:11
como prometido

aqui vao umas fotos :D

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg805.imageshack.us%2Fimg805%2F4940%2Fdsc0256s.th.jpg&hash=ffc3acde6e233d7a4f6a613b4c28fdfd) (http://img805.imageshack.us/i/dsc0256s.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg641.imageshack.us%2Fimg641%2F9991%2Fdsc0261c.th.jpg&hash=55f2040725e78a4680d74c0499da82e1) (http://img641.imageshack.us/i/dsc0261c.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg27.imageshack.us%2Fimg27%2F3080%2Fdsc0262o.th.jpg&hash=9b41c7f8aa0c888941cfe8ace0b6f7a0) (http://img27.imageshack.us/i/dsc0262o.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg132.imageshack.us%2Fimg132%2F7568%2Fdsc0266zb.th.jpg&hash=6578315bbe09fc70473f986a4532cacf) (http://img132.imageshack.us/i/dsc0266zb.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

falta.me o video lool

nas fotos o carro nao tem a bateria é so o que falta, excepto a primeira

espero que gostem ;)

ps: em anexo o relatorio do trabalho
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: microbyte em 13 de Julho de 2010, 18:48
Só não gostei foi muito da parte do "Todos os direitos reservados", pois aquele GUI em Python foi praticamente cópia do meu, mas tudo bem... Não sei se reparaste na parte da licença do ProtoVCI.
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: preytender em 13 de Julho de 2010, 18:48
Está altamente, parabens pela nota mas acima de tudo pelo aspecto cool  ;D
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: amando96 em 13 de Julho de 2010, 19:00
Fizeste o trabalho todo sozinho? Foste penalizado por isso?
Sempre que fazia trabalhos sozinho era penalizado num campo chamado "interacção grupal" por ser só eu... por isso em vez de ter 20 tiravam sempre 2-3 pontos por causa desse campo, e ficava com 17-18 :(

Já agora parabéns, está com bom aspecto  :)

EDIT: reparei que no relatório usas "PWN" é PWM... não sei se foi só lapso.
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: metRo_ em 13 de Julho de 2010, 19:12
Eu não sei como são avaliados os vossos relatórios nem que percentagem tem na nota final. A nível de conteúdo ainda está razoável agora a nível de formatação está mau. Devias ter em atenção a criação de relatórios sobretudo se pensares entrar na faculdade ou mesmo no mercado de trabalho se precisares de fazer relatórios sobre o que estás a fazer.
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: _ze_pedro_ em 13 de Julho de 2010, 20:15
Só não gostei foi muito da parte do "Todos os direitos reservados", pois aquele GUI em Python foi praticamente cópia do meu, mas tudo bem... Não sei se reparaste na parte da licença do ProtoVCI.

eu sei eu sei

foi so para dar mais um ar profissional a coisa

eu nao tenho nem quero ter direitos de nada

e disponibilizo todo o codigo e tudo o que fiz

mas desculpa micro ;)



Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: _ze_pedro_ em 13 de Julho de 2010, 20:17
eu sei que o relatorio nao esta muito bom

pois eu nao era para ter entregue o trabalho naquele dia

mas como na minha turma fui o unico a ter trabalho feito os stores quizeram que eu apresenta.se logo o trabalho

fiz aquilo numa noite melhor que aquilo era impossivel

no dia em que acabei tudo os meus profs disseram.me apresentas amanha
eu ainda nao tinha nada de nada feito
Citar
EDIT: reparei que no relatório usas "PWN" é PWM... não sei se foi só lapso.

foi um lapso

foi tudo mesmo feito a pressa

Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: GnGz em 13 de Julho de 2010, 20:23
Tá bom
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: microbyte em 13 de Julho de 2010, 20:23
Só não gostei foi muito da parte do "Todos os direitos reservados", pois aquele GUI em Python foi praticamente cópia do meu, mas tudo bem... Não sei se reparaste na parte da licença do ProtoVCI.

eu sei eu sei

foi so para dar mais um ar profissional a coisa

eu nao tenho nem quero ter direitos de nada

e disponibilizo todo o codigo e tudo o que fiz

mas desculpa micro ;)

Ainda por cima disponibilizas um código que não é teu e está sob licença... É preciso ter muito cuidado com isso, pois se fosse outro punha-te em tribunal e não saías de lá com os bolsos mais cheios...
É claro que não te vou fazer isso, mas é para chamar a atençao que não é só sacar as coisas da net... Quando se saca e usa, é preciso dar os devidos créditos a quem de direito... Ainda para mais coisas sob licença.
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: senso em 13 de Julho de 2010, 20:48
Já agora, sob que tipo de licenca?
Em portugal alguem liga a esse tipo de coisas legalmente?
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: _ze_pedro_ em 13 de Julho de 2010, 21:01
eu nao fiz nada com o objectivo de utilizar nada para fins lucrativos foi so para dar uns aspecto mesmo profissional

como te disse nao quero ter qualquer tipo de licenças pois o objectivo do projecto era apender mais qualquer coisa e tambem me divertir pois gosto de saber coisas novas
tb desenvolvi muito codigo no projecto e experimentei muitas coisas
primeiro aprendi depois desenvolvi e nunca foi com esse objectivo de roubar nada a ngm antes pelo contrario
simplesmente desenvolvi mais  coisas quem quizer utilizar o que fiz ta a vontade nao ha qualquer problema de licenças nem nada nao è esse o meu objectivo

o meu objectivo è aprender e partilhar aos outros o que aprendi e se conseguir ensinar algo tambem :D (duvido:P )

mas ja percebi que errei peço desculpa

mas como aquilo foi para um projecto escolar e "um projecto de divertimento" pareceu.me a mim no meu entender que nao havia problema algum simplesmente foi isso
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: microbyte em 13 de Julho de 2010, 21:19
Senso:
http://creativecommons.org/licenses/by-nc-sa/2.5/pt/ (http://creativecommons.org/licenses/by-nc-sa/2.5/pt/)

@ze pedro
Se pareceu que estou chateado, peço desculpa, não é nada disso e não me leves a mal... :D
Volto a repetir aquilo que disse, foi apenas uma chamada de atenção não directamente para ti.

Fui eu o próprio a ajudar-te e a incentivar-te a olhares para o código!
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: senso em 13 de Julho de 2010, 21:44
Eu conheço, a questão é se isso é realmente legal e se o tribunal te dá ouvidos ou não, só isso.
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: microbyte em 13 de Julho de 2010, 22:11
Isso é um standard internacional e penso que o próprio Arduino tem uma licença parecida...
Experimenta a dizer que inventaste uma coisa igual ao Arduino que vais ver...
Título: Re: PAP - SONDA MOVEL - explorUino [CONCLUÍDO]
Enviado por: TigPT em 13 de Julho de 2010, 22:16
Até todo o conteúdo do LusoRobótica está protegido por CC. Colocamos a licença no footer do mesmo. Assim todos os membros podem postar livremente as suas ideias, que ninguém pode utiliza-las para fins comerciais sem os contactar a pedir autorização.