0214-8 Raspberry Adventskalender 2016_03.indd 1 28.04.
Alle Versuche im Überblick Raspberry Pi Adventskalender 2016. . . . . . . . . . . . . . 3 Steckbrett . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LEDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RGB-LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Widerstände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Raspberry Pi Adventskalender 2016 Mit einem normalen PC oder gar einem Notebook einfache Elektronik zu steuern, ist – auch wenn es nur ein paar LEDs sind – für Hobbyprogrammierer mit einem kaum vertretbarem Aufwand verbunden. Dem PC fehlen einfach die notwendigen Schnittstellen. Außerdem ist das Windows-Betriebssystem denkbar ungeeignet, mit Elektronik zu kommunizieren. Der Raspberry Pi ist – obwohl es auf den ersten Blick gar nicht so aussieht – ein vollwertiger Computer.
Widerstände Widerstände werden zur Strombegrenzung an empfindlichen elektronischen Bauteilen sowie als Vorwiderstände für LEDs verwendet. Die Maß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.
1. Tag Heute im Adventskalender • • • • 1. Tag Steckbrett (SYB 46) RGB-LED 220-Ohm-Widerstand (Rot-Rot-Braun) 2x Verbindungskabel Raspberry Pi vorbereiten Um den Raspberry Pi in Betrieb zu nehmen, braucht man: • • • • • USB-Tastatur und Maus HDMI-Kabel für Monitor Netzwerkkabel MicroSD-Karte mit Betriebssystem Raspbian Jessie Micro-USB-Handyladegerät als Netzteil (mindestens 1.000 mA) Das Netzteil als Letztes anschließen, damit schaltet sich der Raspberry Pi automatisch ein.
2. Tag 2. Tag Heute im Adventskalender • 220-Ohm-Widerstand (Rot-Rot-Braun) • Verbindungskabel LED blinkt rot und grün Das Experiment des zweiten Tages lässt eine RGB-LED abwechselnd rot und grün leuchten. Gesteuert wird das Ganze über ein Programm in Scratch. Bauteile: 1x Steckbrett, 1x RGB-LED, 2x 220-OhmWiderstand (Rot-Rot-Braun), 3x Verbindungskabel Das Programm Scratch ist auf dem Raspberry Pi im Menü unter Entwicklung vorinstalliert und eine der am einfachsten zu erlernenden Programmiersprachen.
3. Tag Heute im Adventskalender 3. Tag • 220-Ohm-Widerstand (Rot-Rot-Braun) • Verbindungskabel Farben mischen Das Experiment des dritten Tages lässt die RGB-LED in Mischfarben aus den drei Farbkomponenten Rot, Grün und Blau leuchten. Bauteile: 1x Steckbrett, 1x RGB-LED, 3x 220-OhmWiderstand (Rot-Rot-Braun), 4x Verbindungskabel Das Programm Das Programm funktioniert ähnlich wie das von gestern.
4. Tag 4. Tag Heute im Adventskalender • Schaltdraht Der Schaltdraht wird erst in den nächsten Tagen für verschiedene Experimente benötigt. Legen Sie sich bis dahin schon einmal eine Zange und ein scharfes Messer bereit, um die passenden Drahtstücke abzuschneiden und abzuisolieren. RGB-LED blinkt bunt Das Experiment des vierten Tages lässt eine RGB-LED zufällig in verschiedenen Farben blinken.
5. Tag Heute im Adventskalender 5. Tag • Knete • 20-MOhm-Widerstand (Rot-Schwarz-Blau) LED mit Sensorkontakt steuern 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. Das Experiment des fünften Tages steuert eine LED über einen einfachen Sensorkontakt.
6. Tag 6. Tag Heute im Adventskalender • 2x Verbindungskabel Der Raspberry Pi erzeugt Töne Audioausgang auswählen Der Raspberry Pi kann über einen HDMI-Monitor, einen externen Lautsprecher oder Kopfhörer an der analogen 3,5-mm-Klinkenbuchse Musik abspielen. Bei Computermonitoren mit DVIAnschluss, die am HDMI-Ausgang angeschlossen sind, muss am analogen Ausgang ein Lautsprecher angeschlossen werden, da das Audiosignal nicht über das DVI-Kabel übertragen wird.
7. Tag Heute im Adventskalender 7. Tag • 2x Verbindungskabel Töne mit Scratch-Buttons Das Experiment des siebten Tages steuert eine RGB-LED über Scratch-Buttons und zeigt damit objektorientierte Programmiertechniken in Scratch. Mit den inzwischen acht Verbindungskabeln lässt sich eine RGB-LED auch außerhalb des Steckbretts verwenden, um sie zum Beispiel an den Weihnachtsbaum zu hängen.
8. Tag 8. Tag Heute im Adventskalender • 560-Ohm-Widerstand (Grün-Blau-Braun) Dieser Widerstand wird erst in den nächsten Tagen benötigt. LED-Farbwechsel über PWM LEDs können zwei verschiedene Zustände annehmen, ein und aus. Das Gleiche gilt für die als digitale Ausgänge definierten GPIO-Ports. Demnach wäre es theoretisch nicht möglich, eine LED zu dimmen. Links: Tastverhältnis 50 % – rechts: Tastverhältnis 20 %.
9. Tag Heute im Adventskalender 9. Tag • 15-kOhm-Potenziometer Dieses Potenziometer wird erst in den nächsten Tagen benötigt. Musik mit Scratch Mit dem Experiment des neunten Tages spielen Sie auf einer Klaviatur auf dem Bildschirm selbst Musik. Zu jedem Ton leuchtet die LED in einer charakteristischen Farbe.
10. Tag 10. Tag Heute im Adventskalender • LCD-Modul • Pfostenverbinder zum Anlöten Das LCD-Modul im Adventskalender ist, wie die meisten derartigen Displays, zum Quasi-Standard HD44780 kompatibel. Dabei handelt es sich um die Bezeichnung des eingebauten Controllers, der Zeichen darstellt, ohne dass sich der Benutzer um die Ansteuerung der einzelnen Pixel zu kümmern braucht. Das LCD-Modul hat eine 16-polige Anschlussleiste.
Die Basisschaltung für das LCD-Modul am Raspberry Pi Das Potenziometer muss so eingebaut werden, dass der mittlere Kontakt in der Reihe 21 in der unteren Hälfte des Steckbretts steckt, die beiden äußeren Kontakte in den Reihen 19 und 23 in der oberen Hälfte. Das Programm Starten Sie die Python-Shell über den Menüpunkt Entwicklung/Python 2 im Startmenü. Öffnen Sie über den Menüpunkt File/Open das Programm 10display01.py und starten Sie es mit der Taste [F5].
11. Tag 11. Tag Heute im Adventskalender • Verbindungskabel Dieses Verbindungskabel wird erst in den nächsten Tagen benötigt. LCD-Modul mit Scratch steuern Mithilfe eines Open-Source-Programmmoduls lassen sich Scratch und Python miteinander verbinden. Werden in Scratch Variablen gesetzt oder verändert, bekommt Python eine Nachricht in Form eines dict-Objektes, das vom PythonProgramm ausgewertet werden kann – zum Beispiel, um Hardware zu steuern, die Scratch nicht direkt unterstützt.
12. Tag Heute im Adventskalender 12. Tag • Verbindungskabel Dieses Verbindungskabel wird erst in den nächsten Tagen benötigt. Einfacher Zähler mit Knetekontakt Das Experiment des zwölften Tages ist ein einfacher Zähler, der beim Berühren eines Knetekontakts jedes Mal um eins hochzählt. Die Schaltung mit dem LCDModul wurde um zwei Anschlüsse für Knetekontakte erweitert.
13. Tag 13. Tag Heute im Adventskalender • Verbindungskabel Dieses Verbindungskabel wird erst in den nächsten Tagen benötigt. Maustracker Das Experiment des 13. Tages zeigt die Koordinaten der Maus auf dem LCD-Modul an.
14. Tag Heute im Adventskalender 14. Tag • 220-Ohm-Widerstand (Rot-Rot-Braun) Dieser Widerstand wird erst in den nächsten Tagen benötigt. LED-Farbmischung mit PWM Ähnlich wie im Programm des achten Tages werden die drei Farbwerte der RGB-LED über Schieberegler interaktiv eingestellt, während das Programm läuft. Das LCD-Modul zeigt die drei Werte zusätzlich als Zahlenwerte an.
15. Tag 15. Tag Heute im Adventskalender • 20-MOhm-Widerstand (Rot-Schwarz-Blau) Stoppuhr Das Programm am 15. Tag lässt auf dem LCD-Modul eine Stoppuhr laufen. Sie wird mit zwei Knetekontakten gesteuert, einer startet die Uhr bei 0:00, der andere stoppt. Der dritte Knetekontakt (im Bild mit einem Minuszeichen markiert) dient zur Herstellung der Masseverbindung. Die bisher vorhandene Menge Knete reicht problemlos für drei Knetekontakte aus.
16. Tag Heute im Adventskalender 16. Tag • RGB-LED Ballspiel mit RGB-LEDs und Sensorkontakten Heute ist im Adventskalender zur Abwechslung ein klassisches Spiel auf dem Bildschirm, wie man es von diversen Retro-Konsolen kennt – ohne LCD-Modul, dafür mit einem Gamepad aus drei Knetekontakten gesteuert. In diesem Spiel versucht der Spieler, einen Ball, der im Raum herumfliegt, mit dem Paddle zurückzuschlagen.
Berührt der Ball den roten Balken am unteren Bühnenrand, bekommt der Spieler einen Fehlerpunkt. Die Variable Fehler wird um 1 erhöht. Anschließend wird der Ball wieder in die Spielfeldmitte gesetzt, um von dort wieder loszufliegen. Die Flugrichtung wird um einen zufälligen Wert zwischen -20 und 20 Grad gedreht, damit er nicht wieder exakt die gleiche Flugbahn nimmt, aber trotzdem ungefähr in die Richtung fliegt, in die er zuletzt geflogen ist.
17. Tag Heute im Adventskalender 17. Tag • Verbindungskabel Dieses Verbindungskabel wird erst in den nächsten Tagen benötigt. Text auf dem Display lesen Das Programm am 17. Tag zeigt auf dem LCD-Modul einen längeren Text an. Die Anzeige wird mit zwei Knetekontakten gesteuert, die den Text nach oben und unten scrollen lassen. Der dritte Knetekontakt (im Bild mit einem Minuszeichen markiert)ist zur Herstellung der Masseverbindung.
1 2 3 Das Programm 17text01 zeigt das Gedicht „Von drauss vom Walde komm ich her...“ auf dem LCD-Modul an. Auf das ß in drauß wird wegen Umlautdarstellung verzichtet, auch die Umlaute ä, ö und ü werden im Scratch-Programm nicht verwendet. 10214-8 Raspberry Adventskalender 2016_03.indd 24 28.04.
18. Tag 18. Tag Heute im Adventskalender • 2x 220-Ohm-Widerstand (Rot-Rot-Braun) Weihnachtslichteffekte Im Experiment des 18. Tages werden mit Knetekontakten bunte Weihnachtslichteffekte auf zwei RGB-LEDs gesteuert.
19. Tag Heute im Adventskalender 19. Tag • Knete Mit dem zweiten Stück Knete können jetzt verschiedenfarbige Knetekontakte gebaut werden, um diese eindeutig zu unterscheiden. Weihnachtsquiz Das Experiment des 19. Tages ist ein Quizspiel mit zehn weihnachtlichen Fragen, die auf dem LCD-Modul angezeigt werden. Über zwei Knetekontakte kann man auf jede Frage die Antworten Ja oder Nein geben. Der dritte Knetekontakt (im Bild mit einem Minuszeichen markiert)ist zur Herstellung der Masseverbindung.
20. Tag 20. Tag Heute im Adventskalender • 20-MOhm-Widerstand (Rot-Schwarz-Blau) Anzeige bei Spielende Zahlenspiel Das Projekt des 20. Tages ist ein einfaches Ratespiel, in dem eine vom Programm zufällig gewählte Zahl vom Spieler in möglichst wenigen Schritten erraten werden soll. Zur Eingabe der Tipps werden drei Knetekontakte verwendet. Der rechte erhöht den Tipp schrittweise um 1, der mittlere um 10.
21. Tag 21. Tag Heute im Adventskalender • 20-MOhm-Widerstand (Rot-Schwarz-Blau) Labyrinth Das Scratch-Programm des 21. Tages generiert im ersten Schritt ein zufälliges Labyrinth. Anschließend kann man mit vier Knetekontakten den roten Punkt durch das Labyrinth bewegen, ohne dass er durch die Wände läuft. Der dritte Knetekontakt (im Bild mit einem Minuszeichen markiert)ist zur Herstellung der Masseverbindung.
Die Wegbreite W legt das Raster des Labyrinths fest. Der Zähler Z zählt mit, wie viele Rasterpunkte bereits an das Labyrinth angeschlossen sind, und stellt so fest, wann es fertig gezeichnet ist. Jedes Scratch-Objekt kann bei seiner Bewegung Linien zeichnen, wenn der sogenannte Malstift abgesenkt ist. Solange er angehoben ist, hinterlassen Objekte keine Malspuren. Als Erstes zeichnen wir ein hellgraues Rechteck mit einem Abstand von einer Wegbreite um das eigentliche Labyrinth herum.
Die Aktionen, die durch die Knetekontakte ausgelöst werden, unterscheiden sich nur in der Richtung, sind sonst aber gleich. Eine Berührung eines Knetekontakts legt eine Richtung fest und löst anschließend über ein sende gehe an alle eine Bewegung um einen Rasterschritt aus. Das Objekt geht einen Schritt und hinterlässt dabei eine Spur. Als Erstes geht das Objekt einen halben Schritt weit in die durch den Knetekontakt festgelegte Richtung.
22. Tag 22. Tag Heute im Adventskalender • Verbindungskabel Dieses Verbindungskabel wird erst in den nächsten Tagen benötigt. Weihnachtsmusik Das Programm des 22. Tages spielt das Weihnachtslied „Kling Glöckchen...“ ab und zeigt den Text dazu auf dem LCD-Modul an.
1 4 2 5 3 6 Das Programm 22musik1 spielt das Weihnachtslied „Kling Glöckchen...“ ab. 10214-8 Raspberry Adventskalender 2016_03.indd 32 28.04.
23. Tag 23. Tag Heute im Adventskalender • 20-MOhm-Widerstand (Rot-Schwarz-Blau) • Downloadcode für Klaviatur zum Ausdrucken (Klavier_Adventskalender_2016_Raspberry_Pi.pdf). f Diesen Code geben Sie auf http://www. buch.cd ein. Karaoke-Keyboard für Weihnachtslieder Das Experiment des 23. Tages zeigt den Text sowie die Töne des bekannten Weihnachtslieds „Jingle Bells“ an, die auf einem Karaoke-Keyboard nachgespielt werden können. Das Keyboard enthält fünf Knetekontakte für fünf verschiedene Töne.
Wird die Nachricht startt empfangen, zeigt das Programm im Rhythmus von zwei Sekunden in der oberen Zeile des LCD-Moduls den Text eines halben Taktes an und darunter die entsprechenden Tonbezeichnungen. Jeder Knetekontakt wird über einen eigenen Programmblock abgefragt. Zusätzlich startet, wenn die Nachricht startt empfangen wird, für jeden Knetekontakt eine Endlosschleife, die den Sensor abfragt und bei Berührung den entsprechenden Ton abspielt.
24. Tag Heute im Adventskalender 24. Tag • Downloadcode für Weihnachtslieder (Weihnachtslieder.zip) Weihnachtsbaumschmuck mit MP3-Player Das Experiment des 24. Tages ist ein MP3-Player für den Weihnachtsbaum. Nehmen Sie als Sensorkontakte längere Drähte und hängen Sie aus Knete geformten oder andersartigen elektrisch leitfähigen Weihnachtsbaumschmuck daran. Jedes Mal, wenn Sie einen dieser Sensoren berühren, wird eines von fünf Weihnachtsliedern abgespielt und der Titel auf dem LCD-Modul angezeigt.
Vorsichtsmaßnahmen Auf 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. Verbindet man über einen Schalter oder eine LED zwei Pins miteinander, muss immer ein Schutzwiderstand dazwischengeschaltet werden.