Archivos para marzo, 2014

TV-B-Gone, o simplemente TVBG, es un sencillo dispositivo de control remoto de tipo universal para apagar la gran mayoría de los actuales equipos de TV. Fue creado para permitir a la gente apagar los televisores cercanos en un lugar público. Su inventor se ha referido a este dispositivo como “un dispositivo de gestión ambiental“. Aunque puede requerir hasta 73 segundos para que el dispositivo encuentre el código correcto para un determinado TV, los televisores más populares se apagan en los primeros segundos.

Historia
TV-B-Gone fue inventado por Mitch Altman, y es vendido por su compañía Cornfield Electronics. Altman fue uno de los pioneros de la realidad virtual, trabajando con Jaron Lanier en VPL Research, y fue durante su investigación en este campo que empezó a creer en el poder hipnótico de los programas de televisión. El modelo estándar de TV-B-Gone consiste en un LED IR, dos baterías CR2032 y un circuito integrado que contiene la base de datos con los códigos de encendido/apagado (códigos del botón “POWER”) de los diferentes televisores, en un gabinete plástico.

Modelos
TV-B-Gone Pro SHP
TV-B-Gone Pro SHP (Super High Power) es la última versión de este dispositivo. Es considerablemente más potente que el modelo estándar, posee 8 LEDs infrarrojos y permite apagar televisores ubicados a 100 metros de distancia. TV-B-Gone Pro SHP permite seleccionar entre códigos de “POWER” Americanos y Europeos.
La reciente invención del LED IR mayor a 1W de potencia en 850nm y 970nm hace posible una versión en miniatura de largo alcance. Este dispositivo puede ser considerado una forma de DDoS infrarrojo si se combina con otras técnicas.

TV-B-Gone Kit
En varias convenciones de hackers Mitch Altman ha dado talleres que permiten a los participantes construir su propio TVBG usando el kit TV-B-Gone de Adafruit Industries. Alrededor de enero de 2008, Adafruit Industries lanzó un kit para construir un TV-B-Gone de código abierto.

Nuestro TV-B-Gone
Luego de la reseña anterior y considerando que seguramente más de un lector ya sabe de qué se trata la presente publicación, más preámbulos no son necesarios.

Nuestra versión de TV-B-Gone será similar al modelo “TV-B-Gone Pro SHP”. Utilizaremos una placa Arduino Pro Mini en su versión de 5V/16MHz, sus reducidas dimensiones físicas y su bajo consumo de energía hacen a esta placa ideal para este tipo de aplicaciones. Es importante tener en cuenta que a la hora de trabajar con esta placa será obligatorio contar con un “Adaptador USB – UART TTL” (ver Programando Arduino Pro Mini con Adaptador UART TTL CP2102). Además contará con 4 LEDs IR de 5mm cuya longitud de onda será de 940nm, dos LEDs IR serán de haz ancho y los dos restantes serán de haz angosto. También dispondrá de un pulsador para activar la transmisión de códigos de “POWER” y un interruptor para la selección entre códigos de “POWER” Americanos y Europeos.

Lista de Componentes
1 Arduino Pro Mini 5V 16Mhz
1 Pulsador tipo “push button” 6mm [4 terminales]
1 Transistor PN2222A
2 LEDs IR 5mm 940nm haz ancho [de apariencia azulino]
2 LEDs IR 5mm 940nm haz angosto [de apariencia blanco]
4 Resistencias 120Ω 0.25W
1 Resistencia 1KΩ 0.25W
1 Interruptor SPST pequeño [opcional]

Antes de comenzar con el montaje nos aseguraremos de contar con todos los componentes detallados en la lista para realizar un trabajo sin interrupciones.

En primer lugar, construiremos un pequeño circuito de potencia que alimentará los 4 LEDs IR que serán los encargados de transmitir los códigos de “POWER”. El diagrama esquemático de este circuito se observa en la siguiente imagen:

 
A este circuito lo construí sobre un pequeño fragmento de placa universal, como se muestra en la siguiente imagen:

 
En la imagen se observa, además de los componentes del circuito anterior, un pequeño pulsador tipo “push button”, este pulsador también se conectará a un pin de nuestra placa Arduino y su función será activar la transmisión de códigos de “POWER”.

