http://jpmandon.blogspot.com/2010/11/pinguino-cdc-and-processing.html
En Linux el modulo RXTXbin no reconoce /dev/ttyACM0 que es como se detecta pinguino con CDC.
Para que la reconozca como dispositivo de comunicación serial se crea un enlace simbólico desde la terminal
sudo ln -s /dev/ttyACM0 /dev/ttyS20
Este es el codigo de que se descarga a pinguino, hice unas modificaciones al original, esta compilado con la version de pinguino beta 9-05
// Pinguino cdc with processing
// Jean-Pierre Mandon 2010
// Modificado por Julio Fabio De La Cruz G
unsigned char i;
unsigned char receivedbyte;
unsigned char rxstr[64];
void setup(){
for (i=0;i<4;i++){
pinMode(i,OUTPUT);
digitalWrite(i,LOW);
}
}
void loop(){
receivedbyte=CDC.read(rxstr);
if (receivedbyte>0)
rxstr[receivedbyte]=0;
if(rxstr[0]=='S')
digitalWrite(0,HIGH);
if(rxstr[0]=='R')
digitalWrite(0,LOW);
}
Este es el codigo en processing
import processing.serial.*;
Serial myPort;
String port[];
int i;
void setup(){
port=Serial.list();
println(port[0]);
myPort=new Serial(this,port[0],115200);
}
void draw(){
for (i=0;i<4;i++){
myPort.write("S"+str(i));
delay(50);
myPort.write("R"+str(i));
delay(50);
}
}
void stop(){
myPort.stop();
}
buen dia profesor julio estoy intentando configurar el pinguino para que me sirva como un ouerto serial virtual en w7 pero no he podido lograrlo, eh progrado el pinguino con el codigo de mas arriba y corro el programa para processing pero no pasa nada, me gustaria saber si esos codigos son solo para linux o si hay alguna forma de hacerlo en windows muchas gracias por la ayuda que usted me pueda brindar
ResponderEliminarYo tambien trate de configurarlo para windows 7 y nada desisti de eso, segun la busqueda que realice hay muchos problemas para la configuracion en modo CDC para windows 7. No solo para pinguino sino en general para los integrados 25f50 y 45f50 cuando se configuran en modo cdc. También tuvimos problemas con los convertidores de usb a serial sobre windows 7.
ResponderEliminarEn la institución la parte de interfaces con el computador la estamos ya trabajando en linux. Si desean puedo hacerles llegar el livecd de ubuntu que personalizamos para realizar este tipo de aplicaciones.
Que pena con usted profesor julio por la demora en mi respuesta y si el livecd de ubuntu es el sistema operativo estaria muy agradecido si me lo facilita por medio del profesor fernando bravo, pues estoy interesado en tener una buena version de OS de linux.
ResponderEliminarmuchas gracias por la atencion aprestada
Hola Julio muy buen aporte, quisiera saber si has podido establecer correctamente la comunicacion cdc con processing en windows 7, o como podria controlar un servomotor de la forma que presentas aqui muchas gracias.
ResponderEliminarSi ya logre la comunicación CDC en windows 7.
EliminarEn windows probé la comunicación con varias versiones de processing y no funciona (en Linux sin problema).
Pero probando con el hyperterminal y lazarus funciona correctamente.
Para mostrar como instale el controlador en windows 7 haré entonces una nueva publicación con un vídeo.
Pinguino tiene una libreria para el manejo de servos que se utiliza igual que en arduino.
Lo que tendrías que hacer es combinar los dos códigos, es decir que la posición del servo la envías serialmente, en el ejemplo que doy tendrías que guardar el dato que envías en la variable pos.
int pos;
void setup(void){
servo.attach(0); //servo en el terminal 0
pos = 30;
}
void loop(void){
servo.write(0,0);//mover servo del terminal 0 en la posición 0
delay(100);
servo.write(0,pos);//mover servo del terminal 0 a la posición pos
delay(100);
}
Muchas gracias, si de echo yo trabajo con la libreria hypermedia aquí un ejemplo por si quieres verlo http://www.youtube.com/watch?v=5ou4RKVyZ_4, pero controlo directamente pinguino desde processing es decir todo lo hago en processing, entonces e tratado de enviar y recibir datos pinguino-processing y no lo logro, entonces si tienes algo hecho, me gustaría verlo, agradezco tu colaboración y gracias por responder.
EliminarNota: al tratar de hacer la comunicacion cdc se traba processing.
Perdon la pregunta era, comunicacion puerto serie para los servos.
EliminarProfe julio e revisado el articulo que publico sobre la comunicacion CDC, muy interesante pero a la hora de ejecutar los ejemplos no obtengo resultados,(al parecer soy le mas interesado en el tema), sigo paso a paso lo que dice el articulo trabajo en windows 7 64 bits, si lograra esa comunicacion podria hacer maravillas con pinguino, profe por favor si me pudiera colaborar le agradeceria inmensamente.
EliminarGracias
Buenas noches Ricardo:
EliminarAcabo de hacer una nueva publicación de como hice la instalación en windows 7 y precisamente a 64 bits.
Me gustaría tu realimentación al respecto de como te va con la instalación pues seria la segunda en probarse, yo no he realizado mas pruebas al respecto.
Las pruebas que estoy haciendo actualmente son en Linux, sobre todo por el interés actual en el desarrollo de aplicaciones en Android.
Aquí esta el enlace de la publicación
Eliminarhttp://micropinguino.blogspot.com/2013/09/comunicacion-cdc-en-windows-con-pinguino.html
Ví tu aplicación y me pareció muy buena.
EliminarTambién puede ser una opción para lo que deseas el comunicarse con pinguino directamente por usb y no en modo cdc.
Buscare el ejemplo que hice desde processing y haré una publicación al respecto. En el blog de pinguino esta el ejemplo, pero en el código falta una instrucción y por eso no funciona.
Buenas noches julio, e probado instalando el driver y reconoce el puerto muy bien tanto en 64 como 32 bits, muchas gracias por colaborarme y te cuento que aun sigo con la investigacion de comunicacion, empece por controlar el pinguino directamente desde python, y ahora probar codigos hasta llegar a lo esperado, si logro alguna cosa te la pondre aqui bueno. Nuevamente muchas gracias por tu cloaboracion.
Eliminar