Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Hallo allerseits, In diesem anweisbaren erkläre ich, wie ich einen Wiedergaberecorder mit Raspberry Pi gemacht habe. Das Gerät ist ein Raspberry Pi Modell B+ mit 7 Drucktasten oben, einem Lautsprecher, der an einen der USB-Ports des Pi angeschlossen ist, und einem Mikrofon, das an einen anderen USB-Port angeschlossen ist. Jeder Taste ist ein Sound zugeordnet, sodass 7 verschiedene Sounds abgespielt werden können. Die Sounds werden nach einem kurzen Tastendruck abgespielt. Um einen neuen Ton aufzunehmen, drücken Sie einfach die Taste länger als 1 Sekunde, nehmen Sie nach dem Piepton auf und lassen Sie die Taste am Ende der Aufnahme los. Einfacher geht es nicht!
Schritt 1: Benötigtes Material
Für dieses Projekt brauchte ich:
- Ein Raspberry Pi Modell B+ und eine Micro-SD-Karte - 29,95 $ + 9,95 $
- Ein Raspberry Pi-Kunststoffgehäuse - 7.95 $
- USB-Lautsprecher - 12.50 $
- Ein USB-Mikrofon - 5,95 $
- Ein halbes Perma-Proto-Board - 4,50 $
- 7 momentane Druckknöpfe - 2,50 $
Ich brauchte auch:
- Einige elektrische Kabel
- Rechtwinklige Buchsenleisten
- Etwas Holz, schwarze Farbe und Kleber für das Knopfetui
- Ein Lötkolben und Lot
Schritt 2: Die Tasten
Die verwendeten Tasten sind recht hoch (6mm), damit sie durch die Gehäusedicke gehen können.
Ich habe meine 7 Tasten auf einem Perma-Proto-Board platziert, das wie ein Steckbrett ist, außer dass Komponenten darauf gelötet sind. Dies ist robuster als ein Steckbrett und billiger als das Drucken einer Leiterplatte. Jede Taste verbindet Masse mit einem GPIO auf dem Raspberry Pi. Ich habe hier keine Widerstände, da der Pi bereits interne Pull-Up / Down-Widerstände hat, die im Programm eingestellt werden. In diesem Fall habe ich sie auf Klimmzug gestellt (siehe Programm unten).
Die Schaltflächen werden alle 4 Reihen oder alle 0,4 Zoll platziert.
Schritt 3: Das Tastengehäuse
Ich habe einen sehr einfachen Fall für die Knöpfe gemacht, mit Sperrholzplatten und einem quadratischen Holzdübel. Die Dübelgröße muss groß genug sein, um die Knopfbasis und die Platine aufzunehmen, aber klein genug, um die Knopfoberseite aus dem Gehäuse herauszulassen. Ich benutzte einen 1/4 Zoll x 1/4 Zoll Dübel.
Nachdem sichergestellt ist, dass die Platte in das Gehäuse passt, werden die Dübel auf die Grundplatte geklebt. Dann werden Löcher in das obere Blatt gebohrt (das Brett kann verwendet werden, um alle 0,4 Zoll präzise Markierungen zu machen). Alle Holzteile werden bemalt, das Brett in den Koffer gelegt und das Deckblatt darauf geklebt.
Schritt 4: Der Raspberry Pi
Ich wollte die Drähte nicht direkt an den Pi löten, falls ich den Pi in Zukunft für etwas anderes verwenden möchte. Ich lötete daher die Drähte an rechtwinklige Buchsenleisten an und steckte die Header auf den Pi.
Die verwendeten GPIOs sind 21, 26, 20, 19, 13, 6 und 5. Der Masse-Pin wird ebenfalls verwendet.
Das Mikrofon und der Lautsprecher werden einfach an 2 der 4 USB-Anschlüsse angeschlossen.
Der Pi wird über die Micro-USB-Steckdose mit Strom versorgt
Schritt 5: Programmierung
Um den Pi zu programmieren, habe ich ihn über ein Ethernet-Kabel mit dem Internet verbunden und ihn mit dem VNC-Viewer von einem Remote-Computer aus gesteuert. Sie können dieses Setup jedoch nicht verwenden, wenn Sie sich zum ersten Mal mit dem Pi verbinden, da das Betriebssystem noch nicht installiert ist und SSH nicht deaktiviert ist. Sie müssen also zumindest beim ersten Mal einen Bildschirm, eine Tastatur und eine Maus anschließen.
Es war ziemlich mühsam, die Befehle zum Aufnehmen und Abspielen eines Sounds auf der richtigen Soundkarte zu finden. Dies sind die Befehle, die bei mir funktioniert haben:
-
aplay -D plughw:CARD=Device_1, DEV=0 0.wav
Spielt 0.wav
-
arecord 0.wav -D sysdefault:CARD=1 -f cd -d 20
Nimmt maximal 20 Sekunden in Datei 0.wav auf, mit CD-Qualität
Die Sounddateien befinden sich im Standardverzeichnis (/home/pi). Außerdem ist eine Sounddatei für den Beep erforderlich, die im Standardverzeichnis abgelegt und beep.wav genannt wird.
Der Python-Code selbst ist der folgende:
Python-Code für einen Raspberry Pi-Wiedergaberekorder
RPi. GPIO als GPIO importieren |
Importzeit |
Importieren von OS |
#Variablen: |
butPressed = [True, True, True, True, True, True, True]#wenn Taste i gedrückt wird, dann ist butPressed falsch |
Pin = [26, 19, 13, 6, 5, 21, 20]#GPIO-Pins jeder Taste |
recordBool = False#True, wenn ein Datensatz in Bearbeitung ist |
GPIO.setmode(GPIO. BCM) |
für i im Bereich (0, 7): |
GPIO.setup(pin, GPIO. IN, pull_up_down=GPIO. PUD_UP)#setzt die internen Widerstände von Pi auf Pull-up |
während Wahr: |
für i im Bereich (0, 7): |
butPressed = GPIO.input(pin)#prüft ob eine Taste gedrückt wird |
if butPressed == False:#wenn eine Taste gedrückt wird |
previousTime = time.time() |
while butPressed == False und recordBool == False: |
butPressed = GPIO.input(pin) |
if time.time() - previousTime > 1.0:#Wenn die Taste länger als eine Sekunde gedrückt wird, ist recordBool True |
recordBool = True |
if recordBool == True:#Wenn recordBool True ist, spielt es einen Piepton ab und nimmt dann auf |
os.system("aplay -D plughw:CARD=Device_1, DEV=0 beep.wav") |
os.system("arecord %d.wav -D sysdefault:CARD=1 -f cd -d 20 &" %i)#Aufzeichnungen für maximal 20 Sekunden in Datei i.wav, mit CD-Qualität |
while butPressed == Falsch: |
butPressed = GPIO.input(pin) |
os.system("pkill -9 arecord")#die Aufnahme wird gestoppt, wenn die Taste losgelassen wird oder nach 20 Sekunden |
recordBool = False |
else:#if recordBool ist False, es spielt den Ton i.wav. ab |
os.system("aplay -D plughw:CARD=Device_1, DEV=0 %d.wav" %i) |
time.sleep(0.1) |
RawPlayback-Recorder anzeigen, gehostet mit ❤ von GitHub
Schritt 6: Führen Sie das Python-Skript bei jedem Start aus
Um das Python-Skript bei jedem Start von Pi auszuführen, werden die folgenden Zeilen in eine Datei namensplayback.desktop im Ordner /home/pi/.config/autostart/ abgelegt.
führt beim Start von Raspberry Pi play.py aus
[Desktop-Eintrag] |
Kodierung=UTF-8 |
Typ=Anwendung |
Name=Wiedergabe |
Comment=Dies ist eine Wiedergabeanwendung |
Exec= python /home/pi/playback.py |
StartupNotify=false |
Terminal=wahr |
Versteckt=falsch |
rawplayback.desktop anzeigen, gehostet mit ❤ von GitHub
Schritt 7: Notiz beenden
Bitte sagen Sie mir im Kommentarbereich, was Sie von diesem Projekt halten, teilen Sie mir Ihre Empfehlungen mit und stimmen Sie für mich im Raspberry Pi-Wettbewerb ab, wenn es Ihnen gefallen hat.
Ich freue mich, Sie zu lesen!