Pages: [1]   Go Down
Author Topic: [PD]PureData a Arduino  (Read 894 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
I love YaBB 1G - SP1!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, estoy tratando de controlar las salidas digitales de mi Arduino desde PureData. Estoy usando comport desde PD para mandar un numero y quiero que Arduino lo lea y prenda un LED. Me parece que esto es bastante sencillo pero no puedo hacer que funcione.

Estoy usando el ejemplo Serial Read Advanced. Cuando mando data desde PD el foco de TX en el Arduino prende.

¿Qué estoy haciendo mal?

gracias.
adrián goya


int ledPin = 13;  // LED en el pin 13
int val = 0;      //variabe para guardar el data del puerto serial
int serbyte = 0;  //variable para guardar el data VALIDO del puerto

void setup()
{

 pinMode(ledPin, OUTPUT);
 beginSerial(19200);
}
 
void loop()
{
 serbyte = serialRead();
   if (val !=  -1) {
  val = serbyte;
   }
 
 if (val == 113) {              
 digitalWrite(ledPin, LOW);  
}  else {
   digitalWrite(ledPin, HIGH);  
 delay(1000);
 }

}

« Last Edit: February 10, 2006, 05:37:01 am by adrian_goya » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
I love YaBB 1G - SP1!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pongo aquí la solución que se obtuvo en el foro de software troubleshooting, por si es de utilidad para alguien.

-->Las variables iniciales deben ser declaradas como char, en vez de int. Decía:

int val = 0;  
int serbyte = 0;

lo cambié por:

char val = 0;
char serbyte = 0;

El código del ejemplo tenía un error, decía:

   if (val !=  -1) {
  val = serbyte;  
   }
 
debería ser:

   if (serbyte !=  -1) {
  val = serbyte;  
   }


suerte,
adrián goya
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 61
I love YaBB 1G - SP1!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola adrian gracias por este post smiley

oye como aun no lo intento y acabo de leer acerca de como enviar datos de pd al arduino [comport] sabes o tienes algun patch de pd sencillo que sirva de ejemplo o pareja del caso basico que mencionas en este post.

un saludo!
/a
Logged

Forum Administrator
MMX
Offline Offline
Edison Member
*****
Karma: 37
Posts: 1139
hallo kompis
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

tengo noticias al respecto de esta pregunta. Durante el ultimo taller que tuvimos en Madrid, H.C. Steiner (de PD) y yo nos dimos cuenta de que el parche comport2000 que se emplea tipicamente en PD para mandar datos desde el ordenador hacia el puerto serie (esto seria desde el ordenador a Arduino) no funcionaba apropiadamente. La razon de esto era en principio un misterio.

Sin embargo, nos dimos cuenta que el codigo original del parche de PD tenia una errata en una de las flags, asi como no era capaz de direccionar mas alla del COM4. Como quiera que teniamos interes en hacer un parche con capacidad para atacar un numero tan grande de puertos serie como fuera posible, hicimos una revision del codigo y ahora es capaz de conectar hasta el COM40 y de enviar datos bidireccionalmente.

Yo soy usuario de Windows, asi que recompile las librerias para windows. Me consta que Hans tuvo el detalle de hacer lo propio para Mac y Linux. Si teneis interes en descargar las DLL revisadas (windows) id a:

http://www.arduino.ws/files/pd/windows

Si teneis interes en los parches para los otros sistemas operativos, tendre que extender la consulta a Hans.

Por otra parte, Hans acaba de sacar un parche muy interesante que consiste en una combinacion de un firmware para Arduino y un parche de PD que combinados permiten leer y escribir de y hacia cada uno de los pines de Arduino. Es una buena combinacion para aquellos que no tienen interes en utilizar la placa desconectada del ordenador. Hay mas informacion en:

http://www.arduino.cc/playground/Interfacing/PD

Aunque solo esta en ingles. Esto creo que nos llevara algo mas de tiempo traducirlo, a no se que hay por ahi algun voluntario ;-)

Un saludo,

David
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 61
I love YaBB 1G - SP1!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola david!

con gusto lo tradusco, en cuanto logre entenderlo y/o usarlo... claro esta!
aun no consigo mover un servo desde pd.. :/

aproposito ha habido bastante tela con el tema en la lista de correos de puredata: http://elists.resynthesize.com/pd-list/2006/05/1602280/ lastimosamente ha girado alrededor del tema [pwm] y parece que pd envia señales con demasiado ruido.. la discusion se ha tornado tan compleja que el tema de controlar un servo desde pd usando el objeto [arduino] que arriba mencionas no parece estar resuelto..

me gustaria estar equivocado y que alguien compartiera aca un pd patch que use (o no) el objeto de hans c steiner (basado en comport + otros).. yo intentare usar como base lo que en este post describe adrian + el codigo de tom igoe, http://www.tigoe.net/pcomp/code/archives/arduino/000741.shtml

delayMicroseconds(us) + Serial Read Advanced

si tengo pulso y tino estare abriendo un nuevo topic con el codigo para que me ayuden a pulirlo..

en la buena,
/a
« Last Edit: June 02, 2006, 05:20:22 pm by armadillo » Logged

Pages: [1]   Go Up
Jump to: