POV: Escribe con luz en el aire

El POV (Persistence Of Vision) es un fenómeno visual descubierto por el científico belga Joseph Plateau que demuestra cómo una imagen permanece en la retina humana una décima de segundo antes de desaparecer completamente. Esto permite que veamos la realidad como una secuencia de imágenes que el cerebro "enlaza" como una sola imagen visual móvil y continua. El cine aprovecha este efecto y provoca ese "enlace" proyectando más de diez imágenes por segundo (generalmente 24), lo que genera en nuestro cerebro la ilusión de movimiento.

La persistencia retiniana es una característica de nuestro ojo que provoca que las imágenes que se observan no se borren instantáneamente. Es una característica que hace que las imágenes que vemos queden guardadas por un instante en el cerebro. Por ejemplo, al hacer girar un fósforo podemos lograr que éste parezca formar un círculo de fuego en el aire, al igual que si lo hacemos con un LED encendido.

Una sola línea de LEDs en movimiento

Si a dicho LED o a un conjunto de ellos los activamos de manera apropiada en tiempo y forma, obtendremos, gracias a la persistencia de nuestra visión, imágenes que parecen estar flotando en el aire. En el mundo de los juguetes y/o gadgets es muy común encontrar relojes, despertadores, indicadores de saludos navideños, mensajes de amor y cuantas cosas se nos puedan imaginar que sean mensajes transmisibles mediante la palabra o las imágenes. Esta clase de productos basan su principio en los scroll-texts o pasa-mensajes que podemos ver en los autobuses, en las entradas del metro, en los comercios y en cada vez más lugares. En el caso de los carteles, una línea (o columna) se enciende a la vez y su traslación rápida y continua, con el encendido apropiado, van formando el mensaje que vemos y leemos.

En el caso del circuito presentado hoy tenemos una sola línea de LEDs que, al moverse en el espacio, formarán las más diversas imágenes o frases que se nos ocurran y que nuestra imaginación pueda aplicar. En vez de ser muchas líneas contiguas, imprimiremos movimiento de traslación a una sola y la persistencia de la imagen en nuestra visión hará el resto.

El Circuito
Podemos practicar con un PIC 16F84A y realizar con él nuestros primeros desarrollos que iremos perfeccionando y ampliando según nuestras necesidades y gustos. Con un cristal de 4Mhz y un transistor BC548 conectado a cada salida del puerto B, podemos armar un circuito muy sencillo, alimentado a baterías, al que haremos rotar colgado de nuestro dedo índice, como si fuese un llavero.

Circuito de nuestra aplicación POV

Hemos aplicado en T1 dos diodos amarillos para que sirvan de borde llamativo de color, y el texto aplicado ha sido muy sencillo: consiste en un saludo a todos los amigos de NeoTeo. Sin embargo, si utilizamos los pines libres del microcontrolador, podemos colocar memorias EEPROM vía I2C capaces de almacenar mensajes que se vayan alternando en el tiempo, o también podemos colocar un RTC, como el DS1307, para que entre los mensajes aparezca la hora, por mencionar algunos ejemplos.

Aplicando una velocidad apropiada de rotación según la velocidad del encendido de los LED podemos obtener una visión muy interesante de un mensaje escrito en el aire. A modo de consejo, te recomendamos una construcción robusta y bien fuerte ya que si comienzas a experimentar (como lo hizo el autor de esta nota) con un montaje rotativo sobre el dedo, debemos decirte que el proyecto siempre tiende a salir eyectado golpeando sobre paredes cercanas y aterrizando de manera poco elegante. Cuida mucho este detalle si vas a hacer demostraciones en público de tu “giro-dedo” o como decidas bautizarlo.

La construcción que hemos aplicado al desarrollo está basada en una placa experimental para poder jugar con distintas variables de programación y disposiciones mecánicas, como pueden ser las distancias entre LEDs para obtener caracteres más grandes o más pequeños y también para que posean una versatilidad suficiente como para instalarlos en un álabe de algún ventilador o para acoplarlo fácilmente a cualquier sistema mecánico de elevada velocidad de rotación.

La variedad de usos, aplicaciones, textos o imágenes que se pueden mostrar a partir de este sencillo principio son increíbles y están sólo limitadas por nuestra imaginación. Observa estos videos y luego nos cuentas:

Programando el PIC
Nuestro programa será muy elemental y sencillo. Su extensión dependerá de la cantidad de texto que tengamos en mente colocar y mostrar. Una de las opciones posibles es mostrar un solo texto de manera permanente, y la otra es intercambiarlo entre otros con intervalos regulares de tiempo. También puedes dedicarle más tiempo a la presentación de uno por sobre otros y, por sobre todas las cosas, cuando te expandas en la cantidad de texto a mostrar deberás cuidar que el mismo quepa dentro del microcontrolador que utilices. Si el PIC 16F84A del ejemplo te queda chico, puedes pasarte a un 16F628, que es compatible pin a pin y posee el doble de memoria, lo que te permitirá duplicar por supuesto la cantidad de texto mostrado.

Como siempre, encabezaremos el programa con el dispositivo a utilizar y el valor de cristal necesario, que en nuestro caso 4 Mhz es suficiente. Luego, le asignamos un alias al puerto B y listo! Comenzamos a enviar bytes (las ocho salidas del puerto) a intervalos regulares de tiempo.

Encabezado del programa

Dos milisegundos será un tiempo suficiente para que se encienda la salida que queremos mostrar. Si colocamos el sistema sobre algún sistema de rotación muy veloz, es probable que debamos ajustar este valor para que no se produzca un efecto de movimiento del texto hacia delante o hacia atrás. Observen que el primer bit no está en estado alto, lo que significa que esta porción de programa pertenece a la imagen que no tiene el borde amarillo encendido. Otro detalle importante es dejar un espacio de dos a tres “líneas” entre letra y letra para que estas no se encimen entre sí dificultando la lectura.

Método elemental para "dibujar" las letras

Al final del texto deseado bastará con colocar la instrucción GOTO INICIO o un intervalo de tiempo con las salidas apagadas para dejar un tiempo vacío y que el reinicio del texto vuelva a producirse siempre en el mismo lugar de la circunferencia. Si observamos el gráfico vemos que armar las letras es algo muy sencillo y que, en una tarde de ocio, podemos armar en familia un divertido entretenimiento, a la vez que aprendemos un poquito más acerca de la persistencia retiniana y del funcionamiento de los microcontroladores.

Los programas y Hardware más elaborados utilizan sensores para conocer la posición espacial del sistema (en el primer video se nota claramente) y así saber el ángulo de inicio del texto para que éste comience a desplegarse siempre desde el mismo lugar, sin importar la velocidad de giro del brazo que soporta los LEDs. Otra mejora aplicable es la utilización de LEDs RGB (tres colores) que sean controlados por distintos canales de PWM para obtener una imagen multicolor, como en el segundo video. Allí ya no bastará un estado alto o bajo a la salida sino que habrá que controlar los porcentajes de encendido de cada color para obtener el punto exacto del matiz deseado. Pero como dijimos, son aplicaciones más elaboradas y escapan al propósito de este artículo y de este gadget en particular.

Experimenta distintas extensiones de texto, distintos intervalos entre filas para lograr palabras extendidas o comprimidas, variadas alturas de letras, en fin, las cartas están sobre la mesa, ¡ahora a divertirse!

Deja tu voto

4 points
Upvote Downvote

Total votes: 16

Upvotes: 10

Upvotes percentage: 62.500000%

Downvotes: 6

Downvotes percentage: 37.500000%

92 Comments

Deja una respuesta
  1. Guau!! me has traido recuerdos agridulces…!!
    Hace tres años mas menos, me aventuré a cunstruir y programar uno de estos bichos curiosos.
    Todo comenzó cuando un amigo llegó contandome algo que había visto en un bar, era una barra de leds azules de alto brillo que estaba siempre encendida, pero al mover la vista, esa barra de leds escribía ante sus ojos la palabra "VODKA", y un par de segundos despues, cambiaba esa palabra por la marca de dicho vodka. En ese momento, yo estaba recien adentrandome a programar microcontroladores PIC, comenzando con el mítico 16F84, asi que mi amigo se consiguió 8 leds amarillos de alto brillo, y yo me puse a programar, a ver que resultaba. La palabra escogida fue "PISCO" (no alcanzaba para vodka…). Despues de hartos intentos, logramos el efecto deseado, la barra de leds está fija, mientras uno mueve la vista, en condiciones de luz aceptables para el efecto de persistencia (media luz de un bar). Pero despues pensamos "¿para que mover la vista, si los leds tambien se pueden mover?", asi que retomamos las pruebas, que no fueron muchas, ya que tenía el prototipo funcionando. La ocación para construir el definitivo fue para un regalo de cumpleaños para mi pareja, asi que en ese gadget fue todo experticia y corazón, con lo que podrán imaginar la dedicación que le puse para fabricarlo. Por eso el recuerdo agridulce, la satisfacción de verlo funcionar, y la pena que que esa relación no resultase…
    Bueno, para el siguiente post, los detalles tecnicos.

  2. oye mario buen proyecto siempre quise saber como se hacien y ahora ya se como hacer uno lo probare para lucirme con los valedores

  3. Buen dia Mario,
    De nuevo se lucio con este articulo, lo hace ver tan sencillo que las ganas de hacerlo son muchas, ademas la creatividad empeza a volar. Muchas gracias por estos proyectos.

    • Hola Yesbond !

      Gracias por tus comentarios y gracias a todos por la buena recepción que le dan a los artículos.
      La idea es ésa Yesbond. Enfocar las cosas desde un punto de bien simple y didáctico para lograr el entusiasmo y fomentar la creatividad de todos. Yo dándoles ideas a ustedes y viceversa.

      Saludos ! 🙂

  4. hola excelente tu articulo…
    oye me encantaria hacer ese proyecto pero la falla es que no se nada de electronica me podrias enviar algunos links donde haya mas informacion sobre esto; algo como para dummies jejejeje 🙂
    como dijo yesbond se ve super facil de hacer pero la parte de como se programa el pic no tengo idea
    Gracias y de nuevo excelente articulo

  5. Muchas gracias Mario por este artículo.
    Ya logré realizar el proyectico y está bastante chévere. Lo hice pero en "assembler" porque es el que mejor sé usar.

    Ya hecho éste proyecto sencillo procedo a realizar uno que tenga varios colores y con comunicación con la PC para poder cambiar el mensaje de manera más cómoda.

  6. Hola Ciul !

    Trasnferir energía a las ruedas es una tarea muy compleja que nadie resuelve según un patrón constante. Es decir, todos hacen cosas distintas para alimentar los circuitos cuando se colocan en las ruedas de una moto, de un coche o de una bicicleta.

    Principalmente hay tres métodos de los cuales se desprenden las mil y una implementaciones que te imagines y son; 1) Alimentación a baterías recargables en cada rueda, 2) mediante el sistema de delgas en un colector fabricado artesanalmente alrededor del eje de la rueda como si fuese un motor eléctrico y a través de las cuales se le le pasa la energía con "escobillas", 3) mediante la transferencia de energía construyendo un convertidor DC-DC "custom" trabajando con PWM a alta frecuencia.

    Cómo se lee todo éso en cristiano?
    Un ejemplo del que usa baterías:

    http://zuiderzeemuseum.netfirms.com/url5.php?url=http://www.ianpaterson.org/projects/spokepov20050704/index.htm

    otro

    http://zuiderzeemuseum.netfirms.com/url5.php?url=http://drewish.com/blogger/archives/2005/03/17/2sided_pov_toy.html

    Un ejemplo del que usa el sistema de colector cual si fuese un motor eléctrico:

    http://zuiderzeemuseum.netfirms.com/url5.php?url=http://people.freenet.de/vordermayer/pr_start_e.htm

    Y un ejemplo del que usa el sistema de transferencia de energía como si fuera una fuente DC-DC había en esta página :

    http://www.luberth.com/analog.htm

    pero han sacado los enlaces. De todas formas encontrarás en ella mucha más info de la que pueda pasarte yo por aquí.
    De todas formas podemos seguir charlando sobre el tema cuando quieras.

    En mi criterio, lo más aconsejable para que no se te complique la construcción es que utilices baterías recargables en cada rueda.

    Saludos Cordiales

  7. alguien me dice los materiales que necesito para hacer lo de arriba??? (es que no estoy muy familiarizado con los planos esos t.t) y como es que programo en el pic
    mil disculpas por mi ignorancia y gracias de antemano

  8. Mario, muchas gracias por este posts, estoy por armarlo hoy a la noche. Me queda una duda sobre el conector ICSP. Para que lo usas? imagino que puede ser para reprogramar el PIC pero no estoy seguro.
    Gracias por el post y por la respuesta.

  9. Hoy fui a comprar todos los materiales con esta lista:

    —Resistencias—:
    * 1 x 22 Ohms
    * 1 x 220 Ohms
    * 7 x 470 Ohms
    * 1 x 4.7K
    * 8 x 1K
    —Diodos—:
    * 1 x 1N4007
    * 1 x 1N4148
    —Capacitores—:
    * 2 x 100 nano faradios
    * 1 x 100 micro faradios
    * 1 x 10 micro faradios
    * 2 x 22 pico faradios
    —Transistores—:
    * 8 x BC548
    —Regulador de voltaje—:
    * 1 x 7805
    —Cristal—:
    * 1 x 4MHz
    —LEDs—:
    * 7 x LED rojo
    * 2 x LED amarillo
    —Zocalo—:
    * 1 x zocalo 18 pines (2 x 9)
    * 1 x zocalo bateria 9V.
    —PIC—:
    * 1 x PIC16F84A
    —Switch—:
    * 1 x ficha on/off
    —Placa universal—:
    * 1 x placa universal donde armar el circuito. el tamaño dependera de como dispongas las cosas.

    Del plano obvie el conector ICSP y agregue un zocalo de 18 pines para poder montar y desmontar el PIC para re-programarlo desde mi PIC programer.

    Espero que esto les sirva. si cometi algun error por favor comenten para que el que lo necesite tenga la lista bien.

    • Buen trabajo Santilomb ! 🙂

      La conexión ICSP es: In Circuit Serial Program, es decir, que de esa forma no necesitas retirar el PIC del circuito para programarlo. En nuestro caso utilizamos el GTP USB Plus y programamos el micro sin retirarlo del hardware.

      Saludos ! Éxitos con la construcción !

  10. Mario, gracias por la info. yo actualmente uso un PIC programer del tipo JD que arme la semana pasada. Este GTP USB Plus suena muy interesante pero veo que hay que comprarlo, existe alguna forma de crearlo por nuestros propios medios?
    gracias!!
    cuando termine el POV voy a subir imagenes para que lo vean por si a alguno le sirve.

  11. Bueno, les comento que tengo el circuito listo pero no puedo probarlo porque no se como pasar mi prog a HEX para subirlo a mi PIC via el WINPIC. Alguien me puede dar una mano o por lo menos un con hex de ejemplo para probarlo?
    gracias!!!

  12. AL final cree mi propio ASM teniendo en cuenta algunas cosas que vi por la web.
    Alguno podría validar si esto me sirve? Estoy muy ansioso por probar el circuito.

    ;##################################
    define OSC 4 ;especifica que se va ha utilizar un cristal de 4 Mhz.
    @ device XT_OSC ;oscilador externo para programacion.
    trisb=0
    inicio:
    Portb=%11111111
    PAUSE 2
    Portb=%10000001
    PAUSE 2
    Portb=%10000001
    PAUSE 2
    Portb=%11111111
    PAUSE 2
    Portb=%10000001
    PAUSE 2
    Portb=%01000010
    PAUSE 2
    Portb=%00100100
    PAUSE 2
    Portb=%00011000
    PAUSE 2
    Portb=%00100100
    PAUSE 2
    Portb=%01000010
    PAUSE 2
    Portb=%10000001
    PAUSE 2
    GOTO inicio
    end

  13. Hola a todos soy estudiante de electrónica y me gustaría saber un poco más acerca de este tema.

    Se puede realizar este proyecto en código PIC ensamblador? Con el pic16f84a ?

    • El dia de hoy termine mi POV, lo modifique ya que al usar otro PIC programer el conector ICSP no lo uso. Al go a tener en cuenta si no tenes idea de PICs como yo al iniciar, es que este pic usa el PIN 5 conectado a tierra y el PIN 14 a los 5 Vcc. En mi caso como no puse el conector ICSP tambien conecte el PIN 4 a Vcc.
      tengo fotos y video pero no veo por donde subirlo. Si alguien me dice como las subo.

      • #32 amigo me podrias pasar el codigo para las letras es que soy uevo en esto y quisiera saber un poco mas de como saber ke letras hacer con los leds

  14. Hola a todos, se me hace muy interesante éste proyecto, pero tengo problemas con algunos comandos del ASSEMBLER.
    me puedes decir con que compilador compilaste tu código??

    Muchas Gracias

  15. Necesito saber que lenguaje de programacion es el mostrado en el ejemplo
    y tambien que compilador usaron para crear el hex

    tengo el hardware 100% funcionando, solo me falta programar el pic, pero estoy en 0

  16. Excelente, recuerdo cuando en la escuela hice esto, con una fila de leds girando sobre una base para disco y la imagen se proyectaba en un espejo y se veia la palabra HOLA, bueno al principio lo veiamos como en espejo pero despues ya nos salio bien

  17. hola, soy de balcarce buenos aires argentina, hago iluminaciones de eventos necesito saber si la realizacion de este producto es rentable para alquilarlo en 100$ por noche

  18. este proyecta este de lujo, es la primera vez que entro en esta pagina y veo cosas muy intersantes, solo tengo una pregunta si le quito la parte que tengo señalo con rojo osea lo del ICSP no pasa nada verdad

    [url=http://www.imaxenes.com/imagen/801bx580y10001mc46fg.jpg.html]Ver Imagen: 801bx580y10001mc46fg.jpg[/url]

  19. hola amigo me re copo eso quiero armarlo en mi vici necesito si me mendas el plano y los componente… y necesito la interfas para mandarle los datos…grax y espero tu mensj

  20. Hola, sólo por curiosidad, para que te sirven los transistores?? no bastaria con conecta as led’s al PIC y ya sta??
    gracias

    (P.D.: es cojonudisimo eso que has hecho!)

  21. Esto es genial, quiero construir un reloj como el del segundo vídeo.
    muchas gracias por la información me ha servido bastante como pilar para ciertos proyectos, aunque no son la gran cosa pero por algo se empieza.

  22. disculpa qusiera hacer este proyecto como para mi cuarto pero tengo una duda. el codigo de la letras como va. el codigo que pusiste es solo de la letra H?

  23. Disculpen amigos, alguien sabe que programa se utilizo en el Ejemplo anterior para programar el POV??? , es PROTON IDE?? podrian confirmarmelo por favor??

  24. Disculpen.. esta cosa me decia que habia un error en el codigo y lo mande muchas veces por error!! disculpen!! jaja.. Saludos

  25. hola mario excelente tu aporte. lo estoy haciendo con un freescale MC68HC908JK3, en cuanto lo tenga listo te los envio para que lo veas y si queres compartirlo con la comunidad. desde ya muchas gracias.

  26. Muy bueno el proyecto, voy a probar hacerlo, si consigo todo, aca en argentina, pero me quedo una duda… porque en la foto de tu circuito, aparecen tantos transistores?, si no me equivoco, en el circuito electrico hay 2 nada mas

  27. perdonen, hice una pregunta boluda, los 8 transistores son porque por cada pata del integrado que va un led, se le conecta el resistor a la base de un transistor… de nuevo, perdonen la pregunta al pedo

  28. woo! hasta que encuentro alguien que me explico bien… solo tengo una pregunta, no distingo muy bien que es lo que esta abajo donde entra la alimentacion de los 5V y va hacia el RB6 y RB7 del pic?? porfavor me interesa mucho armarlo

  29. Hola como estan buenos dias les escribia para felicitarlos por el fabuloso trabajo muy simple barato y practico muy buenoo FELICITACIONES; escribia tambien para hacerles un pedido si me pordrian facilitar el programa completo para grabar en el pic el orginal ya andando porque la verdad no la tengo muy clara en la programacion y me ayudaria muchisimo desde ya y esperando una pronta respuesta, saluda atte. ASM.

  30. una duda entiendo a todo lo que explicas y el funcionamiento basico pero es que no se como poner las letras un ejemplo de como pondrias HOLA espero puedas gracias

  31. Lo realice el circuito pero programar con que use mikrobmasic mplab y nada muchos errores me puedes mandar el nombre programa para editar y compilarlo y convertirlo hex,

    Gracias me gusto

  32. Hola Mario muy bueno en realidad quisiera preguntarte.
    ¿Como descargo el diagrama si esta en formato HTML, no en JPG y los materiales, abrazos saludos

  33. Hola Mario, es posible el desarrollo de este proyecto con un pic 18F2550 o un 18F4550 ?, es que es lo unico con lo que cuento y en mi pais la comercialziación de PIC es casi nula.

    Saludos.

  34. Hola!! me parece increíble el proyecto, ya he construido el mio, pero tengo problemas con la programación.. me preguntaba su alguien podría ayudarme en esto :c, para mostrar un reloj análogo nada más, por favor por favor si hay alguien que sepa por favor que me preste de su ayuda :c, se lo agradecería mucho.
    gracias..

  35. Hola soy nuevo en esto y tengo una duda. Son necesarios los bc548? he visto otros cktos pov y no llevan transistor, no lo entiendo bien ¿?

  36. hola mario!
    Mirá quizá suene un poco cursi la pregunta pero en mi caso quiero armar algo parecido a esto con la diferencia de que la proyección sería de un reloj propeller analogico. Me vi interesado en esto ya que tengo ahora en un par de semanas una expotecnia y hasta ahora no tubi una buena ayuda con respecto lo que es el circuito o como se utilizan los puertos, que en mi caso utilizo un 16f628a. Las primeras ideas que tengo y que mas o menos me orientaron pero muy poco es: que lleva un sensor contador de vueltas, es decir un foto transistor y un LED que cada vez que pasa la placa x alli envia un pulso y el otro es un RTC o algo asi que es un 1307 que este lo que hace es generar pulsos exactos a frecuencia de 1hz como si fuera un cristal de cuarzo. Bueno mis primeras preguntas son: ¿como hago para que cuando la placa gire que el o los leds prendan en determinado angulo de rotación? y la otra es como es que afecta el 1307 para que puedan prender y/o apagar los leds de manera adecuada para que genere un efecto de rotación de las agujas…
    Bien lo que mas me importa es lo del angulo x ahora osea para que quede en exactitud "por ejemplo" 90º y que justo ahi prenda bueno eso es lo que mas me importa por ahora! Espero ansioso tu respuesta y desde ya muchas gracias!

  37. men, por curiosidad podría tu el autor o alguien que aya hecho el circuito pero mejor seria una foto que muestre la parte trasera del circuito por fa 😀 tengo unas cuantas dudas con el diagrama gracias 😉

  38. ey men me gustaria saber si podrias decirme un poco sobre la programacion ya que soy noob en esto y lo saco en mplab y me manda varios tipos de errores me gustaria saber en q lenguaje lo usas o como le hisistes y estubo bueno el aporte

  39. buen proyecto de electronica. yo soy de 2do año estudio en venezuela voy a utilizar esto como proyecto de electronica pero nesesito que me diga como se alinean los leds por que el diagrama me dice que solo un r9 1k es la que se conecta a todos los leds asi es o no nose mucho de electronica suy practicamente no se nada me ayuda en esa.gracias

  40. hola a todos… me gustaria hacer este proyecto pero soy principiante aunque me defiendo un poco en electronica me gustaria q alguien me colaborara sobre como hacerlo

  41. Hola como estás Mario! Te felicito muy lindo proyecto. Te cuento que lo estoy haciendo para la materia electrónica en la escuela; pero le agregue un motor DC 12v y la mecánica me quedo perfecto, la plaqueta también. El único problema que tengo es a la hora de hacer el código ya que no tengo idea de programación, estuve leyendo mucho y no hay caso. Te agradecería mucho si me podrías enviar el código .hex para ya grabar el PIC y probar mi proyecto! Muchas gracias, espero una respuesta.. saludos!!

    Manuel

  42. justo lo que buscaba , sencillo y bien explicado , espero ver un dia un circuito mas elaborado e igual de entendible como este en hora buena

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *