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!