collapse

* Links de Robótica

* Posts Recentes

Medir Agua que está no Poço por filjoa
[Ontem às 20:58]


URGENTE - display de 7 segmentos com backpack por helderjsd
[20 de Setembro de 2017, 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Palavras Cruzadas por Njay
[19 de Setembro de 2017, 02:24]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


Apresentação por TigPT
[17 de Setembro de 2017, 07:31]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]


Preparar bancada de testes por jm_araujo
[14 de Setembro de 2017, 10:24]

Autor Tópico: Problema Arduino + Processing  (Lida 855 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline bdesigns

  • Mini Robot
  • *
  • Mensagens: 38
  • Return 1
Problema Arduino + Processing
« em: 22 de Julho de 2010, 20:12 »
Boa tarde minha gente  ;D

Ando aqui a brincar com o arduino, mais o processing, a ideia era fazer um pov para a cicleta, permitindo ao ligar o arduino ao pc, carregar uma "imagem" (ainda estou para pensar onde a vou guardar).
A questão é, estou aqui com um pequeno problema ainda no desenvolvimento, neste caso, no processing, quando faço para o draw() correr apenas uma vez(noLoop()), o arduino nem "liga" ao que é enviado, quando faço normalmente, ele ja se faz de entendido. Aínda tou so a apalpar o processing daí este meu problema secalhar.

O codigo do arduino, se não tiver dados disponíveis no porto serie, segue a vidinha dele (percorre um array dentro de um tempo entre passagens), quando tem dados disponíveis, lê, se for 'L', para o ciclo e entra por agora num modo que mostra em binario o codigo ascii, até receber 'E', onde dá-se por feliz, e volta as voltinhas dele.

Código: [Seleccione]
  if (Serial.available()) { // If data is available to read,
   val = Serial.read(); // read it and store it in val
  }
     if(val=='L'){
       while(1){
         if(Serial.available()){
         val= Serial.read();
         }
         if(val=='E'){
           break;
         }
         for(i=0; i<16; i++){
         digitalWrite(led0,LOW);
         digitalWrite(led1,HIGH);
         shiftOut(data, clock, LSBFIRST, val);
         delay(5);
            }
-->Parte codigo arduino.

O codigo do arduino, funciona, experimentei fazer o ciclo, envia 'L', envia dados, envia 'E', usando o RComSerial, e funcionou lindamente,mas no processing só funciona se estiver em constante loop o envio...
A questão é, ele envia sempre pelo menos uma vez, se tiver o draw em noLoop? Já experimentei fazer somente uma vez o ciclo no draw, e o erro manteve-se... teoricamente ao receber 'L' ele bloqueia logo, mas no processing o arduino parece não tar nem interessado  ;D
Código: [Seleccione]
import processing.serial.*;

Serial myPort;
int a = 200;
void setup(){ 
  println(Serial.list());
  myPort = new Serial(this, Serial.list()[1], 9600);
  size(400, 400);
  background(51);
  noLoop();
}

void draw(){
  myPort.write('L');
  delay(5000);

  }
}
-->Codigo Processing


Será que não estão sincronizados? o serial.available() era suposto corrigir isso  :-\
Será que terei de fazer "Hand-Shaking"?