collapse

* Posts Recentes

Substituir um 78xx por um switching regulator ? por senso
[Ontem às 22:25]


leitura de voltagens com o analogRead(A0) por Njay
[Ontem às 15:29]


Kit Completo Robô Inmoov 299€ por aldricnegrier
[Ontem às 13:39]


BostonDynamics - Vai uma mãozinha? por josecarlos
[14 de Outubro de 2018, 19:44]


PCB de passadeira por vasco
[13 de Outubro de 2018, 16:00]


Proteção contra reverse voltage por Njay
[12 de Outubro de 2018, 10:04]


Bus I2c necessita de pullups ? por vasco
[11 de Outubro de 2018, 18:15]


Circuito básico do 7805 por jm_araujo
[09 de Outubro de 2018, 10:33]


Nome em ingles por helderjsd
[06 de Outubro de 2018, 09:48]


Preciso de programador de arduino Zona norte por Sérgio
[05 de Outubro de 2018, 16:06]

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