Habiendo construido exitosamente el circuito anterior, procederemos a interconectar todos los componentes de nuestro TVBG. En este punto se debe prestar especial atención a las conexiones ya que de ello depende el éxito o fracaso de nuestro montaje.

Conectaremos el pin D3 de nuestra placa Arduino Pro Mini al circuito que construimos anteriormente, como se muestra en el diagrama esquemático.

Para activar la transmisión de códigos de “POWER”, conectaremos un terminal del pulsador tipo “push button” al pin D2 de nuestra placa Arduino Pro Mini y al otro terminal de este pulsador lo conectaremos a GND.

Para la selección de zona (América o Europa), conectaremos un terminal del interruptor SPST al pin D5 de nuestra placa Arduino Pro Mini y al otro terminal de este interruptor lo conectaremos a GND.

Llegados a este punto y habiendo realizado exitosamente todas las conexiones anteriores sólo nos falta cargar el sketch correspondiente a nuestra placa Arduino Pro Mini que contiene los códigos de “POWER” y será el encargado de transmitirlos a través de los LEDs IR.

Descargar Arduino TV-B-Gone 1.2 Sketch

Finalmente cargaremos a nuestra placa Arduino el sketch descargado previamente (ver Programando Arduino Pro Mini con Adaptador UART TTL CP2102)

Funcionamiento
Luego de haber cargado exitosamente el sketch, procederemos a verificar el correcto funcionamiento de nuestro TV-B-Gone. Para ello, presionamos una vez el pulsador tipo “push button”. Casi de manera inmediata debería comenzar a destellar el LED conectado al pin 13 de la placa indicando el envío de los diferentes códigos de “POWER”. Destellará una vez por cada secuencia de código enviada. A continuación, activaremos la cámara de video de nuestro teléfono celular y verificaremos si los LEDs se encuentran emitiendo luz infrarroja. Luego de transcurridos 65 segundos aproximadamente, finalizará la transmisión de los códigos de “POWER” y la placa entrará en el modo “Ahorro de Energía”, conocido en Arduino como SLEEP_MODE_PWR_DOWN. Para enviar nuevamente los códigos sólo debemos presionar el pulsador. Para cambiar la zona entre América o Europa sólo debemos conmutar el interruptor SPST conectado entre el pin 5 de la placa Arduino y GND. Si el pin 5 se encuentra “flotando” la zona seleccionada corresponde a América y si se encuentra conectado a GND la zona seleccionada corresponde a Europa.

Conclusiones y MOD personal
Con el montaje anterior he obtenido excelentes resultados utilizando solamente los códigos de “POWER” Americanos, razón por la cual no conecté el interruptor SPST, por lo tanto el pin 5 de la placa Arduino quedó “flotando”. Por otro lado, dado el tipo de gabinete y alimentación del montaje en mi caso particular, resultaba poco discreto presionar el pulsador a cada momento, a veces casi de manera continua, y el destello permanente del LED conectado al pin 13 de la placa podría atraer la indeseable mirada de cierto público perspicaz. Estas razones fueron más que suficientes para comenzar un análisis del código fuente original y realizar las siguientes modificaciones:

Envío continuo de los códigos de “POWER” sin necesidad de presionar el pulsador, por lo tanto se puede prescindir del mismo.
Destello del LED conectado al pin 13 desactivado. No se producen destellos de ningún tipo y dicho LED se encuentra apagado de forma permanente.

Descargar Arduino TV-B-Gone 1.2 Sketch (Mod hardrive9000)

 
Agradecimientos
A mi amigo y compañero wblanck por las observaciones, sugerencias e ideas aportadas durante el desarrollo del proyecto.
A toda la comunidad que apoya de manera continua mis humildes publicaciones y miembros de la comunidad que siempre están presentes a través de comentarios, agradecimientos y mensajes privados.

Ken Shirriff’s Blog Improved Arduino TV-B-Gone

EDIT 19/02/2015

A casi un año de haber ensamblado esta versión de TV-B-Gone (similar al modelo “TV-B-Gone Pro SHP”) utilizando una placa Arduino Pro Mini en su versión de 5V/16MHz y permaneciendo a la fecha 19/02/2015 mi publicación en la primera página de resultados de búsqueda de Google con las palabras claves “tv b gone argentina“, va dedicado este humilde video. Muchas Gracias!!!

Ad astra per aspera.

ADELANTE!