Inhoudsopgave:
- Stap 1: Benodigd materiaal
- Stap 2: De knoppen
- Stap 3: De knoppenbehuizing
- Stap 4: De Raspberry Pi
- Stap 5: Programmeren
- Stap 6: Voer het Python-script uit bij elke opstart
- Stap 7: Eindnoot
Video: Afspeelrecorder met Raspberry Pi - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
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
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 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
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
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:
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Raspbian installeren in Raspberry Pi 3 B zonder HDMI - Aan de slag met Raspberry Pi 3B - Uw Raspberry Pi instellen 3: 6 stappen
Raspbian installeren in Raspberry Pi 3 B zonder HDMI | Aan de slag met Raspberry Pi 3B | Je Raspberry Pi 3 instellen: Zoals sommigen van jullie weten, zijn Raspberry Pi-computers best geweldig en kun je de hele computer op een klein bordje krijgen. De Raspberry Pi 3 Model B heeft een quad-core 64-bit ARM Cortex A53 geklokt op 1,2 GHz. Dit zet de Pi 3 ongeveer 50
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Start uw diavoorstelling met vakantiefoto's met een vleugje magie! 9 stappen (met afbeeldingen)
Lanceer uw diavoorstelling met vakantiefoto's met een vleugje magie!: In de loop der jaren heb ik de gewoonte ontwikkeld om een klein beeldje mee te nemen op reis: ik koop vaak een kleine, lege artoy (zoals die op de foto) en verf het past bij de vlag en het thema van het land dat ik bezoek (in dit geval Sicilië). T