collapse

* Posts Recentes

Making Linear Ball Way Cages por jm_araujo
[Ontem às 23:03]


TV Antiga Desliga-se por almamater
[Ontem às 12:34]


Tubo PVC 32mm Branco por SerraCabo
[10 de Agosto de 2018, 22:49]


Ajuda para contruir uma "máquina" de fisioterapia para a minha filha. por Hugu
[08 de Agosto de 2018, 00:47]


Comprar solda decente por jm_araujo
[07 de Agosto de 2018, 11:30]


Telescopio por kieferdl
[03 de Agosto de 2018, 10:10]


Com que equipamento costumam aceder ao LR? por KammutierSpule
[01 de Agosto de 2018, 10:14]


BostonDynamics - Vai uma mãozinha? por jm_araujo
[01 de Agosto de 2018, 08:29]


Baby's got blue eyes por jm_araujo
[30 de Julho de 2018, 22:55]


Queimei 1 Motor :) por SerraCabo
[30 de Julho de 2018, 22:32]

Autor Tópico: Problema Arduino + Processing  (Lida 1002 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"?