Processing con Pinguino X4
En el blog tengo publicaciones previas de como interactuar con la tarjeta Pinguino desde Processing, pero el código correspondiente a la tarjeta Pinguino, ya no es compatible con el nuevo IDE X4, por lo cual al compilarlo generara errores.La librería correspondiente a Processig sigue siendo la misma y sigue operando bien para la versión actual de Processing.
USB Processing Código Para Pinguino X4
Este código corresponde al modo de operación de comunicación modo Bulk tal como esta para la nueva versión del IDE de programación del la tarjeta Pinguino que tiene instrucciones diferentes para la lectura y escritura.El siguiente código se probo con un microcontrolador 18f4550 con el bootloader versión 2.12
La conexión la probé desde GNU/Linux con Ubuntu
//Por: Julio Fabio De La Cruz G. 2014 //http://micropinguino.blogspot.com //Adaptacion a pinguino X4 para emplear la libreria usbprocessing //Basado en el trabajo de Stéphane Cousot, Jean-Pierre Mandon y Douglas Edric Stanley. int i; int temp; u8 receivedbyte; char rbuffer[64]; char sbuffer[2]; void setup(){ TRISB=0; for(i=8;i<=12;i++) pinMode(i,INPUT); for(i=21;i<=28;i++) pinMode(i,INPUT); } void loop(){ receivedbyte=0; if(BULK.available()) do { receivedbyte = BULK.read(rbuffer); } while (receivedbyte == 0); rbuffer[receivedbyte] = 0; if (receivedbyte > 0){ if(rbuffer[0]=='+'){ if (rbuffer[1]=='C') PORTB=0; if(rbuffer[1]=='W'){ if(rbuffer[2]=='D') digitalWrite(rbuffer[3],rbuffer[4]); if(rbuffer[2]=='A'){ temp=rbuffer[4]+(rbuffer[5]*256); analogWrite(rbuffer[3], temp ); } } if(rbuffer[1]=='R'){ if(rbuffer[2]=='D'){ sbuffer[0]=digitalRead(rbuffer[3]); BULK.write(sbuffer[0], 1); } if(rbuffer[2]=='A'){ temp=analogRead(rbuffer[3]); sbuffer[0]=temp; sbuffer[1]=temp/256; BULK.write(sbuffer, 2); } } } } }