Advanced Light Controller Instruction Code

Über ALIC
Das Prinzip
So funktioniert die Code-Verarbeitung
Vorgaben und Definitionen
Assembler Syntax
Befehls-Referenz
Beispiele
ALIC Implementation für Microchip PICs
Links
Kontakt

Was ist das?

Der "Advanced Light Controller Instruction Code" (ALIC) ist ein standardisierter Prozessor-Befehlscode, der zur Steuerung von Beleuchtungseinrichtungen im Modellbau-Bereich entwickelt wurde und weiter entwickelt wird. Damit sind mit geringem Programmieraufwand komplexere Lichtabläufe möglich, aber auch Standard-Aufgaben, wie z.B. die ACL-Blitzer bei Flugzeugmodellen, lassen sich damit leicht und kostengünstig als Selbstbaulösung realisieren. Das Prinzip bzw. der ALIC-Code ist nicht an eine bestimmte Controller-Hardware gebunden, er kann also auf verschiedenen Hardware-Plattformen verwendet werden.

Wozu soll das gut sein?

Modellbauer verschiedener Sparten, wie RC-Flugmodelle, Modellbahnen, Schiffs-Modelle, Funktionsmodelle, Truck-Modelle usw., stehen immer wieder mal vor der Aufgabe,  verschiedene Lichter (meist LEDs) ihrer Modelle ferngesteuert zu schalten oder bestimmte Blink- oder Lichtmuster erzeugen zu können. Für gewisse Standard-Anwendungen, wie z.B. ACL-Blitzer bei Flugmodellen, gibt es fertige Controller zu kaufen. Diese sind aber - wenn überhaupt - nur sehr eingeschränkt programmierbar und können daher nicht immer optimal auf die eigenen Vorstellungen angepasst werden. Für speziellere Aufgaben muß dann schließlich doch ein Beleuchtungs-Controller im Selbstbau erstellt werden.
Herzstück eines solchen Lichtcontrollers ist ein handelsüblicher Microcontroller. Dieser kann kleine LED-Ströme, wie etwa die LEDs einer Ampelanlage auf einer H0-Modellbahnanlage, oft auch direkt ansteuern, so werden außer dem Microcontroller und einer geeigneten Spannungsquelle lediglich simple Vorwiderstände für die LEDs benötigt. Größere Leistungen können problemlos über sehr einfache Treiber-Schaltungen erreicht werden. Die Hardware ist daher billig und kann von den meisten Modellbauern auch ohne tiefer gehende Elektronik-Kenntnisse leicht zusammengelötet werden!
Komplizierter wird es jedoch bei der Programmierung des Microcontrollers. Dazu ist zunächst einmal ein Programmiergerät erforderlich, das den fertigen Programmcode in den Microcontroller "brennen" kann. Schaut man sich den Preis für einen fertig gekauften Licht-Controller an (der ja oft nicht mal das kann, was man eigentlich haben will...), und dagegen den Preis für ein günstiges Programmiergerät, relativiert sich die notwendige Investition für das Programmiergerät.
Die größte Hürde bestand aber bisher darin, das Programm für den Microcontroller zu erstellen! Egal, ob in Assembler oder einer höheren Sprache (z.B. Basic oder C) programmiert wird: der "Selbstbauer" mußte die entsprechende Programmiersprache beherrschen, sich mit der Architektur des verwendeten Microcontrollers auskennen und selbst für einfache Lichtmuster verhältnismäßig aufwändige Programme schreiben. Das dürfte für die Meisten das K.O. für entsprechende Projekte bedeutet haben, denn wer will schon einen mehrwöchigen Programmierkurs absolvieren, nur um ein paar LEDs nach eigenen Vorstellungen blinken zu lassen?
Hier kommt nun ALIC ins Spiel! Zwar wird auch hier ein Programm erstellt - denn irgendwie muß man dem Controller ja sagen, wie die LEDs blinken sollen - aber der Befehlssatz dieser "Sprache" besteht aus nur wenigen Elementen und ist direkt auf die Anwendung zur Erzeugung von Lichtmustern zugeschnitten. Die Lichtmuster werden durch einfache Befehle definiert, in der Art etwa: "Licht volle Stärke für 500ms, dann Licht auf halbe Stärke für 300ms, dann Licht aus für 2 Sekunden, dann wiederhole das Ganze von vorn".

Um eine solche individuelle Lichtsteuer-Lösung implementieren zu können, braucht man also derzeit:
  • Programmier-Werkzeuge, um Code zu erzeugen und diesen in den verwendeten Microcontroller zu brennen,
  • ein fertiges Programm, das für den verwendeten Microcontroller geschrieben wurde und den ALIC-Code verarbeitet ("Interpreter")
  • keine näheren Kenntnisse über die Prozessor Architektur und Programmierung des verwendeten Microcontrollers, dafür aber gewisse ALIC-Kenntnisse,
Durch die Standardisierung des Codes können von verschiedenen Entwicklern ALIC-Interpreter für diverse Microcontroller geschrieben werden. Auch entsprechende Tools zur Erzeugung von ALIC-Codes mit grafischer Benutzer-Oberfläche oder Simulatoren können unabhängig von einer bestimmten Controller-Hardware entwickelt werden.
Natürlich können auf dieser Basis auch fertige Controller-Bausteine entwickelt werden, die dann auch ohne spezielle Programmier-Hardware über eine gängige Schnittstelle (z.B. USB) vom PC aus mit dem Licht-Steuercode programmiert werden können.


counter