Verkehrsampel

Wir bilden die Schaltzyklen einer sehr einfachen Ampelanlage nach. Die ganze Anlage besteht aus vier Masten, die jeweils am rechten Fahrbahnrand vor der Einfahrt in eine Kreuzung stehen. Da gegenüber liegende Masten sich identisch verhalten, betrachten wir insgesamt nur zwei Masten; wir nennen sie „tlA“ (traffic light A) und „tlB“.
wenn tlA RED zeigt, ist tlB GREEN und umgekehrt.

Genau genommen ist es aber noch etwas komplizierter. Die typische Schaltfolge sieht so aus:

1   tlA = RED          tlB = RED                          0.5 Sek
2   tlA = RED+YELLOW   tlB = RED                            1 Sek
3   tlA = GREEN        tlB = RED                           10 Sek
4   tlA = YELLOW       tlB = RED                            2 Sek
5   tlA = RED          tlB = RED                          0.5 Sek
6   tlA = RED          tlB = RED+YELLOW                     1 Sek
7   tlA = RED          tlB = GREEN                         10 Sek
8   tlA = RED          tlB = YELLOW                         2 Sek


Die Angaben der Verweildauer für jeden Zustand sind einigermaßen plausibel, aber natürlich etwas willkürlich. Manchmal fehlen der Zustand 1 und 5, d.h. ihre Dauer beträgt 0 Sekunden.

Außerdem gibt es noch Sonderschaltfolgen für das Abschalten und Wiedereinschalten der gesamten Anlage. Sie wechselt beim Ausschalten von ROT-ROT (Zustand 1 oder 5) nach YELLOW-BLINK (Sekundenrhythmus, 10 Sek lang) auf allen Masten, dann auf BLACK auf allen Masten. Beim Einschalten ist es umgekeht: Von BLACK her kommend zeigt sie auf allen Masten zunächst YELLOW_BLINK (5 Sek lang), dann YELLOW (Dauerlicht, 5 Sek), dann RED (3 Sek). Dann wechselt sie in den Zustand 1 aus der obigen Tabelle und nimmt ihre Arbeit auf.

Umsetzung

Wir verwenden die Hardware des Weihnachtssterns. RED / YELLOW / GREEN von tlA sind auf den Armen 1,2,3 dargestellt (LEDs 1..6), zu tlB gehören die Arme 6,5,4 (= LEDs 12..7). Die Reihenfolge ist gegenläufig; man kann den Stern dann so hinlegen oder hinstellen, dass RED jeweils oben ist.
LED #0 und LED#13 bleiben unbenutzt.

Über die Touchkontakte können wir z.B. simulieren, dass Fußgänger über die Straße gehen wollen. Die Software könnte dann die aktuelle GREEN-Dauer für den kreuzenden Verkehr verkürzen (aber nicht beliebig!). Wir müssen die Anlage auch gegen den Missbrauch solcher Knöpfe schützen, damit nicht ein Verkehrsstau entsteht, wenn jemand mutwillig einen solchen Knopf sehr oft drückt.

Wir könnten auch durch mehrfaches Berühren (anderer) Touch-Kontakte „Verkehrsdichte“ simulieren und daraufhin die GREEN-Phasen beider Richtungen unterschiedlich lang machen („dynamische Schaltzeitanpassung“).

Software

Also: Nach dem RESET bleibt alles für eine Sekunde lang dunkel. Dann beginnt die Aufweckphase, dann werden 3 normale Zyklen absolviert, dann beginnt die Ausschaltphase und es ist für 10 Sekunden lang Nacht. Danach wiederholt sich das Spiel.

Wir beginnen bei der Entwicklung des Programms mit der Kernfunktion, d.h. mit dem normalen Schaltzyklus. Um das Ein- und Ausschalten kümmern wir uns später.

Wenn dann irgendwann alles klappt, versuchen wir den Programmcode so schön wie möglich zu machen. Dazu gliedern wir ihn in mehrere Funktionen, die auf unterschiedlichen Abstraktionsebenen angesiedelt sind. Die „oberen“ Ebenen kennen den Zeitablauf und koordinieren die beiden Ampeln, die „unteren“ Funktionen kümmern sich darum, dass die passenden LEDs mit der richtigen Farbe angesteuert werden.

Weitere Ideen – bevor es losgeht ..

Wir könnten irgendwann eine Ampelanlage aus 4 getrennten Masten entwerfen, die als 3D Objekte gedruckt werden. Wir würden unter einer Bodenplatte die Kabel verlegen. Etwas abseits der Kreuzung steht dann ein kleines Kästchen mit dem LILY-TTGO, also mit der Steueranlage.
Die Masten würde man getrennt drucken und in die Bodenplatte stecken, welche dafür Halterungen vorsehen müsste.

Wir könnten die Verkabelung zentral von den Masten zum TTGO führen und in der Software vier verschiedene LED strips definieren.
Wir können aber auch ringförmig verkabeln und die Lichter aus Softwaresicht als Teil eines einzigen LED Streifens betrachten.

Wir könnten die Ampelanlage um getrennte Signale für Fußgänger und/oder um spezielle Abbiegespuren ergänzen. Wir können mehrere Anlagen miteinander über WLAN verbinden und eine grüne Welle simulieren.

Wir könnten kleine Reed-Kontakte unter der Sraße anbringen und auf diese
Weise Spielzeugautos erkennen, in denen sich Magnete befnden. So könnten wir bedarfsgerechte Verkehrsfluss-Steuerung simulieren.
Als Krönung des Ganzen, könnte man sogar noch Einsatzfahrzeuge (Notarzt, Feuerwehr) oder ÖPV-Busse einführen, die Vorrang haben und den aktuellen Ampelzyklus durchbrechen. Das gibt es auch in der Realität. Beispielsweise melden sich ÖPV-Busse manchmal schon 100m vorher bei einer Ampel an, damit diese „in Ruhe“ dafür sorgen kann, dass sie GREEN zeigt, wenn der Bus bei ihr angelangt.

Hier geht es zur Version 1 der Software.

Veröffentlicht am
Kategorisiert in Allgemein