Raspberry Pi

Der Raspberry Pi [1], [2] ist ein Einplatinencomputer mit einer deutlich höheren Leistung als ein Mikrocontroller. Auf ihm kann ein vollständiges Betriebssystem mit grafischer Oberfläche, vorzugsweise Linux, installiert werden, dass über die HDMI-Schnittstelle auf einem Monitor darstellt werden kann.

Zur Programmierung eignet sich unter anderem Python, das in der Standard Rasbian-Installation bereits enthalten ist. Einfache, lokal laufende Programme, mit denen auf die GPIO-Ports zugegriffen werden kann, lassen sich ohne großen Aufwand realisieren.

Mit der Sprache Node.js lassen sich Netzwerkanwendungen allerdings einfacher realisieren. Das Tutorial gibt eine Einführung in die Sprache. Die Verwendung von Node.js auf dem Raspberry wird hier gut beschrieben.

Der Raspberry Pi muss immer heruntergefahren werden, da die microSD-Karte sonst Schaden nehmen kann!

1 Vorbereitung

Die Raspberrys, die im Unterricht eingesetzt werden[3], sind wie folgt konfiguriert: (zur Raspberry Konfiguration)

  • Rasbian
  • SSH und VNC sind aktiviert
  • Hostname: RASPInn (siehe Aufkleber)
  • User: 'pi' - Password: siehe Aufkleber oder 'raspberry'
  • DHCP ausgeschaltet
  • eth0 hat eine feste IP-Adresse: 192.168.1.1nn

Um auf den Raspberry zuzugreifen, stellen Sie die Ethernet-Schnittstelle Ihres PCs auf eine feste IP-Adresse (z.B.: 192.168.1.1) ein. Anschließend können Sie sich mit VNC oder PuTTY verbinden.

Speichern Sie alle Skripte auf einem USB-Stick.

2 Ausgänge schalten

Genau wie beim Mikrocontroller können die GPIO-Pins geschaltet werden. Die Zustände aller GPIO-Pins lassen sich mit gpio readall schnell ermitteln. Da auch hier der High-Pegel 5V hat, müssen LEDs mit einem Vorwiderstand (330 Ohm - orange-orange-braun) betrieben werden.

Arbeitsauftrag:

  1. Schreiben Sie ein Python-Skript, dass eine LED abwechselnd ein- und ausschaltet.
    Speichern Sie das Skript unter dem Namen '2-1-1-blink.py' ab.
  2. Schreiben Sie ein Node.js-Skript, dass eine LED abwechselnd ein- und ausschaltet.
    Speichern Sie das Skript unter dem Namen '2-1-1-blink.js' ab.

3 Taster abfragen

Auch das Abfragen von Tastern funktioniert sehr ähnlich wie beim Mikrocontroller, auch hier muss ein Pull-Up-Widerstand (10 kiloOhm - braun-schwarz-orange)[4] eingesetzt werden.

Arbeitsauftrag:

  1. Schreiben Sie ein Python-Skript, dass eine LED einschaltet, wenn ein Taster gedrückt wird und mit Loslassen des Tasters wieder ausschaltet.
    Speichern Sie das Skript unter dem Namen '2-2-1-Taster.py' ab.
  2. Schreiben Sie ein Node.js-Skript, dass eine LED einschaltet, wenn ein Taster gedrückt wird und mit Loslassen des Tasters wieder ausschaltet.
    Speichern Sie das Skript unter dem Namen '2-2-1-Taster.js' ab.
  3. Ändern Sie das Skript so ab, dass die LED eingeschaltet wird, wenn der Taster gedrückt wird und bei erneutem Drücken wieder abgeschaltet wird.
    Speichern Sie das Skript unter dem Namen '2-2-2-Taster.js' ab.

4 'Analoge' Ausgänge

Auch der Raspberry unterstützt PWM.

Arbeitsauftrag:

  1. Stecken Sie eine LED und zwei Taster mit den erforderlichen Widerständen auf das Breadboard und verbinden diese mit dem Raspi.
    Schreiben Sie ein Python-Skript, mit dem die Helligkeit der LED mit den Tastern eingestellt werden kann.
    Speichern Sie das Skript unter dem Namen '2-3-1-PWM.py' ab.

5 Netzwerkanbindung

Mit Node.js lässt sich ohne großen Aufwand ein Webserver erstellen[5].

Arbeitsauftrag:

  1. Verbinden Sie eine LED (mit Vorwiderstand) mit dem Raspberry und erstellen Sie ein Skript, mit dem sich diese LED mit zwei Schaltflächen ein- und ausschalten lässt.
    Speichern Sie das Skript unter dem Namen '2-4-1-LED_an_aus.js' ab.
  2. Verbinden Sie zusätzlich einen Taster mit dem Raspberry und verändern Sie das Skript so, dass damit die LED ein- und ausschalten lässt. Der Zustand der LED soll zusätzlich auf der Webseite visualisiert werden.
    Speichern Sie das Skript unter dem Namen '2-4-1-LED_an_aus.js' ab.

6 Links

  • Netzmafia Raspberry-Skript
  • Tutorials
  • Raspberry PI: Beginner's Book[6]
  • The official Raspberry Pi Projects Book[7]
  • The official Raspberry Pi Projects Book Vol2[8]
  • The official Raspberry Pi Projects Book Vol3[9]