sábado, 27 de agosto de 2011

PAROCA I - Plataforma Robótica de Carga: Señalización

Tras realizar las pruebas oportunas en una placa de prototipado del Sistema de Señalización de la Plataforma Robótica de Carga, se ha procedido a crear una placa PCB específica compatible con Arduino a fin de poder ponerla en la pila escalable de placas que ofrece la distribución de pines de Arduino Uno.


Visto en una entrada anterior el uso del Shift Register mediante un 74HC595, la presente placa usa solamente 3 pines, el A0, A1 y A2 para disponer de 8 salidas LEDs, 3 para un LED Tricolor de estado, y 5 más de señalización propiamente. Estos 5 LEDs de señalización pueden tener diferentes operativas tan sólo cambiando el software almacenado en Arduino, tal como luces estroboscópicas, de posicionamiento o para simular un intermitente como los de los automóviles.

Placa de señalización

Esquema realizado con la herramienta Open Source Fritzing.
Esquema realizado con el rellenado de cobre.
Placa PCB fabricada por IxDS según la exportación Gerber realizada con mi diseño en Fritzing.
Placa PCB vista inferior.
Placa PCB con los componentes ya soldados. Destacar que el switch (jumper) que se ve en la parte superior izquierda sirven para cerrar o abrir el circuito GND para los 4 LEDs, tal que que si en vez de un jumper ponemos un interruptor, podremos activar el sistema de luces/LEDs manualmente.

Placa de señalización aplicada en el proyecto PAROCA I

Vista individual de las placas que, de momento, forman el robot PAROCA I, siendo estas la de Arduino o cerebro, la de driver motor y la de señalización.
Vista de las placas en su posicion final.

Seguimos trabajando, seguimos innovando !!!!




martes, 9 de agosto de 2011

Uso del chip Shift Register (74HC595) en Arduino

El chip 74HC595 nos permite utilizar una entrada de datos serie, y convertir un byte a 8 salidas en paralelo. Mediante el uso de una entrada de DATA, una de CLOCK y un LATCH, conseguimos con sólo 3 pines de Arduino procesar 8 salidas paralelas digitales.

Destacar que pueden encadenarse varios chips, por lo que si añadimos un segundo chip podemos tener 16 salidas paralelas simultáneas con 2 bytes, y así sucesivamente.


CIRCUITO
Nuestro prototipo para probar la conversión de serie a digital que nos facilita el 595 se basa en el esquema siguiente:

PROTOTIPO
El prototipo implementado en una protoboard tiene éste aspecto.


CÓDIGO FUENTE DE ARDUINO
La prueba se basa en el sistema de señalización del Proyecto PAROCA I, en que se muestran 5 LEDs en frecuencia estroboscópica (10ms / 64 ms) y un LED tricolor en que se mostrará el estado de la batería.

 /*  

Proyecto.....: PAROCA I
Descripcion..: Plataforma Robotica de Carga
Autor........: Ricard Forner (RFKSolutions.es)
Version......: 0.0.1
Fecha........: 03/08/2011
Código fuente: Arduino
*/
//Pin conectado a latch pin (ST_CP) del 74HC595
const int latchPin = A1;
//Pin conectado a clock pin (SH_CP) del 74HC595
const int clockPin = A0;
//Pin conectado a Data in (DS) del 74HC595
const int dataPin = A2;
//// Luces intermitentes / strobe
int seqLED[5] = {8+16, 8+16, 32+64, 32+64, 128};
//// Luces estado bateria
const int batteryOk = 2; // verde
const int batteryLow = 1; // rojo
int batteryStatus;
void setup() {
initLuces();
batteryStatus = batteryOk;
}
void loop() {
doLuces(batteryStatus);
}
void initLuces() {
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void doLuces(int status) {
for (int n=0; n<5; n++) {
digitalWrite(latchPin, LOW);
delay(10);
shiftOut(dataPin, clockPin, MSBFIRST, status+seqLED[n]);
digitalWrite(latchPin, HIGH);
delay(12);
}
}



VÍDEOS
Como resultado de lo publicado en el presente artículo, un par de vídeos de su funcionamiento.


Video de una rotación secuencial de los LEDs.