Joy-it RB-JOYPI User guide [ml]

www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
Experimentier- und Education-Koer
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
1. INHALTSVERZEICHNIS
1. Inhaltsverzeichnis

3. Details

4. Modulwechsel und Verwendung der GPIOs
5. Verwendung von Python und Linux
6. Lektionen
1. Lektion : Verwenden des Buzzers für Warntöne
2. Lektion : Buzzer mit Taste steuern
3. Lektion : Wie ein Relais funktioniert und wie man es steuert
4. Lektion : Senden Sie ein Vibrationssignal
5. Lektion : Geräusche mit dem Schallsensor erkennen
6. Lektion : Erkennen der Helligkeit mit dem Lichtsensor
7. Lektion : Erkennen der Temperatur und der Lufeuchtigkeit
8. Lektion : Bewegungen erkennen
9. Lektion : Entfernungen mit dem Ultraschallsensor messen
10. Lektion : Steuern des LCD-Displays
11. Lektion : Lesen und Schreiben von RFID - Karten
12. Lektion : Schrittmotoren verwenden
13. Lektion : Steuerung von Servomotoren
14. Lektion : Steuern der 8 x 8 LED - Matrix
15. Lektion : Steuern des 7 - Segment - Displays
16. Lektion : Berührungen erkennen
17. Lektion : Neigungen mit dem Neigungssensor erkennen
18. Lektion : Verwenden der Taster - Matrix
19. Lektion : Steuern und Verwenden des IR - Sensors
20. Lektion : Eigene Schaltungen mit dem Breadboard
21. Lektion : Fotografieren mit der Raspberry Pi Kamera
7. Sonstige Informationen
8. Rechtliches
9. Support
Die Anmeldedaten sind: Username : pi Passwort : 12345
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
2. ALLGEMEINE INFORMATIONEN
Sehr geehrter Kunde,
vielen Dank, dass Sie sich für unser Produkt entschieden haben. Im Folgenden zeigen wir Ihnen, was bei der Inbetriebnahme und der Verwendung zu beachten ist. Sollten Sie während der Verwendung unerwartet auf Probleme stoßen, so können Sie uns selbstverständlich gerne kontaktieren.
Die folgenden Lektionen sind so konzipiert, dass Sie, unabhängig davon wie viel Vorwissen Sie bereits haben, alle Lektionen ohne Probleme ausführen können. Für die verschiedenen Lektionen müssen Sie Beispieldateien herunterladen und auf dem Joy-Pi ausführen. Wie Sie dies durchführen, können Sie ebenfalls dieser Anleitung entnehmen.
Doch diese Tutorials sind nur der Anfang, denn Ihrer Kreativität sind kei­ne Grenzen gesetzt. Sie können unseren Joy-Pi für die verschiedensten
Projekte verwenden und auch Projekte erstellen, wo der Joy-Pi im Fokus
steht.
Wir freuen uns darauf zu sehen, was Sie mit unserem Joy-Pi machen werden.
3. DETAILS
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
1 Raspberry Pi
2 GPIO LED Anzeige
3 Breadboard
4 16 x 2 LCD Modul (MCP23008)
5 Stromversorgung
6 8 x 8 LED Matrix (MAX7219)
7 7 Segment LED Anzeige (HT16K33)
8 Vibrationsmodul
9 Lichtsensor (BH1750)
10 Buzzer
11 Schallsensor
12 Bewegungssensor (LH1778)
13 Ultraschallabstandssensor
14 / 15 Servo - Schnittstellen
16 Schrittmotor - Schnittstelle
17 Neigungssensor (SW-200D)
18 Infrarotsensor
19 Berührungssensor
20
DHT11 Temperatur - und
Lufeuchtigkeitssensor
21 Relais
22 Taster - Matrix
23 Unabhängige Taster
24 RFID - Modul (MFRC522)
25 Schalter
26 Lüeranschluss
27 Stromversorgung microUSB
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
4. MODULWECHSEL UND VERWENDUNG DER GPIOS
4.1 Modulwechsel
Auf der Joy-Pi Platine befinden sich zwei Schaltereinheiten à 8 Schalter. Die Schalter ermöglichen es, zwischen verschiedenen Sensoren und Modulen zu wechseln. Da der Raspberry Pi nur eine begrenzte Anzahl an GPIO - Pins hat, werden diese Schalter benötigt um mehr Sensoren und Module zu verwenden zu können als GPIO - Pins vorhanden sind.
Die Verwendung dieser Schalter ist ziemlich einfach und wird in einigen der folgenden Lektionen benötigt.
In der Tabelle sehen Sie, welcher Schalter welchen Sensor bzw. welches Modul schaltet,
Sensoren / Module Schalteinheit Schalter
Taster - Matrix Links 1 - 8
unabhängige Taster Links 5 - 8
Vibrationsmodul Rechts 1
Neigungssensor Rechts 2
Schrittmotor Rechts 3, 4, 5, 6
Servomotor Rechts 7, 8

4.2 Verwendung der GPIOs

Im Folgenden werden wir Ihnen genauer erläutern, was GPIO-Pins sind, wie diese funktionieren und wie diese gesteuert werden.
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
GPIO steht für:
General - purpose input / output (Universal Eingang /
Ausgang).
GPIO - Pins haben keine festgelegte Funktion. Es kann konfiguriert
werden, ob die GPIO - Pins als digitaler Eingang oder als digitaler Ausgang
dienen.
Beispiel Eingangs - Pin: Taster
Wenn der Taster gedrückt wird, gelangt das Signal zur weiteren Verarbeitung über den Eingang - Pin zum Raspberry Pi.
Beispiel Ausgangs - Pin: Buzzer Über den Ausgangs - Pin wird ein Signal in Richtung Buzzer gesendet, um diesen zu steuern.
Wenn Sie den geöneten Joy - Pi von vorne betrachten, befinden sich die GPIO - Pins auf der rechten Seite des Raspberry Pis.
Es gibt 2 mögliche Raspberry Pi GPIO Schemata: GPIO - BOARD und
GPIO - BCM.
Die GPIO - BOARD Option gibt an, dass Sie sich auf die Pins anhand der Nummer des Pins beziehen. Das heißt es werden die unten voranstehenden Pin - Nummern verwendet.
Die Option GPIO - BCM bedeutet, dass Sie sich auf die Pins des
Broadcom
SOC Channel
beziehen. Dies sind die Zahlen nach GPIO:
1 3.3 V DC 3 GPIO 2 (SDA1, I2C)
5 GPIO 3 (SCL1, I2C) 7 GPIO 4
9 Ground 11 GPIO 17 13 GPIO 27 15 GPIO 22
17 3.3 V
19 GPIO 10 (SPI, MOSI) 21 GPIO 9 (SPI, MISO) 23 GPIO 11 (SPI, CLK)
25 Ground
27 ID_SD (I2C, EEPROM) 29 GPIO 5 31 GPIO 6 33 GPIO 13 35 GPIO 19
37 GPIO 26 39 Ground
2 5 V DC
4 5 V DC 6 Ground
8 GPIO 14 (TXD0) 10 GPIO 15 (RXD0) 12 GPIO 18 14 Ground 16 GPIO 23 18 GPIO 24 20 Ground 22 GPIO 25 24 GPIO 8 (SPI)
26 GPIO 7 (SPI)
28 ID_SC 30 Ground 32 GPIO 12 34 Ground 36 GPIO 16 38 GPIO 20 40 GPIO 21
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
GPIO - BOARD Sensoren und Module
1 3.3 V
2 5.0 V
3 I2C, SDA1 (Lichtsensor, LCD Display, 7 Segment Display) 4 5.0 V 5 I2C. SCL1 (Lichtsensor, LCD Display, 7 Segment Display) 6 Ground 7 DHT11 Sensor 8 TXD0
9 Ground 10 RXD0 11 Touchsensor 12 Buzzer 13 Schaltflächenmatrix (ROW1), Vibrationsmotor 14 Ground 15 Schaltflächenmatrix (ROW2), Neigungssensor 16 Bewegungssensor 17 3.3 V 18 Schallsensor 19 SPI 20 Ground 21 SPI 22 Servo2, Schaltflächenmatrix (COL1), Le Button
23 SPI
24 RFID - Modul 25 Ground 26 LED - Matrix
27
IS_SD (I2C, EEPROM (Electrically Erasable
Programmable Read - only Memory)) 28 ID_SC 29 Schrittmotor (STEP1), Schaltflächenmatrix (ROW3) 30 Ground 31 Schrittmotor (STEP2), Schaltflächenmatrix (ROW4) 32 Ultraschallsensor (Echo)
33 Schrittmotor (STEP3), Schaltflächenmatrix (COL4),
34 Ground
35 Schrittmotor (STEP4), Schaltflächenmatrix (COL3),
36 Ultraschallsensor (TRIG) 37 Servo1, Schaltflächenmatrix (COL2), Up Button 38 Infrarotsensor 39 Ground 40 Relais
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
In unseren Beispiel verwenden wir die Programmiersprache
Python
, um
die GPIO-Pins zu steuern. In Python gibt es eine Bibliothek namens
RPi.GPIO.
Dies ist eine Bibliothek, die dabei hil, die Pins mit Python zu
steuern.
Das folgende Beispiel und die Kommentare im Code sollen Ihnen helfen das Programm zu verstehen.
Als Erstes müssen die benötigten Bibliothek mit Hilfe des import Befehls importiert werden. Die Variablen TOUCH und BUZZER verweisen auf die Pins des Touchsensors und des Buzzers. Im Anschluss wird mit
GPIO.setmode(GPIO.BOARD)
das verwendete GPIO Schema definiert. Als
Nächstes werden die zuvor festgelegten Variablen mit Hilfe des Befehls
GPIO.setup()
als Ein- bzw. Ausgang konfiguriert. Pin 11 (TOUCH) wird als Eingang und Pin 12 (BUZZER) wird als Ausgang festgelegt. Die Funktion main fragt ab, ob es eine Berührung des Touchsensors gibt. Ist dies der Fall wird die Funktion do_smt ausgeführt. Die Funktion do_smt druckt den Text
Touch wurde erkannt
, setzt dann
den Buzzer-Pin
HIGH
und eine Sekunde später wieder
LOW
(der Buzzer
summt eine Sekunde).
import RPi.GPIO as GPIO import time #importieren der Bibliotheken import signal
TOUCH = 11 #Deklaration der Pins BUZZER = 12
def setup_gpio(): #Definition der Ein- und Ausgaenge
GPIO.setmode(GPIO.BOARD) GPIO.setup(TOUCH, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(BUZZER, GPIO.OUT)
def do_smt(channel): #Funktion zur Ausgabe das Touch erkannt wurde
print(“Touch wurde erkannt“) #und Ausgabe das Touch erkannt wurde GPIO.output(BUZZER, GPIO.HIGH) #Signalausgabe time.sleep (1) #1 Sekunde warten GPIO.output(BUZZER, GPIO.LOW) #Signalausgabe stoppen
def main():
setup_gpio() try: #Pruefung ob ein Touch erkannt wurde GPIO.add_event_detect(TOUCH,GPIO.FALLING,callback=do_smt,bouncetime=200) except KeyboardInterrupt: #STRG + C beendet das Programm pass finally: GPIO.cleanup()
if _name_==‘_main_‘:
main()
Um noch mehr über den Zweck und die Verwendung von GPIOs zu erfahren, empfehlen wir Ihnen sich die oizielle Dokumentation der Raspberry Pi Foundation zum Thema GPIO anzuschauen.
https://www.raspberrypi.org/documentation/usage/gpio/
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
4.3 Sowareinstallation für den Joy-Pi
Auf der mitgelieferten microSD-Karte ist schon ein vorinstalliertes
Betriebssystem aufgespielt. Wenn Sie die Karte neu beschreiben
möchten, können Sie dies wie folgt durchführen:
Als erstes sollten Sie die aktuellste Image-Datei für den Joy-Pi von unserer Website www.joy-pi.net herunterladen.
1. Laden Sie die Image-Datei (.zip Format) auf Ihren PC. Nach dem
Entpacken der Datei erhalten Sie eine Datei mit der Endung .img.
2. Schließen Sie eine microSD-Karte an Ihren PC an und formatieren
Sie diese mit dem Programm SD Formatter. Ein microSD-Kartenlesegerät ist im Lieferumfang enthalten.
3. Starten Sie das Programm Win32-Disk-Imager und wählen Sie
die heruntergeladene Image-Datei aus.das zu beschreibende Laufwerk aus.
4. Nun ist die Karte mit dem Betriebssystem beschrieben und Sie
können diese in den microSD-Kartenslot des Raspberry Pi stecken.
5. Zum Schluss müssen Sie das Image noch auf die Größe Ihrer
SD-Karte anpassen. Starten Sie dafür Ihren Raspberry Pi, önen Sie das Terminal und geben sudo raspi-config ein. Gehen Sie nun
auf
Advanced Options
und dann auf
Expand Filesystem
. Nach
einem Neustart wird die Image-Größe auf Ihre SD-Karte angepasst.

5. VERWENDUNG VON PYTHON UND LINUX

Dieser Schritt ist optional, macht es jedoch einfacher Skripte auszuführen, ohne sie einzeln erstellen zu müssen. Auf der mitgelieferten
microSD-Karte befinden sich Skripte auf dem Desktop.
Die in der Anleitung verwendeten Skripte können direkt in einem Paket heruntergeladen werden. Folgen Sie dazu einfach den folgenden Anweisungen:
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
1. Önen Sie das Terminal. Dies benutzen wir, um die meisten
unserer Python Skripte auszuführen und Erweiterungen und Skripte herunterzuladen.
2. Nachdem wir das Terminal erfolgreich geönet haben, müssen wir
bei Bedarf das Skriptarchiv mit dem folgenden Befehl auf den
Desktop herunterladen (gegebenenfalls auf dem Image enthalten):
cd Desktop/ wget https://www.joy-it.net/files/files/Produkte/RB-JoyPi/Joy-Pi.zip
3. Drücken Sie Enter auf Ihrer Tastatur. Nun muss das Archiv nur noch entpackt werden:
unzip Joy-Pi.zip
4. Drücken Sie Enter auf Ihrer Tastatur und warten Sie bis der Vorgang
abgeschlossen ist.
5. Mit dem Befehl cd wechseln Sie in das richtige Verzeichnis damit die
Skripte verwendet werden können, welche sich dort befinden:
cd Joy-Pi/Python3
Achtung! Jedes Mal, wenn Sie Ihren Joy-Pi ausschalten, müssen Sie die Schritte des Verzeichniswechsels wiederholen.
Die Anmeldedaten sind: Username : pi Passwort : 12345
Ausführen von Python Skripts
Nachdem die Skripte erfolgreich von unserer Website heruntergeladen wurden, möchten wir es jetzt ausführen. Önen Sie erneut das Terminal und befolgen Sie die folgende Anweisung, um das Skript auszuführen:
1. Geben Sie den Befehl sudo python3 <script name> ein, um ein Python-Skript auszuführen, wie zum Beispiel:
sudo python3 buzzer.py
Der Befehl setzt sich aus 3 Teilen zusammen. Durch den Befehl sudo wird der folgende Teil der Befehlszeile mit root-Berechtigungen (Admin-
Berechtigungen ausgeführt. python3 ist der Befehl der gleichnamigen Programmiersprache, in der die Skripte geschrieben sind. Am Ende steht der Name des Skripts. Hierbei ist zu beachten, dass man sich entweder in dem Ordner befindet, in dem das jeweilige Skript gespeichert ist oder den
Pfad (z.B. ~/Joy-Pi/buzzer.py) angibt.
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
6. LEKTIONEN
Lektion 1 : Verwenden des Buzzers für Warntöne
In der vorherigen Erklärung haben wir gelernt, wie man den GPIO-Pin sowohl als Ausgabe als auch als Eingabe verwendet. Um dies nun zu testen, gehen wir mit einem realen Beispiel voran und wenden unser Wissen aus der vorherigen Lektionen an. Das Modul, welches wir verwenden werden, ist der Buzzer.
Wir werden den GPIO-Ausgang verwenden, um ein Signal an den Buzzer zu senden und die Schaltung zu schließen, um ein lautes Summen zu Erzeugen. Dann werden wir ein weiteres Signal senden, um es auszuschalten.
Der Buzzer befindet sich auf der rechten Seite des Joy-Pi-Boards und ist durch das laute Geräusch, dass er bei Aktivierung macht leicht zu erkennen. Wenn Sie Ihren Raspberry Pi zum ersten Mal verwenden, ist der Buzzer möglicherweise mit einem Schutzaufkleber versehen. Stellen Sie sicher, dass dieser Aufkleber vor Gebrauch des Buzzers entfernt wurde.
Genau wie im vorherigen Beispiel haben wir ein spezielles Skript mit detaillierten Kommentaren vorbereitet, die erklären werden, wie der gesamte Buzzer-Prozess funktioniert und wie wir den Buzzer mit den GPIOs steuern können.
Zuerst importieren wir die RPi.GPIO-Bibliothek und die
time-Bibliothek. Dann konfigurieren wir den Buzzer. An Pin 12 richten wir den GPIO-Modus auf GPIO BOARD und den Pin als OUTPUT ein.
Wir geben ein Signal für 0,5 Sekunden aus und schalten dieses dann aus.
Achtung! Für dieses Beispiel müssen Sie alle Schalter der linken und rechten Schalteinheit auf OFF stellen.
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
#!/usr/bin/python
import RPI.GPIO as GPIO #importieren der benoetigten Bibliotheken
import time
buzzer_pin = 12 #buzzer_pin wird definiert
GPIO.setmode(GPIO.BOARD) GPIO.setup(buzzer_pin, GPIO.OUT)
GPIO.output(buzzer_pin, GPIO.HIGH) #gebe Geraeusch aus
time.sleep(0.5) #warte eine halbe Sekunde
GPIO.output(buzzer_pin, GPIO.LOW) #stoppe Geraeuschausgabe
GPIO.cleanup()
Führen Sie die folgenden Befehle aus und versuchen Sie es selbst:
cd /home/pi/Desktop/Joy-Pi/Python3 sudo python3 buzzer.py

Lektion 2 : Buzzer mit Taster steuern

Nachdem Sie nun wissen, wie man den Buzzer ein- und ausschaltet, ist es Zeit, die Ding ein wenig aufregender zu gestalten. In dieser Lektion wird ein Taster mit dem Buzzer kombiniert, sodass der Buzzer nur durch Drü­cken des Tasters eingeschaltet wird.
Dieses Mal werden 2 GPIO-Setups verwendet. Einer wird der GPIO.INPUT sein, der den Taster als Eingabemöglichkeit einstellt, ein anderer wird der GPIO.OUTPUT sein, der ein Signal an den Buzzer sendet um ein Geräusch auszugeben.
Achtung! Für dieses Beispiel müssen Sie zwischen den Modulen wechseln. Stellen Sie die Schalter Nummer 5, 6, 7 und 8 der linken Schalteinheit auf ON. Alle anderen Schalter sollten auf OFF stehen.
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
In diesem Beispiel wird der Obere der 4 Taster auf der unteren linken Sei­te verwendet. Theoretisch kann jedoch jeder der 4 Taster verwendet werden. Wenn Sie trotzdem einen anderen Taster verwenden möchten,
müssen Sie die Pinbelegung dementsprechend ändern.
GPIO37 Oberer Taster GPIO33 Unterer Taster GPIO22 Linker Taster GPIO35 Rechter Taster
Für diesen Teil des Tutorials müssen 2 GPIO-Einstellungen verwendet werden: eine Eingabe und eine Ausgabe. Der GPIO-Eingang wird verwen­det um zu bestimmen, wann ein Taster gedrückt wurde und die GPIO­Ausgabe wird verwendet um den Buzzer zu aktivieren, sobald dieser Tas­ter gedrückt wird.
Wenn Sie den Taster auf Ihrem Joy-Pi drücken, ertönt der Buzzer! Lassen Sie den Taster los und der Buzzer verstummt. Das Programm läu solan­ge bis STRG + C gedrückt wird.
Beispielcode:
#!/usr/bin/python
import RPI.GPIO as GPIO #importieren der benoetigten Bibliotheken import time
#definiere Pins
button_pin = 37
buzzer_pin = 12
#setze Board Modus zu GPIO.BOARD
GPIO.setmode(GPIO.BOARD)
#lege button_pin als Eingang und buzzer_pin als Ausgang fest
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(buzzer_pin, GPIO.OUT)
try:
while True: #ueberpruefe ob Knopf gedrueckt wird if (GPIO.input(button_pin) == 0):
#Buzzer ein
GPIO.output(buzzer_pin, GPIO.LOW) else: #Buzzer aus GPIO.output(buzzer_pin, GPIO.LOW)
except KeyboardInterrupt:
GPIO.cleanup()
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
Führen Sie die folgenden Befehle aus und versuchen Sie es selbst:
Lektion 3 : Wie ein Relais funktioniert und wie man es steuert
cd /home/pi/Desktop/Joy-Pi/Python3
sudo python3 button_buzzer.py
Nachdem wir jetzt alles Nötige über den Buzzer wissen, ist es Zeit für die nächste Lektion. Nun lernen wir, wie das Relais zu verwenden ist, welche Funktion das Relais hat und wie man es steuert.
Ein Relais ist vereinfacht ein Schalter, dem (unteranderem) mit Hilfe von GPIO-Pins ein- und ausschalten kann. Relais werden verwendet, um eine Schaltung durch ein separates Niederleistungssignal zu steuern oder wenn mehrere Schaltungen durch ein Signal gesteuert werden müssen. In unserem Beispiel zeigen wir, wie ein GPIO-Signal gesendet wird um das
Relais zu schließen, um eine benutzerdefinierte Schaltung zu aktivieren
und wie man ein weiteres Signal sendet, um das Relais zu önen und die Schaltung zu deaktivieren.
Das Relais befindet sich im mittleren, unteren Teil der Platine, direkt neben der Taster-Matrix. Es hat drei Anschlüsse, von denen wir 2 in diesem Beispiel benutzen werden. NC steht für
normally closed
, NO steht
für
normally open
und COM steht für
common. Common
steht in dem Fall
für die gemeinsame Masse. Wenn ein Stromkreis an NC und COM angeschlossen wird, ist der Strom­kreis geschlossen, wenn der Steuerstromkreis spannungslos ist (GPIO.LOW). Wird der Steuerstromkreis unter Spannung gesetzt (GPIO.HIGH), önet das Relais die Verbindung im Arbeitsstromkreis und der Stromfluss wird unterbrochen. Bei der Nutzung von NO und COM verhält sich genau umgekehrt. Ist der Steuerstromkreis spannungslos (GPIO.LOW), ist das Relais geönet und der Arbeitsstromkreis unterbrochen. Wird der Steuerstromkreis mit Spannung versorgt (GPIO.HIGH), schließt das Relais den Arbeitsstrom­kreis und der Strom kann fließen.
Achtung! Für dieses Beispiel müssen Sie alle Schalter der linken und der rechten Schalteinheit auf OFF stellen
Achtung! Es ist sehr wichtig nicht zu versuchen Hochspannungsgeräte an das Relais anzuschließen (z.B. Tischlampe, Kaeemaschine usw.). Dies könnte zu Stromschlägen und schweren Verletzungen führen.
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
Führen Sie die folgenden Befehle aus und versuchen Sie es selbst:
#!/usr/bin/python
import RPI.GPIO as GPIO
import time
#definiere Relais Pin
relay_pin = 40
#Board Modus GPIO.BOARD
GPIO.setmode(GPIO.BOARD)
#relay_pin als Ausgang
GPIO.setup(relay_pin, GPIO.OUT)
#Oeffne Relais
GPIO.output(relay_pin, GPIO.LOW)
#warte eine halbe Sekunde
time.sleep(0.5)
#schliesse Relais
GPIO.output(relay_pin, GPIO.HIGH) GPIO.cleanup()
cd /home/pi/Desktop/Joy-Pi/Python3 sudo python3 relay.py

Lektion 4 : Senden eines Vibrationssignals

Haben Sie sich schon einmal gefragt, wie Ihr Telefon vibriert, wenn Sie
jemand anru oder wenn Sie eine Nachricht erhalten? Wir haben das gleiche Modul in unserem Joy-Pi verbaut und nun werden Sie lernen, wie man es verwendet.
Das Vibrationsmodul befindet sich auf der rechten Seite der LED-Matrix und unterhalb der Segment-LED. Wenn es eingeschaltet ist, ist es schwierig zu erkennen, woher die Vibration kommt, da es sich so anfühlt, als vibriere das ganze Joy-Pi Board.
Das Vibrationsmodul verwendet ein GPIO.OUTPUT-Signal, genau wie der Buzzer und andere Module zuvor. Durch Senden eines Ausgangssignals vibriert das Vibrationsmodul durch Stoppen des Signals mit GPIO.LOW hört die Vibration auf.
Mit verschiedenen
time.sleep()
Intervallen kann man die Dauer der Vibra­tion regeln. Versuchen Sie es selbst und schauen Sie , wie Sie das Beispiel erweitern können.
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
Achtung! Für dieses Beispiel müssen Sie zwischen den Modulen wechseln. Stellen Sie Schalter Nummer 1 der rechten
Schalteinheit auf ON. Alle anderen Schalter sollten auf OFF
stehen.
Beispielcode:
#!/usr/bin/python
import RPI.GPIO as GPIO import time
#definiere des Vibrationspins
vibration_pin = 13
#setze Board Modus zu GPIO.BOARD
GPIO.setmode(GPIO.BOARD)
#lege Vibrationspin als Ausgang fest
GPIO.setup(vibration_pin, GPIO.OUT)
#schalte Vibration ein
GPIO.output(vibration_pin, GPIO.HIGH)
#warte eine Sekunde
time.sleep(1)
#schalte Vibration aus
GPIO.output(vibration_pin, GPIO.LOW)
GPIO.cleanup()
Führen Sie die folgenden Befehle aus und versuchen Sie es selbst:
cd /home/pi/Desktop/Joy-Pi/Python3 sudo python3 vibration.py
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
Lektion 5 : Geräusche mit dem Schallsensor erkennen
In dieser Lektion lernen wir, wie man über den Schallsensor Eingaben
tätigt, laute Geräusche erkennt und entsprechend reagiert. So können
Sie Ihr eigenes Alarmsystem aufbauen, das laute Geräusche erkennt oder eine LED durch Klatschen einschalten!
Der aus 2 Teilen aufgebaute Schallsensor besteht aus einem blauen Po­tentiometer, dass für die Regulierung der Empfindlichkeit zuständig ist und dem Sensor selbst, der Geräusche erkennt. Der Schallsensor ist gut am blauen Potentiometer zu erkennen und der Sensor selbst befindet sich rechts unter dem Buzzer.
Mit Hilfe des Potentiometers können wir die Empfindlichkeit des Sensors
regulieren. Damit unser Skript funktioniert, müssen wir zuerst lernen, wie man die Empfindlichkeit steuert. Um die Empfindlichkeit zu regulieren, müssen Sie die kleine Schraube am Potentiometer mit einem Schraubendreher nach links oder rechts drehen. Wenn sie gegen den Uhrzeigersinn drehen, steigt die Empfindlichkeit und mit dem Uhrzeigersinn verringert sich diese. Der beste Weg die Empfindlichkeit zu testen ist das Skript auszuführen. Klatschen Sie in die Hände und schauen Sie, ob das Gerät ein Signal empfängt. Wenn kein Signal empfangen wird bedeutet dies, dass die Empfindlichkeit des Sensors nicht hoch genug eingestellt ist. Dies können Sie durch drehen des Potentiometers einfach beheben.
#!/usr/bin/python
import RPI.GPIO as GPIO
import time
#sound_pin wird definiert
sound_pin = 18
#GPIO mode wird auf GPIO.BOARD gesetzt
GPIO.setmode(GPIO.BOARD)
#sound_pin wird als Eingang festgelegt
GPIO.setup(sound_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
while True:
#ueberpruefe ob ein Geraeusch erkannt wird if(GPIO.input(sound_pin)==GPIO.LOW): print(‘Sound erkannt‘) time.sleep(0.1)
except KeyboardInterrupt:
#STRG+C beendet das Programm GPIO.cleanup()
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
Wir definieren zuerst unseren Pin, GPIO18. Dann setzen wir eine while-Schleife, um dieses Skript dauerha laufen zu lassen. Wir prüfen, ob wir vom Schallsensor eine Eingabe erhalten haben, die anzeigt, dass laute Geräusche erkannt wurden und dann drucken wir
Sound Detected
.
Wenn STRG + C gedrückt wird, wird das Programm beendet.
Führen Sie die folgenden Befehle aus und versuchen Sie es selbst:
cd /home/pi/Desktop/Joy-Pi/Python3
sudo python3 sound.py
Achtung! Für dieses Beispiel müssen Sie alle Schalter der linken und der rechten Schalteinheit auf OFF stellen

Lektion 6 : Erkennen der Helligkeit mit dem Lichtsensor

Der Lichtsensor ist einer unserer Lieblinge. Er ist in vielen Projekten und Situationen äußerst nützlich, zum Beispiel bei Lampen, die automatisch angehen, sobald es dunkel wird. Mit dem Lichtsensor kann man erkennen, wie hell die Moduloberfläche ist.
Der Lichtsensor ist schwer zu erkennen, da er aus sehr kleinen Teilen besteht. Der Sensor liegt links neben dem Buzzer. Wenn Sie ihn mit Ihrem Finger verdecken, sollte die Ausgabe des Lichtsensors nahe null gehen, da ihn kein Licht mehr erreichen kann.
Nun ist es Zeit, den Sensor zu testen und zu sehen, wie er funktioniert. Jedoch ist der Lichtsensor ein wenig anders, als andere Sensoren, da er mit I2C funktioniert und nicht mit den normalen GPIOs, wie Sie es in den Lektionen zuvor gelernt haben.
In diesem Skript wird eine Funktion verwendet um mit dem Lichtsensor zu kommunizieren und die gewünschte Ausgabe mit der Helligkeit zu erhalten. Je höher die ausgegebene Zahl ist, desto heller ist die
Umgebung.
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
#!/usr/bin/python # -*- coding: utf-8 -*-
# Author: Matt Hawkins
# Author's Git: https://bitbucket.org/MattHawkinsUK/ # Author's website: https://www.raspberrypi-spy.co.uk
import RPi.GPIO as GPIO import smbus import time
if(GPIO.RPI_REVISION == 1):
bus = smbus.SMBus(0)
else:
bus = smbus.SMBus(1)
class LightSensor():
def __init__(self): # Definiere Konstante vom Datenblatt
self.DEVICE = 0x5c # Standard I2C Geräteadresse
self.POWER_DOWN = 0x00 # Kein aktiver zustand
self.POWER_ON = 0x01 # Betriebsbereit self.RESET = 0x07 # Reset des Data registers # Starte Messungen ab 4 Lux. self.CONTINUOUS_LOW_RES_MODE = 0x13 # Starte Messungen ab 1 Lux. self.CONTINUOUS_HIGH_RES_MODE_1 = 0x10 # Starte Messungen ab 0.5 Lux. self.CONTINUOUS_HIGH_RES_MODE_2 = 0x11 # Starte Messungen ab 1 Lux. # Nach Messung wird Gerät in einen inaktiven Zustand gesetzt. self.ONE_TIME_HIGH_RES_MODE_1 = 0x20 # Starte Messungen ab 0.5 Lux.
# Nach Messung wird Gerät in einen inaktiven Zustand gesetzt.
self.ONE_TIME_HIGH_RES_MODE_2 = 0x21 # Starte Messungen ab 4 Lux.
# Nach Messung wird Gerät in einen inaktiven Zustand gesetzt.
self.ONE_TIME_LOW_RES_MODE = 0x23
def convertToNumber(self, data): # Einfache Funktion um 2 Bytes Daten
# in eine Dezimalzahl umzuwandeln
return ((data[1] + (256 * data[0])) / 1.2)
def readLight(self): data = bus.read_i2c_block_data(self.DEVICE,self.ONE_TIME_HIGH_RES_MODE_1) return self.convertToNumber(data)
def main():
sensor = LightSensor() try: while True: print("Light Level : " + str(sensor.readLight()) + " lx") time.sleep(0.5) except KeyboardInterrupt: pass
if __name__ == "__main__":
main()
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
Achtung! Für dieses Beispiel müssen Sie alle Schalter der linken und der rechten Schalteinheit auf OFF stellen
Lektion 7 : Erkennen der Temperatur und Lufeuchtigkeit
Der DHT11-Sensor ist sehr einfach zu erkennen. Ein kleiner blauer Sensor mit vielen kleinen Löchern. Er liegt rechts neben dem Relais und oberhalb des Berührungssensors. Als besonders zugänglich hat sich die Python DHT Sensor Library erwiesen, die auf https://github.com/coding-
world/Python_DHT unter der [MIT-Lizenz] veröentlicht wurde.
Die Bibliothek wird verwendet, um Temperatur und Feuchtigkeit als Werte auszugeben ohne dabei komplizierte mathematische Berechnungen durchführen zu müssen.
Führen Sie die folgenden Befehle aus und versuchen Sie es selbst:
cd /home/pi/Desktop/Joy-Pi/Python3 sudo python3 light_sensor.py
Der DHT11 ist ein sehr interessanter Sensor, da er nicht nur eine Funktion hat, sondern zwei! Er enthält sowohl einen Feuchtigkeitssensor als auch einen Temperatursensor, welche beide sehr genau sind. Ideal für jedes Wetterstationsprojekt, oder wenn Sie die Temperatur und Lufeuchtig­keit im Raum überprüfen möchten!
import Python_DHT
sensor = Python_DHT.DHT11 pin = 4
feuchtigkeit, temperatur = Python_DHT.read_retry(sensor, pin)
print("Temperatur = "+str(temperatur)+ "C Feuchtigkeit = "+str( feuchtigkeit)+"%")
www.joy-it.net
Pascalstr. 8 47506 Neukirchen-Vluyn
Achtung! Für dieses Beispiel müssen Sie alle Schalter der linken und der rechten Schalteinheit auf OFF stellen
Führen Sie die folgenden Befehle aus und versuchen Sie es selbst:
cd /home/pi/Desktop/Joy-Pi/Python3 sudo python3 dht11.py
Lektion 8 : Bewegungen erkennen
Der Bewegungssensor ist einer der nützlichsten und am häufigsten
benutzten Sensoren. Man kann mit ihm zum Beispiel eine Alarmanlage bauen. Wenn der Sensor eine Bewegung erkennt, kann er ein Signal an den Buzzer senden, der dann einen lauten Alarmton von sich gibt.
Der Bewegungssensor befindet sich direkt unter dem Schallsensor und
wird von einer kleinen, transparenten Kappe abgedeckt. Die Kappe hil
dem Sensor mehr Bewegungen zu erkennen, indem sie das Infrarotlicht der Umgebung bricht. Die Empfindlichkeit des Bewegungssensors wird, wie die des Schallsensors mit einem Potentiometer geregelt. Dieser be­findet sich unterhalb des Potentiometers des Schallsensors, ist jedoch deutlich kleiner. Mit Hilfe eines Kreuzschraubendrehers können Sie einstellen, über welche Entfernungen der Bewegungssensor auslösen soll. Wenn Sie gegen den Uhrzeigersinn drehen, steigt die Empfindlichkeit, mit dem Uhrzeigersinn verringert sie sich.
Der Bewegungssensor wird durch die GPIO-Pins gesteuert. Wenn eine Bewegung erkannt wird, wird der Bewegungssensor ein Signal senden. Dieses hält einige Zeit an und hört dann wieder auf bis der Sensor die nächste Bewegung erkennt.
Loading...
+ 48 hidden pages