Você está na página 1de 8

PINGUINO : Implementacin De Un Modulo Bsico Para Comunicacin Con El Pc

Por : Julio Fabio De La Cruz Gomez. http://micropinguino.blogspot.com

La comunicacin entre dispositivos electrnicos y el PC es de uso como en nuestros das, nada tan fcil como conectar nuestro dispositivo en el puerto USB y empezarlo a utilizar. En electrnica un dispositivo conectado al PC puede ser empleado para la captura y visualizacin de datos, as, de por que no disponer de una tarjeta electrnica para tal fin ?. Es aqu donde la tarjeta pinguino viene al rescate, configurndose como un dispositivo bsico de comunicacin y control digital de gran utilidad para la realizacin de nuestros proyecto electrnicos.

Pinguino Y Processing.

La configuracin de Pinguino como interfaz de hardware con Processing tiene como fin el de Para la realizacin de los proyectos aqu ser una tarjeta de comunicacin con el PC y propuestos el modulo tendr las siguientes nuestras aplicaciones electrnicas. En este caso entradas y salidas ya predefinidas. el sistema microcontrolado Pinguino cuenta con 8 salidas digitales un programa ya establecido, siendo el modulo 5 entradas digitales como una caja negra para el usuario, donde este solo debe saber que pines sern la entradas y 5 entradas anlogas que pines sern las salidas En la Figura 1 se ilustran digitales y como se acceden Tiene como fin el de ser una tarjeta que pines se disponen como por medio de un programa de comunicacin USB con el salidas digitales, como en el PC. computador que sea verstil como entradas entradas digitales y El modulo esta configurado sistema de comunicacin para la conversin anlogo a digital . de aplicaciones A diferencia del PIC de manera que desde el PC realizacin se pueda enviar y recibir electrnicas 18F2550 en el PIC 18F4550 datos, por medio del puerto hay terminales que no se USB. utilizan, esto es por que la el programa que se El usuario cuenta con un conjunto de funciones descarga en el microcontrolador esta configurado en el lenguaje de programacin Processing para para el PIC 18F2550. el uso de este modulo, permitiendo enfocarse en de la libreria en programa que controlara la aplicacin y su Instalacin interface grfica de usuario. Tambin este Processing 1.5.1 conjunto de funciones de alto nivel pueden ser Para la instalacin nos vamos a la carpeta llevadas a cualquier otro lenguaje de sketchbook de Processing, all encontraremos programacin dada la versatilidad de Pinguino. una carpeta llamada libraries, en caso de no

Caractersticas del sistema pinguino para processing.

estar la creamos. Luego de contar con la carpeta Ejemplo de escritura a salidas libraries alli pegamos la carpeta pinguino que digitales. en su interior tiene otra carpeta llamada library Este primer ejemplo mostrara como se escribe un que contiene todos los archivos necesarios para dato digital a Pinguino desde Processing, para comunicar Pinguino con Processing. este ejemplo se realiza el montaje que se muestra en la Figura 2. Figura 1. Configuracin de los terminales En el cuadro Cdigo 1. se muestran las lineas de correspondientes en Processing.

Ejemplo de lectura de las entradas digitales.


El ejemplo a continuacin muestra el estado ya sea alto o bajo de 4 pulsadores conectados a la tarjeta Pinguino. En la Figura 3 se ilustra el circuito. En el cuadro Cdigo 2 se muestran las lineas de correspondientes en Processing.

Ejemplo de lectura de una entrada anloga.


Este ejemplo muestra la lectura de un valor anlogo utilizando el ADC. En la Figura 4 se ilustra el circuito. En el cuadro Cdigo 3 se muestran las lineas de correspondientes en Processing.

Creditos.
Creadores de la librera http://ubaa.net/shared/processing/pinguino/ The Pinguino project was initiated and is maintained by Jean-Pierre Mandon at the cole Programa en Pinguino. suprieure d'art d'Aix-en-Provence. The Pinguino Para que funcione la comunicacin con la tarjeta Processing and Java Library was written by Pinguino, hay que compilar y descargar el Stphane Cousotwith assistance from Jeansiguiente programa que aparece anexo al final de Pierre Mandon and Douglas Edric Stanley. la de esta gua. Herramientas utilizadas en los graficos El programa esta listo para poder entender los http://inkscape.org/?lang=es comandos que se envan desde Processing por http://fritzing.org/ medio de la librera pinguino instalada.

Cdigo 1. Salidas digitales import hypermedia.pinguino.*; Pinguino pinguino; void setup(){ Pinguino.log( true ); pinguino = new Pinguino( this ); } void draw(){ pinguino.digitalWrite(0,Pinguino.LOW); delay(1000); pinguino.digitalWrite(0,Pinguino.HIGH); delay(1000); } }

Cdigo 2. Lectura de entradas digitales import hypermedia.pinguino.*; Pinguino pinguino; int p0,p1,p2,p3; void setup(){ Pinguino.log( true ); pinguino = new Pinguino( this ); void draw(){ p0=pinguino.digitalRead(8); p1=pinguino.digitalRead(9); p2=pinguino.digitalRead(10); p3=pinguino.digitalRead(11); if(p0==0) println(pulsador p0 presionado); if(p1==0)

Cdigo 3. Lectura de un valor anlogo. import hypermedia.pinguino.*; Pinguino pinguino; int analogo; void setup(){ Pinguino.log( true ); pinguino = new Pinguino( this ); } void draw(){ analogo=pinguino.analogRead(13); println(Lectura = +analogo); } }

println(pulsador p1 presionado); if(p2==0) println(pulsador p2 presionado); if(p3==0) println(pulsador p3 presionado);

Figura 2. Circuito salida digital

Figura 3. Circuito entrada digital

Figura 4. Lectura anloga

Figura 5. Circuito de pruebas

Figura 6. Circuito de pruebas con el 18F2550

Funciones
Funcin Descripcin
Retorna el dato ledo de un terminal especifico del microcontrolador, los valores estn comprendidos en el rango de 0 y 1023.

Sintaxis
terminal indica el terminal del cual se desea leer el dato anlogo. Esta funcin retorna un valor comprendido entre 0 y 1023, si hay un error retorna -1

Ejemplo
import hypermedia.pinguino.*; // conectar a la tarjeta Pinguino pinguino = new Pinguino(this); // lee el valor en el terminal 13 int value = pinguino.analogRead( 13 ); // imprimir valor leido en consola println( value );

analogRead(terminal)

analogWrite(terminal,valor)

Enva un valor anlogo (PWM) a un terminal especifico del microcontrolador, los valores estn comprendidos entre 0 y 1023.

terminal indica el terminal del microcontrolador al que se enviara el dato. valor indica que valor sera enviado, los valores estn comprendidos entre 0 y 1023. Esta funcin no retorna ningn valor.

import hypermedia.pinguino.*; // conectar a la tarjeta Pinguino pinguino = new Pinguino(this); // envia el dato 713 al terminal 11 pinguino.analogWrite( 11, 713 );

clear()

Coloca en 0 todos los terminales del microcontrolador.

esta funcin no retorna ningn valor

digitalRead(terminal)

Lee el estado digital de un terminal especifico del microcontrolador

terminal indica el numero del terminal del pic que se va a leer su estado digital 0 (LOW) o 1(HIGH). -1 en caso de un error.

import hypermedia.pinguino.*; // conectar a la tarjeta Pinguino pinguino = new Pinguino(this); // lee el valor digital del terminal 0 int value = pinguino.digitalRead( 0 ); // imprime el valor leido en consola println( value );

Escribe un dato digital 0 (BAJO) o 1 (ALTO) a un terminal especifico del microcontrolador. digitalWrite(terminal,valor)

terminal indica a terminal se escribir el dato digital. valor indica que estado lgico se escribir en el terminal, para indicar un estado bajo se enva 0 o LOW y un estado alto 1 o HIGH. Esta funcin no retorna ningn valor

import hypermedia.pinguino.*; // conectar a la tarjeta Pinguino pinguino = new Pinguino(this); //escribir un alto a el terminal 0 pinguino.digitalWrite( 0, Pinguino.HIGH );

log(habilitar)

Sirve para indicar el habilitar indica si se habilita o estado de conexion no los mensajes de estado por con la tarjeta pinguino. consola, para habilitarlos se coloca true y para desabilitar se coloca false. Esta funcion no retorna ningun valor.

import hypermedia.pinguino.*; // habilita mensajes de consola Pinguino.log( true ); // conectar a la tarjeta Pinguino pinguino = new Pinguino(this);

Codigo que se descarga en pinguino. // test Pinguino with Processing // Jean-Pierre MANDON 2009 int i; uchar todo,mode,pin,value; unsigned char buffer[2]; int temp; int endstring; void clear(); void setup() { for( i=0; i<8; i++ ) pinMode( i, OUTPUT ); clear(); } void loop() { if ( USB.available() ) { if (USB.read()=='+'){ todo =USB.read(); if ( todo=='C' ) clear(); if ( todo=='W' ) { mode = USB.read(); pin = USB.read(); value = USB.read(); if ( mode=='D' ) digitalWrite( pin, value ); if ( mode=='A' ) { temp=value+(USB.read()*256); analogWrite( pin, temp ); } } if ( todo=='R' ) { mode = USB.read(); pin = USB.read(); if ( mode=='D' ) { } } } } } } }

buffer[0] = digitalRead( pin ); USB.send( buffer, 1 ); if ( mode=='A' ) { temp = analogRead( pin ); buffer[0]=temp; buffer[1]=temp/256; USB.send( buffer, 2 );

endstring=USB.read();

void clear() { for( i=0; i<8; i++ ) { digitalWrite( i, LOW ); }

Você também pode gostar