Für die Firma
Wolkenstein wurde
die Mikrocontrollersoftware für eine busbetriebene RGB (Rot-Grün-Blau)
Elektronik entwickelt. Bei diesem Projekt besitzt jedes Leuchtelement
eine eigene Elektronik. Die einzelnen Platinen können über ein Bus-System
miteinander verbunden werden, wodurch ein
zusammenhängendes Farbenspiel
ermöglicht wird. Eine Platine im Bus-System übernimmt dabei zusätzlich
die Koordination und steuert über das Bus-System die anderen Platinen.
Die Bedienung und Konfiguration erfolgt über drei unabhängige Wege:
1. IR-Fernbedienung, 2. Taster, 3. Potentiometer
Meine Aufgabe bestand nun in der Beratung bei der Hardwareauswahl und in der
Implementierung der Mikrocontrollersoftware (Programiersprache C).
Es musste auch darauf
geachtet werden, dass der Kunde später ohne Änderungen am Hauptprogramm
selber folgende Funktionen anpassen kann:
- Menüstruktur und Bedienungsfunktion über die IR-Fernbedienung
- Farbsequenzen
- Kommunikation mit den anderen Leuchtelementen
Dies konnte durch die Implementierung einer
virtuellen Programmiersprache
mit genau für diese Aufgabenstellung ausgelegten Befehlen
(z.B. setRGB(r,g,b), getIR, sendCommand, if, jump, ...)
realisiert werden. Der Präprozessor des C-Kompilers generiert dabei automatisch
aus diesen Befehlen einen Bytecode, welcher in einem Array abgelegt wird.
Dieser Bytecode wird vom Mikrocontroller interpretiert und ausgeführt.
Weiters wurden noch folgende Funktionen implementiert: Flackerfreie Ansteuerung
der RGB-Dioden, Kommunikation mit den anderen Platinen, IR-Empfänger,
P-Regler für die Temperaturregelung der Leistungselektronik, dauerhafte
Speicherung der Einstellungen auch bei Stromausfall.