Raspberry Pi Ampelschaltung mit dem - Lab4Inf · Einführung in die Ampelschaltung Ampel (von...
Transcript of Raspberry Pi Ampelschaltung mit dem - Lab4Inf · Einführung in die Ampelschaltung Ampel (von...
Ablauf des Praktikums
1. Einführung2. 1. Aufgabe
● Vorstellung● Aufgabenstellung● Eigenarbeit● Kontrolle/ Vorstellen der Lösung
3. 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 Pix Raspberry Pi Simple Boardx Programmierumgebung
-> Anstatt farbige LEDs werden normale, jedoch eindeutig zugeordnete LEDs genutzt
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
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
Weiterführung der 1. Aufgabe
Beispiel aus dem Buch:● Konstant Grün bis zum Tasterdruck● Fußgängerampel tritt in Aktion
Neue Elemente:● Fußgängertaster im aktiven Ampelzyklus bereit● Fußgängerampel mit 3 LEDs
-> Grün, Rot, Warten➔ Interaktivere und realitätsnähere Ampel
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))
Logische GleichungenGrün = Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1Gelb = Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1 v Z4 Z3 Z2 Z1Rot = 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 Z1FG-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 Z1Warten = 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
AufgabenstellungZu 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
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 durchaufteilen des großen Delays in kleine Delays