Kepi-IMP

Joy-Pi mit Processing


GFS im Rahmen des IMP-Profils am JKG Reutlingen


Sascha Vasylenko, Klasse 10d


Gliederung


  1. Was ist der Joy-Pi?
  2. Module
  3. Processing
  4. Fazit
  5. Weiterführende Links
  6. Quellen




1. Was ist der Joy-Pi?


Bild: Joy-Pi-Koffer

Abb. 1: Joy-Pi-Koffer

Der Joy-Pi ist ein von der Firma Joy-IT hergestellter "Experimentier-Koffer": ein Raspberry Pi, der mit verschiedenen Sensoren und sonstigen Geräten verbunden ist, um die Umgebung zu beeinflussen.

Diese Sensoren, die an den Raspberry Pi durch die sogenannte GPIO-Pins verbunden sind, kann man in seiner Lieblings-Programmiersprache so programmieren, dass sie interessante Sachen machen können. Meine Auswahl der Sprache war Processing. Processing erleichtert das Programmieren von Grafiken.




2. Module


Bild: Joy-Pi von oben

Abb. 2: Joy-Pi von oben


Der Joy-Pi stellt die verschiedenste Module zur Verfügung. Unten werden alle genannt.

Bild: Joy-Pi Module

Abb. 3: Joy-Pi Module


Nummer Modul ggf. GPIO-Nr.
1 Raspberry Pi
2 LED Anzeige: zeigt Status der Pins an
3 Breadboard (um elektronische Geräte einzubauen)
4 LCD Bildschirm SDA1: 2, SCL1: 3
5 Stromversorgung
6 LED Matrix 7
7 7 Segment Anzeige SDA1: 2, SCL1: 3
8 Vibrationsmotor 27
9 Lichtsensor SDA1: 2, SCL1: 3
10 Buzzer (erzeugt Geräusche) 12
11 Schallsensor 24
12 Bewegungssensor 23
13 Ultraschallabstandsensor Echo: 12, TRIG: 16
14/15 Servo - Schnittstellen Servo1: 26, Servo2: 25
16 Schrittmotor - Schnittstelle STEP1: 5, STEP2: 6, STEP3: 13, STEP4: 19
17 Neigungssensor 22
18 Infrarotsensor 20
19 Berührungssensor 17
20 Temperatur- & Luftfeuchtigkeitssensor 7
21 Relais 21
22 Tasten-Matrix Reihe1: 27, R2: 22, R3: 5, R4: 6, Spalte1: 25, S2: 26, S3: 19, S4: 13
23 Unabhängige Tasten Oben: 26, Unten: 13, Links: 25, Rechts: 19
24 RFID-Modul 8
25 Schalter

Daten aus Joy-Pi Manual - 2. Details

Da die GPIO-Pins nicht ausreichen für all die Module, werden Schalter benutzt, um zwischen den Modulen zu wechseln (siehe Nummer 25).




3. Processing


Jetzt wollen wir aber was mit den Modulen machen. Dafür benutzen wir hier Processing.

Zunächst installieren wir Processing für den Raspberry Pi. Es existieren schon neuere Versionen, aber wir holen uns hier Version 3.5.3 von pi.processing.org. Nachdem wir es entpacken und "install.sh" ausführen, sind wir bereit mit den Programmieren anzufangen.



Als Beispielsaufgabe wollen wir den Buzzer anmachen, wenn die obere Taste betätigt wird.

Der erster Schritt ist es, die Library von GPIO zu importieren, sodass Processing was mit den GPIO-Pins anfangen kann. Dafür schreiben wir:

import processing.io.*;

Der nächster Schritt ist es, die benötigte Pins für sich zu beansprechen und festzustellen, ob wir einen Wert davon ablesen wollen (Input) oder Befehle aussenden wollen (Output).

Wenn wir den Buzzer (Nummer 10) und die obere Taste (Nummer 23) benutzen wollen, dann brauchen wir ihre GPIO-Nummer. Diese lauten jeweils GPIO12 und GPIO26. Den Buzzer senden wir den Befehl, laut zu werden, also ist dessen Pin ein Output-Pin. Wir wollen einen Wert von der Taste ablesen, d.h. die Taste ist unser Input. In Processing formulieren wir das so:

GPIO.pinMode(12, GPIO.OUTPUT);

GPIO.pinMode(26, GPIO.INPUT_PULLUP);

Jetzt sollen wir den Wert von der Taste ablesen, um zu schauen, ob es betätigt ist oder nicht.

Die GPIO-Pins haben zwei mögliche Zustände: HIGH und LOW. Unsere Taste ist im Zustand HIGH bei Leerbefehl und LOW bei Betätigung. In Processing können wir die Taste mit diesen Code abfragen:

GPIO.digitalRead(26)

Den Zustand können wir gleich mit "if" überprüfen lassen:

if (GPIO.digitalRead(26) == GPIO.LOW) {}

Der letzter Schritt ist es, den Buzzer bei Betätigung anzumachen, und sonst aus.

Den Buzzer erteilen wir Befehle, indem wir sein GPIO-Pin zu HIGH oder LOW stellen. Dabei ist HIGH der eingeschalteter Zustand und LOW selbstverständlich der ausgeschalteter Zustand. Wir setzen den Zustand mithilfe von:

GPIO.digitalWrite(12, GPIO.HIGH);

Nach all diesen Schritten sieht das Programm jetzt so aus:

Bild: Programm

Abb. 4: Programm

Wenn wir das jetzt ausführen, können wir beobachten, dass der Buzzer nur genau dann läutet, wenn man die Taste drückt. Uns so haben wir unser erstes Programm mit Verwendung der GPIO-Pins geschrieben.




4. Fazit


Zum Schluss lässt sich sagen, dass Joy-Pi ein gut ausgestattetes Kit für das Programmieren mit einfachen Sensoren und Modulen ist. Ich finde aber, dass es ein zu großer Schritt ist, in Processing mit GPIO-Pins zu arbeiten. Stattdessen würde ich Scratch als eine Einführung dazu mehr sinnvoll finden. Processing hat dann natürlich den Vorteil, dass man komplexere Programme schreiben kann als in Scratch.




6. Quellen


Bilder:

Wenn keine Quellen zu einen Bild angegeben sind, dann ist es ein eigenes Bild.



Informationen: