Inhoudsopgave:

Afspeelrecorder met Raspberry Pi - Ajarnpa
Afspeelrecorder met Raspberry Pi - Ajarnpa

Video: Afspeelrecorder met Raspberry Pi - Ajarnpa

Video: Afspeelrecorder met Raspberry Pi - Ajarnpa
Video: Vitesse deel 2 2024, November
Anonim
Image
Image
Materiaal nodig
Materiaal nodig

Hallo iedereen, In deze instructable leg ik uit hoe ik een afspeelrecorder heb gemaakt met Raspberry Pi. Het apparaat is een Raspberry Pi-model B+, met 7 drukknoppen bovenop, een luidspreker aangesloten op een van de USB-poorten van de Pi en een microfoon aangesloten op andere USB-poorten. Elke knop is gekoppeld aan een geluid, zodat er 7 verschillende geluiden kunnen worden afgespeeld. De geluiden worden afgespeeld na een korte druk op de knop. Om een nieuw geluid op te nemen, drukt u gewoon langer dan 1 seconde op de knop, neemt u op na de pieptoon en laat u de knop aan het einde van de plaat los. Eenvoudiger dan dat wordt het niet!

Stap 1: Benodigd materiaal

Benodigd materiaal
Benodigd materiaal
Materiaal nodig
Materiaal nodig

Voor dit project had ik nodig:

  • Een Raspberry Pi model B+ en micro SD-kaart - 29,95 $ + 9,95 $
  • Een plastic behuizing van Raspberry Pi - 7,95 $
  • USB-luidsprekers - 12,50 $
  • Een USB-microfoon - 5,95 $
  • Een half-sized perma-proto bord - 4,50 $
  • 7 tijdelijke drukknoppen - 2,50 $

Ik had ook nodig:

  • Sommige elektrische draad
  • Rechthoekige vrouwelijke headers
  • Wat hout, zwarte verf en lijm voor de knopenkast
  • Een soldeerbout en soldeer

Stap 2: De knoppen

de knoppen
de knoppen
de knoppen
de knoppen
de knoppen
de knoppen

De gebruikte knoppen zijn vrij hoog (6 mm) zodat ze door de dikte van de kast kunnen.

Ik plaatste mijn 7 knoppen op een perma-proto-bord, dat lijkt op een breadboard, behalve dat er componenten op zijn gesoldeerd. Dit is robuuster dan een breadboard en goedkoper dan het printen van een pcb. Elke knop verbindt aarde met een GPIO op de Raspberry Pi. Ik heb hier geen weerstanden omdat de Pi al interne pull-up / down-weerstanden heeft die in het programma worden ingesteld. In dit geval heb ik ze op pull-up gezet (zie programma hieronder).

De knoppen worden elke 4 rijen geplaatst, of elke 0,4 inch.

Stap 3: De knoppenbehuizing

De knopenkast
De knopenkast
De knopenkast
De knopenkast
De knopenkast
De knopenkast

Ik maakte een heel eenvoudig hoesje voor de knopen, met multiplex platen en houten vierkante pluggen. De deuvelmaat moet groot genoeg zijn om de knopbasis en het bord te bevatten, maar klein genoeg om de bovenkant van de knop uit de behuizing te laten komen. Ik gebruikte een 1/4 in x 1/4 in plug.

Nadat u ervoor heeft gezorgd dat het bord in de behuizing past, worden de deuvels op de basisplaat gelijmd. Vervolgens worden er gaten geboord op het bovenvel (het bord kan worden gebruikt om elke 0,4 inch nauwkeurig markeringen te maken). Alle houten delen zijn geverfd, het bord in de koffer geplaatst en het bovenblad erop gelijmd.

Stap 4: De Raspberry Pi

De Raspberry Pi
De Raspberry Pi
De Raspberry Pi
De Raspberry Pi
De Raspberry Pi
De Raspberry Pi

Ik wilde de draden niet rechtstreeks aan de Pi solderen, voor het geval ik de Pi in de toekomst voor iets anders wil gebruiken. Ik heb daarom de draden gesoldeerd aan rechthoekige vrouwelijke headers en de headers op de Pi aangesloten.

De gebruikte GPIO's zijn 21, 26, 20, 19, 13, 6 en 5. De aardpen wordt ook gebruikt.

De microfoon en speaker worden eenvoudig in 2 van de 4 usb poorten gestoken.

De Pi wordt gevoed via de micro-usb-uitgang

Stap 5: Programmeren

Om de Pi te programmeren, verbond ik hem met internet via een ethernetkabel en bestuurde ik hem vanaf een externe computer met behulp van VNC-viewer. U kunt deze setup echter niet gebruiken wanneer u voor het eerst verbinding maakt met de Pi, omdat het besturingssysteem nog niet is geïnstalleerd en SSH niet is ingeschakeld. Je zult dus in ieder geval de eerste keer een scherm, toetsenbord en muis moeten aansluiten.

Het was nogal een gedoe om de commando's te vinden om een geluid op te nemen en af te spelen op de juiste geluidskaart. Dit zijn de commando's die voor mij werkten:

  • aplay -D plughw:CARD=Device_1, DEV=0 0.wav

    Speelt 0.wav

  • arecord 0.wav -D sysdefault:CARD=1 -f cd -d 20

    Neemt maximaal 20 seconden op in bestand 0.wav, met cd-kwaliteit

De geluidsbestanden bevinden zich in de standaardmap (/home/pi). Een geluidsbestand voor de piep is ook nodig, geplaatst in de standaardmap en genaamd piep.wav.

De python-code zelf is de volgende:

python-code voor een Raspberry Pi-afspeelrecorder

importeer RPi. GPIO als GPIO
import tijd
importeer os
#variabelen:
butPressed = [True, True, True, True, True, True, True]#als knop i wordt ingedrukt, dan is butPressed False
pin = [26, 19, 13, 6, 5, 21, 20]#GPIO-pinnen van elke knop
recordBool = False#True als een record bezig is
GPIO.setmode(GPIO. BCM)
voor i binnen bereik (0, 7):
GPIO.setup(pin, GPIO. IN, pull_up_down=GPIO. PUD_UP)#sets Pi's interne weerstanden om omhoog te trekken
terwijl waar:
voor i binnen bereik (0, 7):
butPressed = GPIO.input(pin)#controleert of er op een knop wordt gedrukt
if butPressed == False:#als er op een knop wordt gedrukt
vorigeTijd = tijd.tijd()
while butPressed == False en recordBool == False:
maar ingedrukt = GPIO.invoer (pin )
if time.time() - previousTime > 1.0:#als de knop langer dan een seconde wordt ingedrukt, is recordBool True
recordBool = True
if recordBool == True:#if recordBool is True, het speelt een pieptoon en neemt vervolgens op
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)#records voor maximaal 20 seconden in bestand i.wav, met cd-kwaliteit
while butPressed == False:
maar ingedrukt = GPIO.invoer (pin )
os.system("pkill -9 arecord")#de record wordt gestopt wanneer de knop wordt losgelaten, of na 20 seconden
recordBool = False
else:#als recordBool False is, speelt het geluid af i.wav
os.system("aplay -D plughw:CARD=Device_1, DEV=0 %d.wav" %i)
tijd.slaap(0.1)

bekijk rawPlayback-recorder gehost met ❤ door GitHub

Stap 6: Voer het Python-script uit bij elke opstart

Om het python-script uit te voeren bij het opstarten van elke Pi, worden de volgende regels in een bestand met de naam playback.desktop in de map /home/pi/.config/autostart/ geplaatst

draait playback.py bij het opstarten van Raspberry Pi

[Bureaubladinvoer]
Codering = UTF-8
Type=Toepassing
Naam=Afspelen
Comment=Dit is een afspeeltoepassing
Exec = python /home/pi/playback.py
StartupNotify=false
Terminal=waar
Verborgen=false

bekijk rawplayback.desktop gehost met ❤ door GitHub

Stap 7: Eindnoot

Vertel me alsjeblieft wat je van dit project vindt in het commentaargedeelte, laat me je aanbevelingen weten en stem op me in de Raspberry Pi-wedstrijd als je het leuk vond.

Ik kijk ernaar uit om je te lezen!

Aanbevolen: