30
10181-3 Raspberry Adventskalender_NEU_02.indd 1 10181-3 Raspberry Adventskalender_NEU_02.indd 1 23.06.2015 18:19:13 23.06.2015 18:19:13

10181-3 Raspberry Adventskalender NEU 02 · 5 2. Tag ScratchGPIO ist ein Zusatzmodul zur besonders einfach zu erlernenden Programmiersprache Scratch, mit dem es möglich ist, die

Embed Size (px)

Citation preview

10181-3 Raspberry Adventskalender_NEU_02.indd 110181-3 Raspberry Adventskalender_NEU_02.indd 1 23.06.2015 18:19:1323.06.2015 18:19:13

2

Raspberry Pi Adventskalender. . . . . . . . . . . . . . . . . .r 2Steckbrett . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

LED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Widerstand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Verbindungskabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1 Tag: Raspberry Pi vorbereiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Betriebssysteminstallation in Kürze . . . . . . . . . . . . . . . . . . . . . . . . . 4

LED leuchtet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Tag: ScratchGPIO installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Die Pinbelegung in ScratchGPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

LEDs blinken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Tag: Ampel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Tag: RGB-LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

RGB-LED blinkt bunt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

LED mit Taster schalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

6 Tag: LED mit Sensorkontakt steuern . . . . . . . . . . . . . . . . . . . . . . . . . .10

So funktionieren Sensorkontakte . . . . . . . . . . . . . . . . . . . . . . . . . . .10

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

7 Tag: Löffel als Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

8 Tag: RGB-LED mit Sensorkontakt steuern . . . . . . . . . . . . . . . . . . . . . . 12

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

9 Tag: Pong-Spiel mit zwei Sensorkontakten . . . . . . . . . . . . . . . . . . . . . 13

Das Programm für den Ball . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Die Elektronik für das Paddle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Das Programm für das Paddle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

10 Tag: Blinklicht mit Knete steuern . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

11 Tag: Fußgängerampel mit Blinklicht . . . . . . . . . . . . . . . . . . . . . . . . .16

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

12 Tag: Fußgängerampel mit Rot-/Grün-Ampel . . . . . . . . . . . . . . . . . . . 17

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

13 Tag: RGB-Lichteffekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

14 Tag: Krabbenkrabbeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

15 Tag: Laufl icht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

16 Tag: RGB-LED mit Sensorkontakt steuern . . . . . . . . . . . . . . . . . . . . . 21

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

17 Tag: Autorennen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

18 Tag: Lichteffekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

19 Tag: Tennis-Spiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

20 Tag: Würfel mit LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

21 Tag: RGB-Lichtsteuerpult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

22 Tag: Würfel mit Würfeleffekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

23 Tag: Weihnachtslieder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

24 Tag: Weihnachtsbaumschmuck . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Blink-LED ohne Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Raspberry Pi AdventskalenderDie Experimente funktionieren mit den Raspberry Pi Modellen B+, A+ und Pi 2.

Die verwendeten Scratch-Programme gibt es zum Download unter: www.buch.cd

Packen Sie die Knete, wenn Sie sie ein paar Stunden nicht brauchen, immer in eine geschlossene Plastikdose.Die Dosen, die man zum Lagern von Lebensmitteln im Kühlschrank verwendet, eignen sich gut.

Alle Versuche im Überblick

10181-3 Raspberry Adventskalender_NEU_02.indd 210181-3 Raspberry Adventskalender_NEU_02.indd 2 23.06.2015 18:19:3323.06.2015 18:19:33

3

SteckbrettFür den schnellen Aufbau elektronischer Schaltungen, ohne löten zu müssen, ist am 1. Tag ein Steckbrett im Adventskalender. So können elektronische Bauteile direkt in einLochraster gesteckt werden.

Bei diesem Steckbrett sind die äußeren Längsreihen über Kontakte (X und Y) allemiteinander verbunden. Diese Kontaktreihen werden oft als Plus- und Minuspol zurStromversorgung der Schaltungen genutzt. In den anderen Kontaktreihen sind jeweilsfünf Kontakte (A bis E und F bis J) quer miteinander verbunden, wobei in der Mitte derPlatine eine Lücke ist. So können in der Mitte größere Bauelemente eingesteckt undnach außen hin verdrahtet werden.

LEDLEDs werden in Schaltungen mit einem pfeilförmigen Dreieck-symbol dargestellt, das die Flussrichtung vom Pluspol zumMinuspol oder zur Masseleitung angibt. Eine LED lässt in derDurchfl ussrichtung nahezu beliebig viel Strom durch, sie hat nur einen sehr geringen Widerstand. Um den Durchfl ussstrom zubegrenzen und damit ein Durchbrennen der LED zu verhindern, muss zwischen dem verwendeten GPIO-Pin und der Anode der LED,oder zwischen Kathode und Masse-Pin, ein 220-Ohm-Vorwiderstand (Rot-Rot-Braun) eingebaut werden. Dieser Vorwiderstand schützt auch den GPIO-Ausgang des Raspberry Pi vor zu hohen Stromstärken.

LED in welcher Richtung anschließen?Die beiden Anschlussdrähte einer LED sind unterschiedlich lang. Der längere ist der Pluspol, die Anode, der kürzere der Minuspol, die Kathode. Einfach zu merken: Das Pluszeichen hat einen Strich mehr als das Minuszeichen und macht damit quasi den Draht etwas länger. Außerdem sind die meisten LEDs auf der Minusseite abgefl acht wie ein Minuszeichen. Leicht zu merken: Kathode = kurz = Kante

WiderstandWiderstände werden zur Strombegrenzung an empfi ndlichen elektronischen Bauteilen sowie als Vorwiderstände für LEDs verwendet. DieMaßeinheit für Widerstände ist Ohm. 1.000 Ohm entsprechen einem Kiloohm, abgekürzt kOhm. 1.000 kOhm entsprechen einem Megaohm, abgekürzt MOhm. Oft wird für die Einheit Ohm auch das Omega-Zeichen verwendet.

Die farbigen Ringe auf den Widerständen geben den Widerstandswert an. Mit etwas Übung sind sie deutlich leichter zu erkennen als winzigkleine Zahlen, die man nur noch auf ganz alten Widerständen fi ndet.

Die meisten Widerstände haben vier solcher Farbringe. Die ersten beiden Farbringe bezeichnen die Ziffern, der dritte einen Multiplikator und der vierte die Toleranz. Dieser Toleranzring ist meistens gold- oder silberfarben, Farben die auf den ersten Ringen nicht vorkommen. Dadurch ist die Leserichtung immer eindeutig. Der Toleranzwert selbst spielt in der Digitalelektronik kaum eine Rolle. Die Tabelle zeigt die Bedeutung der farbigen Ringe auf Widerständen.

Farbe Widerstandswert in Ohm

1. Ring (Zeh-ner)

2. Ring (Einer)

3. Ring (Multipli-kator)

4. Ring (Toleranz)

Silber 10−2 = 0,01 ±10 %

Gold 10−1 = 0,1 ±5 %

Schwarz 0 100 = 1

Braun 1 1 101 = 10 ±1 %

Rot 2 2 102 = 100 ±2 %

Orange 3 3 103 = 1.000

Gelb 4 4 104 = 10.000

Grün 5 5 105 = 100.000 ±0,5 %

Blau 6 6 106 = 1.000.000 ±0,25 %

Violett 7 7 107 = 10.000.000 ±0,1 %

Grau 8 8 108 = 100.000.000 ±0,05 %

Weiß 9 9 109 = 1.000.000.000

In welcher Richtung ein Widerstand eingebaut wird, ist egal. Bei LEDs dagegen spielt die Einbaurichtung eine wichtige Rolle.

VerbindungskabelDie farbigen Verbindungskabel haben alle auf einer Seite einen dünnen Drahtstecker, mit dem sie sich auf das Steckbrett stecken lassen. Auf der anderen Seite ist eine Steckbuchse, die auf einen GPIO-Pin des Raspberry Pi passt.

Schaltplan einer LED mit Vorwiderstand

Die Verbindungen auf dem Steckbrett

10181-3 Raspberry Adventskalender_NEU_02.indd 310181-3 Raspberry Adventskalender_NEU_02.indd 3 23.06.2015 18:19:3323.06.2015 18:19:33

4

1. Tag

Raspberry Pi vorbereitenUm den Raspberry Pi in Betrieb zu nehmen, braucht man:

• USB-Tastatur und Maus• HDMI-Kabel für Monitor

• Netzwerkkabel• MicroSD-Karte mit Betriebssystem• Micro-USB-Handyladegerät als Netzteil

Schließen Sie das Netzteil als Letztes an, damit schaltet sich der Raspberry Pi automatisch ein. Es gibt keinen eigenen Ein-/Ausschalter.

Betriebssysteminstallation in KürzeFür alle, die ihren Raspberry Pi noch nicht mit der aktuellen Raspbian-Version betriebsbereit haben, hier die Systeminstallation in 10 Schrit-ten:

1 NOOBS auf den PC herunterladen: www.raspberrypi.org/downloads und Zip-Archiv auf die Festplatte entpacken.

2 Wurde die SD-Karte bereits benutzt, mit SD-Formatter im PC neu formatieren: www.sdcard.org/downloads/formatter_4. Dabei Format Size Adjust-ment einschalten.t

3 Die Dateien und Unterverzeichnisse auf die SD-Karte kopieren.

4 SD-Karte aus dem PC nehmen, in Raspberry Pi stecken und booten. Ganz unten Deutsch als Installati-onssprache wählen. Damit wird automatisch auch die deutsche Tastatur ausgewählt.

5 Das Häkchen beim vorausgewählten Raspbian-Betriebssystem setzen.

6 Nach Bestätigung einer Sicherheitsabfrage, dass die Speicherkarte überschrieben wird, startet die Ins-tallation, die einige Minuten dauert.

7 Nach abgeschlossener Installation bootet der Raspberry Pi neu und startet automatisch das Konfi gu-rationstool raspi-confi g.

8 Unter 3 Enable Boot to Desktop/Scratch dieOption Desktop Log in as user ‚pi‘ at the graphical desktop auswählen.

9 Unter 4 Internationalisation Options die Option Change Timezone auswählen und die Zeitzone auf Europa/Berlin stellen.

10 <Finish> wählen und den Raspberry Pi neu booten.

LED leuchtetFür das erste Experiment wird kein Programm benötigt. Der Raspberry Pi dient hier nur als Stromversorgung für die LED. Das Experimentzeigt, wie LEDs angeschlossen werden.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x 220-Ohm-Widerstand, 2 x Verbindungskabel

1. Tag

Die erste LED leuchtet am Raspberry Pi

10181-3 Raspberry Adventskalender_NEU_02.indd 410181-3 Raspberry Adventskalender_NEU_02.indd 4 23.06.2015 18:19:3323.06.2015 18:19:33

5

2. TagScratchGPIO ist ein Zusatzmodul zur besonders einfach zu erlernenden Programmiersprache Scratch, mit dem es möglichist, die GPIO-Schnittstelle des Raspberry Pi mit Scratch zu steuern.

ScratchGPIO installierenScratch ist in Raspbian bereits enthalten, das Zusatzmodul ScratchGPIO wird über ein LXTerminal-Fenster nachinstalliert.

1 LXTerminal über das Symbol in der Taskleiste starten.

2 wget http://bit.ly/1wxrqdp -O isgh7.sh

3 sudo bash isgh7.sh

4 Auf dem Raspbian-Desktop erscheinen zwei neueSymbole.

5 Für die meisten Experimente ist ScratchGPIO 7 dierichtige Wahl. Die Variante ScratchGPIO 7plus wird für verschiedene Zusatzplatinen benötigt.

Die Pinbelegung in ScratchGPIOEin GPIO-Pin kann entweder als Eingang oder als Ausgang verwendet werden. ScratchGPIO bezeichnetdie GPIO-Pins anders als alle anderen Programme und Programmiersprachen auf dem Raspberry Pi. Die Abbil-dung unten ganz rechts zeigt die als Eingang defi niertenPins (7, 8, 10, 19, 21-24 sowie 26) und die als Ausgangdefi nierten Pins (11-13, 15, 16, 18). Die Pins mit den Num-mern 29, 31-33, 35-38 und 40 können sowohl als Ein-gang wie auch als Ausgang verwendet werden.

LEDs blinkenDas Experiment des 2. Tages lässt zwei LEDs abwechselnd blinken. Gesteuert wird das Ganze über ein Programm in ScratchGPIO.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x LED gelb, 2 x 220-Ohm-Widerstand, 3 x Verbindungs-kabel

Zwei LEDs blinken am Raspberry Pi

2. Tag

ScratchGPIO-Symbole auf dem Desktop nach der Installation im LXTerminal

Links: Standardbezeichnung der GPIO-Pins, rechts:

Bezeichnung in ScratchGPIO

18

24

Alle gezeigten Programme und Elemente können unter www.buch.cd heruntergeladen werden. Geben Sie dort den Code 10181-3 in dasentsprechende Feld ein, danach entpacken Sie einfach das ZIP-Verzeichnis ins HOME-Verzeichnis des Raspberry Pi und los geht‘s.

10181-3 Raspberry Adventskalender_NEU_02.indd 510181-3 Raspberry Adventskalender_NEU_02.indd 5 23.06.2015 18:19:3423.06.2015 18:19:34

6

Das ProgrammIn Scratch braucht man beim Programmieren keinen Programmcode zu tippen. Die Blöcke werden einfach nur per Drag and drop aneinandergehängt. Die Blockpalette im linken Teil des Scratch-Fensters enthält, nach Themen geordnet, die verfügbaren Blöcke.

Dieses Scratch-Programm 02blink lässt die LEDs abwechselnd blinken

Das Programm startet, wenn der Benutzer oben rechts im Scratch-Fenster auf das grüne Fähnchen klickt.

Eine wiederhole fortlaufend-Schleife sorgt dafür, dass die LEDs endlos blinken, so lange, bis der Benutzer auf dasrote Stopp-Symbol oben rechts in Scratch klickt.

Die GPIO-Befehle werden über den Scratch-Block sende... an alle ausgegeben. Im Textfeld werden über einenverbinde-Block von der grünen Blockpalette Operatoren die jeweilige Pinbezeichnung und das Schlüsselwort on bzw. off zu einer Nachricht fverbunden.

Nachdem die rote LED an Pin 12 eingeschaltet und die gelbe LED an Pin 18 ausgeschaltet ist, wartet das Programm eine halbe Sekunde. (Hin-weis: Scratch verwendet wie viele amerikanische Programme den Punkt als Dezimaltrennzeichen, nicht das in Deutschland übliche Komma).

Danach werden auf die gleiche Weise die rote LED an Pin 12 ausgeschaltet und die gelbe LED an Pin 18 eingeschaltet.

10181-3 Raspberry Adventskalender_NEU_02.indd 610181-3 Raspberry Adventskalender_NEU_02.indd 6 23.06.2015 18:19:3423.06.2015 18:19:34

7

3. Tag

AmpelDas Experiment des 3. Tages schaltet eine Ampel aus drei LEDs in ihrem typischen Zyklus von Rot über Rot-Gelb nach Grün und über Gelb zurück nach Rot.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x LED gelb, 1 x LED grün, 3 x 220-Ohm-Widerstand, 4 x Verbindungskabel

Das ProgrammDas Programm funktioniert ähnlich wie das von gestern. Auch hier werden in einer Endlosschleife nacheinander verschiedene Kombinationenvon LEDs ein- und ausgeschaltet. In den Zwischenphasen Rot-Gelb und Gelb leuchtet die Ampel jeweils 0,5 Sekunden, in den Phasen Rot undGrün je 2 Sekunden. Diese Zeiten lassen sich in den warte...Sek-Blöcken auch anders einstellen.

Das Programm 03ampel steuert die Ampel

Ampel mit drei LEDs

3. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 710181-3 Raspberry Adventskalender_NEU_02.indd 7 23.06.2015 18:19:3423.06.2015 18:19:34

8

4. Tag

RGB-LEDsEine normale LED leuchtet immer nur in einer Farbe. Bei den LEDs im Adventskalender kann man die Farbe auch erken-nen, wenn die LED aus ist. Es gibt aber auch LEDs, die transparent aussehen und ihre Farbe erst zeigen, wenn Stromfl ießt. RGB-LEDs können wahlweise in mehreren Farben leuchten. Hier sind im Prinzip drei LEDs mit verschiedenen Far-

ben in einem transparenten Gehäuse eingebaut. Jede dieser drei LEDs hat eine eigeneAnode, über die sie mit einem GPIO-Pin verbunden wird. Die Kathode, die mit derMasseleitung verbunden wird, ist nur einmal vorhanden. Deshalb hat eine RGB-LED vierAnschlussdrähte.

Die Anschlussdrähte von RGB-LEDs sind unterschiedlich lang, um sie eindeutig zu erken-nen. Im Gegensatz zu normalen LEDs ist die Kathode hier der längste Draht.

RGB-LEDs funktionieren wie drei einzelne LEDs und brauchen deshalb auch drei Vorwider-stände.

RGB-LED blinkt buntDas Experiment des 4. Tages lässt eine RGB-LED zufällig in verschiedenen Farben blinken.

Bauteile: 1 x Steckbrett, 1 x RGB-LED, 3 x 220-Ohm-Widerstand, 4 x Verbindungskabel

Das ProgrammDie RGB-LED ist an drei GPIO-Pins mit aufeinanderfol-genden Nummern angeschlossen. Dadurch kann dieSteuerung über eine Zufallszahl zwischen 11 und 13erfolgen. In jedem Schleifendurchlauf wird einer der drei Pins der RGB-LED zufällig eingeschaltet. Dazu generiert das Programm eine Zufallszahl aus dem Bereich 11...13. Zwei ineinander geschachtelte verbinde-Blöcke erzeugendaraus einen dieser Texte: pin11on, pin12on, pin13on. InScratch können Zahlen und Zeichenketten beliebig zu Zeichenketten verbunden werden, was in anderen Pro-grammiersprachen oft erst nach vorheriger Konvertierung möglich ist. Danach schaltet ein ähnlicher Block zufällig einen der drei Pins der RGB-LED zufällig aus. Da in beidenFällen der Schaltzustand des jeweiligen Pins vorher nicht geprüft wird, kann auf diese Weise nach ein paar Schlei-fendurchläufen jede denkbare Kombination aus ein- und ausgeschalteten Farben entstehen.

Wie entstehen Zufallszahlen?Gemeinhin denkt man, in einem Programm könnenichts 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 Nachkommastelle Zahlen,die kaum noch vorhersehbar sind. Diese ändern sich auch ohne jede Regelmäßigkeit, wenn man den Divisor regelmäßig erhöht. Dieses Ergebnis ist zwar scheinbarzufällig, lässt sich aber durch ein identisches Programmoder den mehrfachen Aufruf des gleichen Programmsjederzeit reproduzieren. Nimmt man aber eine auseinigen dieser Ziffern zusammengebaute Zahl und teilt sie wiederum durch eine Zahl, die sich aus der aktuel-len Uhrzeitsekunde oder dem Inhalt einer beliebigenSpeicherstelle des Rechners ergibt, kommt ein Ergebnisheraus, das sich nicht reproduzieren lässt und daher als Zufallszahl bezeichnet wird.

Anschlusspins einer RGB-LED

Schaltplan für eine RGB-LED mit 3 Vorwiderständen

RGB-LED an den GPIO-Pins 11, 12, 13

Das Programm 04rgb lässt die RGB-LED bunt blinken

4. Tag

Additive FarbmischungRGB-LEDs verwenden die sogenannte additive Farbmischung. Hier werdendie drei Lichtfarben Rot, Grün und Blau addiert und ergeben am Ende reines Weiß. Im Gegensatz dazu verwendet ein Farbdrucker die subtraktive Farb-mischung. Jede Farbe wirkt auf einem weißen Blatt wie ein Filter, der einen Teil des weiß refl ektierten Lichtes wegnimmt (= subtrahiert). Druckt man alledrei Druckerfarben übereinander, ergibt es Schwarz, das gar kein Licht mehrrefl ektiert.

10181-3 Raspberry Adventskalender_NEU_02.indd 810181-3 Raspberry Adventskalender_NEU_02.indd 8 23.06.2015 18:19:3523.06.2015 18:19:35

9

5. Tag

LED mit Taster schaltenEin Taster stellt, solange die Taste gedrückt ist, eine Verbindung zwischen den beiden Kontaktleisten her. Lässt man dieTaste wieder los, wird die Verbindung wieder getrennt. Um eine LED immer einzuschalten, wenn ein Taster gedrückt ist, braucht man nur einen Stromkreis zu schließen und keinProgramm. Das Experiment des 5. Tages schaltet mit einemTastendruck die LED ein und mit dem nächsten Tasten-druck wieder aus.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x 220-Ohm-Wider-stand, 1 x Taster, 4 x Verbindungskabel

ScratchGPIO nutzt interne Pullup-Widerstände im Rasp-berry Pi, so dass GPIO-Eingänge im nicht beschaltetenZustand eindeutig den Wert 1 haben. Verbindet man einensolchen GPIO-Eingang mit GND, nimmt er den Wert 0 an.GPIO-Eingänge können nur die Werte 1 oder 0 annehmen.

Das ProgrammIn einer Endlosschleife wartet das Programm, bis derBenutzer den Taster drückt. Dann wird die LED eingeschal-tet. Anschließend wartet das Programm wieder, bis derBenutzer den Taster drückt. Jetzt wird die LED wieder aus-geschaltet, und die Endlosschleife beginnt von Neuem.

Das Programm 05taster schaltet die LED mit einem Taster

Der Scratch-Block warte bis... lässt das Programm warten, bis eine bestimmte Bedingung erfüllt ist. Bedingungen sind Blöcke mit spitzenEnden, die meisten davon sind auf der Blockpalette Operatoren zu fi nden.

Welchen Wert ein GPIO-Eingang gerade hat, wird mit dem Block Wert von Sensor... von der Blockpalette Fühlen überprüft. Im Listenfeldstehen alle GPIO-Eingänge zur Auswahl.

Nachdem die LED ein- oder ausgeschaltet wurde, wartet das Programm 0,2 Sekunden. Solche sogenannten „Timeouts“ oder auf deutsch„Auszeiten“ baut man immer ein, wenn Programme direkt mit Hardware kommunizieren. Sie verhindern – einfach ausgedrückt – dass sichein Programm „überschlägt“ und irgendein Hardwareereignis nicht mehr mitbekommt.

Der Taster schaltet die LED

5. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 910181-3 Raspberry Adventskalender_NEU_02.indd 9 23.06.2015 18:19:3523.06.2015 18:19:35

10

6. Tag

LED mit Sensorkontakt steuernNicht nur Ampeln, sondern auch 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. Das Experimentdes 6. Tages steuert eine LED über einen einfachen Sensorkontakt.

Der Sensorkontakt schaltet die LED ein

Das Programm 06sensor schaltet eine LED über einen

Sensorkontakt ein

6. Tag

22020 OhOhmm

20 20 MOhMOhmm

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x 220-Ohm-Wider-stand, 1 x 20-MOhm-Widerstand, 2 x Drahtbrücke (Sen-sorkontakt), 4 x Verbindungskabel

Die beiden grau dargestellten Drahtbrücken werden aus kurzen Stücken von blankem Schaltdraht hergestellt. Der obere Kontakt steckt auf der Masseleitung, der untere Kontakt ist mit dem GPIO-Pin 22 verbunden. Dieser Draht wird in den nächsten Tagen noch öfter gebraucht, um Verbindungsbrücken auf dem Steckbrett zu bauen.

So funktionieren SensorkontakteDer als Eingang geschaltete GPIO-Pin ist über einen extrem hochohmigen Widerstand (20 MOhm) mit +3,3V verbun-den, sodass ein schwaches, aber eindeutig als High defi -niertes Signal anliegt. Ein Mensch, der nicht gerade frei inder Luft schwebt, ist immer geerdet und liefert über die elektrisch leitfähige Haut einen Low-Pegel. Berührt dieser Mensch einen Sensorkontakt, wird das schwache High-Signal von dem deutlich stärkeren Low-Pegel der Finger-kuppe ü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ßboden. Bar-fuss im nassen Gras ist die Verbindung zur Masse der Erde am besten, aberauch auf Steinfußböden funktioniert es meistens gut. Holzfußböden isolierenstärker, Kunststoffbodenbeläge sind oft sogar positiv aufgeladen. Damit dieSchaltung immer funktioniert, ist, ähnlich wie bei Sensortasten an Aufzügen und Türen, zusätzlich ein Massekontakt eingebaut. Berührt man diesen und den eigentlichen Sensor gleichzeitig, ist die Masseverbindung auf jeden Fallhergestellt.

Das ProgrammDamit die Sensorkontakte funktionieren, müssen zuerst die internen Pullup-Widerstände an den GPIO-Pins ausgeschaltet werden, die ScratchGPIO stan-dardmäßig immer einschaltet. Das erledigt ein GPIO-Befehl SetPinsNone amAnfang des Programms.

In einer Endlosschleife prüft eine falls…sonst-Abfrage, ob der Wert des Sen-sors pin22 gleich 0 ist. Dann ist der GPIO-Pin mit Masse verbunden, der Sen-sor wurde also berührt.

In diesem Fall wird die LED am GPIO-Pin 12 eingeschaltet, andernfalls – wennder Sensor nicht berührt wird – wird sie ausgeschaltet.

10181-3 Raspberry Adventskalender_NEU_02.indd 1010181-3 Raspberry Adventskalender_NEU_02.indd 10 23.06.2015 18:19:3623.06.2015 18:19:36

11

7. Tag

Löffel als SensorEin Löffel oder ein anderer metallischer Gegenstand eignet sich gut als Sensorkontakt. Der Löffel wird über ein Krokodil-klemmenkabel mit einer Drahtbrücke auf dem Steckbrett verbunden.

Berührt man den Löffel, leuchtet im Experiment des 7. Tages die grüne LED. Solangeman ihn nicht berührt, leuchtet die rote LED.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x LED grün, 2 x 220-Ohm-Widerstand, 1 x 20-MOhm-Widerstand, 2 x Drahtbrücke (Sensorkontakt), 5 x Verbindungskabel,1 x Krokodilklemmenkabel

An der unteren Drahtbrücke wird das Krokodilklemmenkabel angeschlossen. Der Massekontakt an der obe-

ren Drahtbrücke ist nur bei nicht ausreichender Erdung nötig

Das ProgrammDas Programm ähnelt dem von gestern. Wenn der Sensor am GPIO-Pin 22 den Wert 0 liefert, also mit Masse verbunden ist, wird die am GPIO-Pin 18 angeschlossene grüne LED eingeschaltet und die am GPIO-Pin 12 angeschlossene rote LED aus. Im anderen Fall wirddie rote LED eingeschaltet und die grüne aus.

Das Programm 07loeffel schaltet zwei LEDs über einen

Sensorkontakt um

7. Tag

222 0 O Ohmhm

22020 OhOhmm

220 M0 MOhmOhm

10181-3 Raspberry Adventskalender_NEU_02.indd 1110181-3 Raspberry Adventskalender_NEU_02.indd 11 23.06.2015 18:19:3623.06.2015 18:19:36

12

8. Tag

RGB-LED mit Sensorkontakt steuernDrei Sensorkontakte können die drei Farben einer RGB-LED unabhängig voneinander steuern. Berührt man zwei Kontaktegleichzeitig, entsteht eine Mischfarbe. Berührt man alle drei Kontakte, leuchtet die RGB-LED weiß.

Bauteile: 1 x Steckbrett, 1  x RGB-LED, 3 x 220-Ohm-Widerstand, 3 x 20-MOhm-Widerstand, 4 x Drahtbrücke (Sensorkontakt), 1 x Drahtbrü-cke (Verbindungsdraht), 8 x Verbindungskabel

Das ProgrammDas Programm fragt in einer Endlosschleife ständig die drei Sensorkontakte an den GPIO-Pins 11, 12 und 13 ab. Liefert ein Sensor den Wert 0, wird die entsprechende Farbkomponente der RGB-LED eingeschaltet, andernfalls ausgeschaltet.

Drei Sensorkontakte steuern die drei Farben der RGB-LED

8. Tag

220 Ohm220220 OhOhmm220 OhOhm

20 MOhOhmm

20 MOhOhmm

20 MOhOhmm

Das Programm 08rgb-sensor steuert eine RGB-LED über drei

Sensorkontakte

10181-3 Raspberry Adventskalender_NEU_02.indd 1210181-3 Raspberry Adventskalender_NEU_02.indd 12 23.06.2015 18:19:3723.06.2015 18:19:37

13

9. Tag

Pong-Spiel mit zwei SensorkontaktenNatürlich kann man mit Scratch nicht nur LEDs programmieren. Ursprünglich war die Programmiersprache dazu gedacht,einfache Spielchen auf dem Bildschirm zu bauen. Das Programm von heute steuert ein einfaches Pong-Spiel im Retro-Design mit zwei metallischen Gegenständen, die über Krokodilklemmenkabel an Drahtbrücken auf dem Steckbrett ange-schlossen sind.

Das Spiel 09pong und die Scratch-Skripte für den Ball

In diesem Spiel versucht man, einen Ball, der im Raum herumfl iegt, mit dem Paddle zurückzuschlagen. Wenn der Ball die farbige Linie berührt, bekommt der Spieler einen Minuspunkt und der Ball startet in der Mitte wieder neu. Mit zwei Sensorkontakten wird das Paddlenach oben und unten bewegt. Die LEDs signalisieren Berührungen der Sensoren.

Das Programm für den BallDie beiden Objekte im Spiel, der Ball und das Paddle, haben jeweils eigene Scratch-Skripte, die alle beim Klick auf das grüne Fähnchen starten.

Am Anfang des Spiels wird der Ball auf den Mittelpunkt der Bühne und der Punktezähler auf 0 gesetzt. Der Ball startet in einer zufälligen Richtung zwischen –20 und –160 Grad. Anschließendfl iegt er in einer Endlosschleife und ändert seine Richtung nur, wenn er vom Rand abprallt.

Dieses Skript steuert die Ballbewegung, wenn

das Paddle berührt wird

Berührt der Ball das Paddle, wird die Bewegungsrichtung ins Negative umgekehrt. Der Ball fl iegt im gleichen Winkel nach links unten weiter, in dem er von links oben kam, oder umgekehrt, wenn er von links unten kam, fl iegt er nachlinks oben weiter. Danach fl iegt der Ball einen kleinen Schritt, um das Paddle auf jedenFall nicht mehr zu berühren. Um die Bewegung etwas unvorhersehbarer zu gestalten,wird die Flugrichtung gegenüber der bisherigen Richtung um einen zufälligen Wert zwi-schen –20 und 20 Grad verändert.

Berührt der Ball den lila Balken, bekommt der Spieler einen Minuspunkt. Die VariablePunkte wird um 1 erhöht. Anschließend wird der Ball wieder in die Spielfeldmittegesetzt, um von dort wieder loszufl iegen. Die Flugrichtung wird um einen zufälligenWert zwischen -20 und 20 Grad gedreht, damit er nicht wieder exakt die gleiche Flug-bahn nimmt, aber trotzdem ungefähr in die Richtung fl iegt, in die er zuletzt gefl ogen ist.

Dieses Skript steuert die normale Ballbewegung

Dieses Skript steuert die Ballbewegung, wenn der Rand rechts

berührt wird

9. Tag

Variablen in Scratch:Um die Punkte zu zählen,verwendet das Programm eine Variable, einen klei-nen Speicherplatz, indenen man sich währendeines Programms eine Zahloder irgendetwas anders merken kann. Variablenmüssen in Scratch erst einmal angelegt werden,bevor man sie benutzen kann. Klicken Sie dazu inder Blockpalette oben auf das orangefarbene SymbolVariablen und dann auf Neue Variable. Geben sie der Variablen den NamenPunkte. Danach erscheinen neue Blöcke auf der Block-palette, um mit dieserVariablen zu rechnen.

10181-3 Raspberry Adventskalender_NEU_02.indd 1310181-3 Raspberry Adventskalender_NEU_02.indd 13 23.06.2015 18:19:3823.06.2015 18:19:38

14

Die Elektronik für das Paddle

Bauteile: 1 x Steckbrett,1 x LED rot, 1 x LED gelb, 2 x 220-Ohm-Widerstand, 2 x 20-MOhm-Widerstand, 3 x Drahtbrücke (Sensorkontakt),6 x Verbindungskabel, 2 x Krokodilklemmenkabel

Das Programm für das PaddleDas Paddle hat ein eigens Scratch-Script, das auch beim Klick auf das grüne Fähnchen gestartet wird und die Elektronik abfragt und steuert.

Dieses Skript steuert das Paddle

In einer Endlosschleife werden die beiden Sensoren an den GPIO-Pins 24 und 26 abgefragt. Wird ein Sensor berührt, wird die zugehörige LEDfür 0,1 Sekunden kurz eingeschaltet. Viel wichtiger, als dass die LED kurz leuchtet, ist die Bewegung des Paddles um 20 Koordinateneinheitennach oben oder unten.

Falls das Paddle am oberen Rand angekommen ist, soll es sich nicht weiter bewegen. Hier verwenden wir eine falls-Abfrage, die prüft, ob die y-Position größer als 200 ist. Ist dies der Fall, wird die y-Position einfach auf 200 gesetzt. Nach dem gleichen Prinzip wird die Position auf –200 gesetzt, wenn das Paddle am unteren Rand angekommen ist.

Zwei Löffel, Münzen oder andere Gegenstände steuern das Paddle im Spiel

10181-3 Raspberry Adventskalender_NEU_02.indd 1410181-3 Raspberry Adventskalender_NEU_02.indd 14 23.06.2015 18:19:3923.06.2015 18:19:39

15

10. Tag

Blinklicht mit Knete steuernKnete leitet den Strom etwa so gut wie menschliche Haut. Sie lässt sich leicht in jede beliebige Form bringen und einKnetekontakt fasst sich viel besser an als ein einfaches Stück Draht. Die Fläche, mit der die Hand den Kontakt berührt, istdeutlich größer. So kommt es nicht so leicht zu einem „Wackelkontakt“.

Aus einem Stück Knete, einem Draht und einem Krokodilklemmenkabel wird ein Knetesensor gebaut.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x 220-Ohm-Widerstand, 1 x 20-MOhm-Widerstand, 2 x Drahtbrü-cke (Sensorkontakt), 4 x Verbindungskabel, 1 x Krokodilklemmenkabel, 1 x Knetekontakt

Im Experiment des 10. Tages schaltet der Sensorkontaktdie LED nicht einfach ein oder aus, sondern lässt sie miteiner einstellbaren Geschwindigkeit blinken, solange derKnetesensor berührt wird.

Das ProgrammDas Programm verwendet eine Variable, die auf der Bühnemit einem Schieberegler angezeigt wird. So kann man,während das Programm läuft, die Blinkfrequenz verän-dern.

Das Programm 10blinklicht steuert ein Blinklicht mit einem Knetesensor

Beim Start des Programms mit einem Klick auf das grüne Fähnchen wird die Variable z, die die Blinkgeschwindigkeit steuert, auf 0.1 gesetzt.Eine Endlosschleife fragt den Sensor am GPIO-Pin 24 ab. Wird dieser berührt, leuchtet die LED für die in der Variable z festgelegten Zeit und wird danach für den gleichen Zeitraum wieder abgeschaltet.

Wird der Knetesensor länger berührt, entsteht ein Blinkeffekt. Am Ende der Schleife ist die LED immer aus. Dadurch bleibt sie auch aus,wenn der Knetesensor nicht berührt wird.

Ein Knetesensor schaltet ein Blinklicht ein und aus

10. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 1510181-3 Raspberry Adventskalender_NEU_02.indd 15 23.06.2015 18:19:3923.06.2015 18:19:39

16

11. Tag

Fußgängerampel mit Blinklicht In einigen Ländern leuchten die Ampeln an Fußgängerüberwegen für die Fußgänger nicht Rot und Grün, sondern es blinkt ein Blinklicht, wenn die Verkehrsampel rot zeigt und man über die Straße gehen kann.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x LED gelb, 1 x LED grün, 1 x LED blau, 4 x 220-Ohm-Widerstand, 1 x Taster, 1 x Drahtbrücke (Verbin-dungsdraht), 6 x Verbindungskabel

Das ProgrammDas Programm lässt in einer Endlosschleife den Ampelzyklus laufen. Nachdem die Ampel Grün zeigt, wartet die Schleife, bis die Taste gedrückt wird. Danach läuft der Ampelzyklus weiter, bis die Ampel Rot zeigt. Dann fl ackert die blaue LED 20 mal. Nach dem Ausschaltendieser LED ist keine Wartezeit eingebaut. Die LED ist nur einen kurzen Moment aus, so lange wie das Skript braucht, um den nächsten Schlei-fendurchlauf zu starten. Damit entsteht ein Flackerlicht im Gegensatz zum gleichmäßigen Blinklicht früherer Projekte.

Das Programm 11fussgaengerblau steuert eine Fußgängerampel

mit Blinklicht

Fußgängerampel mit blauem Blinklicht

11. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 1610181-3 Raspberry Adventskalender_NEU_02.indd 16 23.06.2015 18:19:4823.06.2015 18:19:48

17

12. Tag

Fußgängerampel mit Rot-/Grün-AmpelDas Experiment des 12. Tages ist eine weitere Version der Fußgängerampel, mit dem Unterschied, dass diesmal eine RGB-LED den Fußgängern Rot oder Grün zeigt.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x LED gelb, 1 x LED grün, 1 x RGB-LED, 5 x 220-Ohm-Widerstand,1 x Taster, 2 x Drahtbrücke (Verbindungsdraht), 7 x Verbindungskabel

Das ProgrammDas Programm läuft ähnlich wie die vorherige Version, schaltet aber am Anfang zusätzlich den GPIO-Pin 15 ein, an dem die rote Farbe der RGB-LED angeschlossen ist. Nachdem die Verkehrsampel auf Rot geschaltet hat, wird die rote Farbe der RGB-LED am GPIO-Pin 15 für 2 Sekun-den ausgeschaltet und dafür die grüne Farbe der RGB-LED am GPIO-Pin 18 eingeschaltet.

Das Programm 12fussgaengerrot steuert

eine Fußgängerampel mit RGB-LED

Fußgängerampel mit RGB-LED

12. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 1710181-3 Raspberry Adventskalender_NEU_02.indd 17 23.06.2015 18:19:4823.06.2015 18:19:48

18

13. Tag

RGB-LichteffekteDas Experiment des 13. Tages lässt zwei RGB-LEDs wechselweise blinken. Die Farben können interaktiv am Bildschirm eingeschaltet werden.

Bauteile: 1 x Steckbrett, 2 x RGB-LED, 6 x 220-Ohm-Widerstand, 1 x Drahtbrücke (Verbindungsdraht), 7 x Verbindungskabel

Das ProgrammDas Programm zeigt eine weitere Methode, in ScratchGPIO Ausgangspins zu setzen. Es verwendet drei Variablen, je eine pro Farbe. DieVariablen r, g und b werden auf der Bühne mit Reglern angezeigt. Hier kann der Benutzer die drei Farbkomponenten interaktiv ein- und aus-schalten. Dazu kommen sechs Variablen für die verwendeten Pins der beiden RGB-LEDs. Diese werden auf die entsprechenden Werte gesetzt.

In einer Endlosschleife werden die drei GPIO-Pins 11, 12 und 13 der ersten RGB-LED auf die eingestellten Farbwerte gesetzt und die drei GPIO-Pins 16, 18 und 15 der zweiten RGB-LED ausgeschaltet. Nach einer kurzen Wartezeit wird die erste RGB-LED ausgeschaltet und die zweite bekommt die eingestellten Farbwerte. Durch abwechselndes Umschalten der LEDs entsteht ein Wechselblinken.

Das Programm 13rgb2 lässt zwei RGB-LEDs abwechselnd blinken

Zwei RGB-LEDs für Lichteffekte

13. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 1810181-3 Raspberry Adventskalender_NEU_02.indd 18 23.06.2015 18:19:4823.06.2015 18:19:48

19

14. Tag

KrabbenkrabbelnDas Experiment des 14. Tages ist ein schnelles Spiel auf dem Bildschirm, das über ein kleines Gamepad mit zwei Tasterngesteuert wird. In dem Spiel rennt eine Krabbe auf einem Rundkurs und soll dabei so wenig wie möglich vom Wegabkommen.

Die Krabbe krabbelt selbstständig vorwärts. Mit den Tastenlässt sich die Krabbe drehen, um ihre Krabbelrichtung zuverändern.

Bauteile: 1 x Steckbrett, 2 x Taster, 1 x Drahtbrücke (Verbindungsdraht), 3 x Verbindungskabel

Das ProgrammBeim Klick auf das grüne Fähnchen wird die Krabbe in die Ausgangsstellunggebracht und der Fehlerzähler auf 0 zurückgesetzt. Danach beginnt eine End-losschleife, in der die Krabbe bei jedem Durchlauf einen kleinen Schritt geht.

Anschließend wird geprüft, ob die rote oder grüne Schere der Krabbe den weißen Hintergrund berührt. In diesem Fall ist die Krabbe vom Weg abge-kommen und es gibt einen Fehlerpunkt.

Zwei weitere Abfragen prüfen, ob eine der beiden Tasten gedrückt wurde. Istdies der Fall, wird die Krabbe um 5 Grad für jeden Tastendruck in die jewei-lige Richtung gedreht.

Das Spiel Krabbenkrabbeln

Das schnelle Spiel 14krabbe

Dieses Gamepad steuert die Krabbe

14. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 1910181-3 Raspberry Adventskalender_NEU_02.indd 19 23.06.2015 18:19:4923.06.2015 18:19:49

20

15. Tag

Laufl ichtLaufl ichter sind immer wieder beliebte Effekte, nicht nur für Werbung und Partyräume. Das Experiment des 15. Tages lässtsieben LEDs als Laufl icht leuchten. Die drei RGB-LEDs werden jeweils nur mit einer Farbe angeschlossen.

Bauteile: 1 x Steckbrett, 1 x LED rot, 1 x LED gelb, 1 x LED grün, 1 x LED blau, 3 x RGB-LED, 7x 220-Ohm-Widerstand, 3 x Drahtbrücke (Verbin-dungsdraht), 8 x Verbindungskabel

Das ProgrammIn einer Endlosschleife werden nacheinander die LEDs für eine kurze Zeit eingeschaltet. Die Zeit wird in der Variable z gespeichert, die auf dem Bildschirm interaktiv über einen Regler eingestellt werden kann.

Das Programm 15lauflicht lässt sieben LEDs als Laufl icht abwechselnd blinken

7 LEDs als Laufl icht

15. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 2010181-3 Raspberry Adventskalender_NEU_02.indd 20 23.06.2015 18:19:4923.06.2015 18:19:49

21

16. Tag

RGB-LED mit Sensorkontakt steuernDrei Sensorkontakte können die drei Farben einer RGB-LED unabhängig voneinander steuern. Berührt man zwei Kontakte gleichzeitig, entsteht eine Mischfarbe. Berührt man alle drei Kontakte, leuchtet die RGB-LED weiß.

Bauteile: 1 x Steckbrett, 1 x RGB-LED, 3 x 220-Ohm-Widerstand, 3 x 20-MOhm-Widerstand, 4 x Drahtbrücke (Sensorkontakt), 1 x Drahtbrücke (Verbindungsdraht), 8 x Verbindungskabel, 3 x Krokodilklemmenkabel, 3 x Knetekontakt

An den drei Drahtbrücken werden über Krokodilklemmenkabel drei Knetekontakte angeschlossen. Die Drahtbrücke ganz oben in der Abbil-dung, der Massekontakt, wird nur bei Bedarf benötigt.

Das ProgrammDas Programm basiert auf einem früheren Programm, bei dem die RGB-Werte in Variablen gespeichert und über setze...auf-Blöcke in denffGPIO-Pins zugehörige Variablen geschrieben werden.

Das Programm 16rgb2-sensor lässt eine RGB-LED blinken

Ein zweiter Skriptblock, der ebenfalls beim Klick auf das grüne Fähnchen gestartet wird, fragt die dreiKnetesensoren ab und setzt entsprechend dieVariablen r, g und b.

Der zweite Skriptblock fragt die Sensoren ab

Drei Knete-Sensoren steuern die drei Farben einer blinkenden RGB-LED

16. Tag

220220 OhOhmm

20 20 MOhMOhmm

20 20 MOhMOhmm

20 20 MOhMOhmm

10181-3 Raspberry Adventskalender_NEU_02.indd 2110181-3 Raspberry Adventskalender_NEU_02.indd 21 23.06.2015 18:19:4923.06.2015 18:19:49

22

17. Tag

AutorennenÜber zwei Taster wird ein Auto in einem einfacher Rennen gesteuert. So lange das Auto auf der Straße fährt, leuchtet die grüne LED auf dem Spielcontroller, kommt das Auto nach links oder rechts von der Straße ab, leuchtet eine der beiden

roten LEDs.

Bauteile: 1 x Steckbrett, 2 x LED rot, 1 x LED grün,3 x 220-Ohm-Widerstand, 2 x Taster, 2 x Drahtbrücke(Verbindungsdraht), 6 x Verbindungskabel

Das ProgrammJedes Mal, wenn das Auto den oberen Bühnenrand erreichthat, erscheint ein neues Streckenbild und das Auto startet am unteren Bühnenrand wieder neu.

Das Auto wird über zwei Skriptblöcke gesteuert. Der erste Block besteht aus zwei ineinander geschachtelten Endlos-schleifen. Die äußere Schleife setzt das Auto an den unte-ren Bühnenrand, wartet ab, bis es oben angekommen ist,und sendet dann eine Nachricht Hintergrund, auf die dasBühnenbild reagiert und wechselt.

Die innere Schleife bewegt das Auto, solange der Randnicht berührt wird, und überprüft bei jeder Bewegung, obein schwarzes Rad des Autos die hellgrüne Wiese links der Straße berührt. Wenn ja, leuchtet die linke rote LEDund die grüne wird ausgeschaltet. Wird diese Wiese nicht

berührt, prüft eine weitere Abfrage, ob die dunkel-grüne Wiese rechts der Straße berührt wird. In diesemFall leuchtet die rechte rote LED und die grüne wirdebenfalls ausgeschaltet. Ist auch dies nicht der Fall,befi ndet sich das Auto auf der Straße und die grüneLED leuchtet.

Die Bühne hat noch zwei einfache Skripte. Am Anfang, beim Klick auf das grüne Fähnchen, wird das ersteHintergrundbild aktiviert und jedes Mal, wenn die Nachricht Hintergrund empfangen wird, wird dasnächste Bühnenbild angezeigt.

Spielcontroller mit zwei Tastern und drei LEDs für ein Autorennen.

Dieser Skriptblock lässt das Auto fahren

Die verschiedenen Hintergrundbilder für das Autorennspiel 17autorennen

Der zweite Skriptblock des Autos fragt ständig die

beiden Tasten ab und bewegt das Auto entspre-

chend nach links oder rechts

Die Skriptblöcke für die Bühne

17. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 2210181-3 Raspberry Adventskalender_NEU_02.indd 22 23.06.2015 18:19:5023.06.2015 18:19:50

23

18. Tag

LichteffekteGPIO-Pins können auch mehr als eine LED ansteuern, allerdings sollte trotzdem jede LED ihren eigenen Vorwiderstandhaben. Das Experiment des 18. Tages zeigt einen Lichteffekt auf sechs LEDs, die aber nur drei GPIO-Pins benötigen.

Bauteile: 1 x Steckbrett, 2 x LED rot, 2 x LED gelb, 1 x LED grün, 1 x LED blau, 6 x 220-Ohm-Widerstand, 3 x Drahtbrücke (Verbindungsdraht),4 x Verbindungskabel

Das ProgrammIn einer Endlosschleife werden nacheinander die GPIO-Pins eingeschaltet. Im Gegensatz zum Laufl icht bleiben sie eingeschaltet und werdenerst am Ende alle auf einmal wieder ausgeschaltet. Die Zeit zwischen den Schaltvorgängen wird in der Variable z gespeichert, die auf demBildschirm interaktiv über einen Regler eingestellt werden kann.

Das Programm 18lichteffekt

steuert den Lichteffekt an drei GPIO-

Pins

Lichteffekt mit 6 LEDs

18. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 2310181-3 Raspberry Adventskalender_NEU_02.indd 23 23.06.2015 18:19:5123.06.2015 18:19:51

24

19. Tag

Tennis-SpielDas Experiment des 19. Tages ist ein Spieleklassiker der frühen Home-Computer-Ära. Zwei Spieler versuchen, einen Ball über das Spielfeld zu schlagen. Trifft man die gegnerische Grundlinie, bekommt man einen Punkt. Das Programm basiert

auf dem Pong-Spiel vor ein paar Tagen.

Bauteile: 1 x Steckbrett, 4 x 20-MOhm-Widerstand,5 x Drahtbrücke (Sensorkontakt), 6 x Verbindungskabel,4 x Krokodilklemmenkabel, 4 x Knetekontakt

Das ProgrammDas Skript für den Ball lässt diesen wie im Pong-Spiel vonden Rändern abprallen. Wird eines der beiden Paddleberührt, wird die Flugrichtung zufällig noch etwas verän-dert.

Zwei Variablen speichern die Punkte der Spieler. JederSpieler bekommt einen Punkt, wenn der Ball die gegneri-sche Grundlinie berührt. Die beiden Paddles haben Pro-grammblöcke, die in Endlosschleifen je zwei Sensorkon-takte abfragen und das Paddle bei Berührung nach obenoder unten bewegen.

4 Knetesensoren steuern das Tennis-Spiel

Die Programmblöcke für den Ball im Spiel 19tennis

Die Skriptblöcke für das linke und rechte

Paddle

19. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 2410181-3 Raspberry Adventskalender_NEU_02.indd 24 23.06.2015 18:19:5123.06.2015 18:19:51

25

20. Tag

Würfel mit LEDsDie typischen Spielwürfel, die 1 – 6 Augen zeigen, kennt jeder und hat jeder zu Hause. Wesentlich cooler ist ein elek-tronisch gesteuerter Würfel, der mit einem Tastendruck die Augen leuchten lässt – aber nicht einfach 1 – 6 LEDs in einer Reihe, sondern in der Anordnung eines Spielwürfels. Die gewürfelte Zahl bleibt so lange angezeigt, bis die nächste Zahl gewürfelt wird.

Bauteile: 1 x Steckbrett, 2 x LED rot, 2 x LED gelb, 2 x LED grün, 1 x LED blau, 7 x 220-Ohm-Widerstand, 1 x Taster, 6 x Drahtbrücke (Verbin-dungsdraht), 6 x Verbindungskabel

Das ProgrammEine Endlosschleife wartet zuerst, bis der Taster an Pin 26 gedrückt wird. Jetzt werden die vier verwendeten GPIO-Pins ausgeschaltet unddamit das bisher angezeigte Würfelergebnis gelöscht.

Danach wird eine zufällige Zahl zwischen 1 und 6 erzeugt und in der Variable w gespeichert. Nachdem die Zahl gewürfelt wurde, folgen sechsfalls-Blöcke für jeden möglichen Würfelwert. Jeder dieser Blöcke schaltet, wenn eine bestimmte Zahl gewürfelt wurde, die entsprechende Kombination von LEDs ein.

Unabhängig vom Würfelergebnis, wartet das Programm immer, nachdem gewürfelt wurde, noch eine halbe Sekunde, um zu vermeiden, dass durch sogenanntes Tastenprellen kurz hintereinander zwei verschiedene Würfelaktionen ausgelöst werden.

Das Programm 20wuerfel steuert den LED-Würfel

Würfel aus sieben LEDs an vier GPIO-Pins

20. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 2510181-3 Raspberry Adventskalender_NEU_02.indd 25 23.06.2015 18:19:5223.06.2015 18:19:52

26

21. Tag

RGB-LichtsteuerpultDas Experiment des 21. Tages bietet verschiedene Lichteffekte mit drei RGB-LEDs. Die Farben und Effekte können interaktivam Bildschirm eingeschaltet werden.

Bauteile: 1 x Steckbrett, 3 x RGB-LED, 9 x 220-Ohm-Widerstand, 2 x Drahtbrücke (Verbindungsdraht), 10 x Verbindungskabel

Das ProgrammDas Programm verwendet fünf Variablen, die über Regler auf der Bühne eingestellt werden können. Mit den Variablen r, g und b kann der Benutzer die drei Farbkomponenten interaktiv ein- und ausschalten. Die Variable z legt die Wartezeit zwischen dem Aufblinken zweier aufein-ander folgender LEDs fest. Die Variable e legt die Zeit am Ende einer Schleife fest, bis die erste LED wieder leuchtet.

In einer Endlosschleife werden nacheinander die drei GPIO-Pins einer RGB-LED auf die eingestellten Farbwerte gesetzt und die drei GPIO-Pinsder vorher leuchtenden RGB-LED ausgeschaltet.

Das Programm 21rgb3 steuert den Lichteffekt an drei RGB-LEDs

Drei RGB-LEDs für Lichteffekte

21. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 2610181-3 Raspberry Adventskalender_NEU_02.indd 26 23.06.2015 18:19:5223.06.2015 18:19:52

27

22. TagHeute bietet der Adventskalender das Handbuch zum Conrad-Experimentierpaket »Raspberry Pi – verstehen und anwen-den« als E-Book zum Download. Dieses Buch enthält verschiedene weitere Experimente mit dem Raspberry Pi, die mit dervorinstallierten Programmiersprache Python umgesetzt werden.

Viele der verwendeten Bauteile sind bereits imAdventskalender enthalten, andere fi nden sich in Elektronikbastelkisten oder können beiwww.conrad.de erworben werden.

Würfel mit WürfeleffektEin elektronischer Würfel, der einfach nur eine Zahlanzeigt, wirkt noch nicht besonders realistisch. DasExperiment des 22. Tages lässt den Würfel, bevor dasendgültige Ergebnis angezeigt wird, vier andere Zah-len kurz aufblinken.

Bauteile: 1 x Steckbrett, 2 x LED rot, 2 x LED gelb, 2 x LED grün, 1 x LED blau, 7 x 220-Ohm-Wider-stand, 1 x Taster, 6 x Drahtbrücke (Verbindungs-draht), 6 x Verbindungskabel

Das ProgrammDas Programm besteht aus zwei Blöcken. Nach demKlick auf das grüne Fähnchen wartet eine Endlosschleife im Hauptprogramm darauf, dass die Taste gedrückt wird.Danach wird fünfmal eine Nachricht wuerfeln gesendet, die jedes Mal den Programmblock zur Anzeige eineszufälligen Würfelergebnisses aufruft. Die Zeitabstände zwischen den Würfelanzeigen werden immer länger. Sosieht es wie ein echter Würfel aus, der langsam ausrollt.

Würfel aus sieben LEDs

22. Tag

Das Programm 22wuerfel2 steuert den LED-

Würfel mit »echtem Würfeleffekt«

10181-3 Raspberry Adventskalender_NEU_02.indd 2710181-3 Raspberry Adventskalender_NEU_02.indd 27 23.06.2015 18:19:5223.06.2015 18:19:52

28

23. Tag

WeihnachtsliederDas Experiment des 23. Tages ist ein einfaches kleines Klavier, mit dem sich fünf Töne über Knetekontakte abspielen las-sen. Der sechste Kontakt, die Masseleitung, wird nur bei Bedarf gebraucht.

Bauteile: 1 x Steckbrett, 5 x 20-MOhm-Widerstand,6 x Drahtbrücke (Sensorkontakt), 7 x Verbindungskabel,5 x Krokodilklemmenkabel, 5 x Knetekontakt

Natürlich kann der Raspberry Pi beliebige Töne abspielen. Um mit den fünf zur Verfügung stehenden Knetekontakten auch sinnvoll Musik spielen zu können, verwenden wir die sogenannte Pentatonik, eine Tonleiter, die nur aus fünf Tönen besteht – übrigens die älteste historisch nachweis-bare Tonleiter, die schon um 3000 v.Chr. bei Knochenfl ötenverwendet wurde.

Da sich das menschliche Gehirn fünf Töne gut merkenkann, wird die pentatonische Tonleiter mit den Tönen C, D, E, G, A gerne in Kinderliedern und Werbemusik verwendet.Ein paar Beispiele:

Backe, backe, Kuchen (G-G-A-A-G-E) Laterne, Laterne, Sonne, Mond und Sterne (A-G-E, A-G-E,G-G-A-A-G-E) Old Mac Donald had a farm, hea hea ho! (C-C-C-G-A-A-G,E-E-D-D-C)

Das ProgrammEine Endlosschleife fragt nacheinander alle fünf Sensorkontakte ab. Wird ein Sensor berührt, wird der entsprechende Ton ausgegeben. Der Raspberry Pi kannMusik über einen HDMI-Monitor oder einen externen Lautsprecher oder Kopfhöreran der 3,5-mm-Klinkenbuchse abspielen.

Sollte nichts zu hören sein ...... in einem LXTerminal-Fenster sudo raspi-config aufrufen und unter Advan-ced Options/Audio den richtigen Audioausgang manuell wählen.

5 Anschlusskontakte für Knetesensoren

Für die Klavierspieler hier noch einmal die verwendeten Töne

Das Programm 23klavier simuliert mit fünf Knetetasten ein Klavier

23. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 2810181-3 Raspberry Adventskalender_NEU_02.indd 28 23.06.2015 18:19:5323.06.2015 18:19:53

29

24. Tag

WeihnachtsbaumschmuckDas Experiment des 24. Tages ist ein blinkender Weihnachtsbaumschmuck.

Bauteile: 1 x Steckbrett, 1 x LED rot, 2 x LED gelb, 1 x LED grün, 1 x LED blau, 1 x RGB-LED, 1 x Blink-LED, 9 x 220-Ohm-Widerstand, 1 x Drahtbrücke(Verbindungsdraht), 10 x Verbindungskabel

Das ProgrammDie fünf LEDs und die RGB-LED blinken programmge-steuert völlig zufällig. Die Blink-LED aus dem heuti-gen Türchen des Adventskalenders blinkt sogar ohnedass ein Programm läuft. Das Programm verwendet eine Liste, in der die GPIO-Pin-Nummern der verwen-deten LEDs gespeichert sind. Listenvariablen könnenin Scratch beliebig lang sein und sowohl Zahlen alsauch Zeichenketten enthalten. Nach einem Klick auf das grüne Fähnchen werden zunächst alle Listenele-mente gelöscht, falls das Programm schon einmallief, würde die Liste bereits Werte enthalten. Danach werden nacheinander die Pin-Nummern der fünf LEDs sowie die drei Farben der RGB-LED in der Liste gespeichert. Anschließend schaltet eine Endlos-schleife einen zufällig aus der Liste gewählten GPIO-Pin ein und einen weiteren zufällig gewählten GPIO-Pin aus. Das Programm enthält keine Zeitverzögerung.Da alle Pins zufällig gewählt werden, blinken die LEDs unterschiedlich lange. Die RGB-LED leuchtet in Farben, die zufällig gemischt werden.

Blink-LED ohne Raspberry Pi Mit einer zusätzlichen Stromversorgung von 3 V (z.B. zwei 1,5-V-Batterien) kann die Blink-LED auch blinken, ohne dass der Raspberry Pi läuft.

Weihnachtsbaumschmuck mit blinkenden LEDs und externer Stromversorgung

In dieser Schaltung ist die Blink-LED an eine eigene Stromversorgung, unabhängig vom Raspberry Pi, angeschlossen. So kann sie immer blin-ken, auch wenn der Raspberry Pi nicht läuft. Das Programm bleibt unverändert, da es die Blink-LED nicht beeinfl usst.

Weihnachtsbaumschmuck mit blinkenden LEDs

Das Programm 24weihnachtsbaum lässt die LEDs zufällig blinken

24. Tag

10181-3 Raspberry Adventskalender_NEU_02.indd 2910181-3 Raspberry Adventskalender_NEU_02.indd 29 23.06.2015 18:19:5423.06.2015 18:19:54

Liebe Kunden!

Dieses Produkt wurde in Übereinstimmung mit den geltenden europäischen Richtlinien hergestellt und trägt daher das CE-Zeichen. Der bestimmungsgemäße Gebrauch ist in der beiliegenden Anleitung

beschrieben.

Bei jeder anderen Nutzung oder Veränderung des Produktes sind allein Sie für die Einhaltung der geltenden Regeln verantwortlich. Bauen Sie die Schaltungen deshalb genau so auf, wie es in der Anlei-

tung beschrieben wird. Das Produkt darf nur zusammen mit dieser Anleitung weitergegeben werden.

Das Symbol der durchkreuzten Mülltonne bedeutet, dass dieses Produkt getrennt vom Hausmüll als Elektroschrott dem Recycling zugeführt werden muss. Wo Sie die nächstgelegene kostenlose Annah-

mestelle fi nden, sagt Ihnen Ihre kommunale Verwaltung.

Warnung! Augenschutz und LEDs:

Blicken Sie nicht aus geringer Entfernung direkt in eine LED, denn ein direkter Blick kann Netzhautschäden verursachen! Dies gilt besonders für helle LEDs im klaren Gehäuse sowie in besonderem Maße

für Power-LEDs. Bei weißen, blauen, violetten und ultravioletten LEDs gibt die scheinbare Helligkeit einen falschen Eindruck von der tatsächlichen Gefahr für Ihre Augen. Besondere Vorsicht ist bei der

Verwendung von Sammellinsen geboten. Betreiben Sie die LEDs so, wie in der Anleitung vorgesehen, nicht aber mit größeren Strömen.

© 2015 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, 85540 Haar

Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Inter-

net, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt.

Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen

und sollten als solche betrachtet werden. Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller.

Bibliografi sche Information der Deutschen Bibliothek

Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografi e; detaillierte Daten sind im Internet über http://dnb.ddb.de abrufbar.

Alle in diesem Buch vorgestellten Schaltungen und Programme wurden mit der größtmöglichen Sorgfalt entwickelt, geprüft und getestet. Trotzdem können Fehler im Buch und in der Software nicht

vollständig ausgeschlossen werden. Verlag und Autor haften in Fällen des Vorsatzes oder der groben Fahrlässigkeit nach den gesetzlichen Bestimmungen. Im Übrigen haften Verlag und Autor nur nach

dem Produkthaftungsgesetz wegen der Verletzung des Lebens, des Körpers oder der Gesundheit oder wegen der schuldhaften Verletzung wesentlicher Vertragspfl ichten. Der Schadensersatzanspruch für

die Verletzung wesentlicher Vertragspfl ichten ist auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht ein Fall der zwingenden Haftung nach dem Produkthaftungsgesetz gegeben ist.

VorsichtsmaßnahmenAuf keinen Fall irgendwelche GPIO-Pins miteinander verbinden und abwarten, was passiert.Nicht alle GPIO-Pins lassen sich frei programmieren. Einige sind für die Stromversorgung und andere Zwecke fest eingerichtet.Einige GPIO-Pins sind direkt mit Anschlüssen des Prozessors verbunden, ein Kurzschluss kann den Raspberry Pi komplett zerstören. Verbin-det man über einen Schalter oder eine LED zwei Pins miteinander, muss immer ein Schutzwiderstand dazwischengeschaltet werden.Für Logiksignale immer Pin 1 verwenden, der +3,3 V liefert und bis 50 mA belastet werden kann. Pin 6 ist die Masseleitung für Logiksignale.Pin 2 liefert +5 V zur Stromversorgung externer Hardware. Hier kann so viel Strom entnommen werden, wie das USB-Netzteil des Rasp-berry Pi liefert. Dieser Pin darf aber nicht mit einem GPIO-Eingang verbunden werden.

10181-3 Raspberry Adventskalender_NEU_02.indd 3010181-3 Raspberry Adventskalender_NEU_02.indd 30 23.06.2015 18:19:5523.06.2015 18:19:55