HomeBright: Smarte Lichtsteuerung per Leap Motion & Arduino UNO
Komponenten und Zubehör
| Bauteil | Anzahl | Hinweis |
|---|---|---|
| Arduino UNO | 1 | LED-Ansteuerung per Firmata |
| Leap Motion Controller | 1 | Handtracking (IR-Kameras) |
| LED (rot, grün, blau, gelb o. ä.) | 4 | Repräsentieren 4 Räume |
| Jumper-Kabel | 10 | |
| Widerstände 220 Ω (für LEDs) | 4 |
Software & Bibliotheken
- Node.js (Runtime für Cylon.js)
- Leap Motion SDK (Treiber & WebSocket-Server)
- Cylon.js Robotics-Framework mit Modulen:
cylon,cylon-firmata,cylon-gpio,cylon-i2ccylon-leapmotion,serialport,firmata
- Arduino IDE (für Firmata-Upload auf Arduino)
Projektidee
Ein Home-Automation-System, das Raumbeleuchtung per Handgesten steuert. Der Leap Motion Controller erfasst Handposition und -haltung. Ein virtueller Grundriss wird auf die Leap-Koordinaten abgebildet: Handflächenposition wählt den Raum, Handhöhe steuert die Helligkeit.

Interaktionslogik
- X/Z-Position der Handfläche → Raumwahl (Quadranten)
- Y-Position (Höhe) → Helligkeit (0–100 %)
- Grab Strength > 0,5 → Licht AUS (Faust), sonst AN
Installation & Start
- Node.js installieren (nodejs.org)
- Leap Motion SDK installieren (developer.leapmotion.com)
- Projektordner erstellen,
package.jsonspeichern,npm installausführen - Arduino mit StandardFirmata flashen (Arduino IDE: Datei → Beispiele → Firmata → StandardFirmata)
- Leap Motion Service läuft (Tray-Icon grün)
- Skript starten:
node homebright-console.js
Code
package.json
{
"name": "homebright-console",
"version": "1.0.0",
"dependencies": {
"cylon": "1.2.0",
"cylon-gpio": "0.27.0",
"cylon-i2c": "0.23.0",
"cylon-leapmotion": "0.20.0",
"serialport": "1.7.4",
"firmata": "0.5.5",
"cylon-firmata": "0.23.0"
}
}
homebright-console.js
"use strict";
var cylon = require("cylon");
cylon.robot({
connections: {
leapmotion: { adaptor: "leapmotion" },
arduino: { adaptor: "firmata", port: "COM7" } // Port anpassen!
},
devices: {
leapmotion: { driver: "leapmotion" },
livingroom: { driver: "led", pin: 6, connection: "arduino" },
dininghall: { driver: "led", pin: 9, connection: "arduino" },
bedroom: { driver: "led", pin: 10, connection: "arduino" },
studyroom: { driver: "led", pin: 11, connection: "arduino" }
},
work: function(my) {
my.leapmotion.on("hand", function(hand) {
var on = hand.grabStrength > 0.5 ? false : true;
var x = hand.palmPosition[0];
var z = hand.palmPosition[2];
var value = 0;
if (on) { value = hand.palmPosition[1]; } // Y = Höhe
console.log("Brightness:", value);
// Quadranten-Logik (Koordinaten anpassen!)
if (x > 0 && z > 0) {
my.livingroom.brightness(value); // Wohnzimmer
} else if (x > 0 && z < 0) {
my.dininghall.brightness(value); // Esszimmer
} else if (x < 0 && z > 0) {
my.studyroom.brightness(value); // Arbeitszimmer
} else {
my.bedroom.brightness(value); // Schlafzimmer
}
});
}
}).start();
Schaltung

Verkabelung:
- Pin 6 → LED Wohnzimmer (Wohnzimmer)
- Pin 9 → LED Esszimmer (Esszimmer)
- Pin 10 → LED Schlafzimmer (Schlafzimmer)
- Pin 11 → LED Arbeitszimmer (Arbeitszimmer)
- Alle LED-Kathoden an GND, Anoden über 220 Ω an jeweiligem Pin
Funktionsweise im Detail
Cylon.js verbindet Leap Motion (WebSocket auf localhost:6437) mit Arduino (Firmata über Serial). Bei jedem hand-Event werden Palm-Position und Grab-Strength ausgewertet. Die brightness()-Methode des LED-Drivers setzt PWM-Wert (0–255).
Anpassung & Erweiterung
- Koordinaten kalibrieren: Leap Motion Koordinaten (mm) auf Raumgröße mappen
- Mehr Räume: Weitere LEDs + Pins + Logik-Zweige
- RGB-LEDs: Farbstimmung per Handrotation steuern
- Web-UI: Cylon.js HTTP-Plugin für Browser-Dashboard
- MQTT/Home Assistant: States in Smart-Home-Zentrale publizieren
Nützliche Links
Herstellungsprozess
- 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
- 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
- Intelligenten Arduino-Vierbeiner-Roboter bauen: Schritt-für-Schritt-Anleitung
- DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau
- Eine voll funktionsfähige CNC-Maschine mit Arduino Nano R3 bauen