Effekt- und Ambientbeleuchtung über Ethernet gesteuert
Komplette Hard- und Software
Ziel des Projekts war zu Anfang eigentlich nur, eine RGB-LED-Kugel von PEARL irgendwie über den PC steuern zu können. Mittlerweile ist das ganze allerdings schon dermaßen entartet, dass es hier eine eigene Seite verdient...
Aktueller Stand:
- Voll funktionsfähig
- Komplett modularisiert
- Einfache Erweiterbarkeit in Hinsicht auf Hardware und Software
- Stabiles Kommunikationsprotokoll
- Sensor-Integration
- Aufbau und Einsatz auch für Laien möglich
- Verschiedene Slaves können RGB-LEDs, ultrahelle LEDs, Kaltkathodenröhren, Temperatur- / Feuchte-Sensoren, Relais, ... bedienen
Der Aufbau besteht aus verschiedenen Elementen, die über den I²C-Bus miteinander kommunizieren. Der Master (hauptsächlich ein Ethernet-I²C-Umsetzer) wird an das ganz normale Ethernet-Netzwerk angeschlossen.
Die Slaves nehmen Befehle des Masters oder einer anderen "Farbregeleinrichtung" entgegen und setzen diese mit eigener Intelligenz um.
Beispiel:
- Benutzer wählt in der Software: "Fade Kugel3 auf Farbe #ff00ff"
- Die Software sendet über HTTP diese Anfrage an den Master
- Der Master sendet den Befehl über den I²C-Bus an den entsprechenden Slave
- Der Slave bestätigt den Befehl, berechnet die Zwischenfarben und legt diese nacheinander auf seinen PWM-Ausgang
Die Software und das Protokoll lassen außerdem noch folgende Aktionen zu:
- Auslesen der aktuellen Farbe und Einstellung
- Einstellungen setzen (Fadedauer, Automatikfader, Wartezeiten, ...)
- Aufspielen einer neuen Firmware auf den Slave
- Sensoren auslesen
|
Den Hauptteil der Arbeit übernimmt auf allen Platinen ein Mikrocontroller der AVR-Serie von Atmel, zum Beispiel der Atmega8. Ansonsten wird auf dem Master der ENC28J60 (Ethernet-Controller von Microchip) und ein MagJack (Ethernet-Buchse mit integriertem Übertrager) eingesetzt. Zur Steuerung größerer Lasten dient der ULN2803A (8-fach Darlington-Transistor-Array).
Mit der Leiterplattensoftware Eagle wurden die Platinen erstellt und anschließend in "Heimarbeit" selbst belichtet, entwickelt, geätzt, gebohrt, bestückt und gelötet.
Siehe auch: Platinenherstellung
Aufgebaut / Eingebaut
|
Mikrocontroller
Standardmäßig werden die AVR-Mikrocontroller mit der Sprache C programmiert. Die Software für den Master (ARP, TCP/IP-Stack, HTTP-Server, I²C-Routinen, ... und die eigentliche Logik) ist kompiliert und einsatzfertig gerade mal 8 Kilobyte groß (oder klein). Noch sparsamer ist die Implementierung der Slave-Software:
- Bootloader (Firmware flashen): 526 Byte
- MPLS (Zur RGB-Beleuchtung und IO-Switcherei): ~5 Kilobyte
- TempSens (Auslesen eines digitalen Temp. und Luftf.-Sensors): ~2 Kilobyte
Protokoll
Eine noch nicht 100% vollständige Protokollbeschreibung gibt es hier:
http://www.blubctrl.de/download/doku/communication_protocol.txt
PC
Die Kontrollsoftware ist in Python geschrieben, die GUI wird mit wxPython erzeugt.
Alle Funktionen (Farben auf verschiedene Weise ändern, Firmware flashen, Einstellungen ändern, ...) sind über die Software erreichbar. Dank der Plattformunabhängigkeit von Python / wxPython kann die Software sowohl unter Linux als auch unter Windows eingesetzt werden - sogar auf dem OpenMoko! |
|