Arduino PowerPoint Pointer – Kabellose Präsentationssteuerung
Komponenten und Zubehör
| Bauteil | Menge |
|---|---|
| Arduino Leonardo | 1 |
| IR-Empfänger (z. B. VS1838B) | 1 |
| TV-Fernbedienung | 1 |
| Optional: Lochrasterplatine für Shield | 1 |
Projektbeschreibung
Bei meiner letzten PowerPoint-Präsentation war es frustrierend, ständig die Maus in der Hand halten zu müssen – sie ist schlicht nicht für diese Funktion entworfen. Da eine bevorstehende Präsentation den Titel „Einführung in Arduino“ trug, kam mir die Idee, die Fähigkeiten des Arduino-Boards direkt vorzuführen: Ich baute ein schnelles Präsentations-Tool damit.
Der erste Gedanke: Warum nicht die TV-Fernbedienung nutzen? Sie liegt ergonomischer in der Hand als eine Maus für diesen Zweck.
Aufbau der Hardware
Die Verdrahtung ist simpel:
- GND des IR-Sensors → Arduino GND
- VCC (5 V) des Sensors → Arduino 5 V
- Datenpin des Sensors → Digitaler Pin 2 des Arduino
Optional kann ein kleines Shield auf Lochrasterplatine gelötet werden, um die Verbindungen dauerhaft und kompakt zu gestalten.
Software – Zwei-Schritte-Ansatz
Der Code gliedert sich in zwei Phasen:
- IR-Codes auslesen: Mit der Bibliothek
IRremotewerden die Signale der gewünschten Tasten der Fernbedienung dekodiert und über den Serial Monitor angezeigt. - Tasten Funktionen zuordnen: Die ermittelten Codes werden in den
if-Abfragen des zweiten Sketches eingetragen. Beim Drücken der entsprechenden Tasten sendet der Leonardo dann Tastaturbefehle (Pfeil links/rechts) an den PC.
Benötigte Bibliothek
Laden Sie die IRremote-Bibliothek herunter und installieren Sie sie über den Bibliotheksverwalter der Arduino IDE. Beachten Sie die Installationshinweise auf der GitHub-Seite.
Schritt 1: Codes ermitteln
Laden Sie Code 1 hoch, öffnen Sie den Serial Monitor (9600 Baud) und drücken Sie die gewünschten Tasten an der Fernbedienung. Notieren Sie die angezeigten Dezimalwerte.
Schritt 2: Pointer-Logik
Ersetzen Sie in Code 2 die Beispielwerte (18105 für vorwärts, -22951 für rückwärts) durch Ihre notierten Codes. Nach dem Hochladen fungiert der Leonardo als HID-Tastatur: Jeder Tastendruck sendet KEY_RIGHT_ARROW bzw. KEY_LEFT_ARROW.
Einsatz in PowerPoint
Starten Sie die Präsentation im Bildschirmpräsentations-Modus. Die Folien wechseln nun vorwärts/rückwärts, sobald Sie die programmierten Tasten der TV-Fernbedienung drücken.
Andere Arduino-Boards
Bei Boards ohne natives USB-HID (z. B. Uno, Nano) muss der ATmega16U2/8U2 mit einer benutzerdefinierten Firmware geflasht werden, damit sie als Tastatur erkannt werden. Der Leonardo, Zero und Due unterstützen dies out-of-the-box. Details finden Sie im Arduino-Forum.
Quellcode
Code 1: IR-Codes auslesen (PPT_Pointer_Code_1.ino)
#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
int key_pressed;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Empfänger starten
}
void loop() {
if (irrecv.decode(&results)) {
key_pressed = results.value;
Serial.println(key_pressed);
irrecv.resume(); // Nächsten Wert empfangen
}
delay(100);
}
Code 2: Pointer-Logik (PPT_Pointer_Code_2.ino)
#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();
Keyboard.begin();
}
void loop() {
// IR-Signal lesen
if (irrecv.decode(&results)) {
key_pressed = results.value;
Serial.println(key_pressed);
irrecv.resume();
}
// Entprellung: nur bei Wechsel reagieren
if (key_pressed == last_key_pressed) key_pressed = 0;
// Vorwärts (rechter Pfeil)
if (key_pressed == 18105) { // <-- HIER IHREN CODE EINTRAGEN
Keyboard.press(KEY_RIGHT_ARROW);
Keyboard.releaseAll();
}
// Rückwärts (linker Pfeil)
if (key_pressed == -22951) { // <-- HIER IHREN CODE EINTRAGEN
Keyboard.press(KEY_LEFT_ARROW);
Keyboard.releaseAll();
}
last_key_pressed = key_pressed;
}
Schaltplan
Die Schaltbilder zeigen die einfache Verbindung des IR-Empfängers an Pin 2, 5 V und GND.
Herstellungsprozess
- Laserpointer: Design, Fertigung und Sicherheitsübersicht
- Professionelle Raspberry Pi Universalfernbedienung mit LIRC bauen
- Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
- FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
- DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
- Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
- Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Optimierte Stromversorgungslösungen für Arduino-Projekte
- Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse