Ampelschaltung mit dem Raspberry Pi
Transcription
Ampelschaltung mit dem Raspberry Pi
Ampelschaltung mit dem Raspberry Pi => wiringPi.h <= Christopher Schwering, Jan Ole Thranow Ablauf des Praktikums 1. 2. Einführung 1. Aufgabe ● ● ● ● 3. Vorstellung Aufgabenstellung Eigenarbeit Kontrolle/ Vorstellen der Lösung 2. Aufgabe ● ● ● ● ● Vorstellung Aufgabenstellung Eigenarbeitung Kontrolle/ Vorstellen der Lösung Besprechung der Problematik Einführung in die Ampelschaltung Ampel (von lateinisch ampulla „Ölflasche“, spätere übertragene Bedeutung „Leuchte“) ist der umgangssprachliche Begriff für einen Signalgeber einer Lichtsignalanlage (LSA) Zur Regelung des Straßenverkehrs und der Fußgängerüberwege Einführung in die Ampelschaltung Benötigte Mittel: x Raspberry Pi x Raspberry Pi Simple Board x Programmierumgebung -> Anstatt farbige LEDs werden normale, jedoch eindeutig zugeordnete LEDs genutzt 1. Aufgabe Los geht’s... Eine ganz normale Ampel... -> 4 Zustände -> Endlosschleife -> realistische Phasendauer ist zu betrachten Zustandszuordnung Autonomer Automat 4 Lichter -> Rot, Gelb, Grün 4 sinnvolle Ausgangskombinationen => Redundanz = ld(2^3) - ld(4) = 1 Logische Gleichungen der Zustände Grün = Z1 Z2 Gelb = Z1 Z2 v Z1 Z2 Rot = Z1 Z2 v Z1 Z2 KV Diagramme Grün nicht minimierbar, da nur 1 Primterm Rot = Z2 Gelb = Z1 Zustandsüberführung x Zustandsfolgetabelle Aufgabenstellung Zu realisieren ist eine Ampel mit Hilfe des Raspberry Pi und des Simple Boards, welche in einer Endlosschleife mit folgenden Eigenschaften funktioniert: 1. Zuordnung der Pins ● Pin 0 = Rot ● Pin 1 = Gelb ● Pin 2 = Grün 2. Zeiten der Ampelphasen ● ● ● ● t(Z Nr.0) = 6 Sekunden t(Z Nr.1) = 2 Sekunden t(Z Nr.2) = 6 Sekunden t(Z Nr.3) = 1 Sekunde Dabei sind die bestehenden Zustandsfolgetabellen zu beachten Viel Erfolg! Präsentation der Lösung 2. Aufgabe Fußgänger gibt’s ja auch noch…. Weiterführung der 1. Aufgabe Beispiel aus dem Buch: ● ● Konstant Grün bis zum Tasterdruck Fußgängerampel tritt in Aktion ● ● Fußgängertaster im aktiven Ampelzyklus bereit Fußgängerampel mit 3 LEDs Neue Elemente: -> Grün, Rot, Warten ➔ Interaktivere und realitätsnähere Ampel Zustandsfolgediagramm Zustandsfolgediagramm Zustandszuordnung 9 Zustände => ld(9) = 3,17 => 4 Zustandsvariablen Moore Automat, da ● ● ● Inputs keinen direkten Einfluß auf den Ausgang Ausgangsänderung mit Zustandsübergang Ausgang = f(Z(t = n)) Zustandszuordnung x Logische Gleichungen Grün = Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 Gelb = Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 Rot = Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 FG-Grün = Z4 Z3 Z2 Z1 FG-Rot = Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 Warten = Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 => Da besteht Minimierungspotenzial! Da nicht alle Zustände genutzt werden, sind die ungenutzen Don’t Care KV Diagramme Grün = Z3 Z2 Z1 v Z3 Z2 Z1 Gelb = Z4 v Z3 Z1 c Z3 Z2 Z1 KV Diagramme Rot = Z3 Z1 v Z2 Z1 v Z4 Z2 FG Grün = Z3 Z2 Z1 KV Diagramme FG Rot = Z1 v Z2 v Z3 Warten = Z3 Z1 v Z3 Z2 x Zustandsfolgetabelle Aufgabenstellung Zu programmieren ist nun eine Erweiterung des bestehenden Ampel Programms aus der 1. Aufgabe. Diese Erweiterung besteht in der Abfrage eines Tasters. Durch den Tasterdruck wird sofort die LED “Warten” auf HIGH gesetzt und anschließend erst nach Beendigung des aktuell aktiven Ampelzyklus die Fußgängerampel auf Grün gesetzt. Mit dem Setzen der FG Ampel auf Grün ist die “Warten” LED auf LOW zu setzen. Nachdem die FG Ampel wieder auf Rot steht soll in die normale Ampelfunktion (siehe 1. Aufgabe) übergegangen werden und auf den nächsten Tasterdruck gewartet werden. Die Reihenfolge der Zustandsfolgetabelle ist einzuhalten. Folgende Eigenschaften sind zu beachten: 1. Zuordnung der Pins ● Pin 0 = Rot ● Pin 1 = Gelb ● Pin 2 = Grün ● Pin 3 = Taster ● Pin 4 = FG Rot ● Pin 5 = FG Grün ● Pin 6 = Warten 2. Zeiten der Ampelphasen ● ● ● ● ● ● ● ● ● t(Z Nr.0) = 6 Sekunden t(Z Nr.1) = 2 Sekunden t(Z Nr.2) = 6 Sekunden t(Z Nr.3) = 1 Sekunde t(Z Nr.4) = 6 Sekunde t(Z Nr.5) = 6 Sekunde t(Z Nr.6) = 2 Sekunde t(Z Nr.7) = 6 Sekunde t(Z Nr.8) = 1 Sekunde Viel Erfolg! Präsentation der Lösung Probleme? ● Der Taster hat kein “Gedächtnis” daher muss er im richtigen Moment gedrückt werden damit das Programm es wahrnimmt. ● Innerhalb der Delay Funktion wird also ein Tasterdruck nicht bemerkt ➔ Erhöhung der Abtastrate des Tasterstandes durch aufteilen des großen Delays in kleine Delays Einführung in die Ampelsch Danke für eure Aufmerksamkeit!