Anuncio
Esconda esto en su sala de estar y ría mientras la caja TiVo aparentemente está poseída por un demonio que exige mirar canales de compras cursis. Si su objetivo final es apagar todos los televisores del vecindario o construir un televisor universal Control remoto controlado por Siri, este proyecto sirve como un excelente punto de partida para aprender los conceptos básicos del control IR y receptores.
En esta "broma", crearemos un dispositivo que graba y luego reproduce una serie de comandos remotos IR. Funcionará con cualquier dispositivo que use un control remoto IR, o incluso una combinación de dispositivos a la vez, grabando hasta 10 pulsaciones de teclas.
Componentes
Aquí hay una lista de las cosas que necesitará para este proyecto:
- Arduino y cables de conexión
- Receptor de infrarrojos, como TSOP382, pero debería poder encontrar uno compatible en la electrónica antigua. Saqué el mío de un controlador de iluminación RGB de repuesto. Por lo general, tienen 3 patas y son de color negro, con un lado que parece un LED que se ha cortado por la mitad y se ha pegado. Estoy seguro de que hay una palabra técnica para eso.
- LED de transmisor IR, como TIL38; nuevamente, estos son bastante comunes, pero compré uno nuevo de alta potencia de Maplin; se ven idénticos a cualquier otro LED, ¡así que asegúrese de no mezclarlos en su kit electrónico!
- Resistencia adecuada para su LED IR: use esto Calculadora LED dado el voltaje de suministro (5 V del Arduino) y el voltaje directo y la corriente de la hoja de datos del LED (generalmente alrededor de 1.2 V a 20 mA). Esto salió como 220 ohmios en mi caso.
- Pulsador, y pulldown de 10k y resistencias de 100 ohmios.
- Descargar el Biblioteca remota IR por Ken Shirriff de Github y colocar en tu Arduino / Bibliotecas carpeta. También hay un código de ejemplo que usaremos que luego debería ser accesible desde Arduino Abierto -> Bibliotecas menú.
Alambrado
Aborde este circuito en tres partes: el interruptor es un poco complicado, pero todo lo demás es fácil. Recuerde que la pata corta del LED con la cara plana es el cátodo (negativo o a tierra); la pata larga es el ánodo (positivo).
Recibiendo Señales
Sigue adelante y abre el bibliotecas / IRremote / IRrecvDemo código de ejemplo Asegúrate que RECV_Pin está configurado correctamente, compila y carga, luego abre la consola serie a 9600 baudios. Tome cualquier control remoto que tenga a mano, apúntelo a su receptor y comience a presionar los botones. Diferentes botones producirán diferentes códigos; algunos indicarán una pulsación larga con el código inicial y luego FFFFFF, mientras que diferentes controles remotos simplemente pueden repetir el código nuevamente.
Para obtener una vista más detallada de los datos que se reciben, eche un vistazo a IRrecvDump ejemplo, que indicará tanto el tipo de señal recibida (NEC de 32 bits en este caso) como los valores sin formato. Es bueno saberlo, pero en la mayoría de los casos solo querrás los valores decodificados.
Repetir una señal
No vamos a escribir nuestra broma hoy desde cero, así que ve y mira el IRrecord ejemplo. La complejidad del código aumenta enormemente aquí, pero en su mayoría se trata de manejar diferentes tipos de códigos IR. Básicamente, esto es lo que sucede dentro del ciclo:
- Verifique que se presione el botón, reproduzca la señal almacenada actualmente si es así y repita cada 50 ms hasta que se presione.
- Si no se presiona y se detecta una señal, regístrela.
La mayor limitación de este ejemplo es que solo funciona con un código a la vez, por lo que si presiona otro botón remoto, sobrescribirá el último. El botón simplemente reproduce la última señal que recibió. Compila y ejecuta el código para que puedas probar con este repetidor de señal básico. Para reproducir una sola señal, funciona bien, pero es de poco uso práctico en una broma o no.
La broma!
Modifíquelo ligeramente para grabar 10 o más señales traviesas. Puedes encontrar el código modificado completo aquí, pero aquí hay un resumen de los cambios que hice en caso de que quiera probarlo usted mismo:
- Defina 3 nuevas matrices de tamaño 10 para almacenar un conjunto de señales cada vez que se detecte una, y un número entero para almacenar el tamaño de esas matrices.
- Almacene un índice de dónde estamos actualmente en esa matriz. Aumente el índice cada vez que se detecte una señal, pero no aumente si la señal es un código repetido.
- Un valor booleano que detiene el registro de más una vez que hemos alcanzado el máximo.
- Un booleano para indicar si estamos en modo de reproducción o no, en lugar de tener que mantener presionado el botón; También modificó la lógica del botón para alternar esto.
Tenga en cuenta que el indicador LED en el Arduino (pin 13) se activará una vez que la memoria esté llena. En este momento, debe grabar 10 pulsaciones de botones, nada menos, y el modo de reproducción esperará 1 segundo entre cada repetición de botón. Aquí está en acción:
Puedes jugar a hacer más bromas IR, o considerar esto como un buen comienzo en un juego más épico. proyecto de domótica Guía de automatización del hogar con Raspberry Pi y ArduinoEl mercado de la automatización del hogar está inundado de sistemas de consumo caros, incompatibles entre sí y costosos de instalar. Si tienes un Raspberry Pi y un Arduino, básicamente puedes lograr lo mismo en ... Lee mas ; y no te olvides de ver todos los demás Proyectos Arduino. ¡Comparte tus creaciones (o problemas) en los comentarios y muestra tu aprecio por este artículo compartiéndolo en tus redes sociales favoritas!
Credito de imagen: DaGoaty
James tiene una licenciatura en Inteligencia Artificial y está certificado por CompTIA A + y Network +. Es el desarrollador principal de MakeUseOf, y pasa su tiempo libre jugando VR paintball y juegos de mesa. Ha estado construyendo computadoras desde que era un niño.