Vous êtes sur la page 1sur 7

Modulo Pinguino configurado para

aplicaciones de lgica digital


bsica.
Este modulo preconfigurado tiene como fin el de
ser una tarjeta de comunicacin con el
computador y nuestras aplicaciones electrnicas.
El microcontrolador de pinguino cuenta con un
programa ya establecido, siendo este modulo
como una caja negra para el
usuario, donde este solo debe
saber que terminales sern
las entradas, que terminales
sern las salidas digitales y
como se acceden por medio
de un programa en el PC.
El modulo esta configurado de
manera que desde el PC se pueda enviar y
recibir datos, por medio del puerto US.
El usuario cuenta con un conjunto de funciones
en el lenguaje de programacin Processing para
el uso de este modulo, permitiendo enfocarse en
programa que controlara la aplicacin y su
interfa! grfica de usuario. "ambi#n este
conjunto de funciones de alto nivel pueden ser
llevadas a cualquier otro lenguaje de
programacin dada la versatilidad de Pinguino.
Caractersticas del modulo para
aplicaciones con lgica digital
bsica con el PIC 18F455.
Para la reali!acin de los proyectos aqu$
propuestos el modulo tendr las siguientes
entradas y salidas predefinidas, seg%n sean los
requerimientos se puede cambiar esta
configuracin reprogramando el dispositivo.
12 salidas digitales
9 entradas digitales
8 entradas ADC
1 salida anloga
En la &igura ' se ilustran
que pines se disponen
como salidas digitales,
como entradas entradas digitales y conversin
anlogo a digital ()C.
Programacin en Processing.
Processing es un lenguaje de programacin
basado en *ava, con la caracter$stica de facilitar
el desarrollo de interfaces grficas y animaciones
adems de contar con la facilidad que
proporciona *ava en la programacin +eb.
PINGUINO : Implementacin
De Un Modulo Bsico Para
Comunicacin Con El Pc
Por : Julio Faio De !a Cru" Gome"# $%ttp:&& micropin'uino #lo'spot#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 !ue no disponer de una tar"eta
electrnica para tal fin #. Es a!u donde la tar"eta pin$uino viene al
rescate, confi$urndose como un dispositivo %sico de comunicacin
y control di$ital de $ran utilidad para la realizacin de nuestros
proyecto electrnicos.
Pinguino tiene como fin el de ser
una tarjeta de comunicacin USB
con el computador que sea verstil
como sistema para la realizacin de
aplicaciones electrnicas
Figura 1. Configuracin de los terminales
Figura 2. Encendido y apagado de un led.
!ncender " apagar un led.
Este primer ejemplo mostrara como se controla el
encendido y apagado de un led desde
Processing, para este ejemplo se reali!a el
montaje que se muestra en la Figura 2.
En el cuadro Cdigo 1 se muestran las lineas de
correspondientes en Processing.
!#emplo de lectura de las entradas
digitales.
El ejemplo a continuacin muestra como se
controla el encendido y apagado de , leds por
medio de activacin de alguno de los ,
pulsadores tal como se muestra en la &igura -.
En el cuadro Cdigo . se muestran las lineas de
correspondientes en Processing.
!#emplo de lectura de la entrada
$%C de la tar#eta.
El ejemplo a continuacin muestra el valor
capturado por el conversor anlogo digital
cuando se varia el potencimetro el montaje
correspondiente se muestra en la Figura 3.
En el cuadro Cdigo 3 se muestran las lineas de
correspondientes en Processing.
Cdigo 1. Encender y apagar un led
import hypermedia.pinguino.*;
Pinguino pinguino;
void setup(){
Pinguino.log( true );
pinguino = new Pinguino( this );
}
void draw(){
pinguino.digitalWrite(0,Pinguino.!W);
delay("000);
pinguino.digitalWrite(0,Pinguino.#$%#);
delay("000);
}
Cdigo 2. Lectura de entradas digitales.
import hypermedia.pinguino.*;
Pinguino pinguino;
int nPulsador";
int nPulsador&;
int nPulsador';
int nPulsador(;
void setup(){
Pinguino.log( true );
pinguino = new Pinguino( this );
}
void draw(){
nPulsador"=pinguino.digital)ead("0);
nPulsador&=pinguino.digital)ead("&);
nPulsador'=pinguino.digital)ead(&");
nPulsador'=pinguino.digital)ead(&&);
pinguino.digitalWrite(0,Pinguino.!W);
pinguino.digitalWrite(",Pinguino.!W);
pinguino.digitalWrite(&,Pinguino.!W);
pinguino.digitalWrite(',Pinguino.!W);
i*(nPulsador"==0){
println(+Pulsador i,-uierdo esta presionado +);
pinguino.digitalWrite(0,Pinguino.#$%#);
}
i*(nPulsador&==0){
println(+Pulsador arri.a esta presionado +);
pinguino.digitalWrite(",Pinguino.#$%# );
}
i*(nPulsador'==0){
println(+Pulsador dere/ho esta presionado +);
pinguino.digitalWrite(&,Pinguino.#$%# );
}
i*(nPulsador(==0){
println(+Pulsador a.a0o esta presionado +);
pinguino.digitalWrite(',Pinguino.#$%# );
}
}
"
Funciones implementadas en
Processing.
(l final de esta gu$a se encuentra una tabla que
enumera y /ace una descripcin de las
diferentes funciones empleadas para manejar la
tarjeta Pinguino desde Processing.
&eferencias.
http:// micro pinguino.blogspot.com
http://ubaa.net/shared/processing/pinguino/
http://jpmandon.blogspot.com/
Figura 3. Montaje multiproposito.
Cdigo 3. Lectura del conversor anlogo digital
import hypermedia.pinguino.*;
Pinguino pinguino;
int n1d/;
void setup(){
Pinguino.log( true );
pinguino = new Pinguino( this );
}
void draw(){
n1d/=pinguino.analog)ead("');
println(+2l 3alor es4 + 5 n1d/);
}
Funciones
Funcin escripcin !inta"is Ejemplo
analogRead(terminal)
0etorna el dato
le$do de un terminal
especifico del
microcontrolador,
los valores estn
comprendidos en el
rango de 1 y '1.-.
terminal indica el terminal
del cual se desea leer el dato
anlogo.
Esta funcin retorna un valor
comprendido entre 1 y '1.-,
si /ay un error retorna 2'
import /ypermedia.pinguino.34
55 conectar a la tarjeta
Pinguino pinguino 6 ne+ Pinguino7t/is84
55 lee el valor en el terminal '-
int value 6 pinguino.analog0ead7 '- 84
55 imprimir valor leido en consola
println7 value 84
analogWrite(terminal!alor8
Env$a un valor
anlogo 7P9:8 a un
terminal especifico
del
microcontrolador,
los valores estn
comprendidos entre
1 y '1.-.
terminal indica el terminal
del microcontrolador al que
se enviara el dato.
!alor indica que valor sera
enviado, los valores estn
comprendidos entre 1 y
'1.-.
Esta funcin no retorna
ning%n valor.
import /ypermedia.pinguino.34
55 conectar a la tarjeta
Pinguino pinguino 6 ne+ Pinguino7t/is84
55 envia el dato '11 al terminal ''
pinguino.analog9rite7 '', '11 84
clear()
Coloca en 1 todos
los terminales del
microcontrolador.
esta funcin no retorna
ning%n valor
digitalRead(terminal)
;ee 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 1
7;<98 o '7=>?=8. 2' en caso
de un error.
import /ypermedia.pinguino.34
55 conectar a la tarjeta
Pinguino pinguino 6 ne+ Pinguino7t/is84
55 lee el valor digital del terminal 1
int value 6 pinguino.digital0ead7 1 84
55 imprime el valor leido en consola
println7 value 84
digitalWrite(terminal!alor)
Escribe un dato
digital 1 7(*<8 o '
7(;"<8 a un
terminal especifico
del
microcontrolador.
terminal indica a terminal se
escribir el dato digital.
!alor indica que estado
lgico se escribir en el
terminal, para indicar un
estado bajo se env$a 1 o
;<9 y un estado alto ' o
=>?=.
Esta funcin no retorna
ning%n valor
import /ypermedia.pinguino.34
55 conectar a la tarjeta
Pinguino pinguino 6 ne+ Pinguino7t/is84
55escribir un alto a el terminal 1
pinguino.digital9rite7 1, Pinguino.=>?= 84
log("a#ilitar)
Sirve para indicar el
estado de cone@in
con la tarjeta
pinguino.
"a#ilitar indica si se /abilita
o no los mensajes de estado
por consola, para /abilitarlos
se coloca true y para
des/abilitar se coloca false.
Esta funcin no retorna
ning%n valor.
import /ypermedia.pinguino.34
55 /abilita mensajes de consola
Pinguino.log7 true 84
55 conectar a la tarjeta
Pinguino pinguino 6 ne+ Pinguino7t/is84
Programa 'ue se descarga en pinguino
int i;
uchar todo,mode,pin,value;
unsigned char buffer[2];
int temp;
int endstring;
void clear();
void setup() {
for( i=0; i<; i!! ) pin"ode( i, #$%&$% );
for( i=2'; i<=2(; i!! ) pin"ode( i, )*&$% );
for( i=2+; i<=2; i!! ) pin"ode( i, #$%&$% );
clear();
,
void loop() {
if ( $-./available() ) {
if ($-./read()==0!0){
todo =$-./read();
if ( todo==010 ) clear();
if ( todo==020 ) {
mode = $-./read();
pin = $-./read();
value = $-./read();
if ( mode==030 ) digital2rite( pin, value );
if ( mode==040 ) {
temp=value!($-./read()52+6);
analog2rite( pin, temp );
,
,
if ( todo==070 ) {
mode = $-./read();
pin = $-./read();
if ( mode==030 ) {
buffer[0] = digital7ead( pin );
$-./send( buffer, ' );
,
if ( mode==040 ) {
temp = analog7ead( pin );
buffer[0]=temp;
buffer[']=temp82+6;
$-./send( buffer, 2 );
,
,
endstring=$-./read();
,
,
,
void clear() {
for( i=0; i<; i!! ) {
digital2rite( i, 9#2 );
,
for( i=2+; i<2:; i!! ) {
digital2rite( i, 9#2 );
,
,

Vous aimerez peut-être aussi