Summer am Raspberry Pi

rbpbuzzerFür ein neues Projekt wollte ich bei bestimmten Interaktionen mit dem Raspberry eine akustische Rückmeldung haben, ob die Aktion ordnungsgemäß ausgeführt wurde. Nach langer Recherche stieß ich auf die hier vorgestellten 5V-Buzzer, die es günstig aus Fernost zu beziehen gibt. Der Anschluss sowie die Ansteuerung dieser kleinen Pieper wird in dieser Anleitung beschrieben.

 

 

 

[themify_box style=”rounded” ]In diesem Artikel verwendetes Zubehör

[/themify_box]

 

Einkaufsliste

Für unser Vorhaben benötigen wir

  1. einen 5v-Buzzer
  2. optional eine Lochrasterplatine zum einfacheren Verlöten
  3. einen 10K-Ohm Widerstand und
  4. einen BC547 NPN Transistor

Alle Produkte befinden sich auch oben im Slider.

 

 

Buzzer anschließen

Da der Buzzer mit 5V betrieben wird und wir mit unseren GPIO-Ports 3,3V schalten, benötigen wir einen Transistor. Diesen verlöten wir über einen Widerstand mit dem Buzzer und schließen unser Ergebnis an den Raspberry an. Dazu folgende Schaltung:

 

Schaltung

 

 

wiringPi installieren

Zum einfacheren Ansteuern unseres Buzzers installieren wir die wiringPi-Bibliothek. Dies ist in dieser Anleitung ausführlich beschrieben.

 

GPIO-Port initialisieren

Um den Buzzer über den GPIO-Port zu steuern, muss der entsprechende Port als Ausgangsport definiert werden. Dies erreichen wir mit

gpio mode 0 out

da wir in dieser Anleitung den GPIO-Port 17 nutzen, was dem wiringPi-Port 0 entspricht. Eine Übersicht der verfügbaren Ports gibt es hier. Die gezeigte Befehlszeile kann auch in die Datei “/etc/rc.local” eingetragen werden, damit der entsprechende GPIO-Port auch bei einem Neustart als ausgehender Port definiert wird.

 

Buzzer schalten

Nun können wir den Buzzer mit

gpio write 0 1

einschalten, uns über den wunderbaren Klang fernöstlicher Akustik erfreuen und diesen mit

gpio write 0 0

wieder ausschalten.

 

Piep-Folgen mittels Script

Für akustische Rückmeldung reicht meist ein zweifacher, kurzer Piep, den wir am besten in ein kleines Script verpacken, damit wir dieses in unseren zukünftigen Projekten aufrufen können. Meine Version eines solchen Scripts sieht wie folgt aus:

#!/bin/bash
gpio write 0 1 && sleep 0.1 && gpio write 0 0 && sleep 0.1 && gpio write 0 1 && sleep 0.1 && gpio write 0 0

 

Als weiteres, kleines Beispiel benötigte ich einen langen Piep, der im Script so aussieht:

#!/bin/bash
gpio write 0 1 && sleep 0.4 && gpio write 0 0

 

Dem Script muss nun die Ausführung erlaubt werden:

chmod +x beep.sh

 

Wenn ein Programm, dass das Script ausführen soll, unter einem anderen Nutzer läuft, bedarf es noch eines

chmod 755 beep.sh

 

 

DSC00844