Aew Galera, sei que ando meio sumido, mas ja estou providenciando novidades para o blog. Por hora venho avisar que os links para dowloads estao sendo reupados. Em breve voltarei com novidades no blog. Ate breve. Pessoal, dando continuidade ao artigo anterior onde eu mostrei a construcao do hardware do meu projeto Explorer 1.0, venho agora mostrar o codigo que utilizei no Processing para gerar a interface grafica, e no Arduino para controle das instrucoes. Se voce ainda nao conhece o Processing, aconselho dar uma olhada nos seguintes links antes de continuar.Projetando com Arduino e Processing: Explorer 1.0 (PARTE I) Iniciando na programacao grafica com o processing. http://processing.org/learning/basics/ Criar uma comunicacao entre o Arduino e o processing nao e tao complicado.Contudo para utilizar a webcam em meu projeto precisei baixar uma biblioteca de codigos propria para trabalhar com webcams e imagem. O nome da biblioteca e GSVideo e pode ser encontrada aqui. Apos fazer o download da bilblioteca, voce deve descompacta-la e copiar a pasta GSVideo para dentro da pasta "libraries", dentro da pasta Processing. O caminho ate a pasta deve ficar exatamente assim Processing >Libraries> GSVideo. Pronto, o codigo para o Arduino e o seguinte: Codigo para o Arduino //codigo para controlar o arduino a partir do processing//#include <Servo.h>// inserir a biblioteca de controle dos servos//criando variaveis do tipo servoServo servo1; Servo servo2;void setup() { /* abaixo, condicional for para definir as portas digitais como saida*/ for (int thisPin = 2; thisPin < 6; thisPin++) { pinMode(thisPin, OUTPUT); } servo1.attach(6);//servo 1 na digital 6 servo2.attach(7);//servo 2 na digital 7 // as portas digitais de 2 a 5 reservadas para a ponte H //posicao inicial paras os servos e espera de 7 segundos servo1.write(100); servo2.write(170); delay(7000); /*iniciar a porta serial. deve estar na mesma velocidade no processing*/ Serial.begin(19200); Serial.println("Pronto");}void loop() { static int v = 0; if ( Serial.available()) { char ch = Serial.read();//variavel do tipo caracter criado switch(ch) { case '0'...'9': v = v * 10 + ch - '0'; break; /* o codigo no processing esta programado para enviar o caractere "c" para variar o eixo "x" no caso o servo1, e o caractere "b" para variar o eixo do "y" no servo 2. sempre que o arduino receber algum desses caracteres ele entendera qual servo deve movimentar */ case 'c': servo1.write(180-v);/*escrever no servo 1 o valor com relacao ao mouse*/ Serial.print("c = "); Serial.println(v); v = 0; break; case 'b': servo2.write(180-v);/*escrever no servo 2 o valor com relacao ao mouse*/ Serial.print("b = "); Serial.println(v); v = 0; break; //controle dos motores do carro case 'w': digitalWrite(2, HIGH);//motor direito para frente digitalWrite(4, HIGH);//motor esquerdo para frente digitalWrite(3, LOW);//robo anda para frente digitalWrite(5, LOW); break; case 's': digitalWrite(2, LOW);//motor direito para tras digitalWrite(4, LOW);//motor esquerdo para tras digitalWrite(3, HIGH);//robo anda para tras digitalWrite(5, HIGH); break; case 'a': digitalWrite(2, HIGH);//motor direito para frente digitalWrite(4, LOW);//motor esquerdo para tras digitalWrite(3, LOW);//robo roda para esquerda digitalWrite(5, HIGH); break; case 'd': digitalWrite(2, LOW);//motor direito para tras digitalWrite(4, HIGH);//motor esquerdo para frente digitalWrite(3, HIGH);//robo roda para esquerda digitalWrite(5, LOW); break; case 'h': digitalWrite(2, LOW);//motor direito para