Pages: [1]   Go Down
Author Topic: processing y arduino no se comunican SOLUCIONADO  (Read 1185 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 189
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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()
{

}
« Last Edit: August 13, 2012, 04:06:42 am by Lisergio » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 189
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Pages: [1]   Go Up
Jump to: