Controlador Inalámbrico para Presentaciones con Arduino – Puntero PowerPoint Sin Cables
Componentes y materiales
| Arduino Leonardo | × | 1 |
| Receptor IR (genérico) | × | 1 |
| Mando a distancia de TV | × | 1 |
Sobre el proyecto
La última vez que tuve que hacer una presentación en PowerPoint, resultó muy frustrante tener que estar todo el tiempo con el ratón en la mano; no está diseñado ergonómicamente para esa función.
Con una nueva presentación titulada "Introducción a Arduino", pensé: ¿qué mejor manera de mostrar algunas capacidades de la placa Arduino que construyendo rápidamente una herramienta de control para PowerPoint?
La primera idea que surgió fue: "¿Por no usar el mando de la TV?" Diseñado para sostenerse en una posición más ergonómica que el ratón (para este caso).

Componentes necesarios
- 1× Mando a distancia de TV
- 1× Arduino Leonardo (también posible con UNO, pero requiere modificaciones)
- 1× Sensor IR (el mío es un VS1838B)
- Opcional: shield casero en placa perforada

Conexión de componentes
El diagrama de conexión es muy sencillo: conecta GND del sensor a GND de Arduino, 5V del sensor al pin 5V de Arduino y el pin de datos del sensor al pin digital 2 de Arduino.

Código
El código se divide en dos pasos. En el primero, leerás las teclas que quieras usar de tu mando a distancia para decodificar la señal IR que emite.
En el segundo paso, usarás la información del paso anterior y asignarás las teclas a sus nuevas funciones como punteros de PowerPoint.
- Descarga la librería IRremote para Arduino e instálala en la carpeta correspondiente. Puedes descargarla desde GitHub. Sigue el procedimiento de instalación recomendado en la página del repositorio.
- Paso 1: Sube el Código 1 a tu Arduino. Abre el Monitor Serie; si todo va bien, verás diferentes números cada vez que pulses una tecla del mando. Anota los números correspondientes a las teclas que quieras usar (en mi caso, las teclas central, adelante y atrás).
- Paso 2: Reemplaza mis números en las estructuras
ifdel Código 2 y súbelo.


Si usas Arduino Leonardo, tras la subida, cada vez que pulses las teclas seleccionadas del mando, actuarán como las flechas adelante/atrás de tu teclado.

En PowerPoint
Abre tu presentación en "Modo Diapositiva"; las diapositivas avanzarán o retrocederán cada vez que pulses las teclas preseleccionadas del mando.
Otras placas Arduino
Si usas otras placas (UNO, Nano, etc.), también es posible, pero requiere cambios: el chip Atmega8U2 (o equivalente) que gestiona la comunicación USB debe reprogramarse. Con Leonardo, Zero y DUE no es necesario, ya que aparecen como teclado/ratón nativos al conectarse al PC.
Hay información al respecto en forum.arduino.cc. Si haces la adaptación, compártela en la página del proyecto para que otros usuarios se beneficien.
Código
PPT_Pointer_Code_2.ino (Control principal)
#include <IRremote.h>
#include "Keyboard.h"
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
int key_pressed;
int last_key_pressed;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Iniciar receptor
Keyboard.begin();
}
void loop() {
if (irrecv.decode(&results)) {
key_pressed = results.value;
Serial.println(key_pressed);
irrecv.resume(); // Recibir siguiente valor
}
if (key_pressed == last_key_pressed) key_pressed = 0; // Evitar repeticiones
if (key_pressed == 18105) { // Cambia este número según tu mando
Keyboard.press(KEY_RIGHT_ARROW);
Keyboard.releaseAll();
}
if (key_pressed == -22951) { // Cambia este número según tu mando
Keyboard.press(KEY_LEFT_ARROW);
Keyboard.releaseAll();
}
last_key_pressed = key_pressed;
}
PPT_Pointer_Code_1.ino (Lectura de códigos IR)
#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
int key_pressed;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
key_pressed = results.value;
Serial.println(key_pressed);
irrecv.resume();
}
delay(100);
}
Esquemáticos


Proceso de manufactura
- Puntero Láser: Diseño, Fabricación y Resumen de Seguridad
- Construya un Mando Universal Profesional para Raspberry Pi con LIRC
- Construye un Spybot controlado por Bluetooth con Arduino
- FlickMote: Mando IR por gestos para Smart Home
- TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
- Mando universal Android con Arduino, 1Sheeld y control IR
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Soluciones de Alimentación Optimizadas para Proyectos Arduino
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso