Project: Musicbox mit Python - GPIO-Schnittstellenabfrage mit Push-Buttons:
Hier ein kl. Projekt zur Umstzung von 2 oder mehr Tasterabfragen auf dem GPIO-Board des Raspi zum Abspielen von Sounds:
Benötigt wird:
1 X Raspberry Pi - hier ein 3+
1 X Speicherkarte 8GB microSD
1 X Kartenleser für PC
1 X Rasbian lite aktueller Download unter: https://www.raspberrypi.org/downloads/raspbian/
Etcher zum Aufspielen der ISO auf die SD-Card
Ich gehe hier nicht weiter auf das Aufspielen eines Linux / Rasbian Images auf eine SDCard zur späteren Verwendung ein - dies sollte als Basis schon vorhanden sein. --> SSH-Server sollte aktiviert sein.
Zunächst werden die Voraussetzungen zur Verwendung von Python installiert:
apt-get install python3-pip
apt-get install python3-pygame
pip3 install adafruit-blinka
Folgende Verzeichnisse erstellen:
mkdir /home/pi/gpio-music-box/scripts
mkdir /home/pi/gpio-music-box/samples
Folgendes script im /home/pi/gpio-music-box/scripts-Verzeichnis ablegen:
# This script requires a Raspberry Pi 2, 3 or Zero. Circuit Python must
# be installed and it is strongly recommended that you use the latest
# release of Raspbian.
import time
import os
import board
import digitalio
print("Bitte Taster betaetigen")
button1 = digitalio.DigitalInOut(board.D4)
button1.direction = digitalio.Direction.INPUT
button1.pull = digitalio.Pull.UP
button2 = digitalio.DigitalInOut(board.D24)
button2.direction = digitalio.Direction.INPUT
button2.pull = digitalio.Pull.UP
while True:
# omxplayer -o local <file>
# omxplayer -o hdmi <file>
# omxplayer -o both <file>
if not button1.value:
os.system('omxplayer /home/pi/gpio-music-box/samples/1.mp3 &')
if not button2.value:
os.system('omxplayer /home/pi/gpio-music-box/samples/2.mp3 &')
time.sleep(.25)
Das Script soll nun nach Einschalten des Raspis automatisch gestartet werden:
nano /etc/rc.local
python3 /home/pi/gpio-music-box/scripts/audio-button.py
abspeichern neu starten