Instructions
Das Programm
Das Programm 02ampel01 enthält gegenüber dem vorherigen Programm
nicht viel Neues.
Der erste sende ... an alle Block richtet die Pins 12, 7 und 8 als Ausgänge
ein. Mehrere GPIO-Befehle können in einem Block gesendet werden.
Der zweite sende ... an alle Block schafft eine definierte Ausgangs-
stellung, falls die LEDs von einem früheren Programm noch leuchten.
Die grüne LED am Pin 12 wird eingeschaltet, die gelbe LED an Pin 7 und
die rote an Pin 8 werden ausgeschaltet.
Die wiederhole fortlaufend Schleife beginnt mit der 2 Sekunden langen
Grünphase. Danach erfolgt gelb und nach 0,6 Sekunden rot. Die Rotphase
dauert wieder 2 Sekunden, anschließend schaltet die Ampel über
rot/gelb auf grün. Danach startet die Schleife erneut. Dieser Zyklus wird
wiederholt, bis der Benutzer auf das rote Stopp-Symbol klickt.
Das nächste Experiment erweitert die einfache Ampelschaltung um
eine Fußgängerampel, die während der Rotphase der Verkehrsampel
eine Grünphase für Fußgänger anzeigt. Der Ampelzyklus läuft jetzt
nicht mehr automatisch, sondern wird wie bei einer typischen
Fußgängerampel durch Berühren einer Sensortaste gestartet.
Bauteile
1 Steckbrett
2 LED rot mit Vorwiderstand
1 LED gelb mit Vorwiderstand
2 LED grün mit Vorwiderstand
1 20-MOhm-Widerstand (Rot-Schwarz-Blau)
8 GPIO-Verbindungskabel
2 Knetekontakte
Ampeln, Türöffner, Lichtschalter und Automaten werden heute oft mit
Sensorkontakten gesteuert, die man nur zu berühren braucht. Taster, die
wirklich gedrückt werden müssen, werden immer seltener.
Am Anfang werden die drei Pins 12, 7 und 8 für die Verkehrsampel sowie
24 und 23 für die Fußgängerampel als Ausgänge definiert. Der Pin 21 wird
als Eingang für den Sensorkontakt eingerichtet. ...inpullnone schaltet den
am GPIO-Pin eingebauten Pulldown-Widerstand aus, da dieser die Funk-
tion des Sensorkontakts beeinträchtigen würde.
Danach wird die Grundstellung der Ampel eingeschaltet, grün für die
Autos, rot für die Fußgänger. Die anderen drei LEDs werden ausgeschal-
tet. Das Ausschalten ist hier am Anfang eigentlich nicht nötig. Es dient
nur dazu, das Programm auf jeden Fall mit einem klar definierten Zu-
stand zu starten.
Jetzt beginnt wie im letzten Programm eine wiederhole fortlaufend
Schleife, die den Knetekontakt am GPIO-Pin 21 abfragt. Wenn dieser den
Wert 0 liefert, wird er berührt und damit auf Low-Pegel gezogen.
Dazu verwenden wir den Scratch-Block falls, der ähnlich wie eine if-Abfrage
in anderen Programmiersprachen funktioniert. Für die Abfrage selbst ist
im falls-Block ein längliches Feld mit spitzen Enden vorgesehen. Hier
muss ein Block aus der grünen Blockpalette Operatoren eingefügt werden.
Wählen Sie den Block mit dem Gleichheitszeichen und ziehen ihn auf das
Platzhalterfeld im Block falls.
Dieser Operator ist immer dann wahr, wenn die beiden Werte links und
rechts des Gleichheitszeichens gleich sind. In unserem Fall soll der Wert
des GPIO-Pins 21 dem Wert 0 entsprechen. Zur Abfrage von GPIO-Eingän-
gen wird der Block Wert von Sensor aus der blauen Blockpalette Fühlen
verwendet.
Ziehen Sie diesen Block auf das Platzhalterfeld links im grünen Gleich-
heitsoperator. Wählen Sie im Listenfeld des blauen Blockes den Sensor
gpio21 aus. Neben einigen vordefinierten Sensoren werden alle GPIO-Pins
zur Auswahl angeboten, die als Eingang definiert sind. Klicken Sie jetzt
einmal auf das grüne Fähnchen oben rechts, um das noch unfertige
Programm zu starten. Damit werden die GPIO-Pins definiert und gpio21
erscheint in der Auswahlliste. Halten Sie das Programm mit dem roten
Stopp-Schild wieder an. Tragen Sie dann noch rechts im grünen
Gleichheitsoperator den Wert 0 ein.
Jetzt werden nacheinander in Abständen von 0,6 Sekunden die
unterschiedlichen Lichtmuster der Ampel geschaltet. Während die
Fußgängerampel grün leuchtet, wird 2 Sekunden gewartet. Auch die
Mindestdauer der Grünphase der Verkehrsampel beträgt 2 Sekunden.
Das Programm
Das Programm 03ampel02 schaltet die Fußgängerampel. Klicken Sie auf
das grüne Fähnchen, um das Programm zu starten. Die Verkehrsampel
leuchtet grün, die Fußgängerampel rot, genau so, wie es echte Ampeln
stundenlang tun würde, wenn kein Fußgänger kommt und auf den Knopf
drückt.
Berühren Sie den roten Knetekontakt. Jetzt startet der Ampelzyklus,
der in unserem Programm, wie auch bei einer echten Ampel, aus 6 unter-
schiedlichen Lichtmustern besteht, die unterschiedlich lange leuchten.
Mit dem letzten Lichtmuster - Fußgänger rot, Verkehrsampel grün - erreicht
die Ampel wieder den Standardzustand. Das Programm muss allerdings
dafür sorgen, dass auch dieser immer eine Mindestzeit eingehalten wird.
Selbst wenn ständig Fußgänger auf den Knopf drücken, müssen die Autos
auch mal fahren dürfen. In unserer Modellampel sind das 2 Sekunden, bei
einer wirklichen Ampel natürlich deutlich länger.
Sensorkontakt aus Knete
Der als Eingang geschaltete GPIO-Pin ist über einen extrem hochohmigen
Widerstand (20 MOhm) mit +3,3 V verbunden, sodass ein schwaches,
aber eindeutig als High definiertes Signal anliegt. Ein Mensch, der nicht
gerade frei in der Luft schwebt, ist immer geerdet und liefert über die
elektrisch leitfähige Haut einen Low-Pegel. Berührt dieser Mensch jetzt
einen Sensorkontakt, wird das schwache High-Signal von dem deutlich
stärkeren Low-Pegel der Hand überlagert und zieht den GPIO-Pin auf
Low-Pegel.
Wie hoch allerdings der Widerstand zwischen Hand und Masse wirklich
ist, hängt von vielen Dingen ab, unter anderem von Schuhen und Fuß-
böden. Barfuß im nassen Gras ist die Verbindung zur Masse der Erde am
besten, aber auch auf Steinfußboden funktioniert es meistens gut. Holz-
fußböden isolieren stärker, Kunststoffbodenbeläge sind oft sogar positiv
aufgeladen.
Knete leitet den Strom etwa so gut wie menschliche Haut. Sie lässt sich
leicht in jede beliebige Form bringen, und ein Knetekontakt fasst sich viel
besser an als ein einfaches Stück Draht. Die Fläche, mit der die Hand den
Kontakt berührt, ist deutlich größer. So kommt es nicht so leicht zu
einem „Wackelkontakt“. Stecken Sie ein Stück abisolierten Schaltdraht in
ein Stück Knete. Das andere Drahtende stecken Sie in das Steckbrett.
Sollte der Sensorkontakt nicht funktionieren, enthält die Schaltung einen
zweiten Knetekontakt, der mit der Masseschiene des Steckbretts verbun-
den ist. Dieser ist in der Zeichnung mit einem Minuszeichen gekennzeich-
net. Berühren Sie diesen und den eigentlichen Sensor gleichzeitig. Dann
ist die Masseverbindung auf jeden Fall hergestellt.
Das Scratch-Programm 02ampel01 steuert die Ampel
FUSSGÄNGERAMPEL MIT SENSORKONTAKT
Sieben LEDs blinken in zufälliger Reihenfolge, wobei auch mehrere
gleichzeitig eingeschaltet sein können. Das funktioniert so: Immer
abwechselnd wird eine zufällig ausgewählte LED eingeschaltet und
dann eine wiederum zufällig ausgewählte LED ausgeschaltet.
Bauteile
1 Steckbrett
2 LED rot mit Vorwiderstand
2 LED gelb mit Vorwiderstand
2 LED gru�n mit Vorwiderstand
1 LED blau mit Vorwiderstand
8 GPIO-Verbindungskabel
LEDS BLINKEN ZUFÄLLIG
Fußgängerampel mit Sensorkontakt
Das Scratch-Programm 03ampel02 steuert die Fugängerampel
0,6 Sek. 0,6 Sek. 2 Sek. 0,6 Sek. 0,6 Sek. >=2 Sek.
Gemeinhin denkt man, in einem Programm könne nichts
zufällig geschehen – wie also kann ein Programm dann in
der Lage sein, zufällige Zahlen zu generieren? Teilt man eine große
Primzahl durch irgendeinen Wert, ergeben sich ab der x-ten Nach-
kommastelle Zahlen, die kaum noch vorhersehbar sind. Sie ändern
sich auch ohne jede Regelmäßigkeit, wenn man den Divisor regel-
mäßig erhöht. Dieses Ergebnis ist zwar scheinbar zufällig, lässt sich
aber durch ein identisches Programm oder den mehrfachen Aufruf
des gleichen Programms jederzeit reproduzieren. Nimmt man jetzt
aber eine aus einigen dieser Ziffern zusammengebaute Zahl und
teilt sie wiederum durch eine Zahl, die sich aus der aktuellen Uhrzeit-
sekunde oder dem Inhalt einer beliebigen Speicherstelle des
Computers ergibt, kommt ein Ergebnis heraus, das sich nicht
reproduzieren lässt und daher als Zufallszahl bezeichnet wird.
i
INFO:
7 LEDs blinken





