P.O.V.

“Persistence of vision” (persistencia de la visión), es el efecto por el cual una serie de imágenes estáticas son percibidas como una imagen animada, por ejemplo en el cine, los fotogramas de una pelicula, o como una serie de imágenes son percibidas como una sola si se suceden en los tiempos adecuados. Este efecto, tradicionalmente asociado a la retina, ahora se sabe que es debido a como el cerebro procesa la información visual. Bien, se suelen llamar POV’s a los sistemas que juegan con este efecto. Uno de los más de moda ultimamente son los “air writers” algo asi como dibujos en el aire.

El otro dia construí uno con el Arduino para probar el efecto en casa… 5 leds verdes, un arduino, cable para los puentes y una placa de prototipo sin soldadura. Defines una fuente, en este caso de 5×3 (con los pixeles horizontales dobles) y envias cada columna muy rapidamente a los leds. Al mover el conjunto tienes tu efecto. Como siempre una imagen vale más que mil palabras:

POV

La foto está tomada con una exposición de 4 segundos y en la oscuridad (salvo la luz que entraba por a puerta detrás de la camara… ).

Programador ICSP AVR

programador-paralelo.jpgAquí está el programador AVR que me he construido, es muy sencillo, está basado en el programador paralelo de ALF, y es compatible con él en el AVRDUDE, así que para programar con él, solo hace falta poner el modelo -c alf en la linea de comandos del AVRDUDE y listo. Es un programador paralelo standard, solo añadiendo un buffer para convertir los niveles del puerto paralelo, y unos leds de estado. Adjunto los esquemas del PCB y la lista de componentes.programador_y_placa.jpg

Placa principal, máscara de componentes
Placa principal, cara inferior.

Componentes: IC1: buffer séxtuplo 4050N, R1-R4: resistencias 1K 1/4W, LED1-4 LED standard 5mm de diferentes colores, C1: condensador cerámico 10pF… un conector SubD 25, y pines de tira para el conector ICSP y la alimentación.

Para la placa ICSP que posteé en la entrada anterior:

Placa ICSP, cara superior
Placa ICSP, cara inferior
Placa ICSP, máscara de componentes.

Y los componentes: Zócalos torneados de 8, 20, 28 y 40 pines (si no encontrais alguno como me pasó a mi, podeis usar tiras de pines torneadas), X1: cristal de 4Mhz, C1 y C2: condensadores cerámicos de 22pF, LED de 3mm, R1 resistencia de 200 Ohm y pines para el conector ICSP.

Utilizo zócalos torneados porque se pueden soldar bastante bien a las pistas de la cara superior, al no llegar el plástico hasta abajo como en los zócalos normales.

PCB’s de doble cara

placa-icsp.jpgMi primera placa de doble cara :-) Se pueden ver al trasluz las pistas de la cara delantera. La verdad ha quedabo bastante bien, tenía miedo de la alineación, pero con tres agujeros que hice para alinear laplaca-icsp-montada.jpg segunda cara, ha quedado genial. Estoy haciendo las placas usando la transferencia de toner con la plancha de la ropa, y la verdad, salvo alguna vez que se despega una que otra pista, van saliendo bien. Esta placa es para tener unos zocalos estandard de 8, 20, 28 y 40 pines configurados según los micros más usuales de AVR para hacer ICSP, asi los programo sin problemas usando el programador paralelo que me he contruido. Postearé el programador la siguiente vez :-)

LCD Serial – 16F84A

lcd-serial.jpegMi primer proyecto con PIC’s. Se trata de un interfaz serie (UART) para comunicar con un LCD de matriz (de los basados en el controlador de Hitachi). Utiliza un PIC 16F84A que recibe los datos serie a traves de una patilla (2400Bps, 8N1), y se los manda al LCD utilizando el protocolo de 4 bit de datos, con lo que todavía quedan patillas libres por si se quisiera hacer otra cosa, (que no es el caso). La idea es de usarlo conjuntamente con el Arduino, asi solo gasto una patilla del Arduino para controlar el LCD.

El protocolo es muy simple, si recibe un caracter ascii cualquiera, lo manda como carácter a la pantalla LCD a la posición actual del cursor, a no ser que sea el carácter 0xFE que entonces lee el siguiente byte y lo manda como código de control al LCD.Al iniciarse, el PIC manda el texto “Ok.” a la pantalla del LCD para comprobar que funciona correctamente, asi que para cualquier aplicación lo primero seria mandar el código de control de “limpiar pantalla” ;-)

lcd-serial_2.jpgAdjunto los esquemas del circuito y el diseño del PCB, así como el programa del PIC, por si a alguien le sirve de ayuda. En las pruebas estoy usando un 16F84A/04 y de hecho el circuito utiliza un cristal de 10Mhz, a la que tenga acceso a un /20, lo probaré a 20Mhz para ver si funciona bien a 9600bps, que a 10Mhz tuve problemas de timing.

Los archivos:

LCD Serial – PCB – Pistas
LCD Serial – PCB – Componentes
LCD Serial – Programa del PIC (2400bps)

Los componentes son: Q1: Cristal 10MHz, R1 Resistencia 1KOmh, R2 Potenciómetro 20K, C1 y C2 Condensadores cerámicos de 22pF. El conector del LCD es de 16 contactos (en lugar de los 14 normales) porque mi LCD tiene retroiluminacion y se alimenta en las patillas que estan antes de la “1” normal de GND. Para un LCD sin iluminacion, habria que conectarlo a partir de la patilla 3.