collapse

* Posts Recentes

O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Emulador NES em ESP32 por dropes
[10 de Abril de 2024, 15:30]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

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