Instructions
70
So funktioniert es
Zusätzlich zu den bereits bekannten Bibliotheken wird die Bibliothek subprocess importiert. Damit ist es
möglich, Linux-Komandozeilenprogramme aus einem Python-Programm heraus zu starten.
def za(n):
for s in "abcdefg":
GPIO.output(seg[s], 0)
for i in range(4):
GPIO.output(zif[i], 1)
if n!=0:
for s in zahl[n]:
GPIO.output(seg[s], 1)
GPIO.output(zif[n-1], 0)
Die Sieben-Segment-Amzeige soll die Nummer des Liedes anzeigen. Dabei ist die verwendete Funktion
za(n) so verändert, dass die 1 auf der ersten Ziffer, die 2 auf der zweiten usw. angezeigt werden. Das ist
nicht unbedingt nötig, sondern nur ein grafischer Effekt. Um die Anzeige komplett auszuschalten, über-
gibt man eine 0 beim Funktionsaufruf.
try:
while True:
if GPIO.input(t1)==1:
za(1)
subprocess.Popen(["omxplayer", "lied1.mp3"])
time.sleep(4)
za(0)
Die Hauptschleife des Programms fragt nacheinander alle vier Tasten ab. Wurde die Taste 1 gedrückt,
zeigt die Anzeige die Ziffer 1 an. Dann wird das Lied lied1.mp3 abgespielt. Dazu wird die Funktion
subprocess.Popen() verwendet, die in diesem Fall den kommandozeilenbasierten Medienplayer
omxplayer aufruft.
Nach vier Sekunden schaltet sich die Anzeige aus. Der Medienplayer läuft in einem eigenen Prozess. Das
Lied kann also durchaus noch länger laufen. Das Programm wartet nicht. Auf die gleiche Weise lassen
sich auch die anderen Lieder abspielen.
Durch Umbenennen der Dateien können Sie auch andere Lieder abspielen lassen. Der Download enthält
mehr als nur vier Weihnachtslieder.
Frohe Weihnachten!










