Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Erste Schritte mit Scratch-GPIO

Die visuelle Programmiersprache Scratch eignet sich für Schülerinnen und Schüler aller Altersklassen, die in die Grundlagen der Programmierung einsteigen möchten.

Bevor man in die Arbeit einsteigen kann, muss noch ein Python-Skript geladen werden, das die Kommunikation zwischen den GPIOs des RPi und Scratch organisiert. Führe dazu folgende Kommandos auf der Terminalebene aus:

  • wget http://liamfraser.co.uk/lud/install_scratchgpio3.sh
  • chmod +x install_scratchgpio3.sh
  • sudo bash install_scratchgpio3.sh

Nach Ausführung der drei Kommandos erscheint auf dem Desktop ein neues ScratchGPIO3 Icon:

Das Programm wird mit einem Doppelklick auf dieses Icon gestartet. Das Programmfenster ist in drei Abschnitte unterteilt:

  • links - Funktionsblöcke-Fenster
  • Mitte - Skriptfenster oder Editor
  • Rechts -  Spritefenster

Über das Kugelsymbol in der oberen Menüleiste kann die Sprache eingestellt werden. Die Werkseinstellung ist Englisch.

Abb. 1 - Startbildschirm von Scratch

Zu jedem Block lässt sich mit der rechten Maustaste ein Hilfefenster öffnen. Scratchblöcke unterscheiden sich durch ihren Stil:

  • HATS - Scriptblöcke, die durch ein spezielles Ereignis gestartet werden.
  • STACKS - an ihren Rändern lassen sich andere Blöcke anhängen; manchmal weisen sie Lücken auf, die REPORTER-Blöcke aufnehmen können.
  • REPORTER - über sie werden Werte abgefragt. Rechteckige REPORTER nehmen Text, n-eckige nehmen Zahlen und sechseckige boolsche Wert auf.
Abb. 2 - Scratch-Blöcke mit verschiedenen Stilen

Übung 1 - Ein kurzer Dialog

In einer ersten Übung wird gezeigt, wie man mit Hilfe von Scratch einfache Dialoge visualisieren kann.

  • Klicke im Sprite-Fenster auf das Icon "Bühne" und im Skriptfenster auf den Tabulator "Hintergründe" und "Bearbeiten".
  • Entwirf mit den vorhandenen Malwerkzeugen ein Hintergrundbild und speichere es nach Fertigstellung mit "OK" ab.
Abb. 3 - Paint Editor Fenster
  • Alternativ: Über "Importieren" kann aus vorhandenen Vorlagen ein Hintergrundbild ausgewählt werden.
  • Klicke auf Sprite1 im Sprite-Fenster; wähle "costume1" und klicke anschließend auf den Tabulator "Skripte".
  • Ziehe mittels "drag und drop" aus dem Funktionsblöcke-Fenster die entsprechenden Blöcke nach Abb.1 in das Skriptfenster.
Abb. 4 - Sprite Script für Sprite1

Starte das Programm durch einen Klick auf die grüne Flagge.

  • Gib in das Fenster deinen Namen ein und beende die Eingabe mit der Rücklauftaste. Was passiert dann?

 

Illustrierte Kurzgeschichten, einfache Dialoge, einfache Abfragen von Vokabeln und vieles mehr kann auf diese Weise umgesetzt werden.

Übung 2 - Eine LED blinkt

Eine LED blinkt im Sekundentakt
Material
  • 1x  RPi mit Raspbian Stretch
  • 1x  Steckbrett
  • 2x  Kabel
  • 1x  Widerstand, 470 Ohm
  • 1x  LED, rot
Aufgaben
  • Baue die Schaltung nach Schaltskizze auf einem Steckbrett auf.
  • Setze die Funktionsblöcke im Skriptfenster wie in Abb. 6 gezeigt.
  • Starte den RPi und beobachte, ob sich die LED im Sekundentakt ein- und ausschaltet.

Schaltskizze

Abb. 5 - LED und Widerstand sind mit P5 (GPIO3) und P11 (GPIO17) verbunden.

Das Skript LED_Blinker

Abb. 6 - Das Sprite-Skript "LED_Blinker"

Wie arbeitet das Skript LED_Blinker?

Das ganze Sprite-Script wird eingerahmt durch den HAT-Block "Wenn Flagge grün angeklickt". Der erste Stack-Block setzt Pin11 des RPi auf GND (off) und wartet eine Sekunde. Da der andere Pol der Schaltung mit Pin1 oder 3,3V verbunden und die LED in Durchlassrichtung geschaltet ist, beginnt sie für eine Sekunde zu leuchten.

Anschließend wird Pin11 auf 1 (on) gesetzt. Die LED geht für eine Sekunde aus. Anschließend beginnt alles wieder von vorne.

 

Die Ansteuerung von elektronischen Bauteilen ist nicht unbedingt die Stärke des RPi; schon gar nicht mit Scratch. Dagegen lassen sich Graphik- und Tonprojekte mit Hilfe von Scratch schon im Primarbereich verwirklichen. Ein Beispiel wurde in Übung 1 gezeigt. Eine weitere Möglichkeit ist das einfache Erstellen von kleinen Musikstücken unter Sonic Pi. Das zeigen wir in den nachfolgenden Übungen.

Übung 3 - Musik erstellen mit Sonic Pi

Unter Raspbian Stretch ist Sonic Pi bereits vorinstalliert. Starte über das Hauptmenü Entwicklung - Sonic Pi das Programm und gib in der Editoroberfläche ein:

  • play :C3

Drücke anschließend den Button Run. Im Kopfhörer solltest du jetzt den Ton C hören. Die Zahl hinter C gibt die jeweilige Oktave an; in diesem Fall also die dritte.

Gib als nächstes ein:

  • play :C4
  • play :E4
  • play :G4

und starte das Programm erneut. Es wird der C-Akkord in der vierten Oktave ausgegeben.

Zum Erhöhen einer Note um einen Halbton setzt man hinter den Buchstaben ein s, zum Verringern ein b. Der Ton H wird im Angelsächsischen mit B bezeichnet. Pausen werden gesetzt mit sleep Zeit. Die Variable Zeit darf auch eine Kommazahl sein; aber Achtung: es muss der Punkt statt eines Kommas gesetzt werden.

  • sleep 0.5

Mit diesem Wissen lässt sich bereits eine kleine Melodie erzeugen.

Aufgabe

  • Starte den RPi und lade das Programm Sonic Pi.
  • Entwickle im Editorfenster eine kleine Melodie von nicht mehr als 10 - 12 Tönen und speichere den Code ab.
  • Spiele die Melodie immer wieder ab, verändere sie und entscheide, wann sie "fertig" ist.

Eine bekannte Melodie

Übung 4 - Lautstärke und Panning verändern

Ein Synthesizer ist nichts anderes als ein Klangerzeuger. Über sog. Optionen (Opts) lassen sich die Synths verstellen. Opts sind Regler, mit denen sich die Klänge verändern und steuern lassen. Sie bestehen aus zwei Teilen: Name (des Reglers) und (eingestelltem) Wert.

Das Übergabeschema von Opts an die Aufrufe play und sample hat folgendes Aussehen:

  • play :c4, opt1: 1, opt2: 3, ...

 

  • amp: <lautstärke> beeinflusst die Lautstärke eines Tons
  • pan: [-1,+1]    Positionierung des Tons im Stereofeld; -1 ganz links, 0 Mitte, +1 ganz rechts

Aufgabe

  • Starte den RPi und lade das Programm Sonic Pi.
  • Verändere dein Musikstück aus Übung 3 durch den gezielten Einsatz der Opts amp: und pan:.
  • Spiele die Melodie immer wieder ab, verändere sie und entscheide mit anderen, wann sie "fertig" ist.

Veränderte Fassung

Übung 5 - Den Klang mit Synths verändern

Sonic Pi stellt 42 verschiedene Synth-Klänge zur Verfügung, die sich über Synths im unteren Teil des Programmfensters aufrufen lassen.

Aufgabe

  • Verändere deine Melodie mit Hilfe von Synth-Klängen solange, bis sie dir und deinen Zuhörern gefällt.

Eine mögliche Umsetzung

Übung 6 - Die Klangdauer einstellen

In Sonic Pi wird die Klangdauer über eine sog. Envelope (Hüllkurve) gesteuert. Im Normalfall gibt Sonic Pi jeden Ton mit einer Release-Zeit (Ausklingzeit) von 1s aus. Über

  • play :C, release: 0.2

wird die Tonausgabe verkürzt..

Wie der Ton ausklingt, wird über die Releasephase bestimmt. Sie kann linear, exponentiell oder noch anders sein.

Wie der Ton angeschlagen wird, bestimmt die Attackphase. Sie ist normalerweise bei einem Synth identisch 0; manchmal möchte man aber Töne langsam ein- und ausblenden, dann müssen die Attack- und Releasephase > 0 gewählt werden.

Abb. 7 - Drei Beispiele für Attack-, Sustain- und Releasephasen.

Soll der Ton zwischen Attack- und Releasephase noch eine gewisse Zeit gehalten werden, muss noch ein Sustain eingebaut werden.

An einem neuen Musikstück sollen die Unterschiede deutlich gemacht werden.

Aufgabe

  • Starte den RPi und lade das Programm Sonic Pi.
  • Übertrage das Programm aus Abb. 8 in den Sonic Pi Editor und speichere es ab.
  • Spiele die Melodie immer wieder ab, verändere die Attack-, Release- und Sustainphasen und bekomme eine Vorstellung von der Veränderung im Klangbild. Entscheide selbst, wann "dein" Musikstück fertig ist.

Melodie nach "Man of Mystery"

Abb. 8 - Melodie nach "Man of Mystery"

Übung 7 - Samples einbinden

Aufgenommene Sounds (Samples) lassen sich gut in eigene Songs einbinden. Unser Song aus Übung 6 hat noch keine Percussion- und Schlagzeugbegleitung. Das soll in der folgenden Übung nachgeholt werden und dazu werden Samples eingesetzt.

Du findest sie bei Sonic Pi im unteren linken Fenster unter "Samples". Die einzelnen Samples lassen sich über die Opts feineinstellen; Informationen dazu bekommst du im Programmfenster von Sonic Pi.

Aufgaben

  • Starte den RPi und lade das Programm Sonic Pi.
  • Übertrage das Programm aus Abb. 9 in den Sonic Pi Editor und speichere es ab.
  • Spiele die Melodie immer wieder ab, verändere dabei die eingesetzten Samples und Opts und erzeuge "dein" Klangbild. Entscheide selbst, wann das Musikstück fertig ist.

Musikstück mit Samples

Abb. 9 - Mit dem Einsatz von Sampels ändert sich das Klangbild des Liedes.
Druckversion | Sitemap
© Reinhard Rahner - Gettorf