Go Down

Topic: processing y arduino no se comunican SOLUCIONADO (Read 1 time) previous topic - next topic

Lisergio

Aug 09, 2012, 04:46 pm Last Edit: Aug 13, 2012, 11:06 am by Lisergio Reason: 1
Buenas a todos, me gustaría saber si a alguien le esta pasando esto...

Estoy actualizando un proyecto que tenía apartado, de encender unas luces de casa con el iphone usando touchosc y processing, todo funcionaba perfecto, pero ahora ha dejado de funcionar.

Desde que lo programe en su dia , se han actualizado todos los programas, processing , arduino y OSX mountain lion...

he probado y la comunicación del iphone a processing funciona bien y recibe los toques de los botones, pero processing no envia datos por el puerto serie a arduino...

Estoy un moco mosca, ya que este código me funcionaba bien...
Ahora estoy con processing 1.5.1 arduino 1.0.1 y OSX mountain lion y estoy probando con una placa arduino uno y una mega con el mismo resultado...

pongo el ejemplo de lo que tengo puesto...

ARDUINO:

int message = 0;
int salida = 13;

void setup()
{
 Serial.begin(9600);
 pinMode (salida,OUTPUT);
}

void loop()

{
 
 if (Serial.available() > 0)
 {
   message = Serial.read();
    if (message == '1')
      {  
        digitalWrite (salida,HIGH);
      }
        else
     {    
        digitalWrite (salida,LOW);
     }
   
 }
 
}

PROCESSING:

import oscP5.*;
import netP5.*;
import processing.serial.*;  
OscP5 oscP5;
Serial arduinoPort;


float dato;
int led;


void setup()
{
 oscP5 = new OscP5(this,8000);
 arduinoPort = new Serial(this, Serial.list()[0], 9600);  
}

void oscEvent(OscMessage theOscMessage)
{
  String addr = theOscMessage.addrPattern();
  float  val  = theOscMessage.get(0).floatValue();
 
if(addr.equals("/1/push1"))        
{
  led = int (val);
  if (led==1)
   {
     arduinoPort.write("1");
     println("Enviamos 1 a Arduino");
   }
 }
 
 
}
void draw()
{

}

Lisergio

El problema esta solucionado,


En la linea de código donde inicializamos el puerto serie, hay que decirle cual es el puerto que queremos usar...

arduinoPort = new Serial(this, Serial.list()[0], 9600); (el
  • , indica el puerto que tenemos configurado para programar la placa arduino)

    Para saber cual tenemos , podemos desplegar en arduino la lista de puertos serie ... Herramientas - Puertos Serial

  • - /dev/tty.Bluetooth-PDA-Sync
    [1] - /dev/cu.Bluetooth-PDA-Sync
    [2] - /dev/tty.Bluetooth-Modem
    [3] - /dev/cu.Bluetooth-Modem
    [4] - /dev/tty.linvor-DevB
    [5] - /dev/cu.linvor-DevB

    En mi caso , estoy usando una tarjeta bluetooth conectada a los pines RX y TX de la placa arduino mega para la comunicacion con el Mac, asi que la opción 4 es la que voy a configurar en processing
    ...
    Con lo que la linea de código para inicializar el puerto serie quedaría así...

    arduinoPort = new Serial(this, Serial.list()[4], 9600);

    La cuestión del problema es que en su día funcionó, porque de casualidad me coincidió el puerto, no por que lo configurase a sabiendas.

    queda claro que sin enredar no se aprende nada.

    un saludo a todos y espero haber ayudado.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy