Cuprins:
- Pasul 1: Material necesar
- Pasul 2: Butoanele
- Pasul 3: Cazul Butoane
- Pasul 4: Raspberry Pi
- Pasul 5: Programare
- Pasul 6: Rulați scriptul Python la fiecare pornire
- Pasul 7: Notă finală
Video: Înregistrare redare cu Raspberry Pi: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Buna tuturor, În acest instructable explic cum am făcut un recorder de redare folosind Raspberry Pi. Dispozitivul este un model Raspberry Pi B +, cu 7 butoane în partea de sus, un difuzor conectat la unul dintre porturile USB ale Pi și un microfon conectat la un alt port USB. Fiecare buton este asociat unui sunet, deci poate reda 7 sunete diferite. Sunetele sunt redate după o scurtă apăsare a butonului. Pentru a înregistra un sunet nou, pur și simplu apăsați butonul mai mult de 1 secundă, înregistrați după bip și lăsați butonul de la sfârșitul înregistrării. Nu devine mai simplu decât atât!
Pasul 1: Material necesar
Pentru acest proiect aveam nevoie de:
- Un model Raspberry Pi B + și card micro SD - 29,95 $ + 9,95 $
- O carcasă din plastic Raspberry Pi - 7,95 $
- Difuzoare USB - 12,50 $
- Un microfon USB - 5,95 USD
- O placă perma-proto pe jumătate - 4,50 USD
- 7 butoane momentane - 2,50 $
De asemenea, aveam nevoie de:
- Câteva fire electrice
- Anteturi feminine cu unghi drept
- Niște lemn, vopsea neagră și lipici pentru carcasa nasturilor
- Un fier de lipit și lipit
Pasul 2: Butoanele
Butoanele folosite sunt destul de înalte (6 mm), astfel încât să poată trece prin grosimea carcasei.
Mi-am așezat cele 7 butoane pe o placă perma-proto, care este ca o placă, cu excepția componentelor lipite pe ea. Acest lucru este mai robust decât o placă de calcul și este mai ieftin decât imprimarea unui PCB. Fiecare buton leagă solul de un GPIO de pe Raspberry Pi. Nu am rezistențe aici, deoarece Pi are deja rezistențe interne pull-up / down care vor fi setate în program. În acest caz, le-am setat să tragă în sus (vezi programul de mai jos).
Butoanele sunt plasate la fiecare 4 rânduri sau la fiecare 0,4 in.
Pasul 3: Cazul Butoane
Am făcut o carcasă foarte simplă pentru nasturi, cu foi de placaj și diblă pătrată din lemn. Dimensiunea diblului trebuie să fie suficient de mare pentru a conține baza butonului și placa, dar suficient de mică pentru a permite butonului să iasă din carcasă. Am folosit o diblă de 1/4 în x 1/4 în.
După ce vă asigurați că placa se potrivește în carcasă, diblurile sunt lipite de foaia de bază. Găurile sunt apoi găurite pe foaia superioară (placa poate fi utilizată pentru a marca cu precizie la fiecare 0,4 inci). Toate părțile din lemn sunt vopsite, placa așezată în carcasă și foaia superioară lipită deasupra acesteia.
Pasul 4: Raspberry Pi
Nu am vrut să lipesc firele direct pe Pi, în cazul în care vreau să folosesc Pi pentru altceva în viitor. Prin urmare, am lipit firele la anteturile feminine cu unghi drept și am conectat antetele pe Pi.
GPIO-urile utilizate sunt 21, 26, 20, 19, 13, 6 și 5. Știftul de masă este, de asemenea, utilizat.
Microfonul și difuzorul sunt pur și simplu conectate la 2 dintre cele 4 porturi USB.
Pi este alimentat prin priza micro-USB
Pasul 5: Programare
Pentru a programa Pi, l-am conectat la internet folosind un cablu ethernet și l-am controlat de la un computer la distanță folosind vizualizatorul VNC. Cu toate acestea, nu puteți utiliza această configurare prima dată când vă conectați la Pi, deoarece sistemul de operare nu este încă instalat și SSH nu este dezactivat. Așadar, va trebui să conectați un ecran, tastatură și mouse, cel puțin prima dată.
A fost destul de greu să găsești comenzile pentru a înregistra și a reda un sunet pe placa de sunet potrivită. Acestea sunt comenzile care au funcționat pentru mine:
-
aplay -D plughw: CARD = Device_1, DEV = 0 0.wav
Redă 0.wav
-
arecord 0.wav -D sysdefault: CARD = 1 -f cd -d 20
Înregistrează maximum 20 de secunde în fișierul 0.wav, cu calitate CD
Fișierele audio sunt localizate în directorul implicit (/ home / pi). De asemenea, este necesar un fișier de sunet pentru bip, plasat în directorul implicit și numit beep.wav.
Codul python în sine este următorul:
cod python pentru un recorder de redare Raspberry Pi
importați RPi. GPIO ca GPIO |
timpul de import |
import os |
#variabile: |
butPressed = [True, True, True, True, True, True, True] #if butonul i este apăsat, apoi butPressed este False |
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO pini ai fiecărui buton |
recordBool = False # Adevărat dacă o înregistrare este în desfășurare |
GPIO.setmode (GPIO. BCM) |
pentru i în intervalul (0, 7): |
GPIO.setup (pin , GPIO. IN, pull_up_down = GPIO. PUD_UP) # setează rezistențele interne Pi la pull-up |
în timp ce este adevărat: |
pentru i în intervalul (0, 7): |
butPressed = GPIO.input (pin ) # verifică dacă este apăsat un buton |
if butPressed == False: #dacă este apăsat un buton |
previousTime = time.time () |
în timp ce butPressed == False și recordBool == False: |
butPressed = GPIO.input (pin ) |
dacă time.time () - previousTime> 1.0: #dacă butonul este apăsat mai mult de o secundă, atunci recordBool este True |
recordBool = Adevărat |
dacă recordBool == True: #if recordBool este True, redă un sunet sonor și apoi înregistrează |
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 pentru maxim 20 de secunde în fișierul i.wav, cu calitate CD |
în timp ce butPressed == Fals: |
butPressed = GPIO.input (pin ) |
os.system ("pkill -9 arecord") # înregistrarea este oprită când butonul este eliberat sau după 20 de secunde |
recordBool = Fals |
else: #if recordBool este False, redă sunetul i.wav |
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0% d.wav"% i) |
time.sleep (0.1) |
vizualizați înregistratorul rawPlayback găzduit cu ❤ de GitHub
Pasul 6: Rulați scriptul Python la fiecare pornire
Pentru a rula scriptul python la fiecare pornire a lui Pi, următoarele linii sunt plasate într-un fișier numit playback.desktop în folderul /home/pi/.config/autostart/
rulează playback.py la pornirea Raspberry Pi
[Intrare pe desktop] |
Codificare = UTF-8 |
Tipul = Cerere |
Nume = Redare |
Comentariu = Aceasta este o aplicație de redare |
Exec = python /home/pi/playback.py |
StartupNotify = fals |
Terminal = adevărat |
Ascuns = fals |
vizualizați rawplayback.desktop găzduit cu ❤ de GitHub
Pasul 7: Notă finală
Vă rog să-mi spuneți ce părere aveți despre acest proiect în secțiunea de comentarii, spuneți-mi recomandările dvs. și votați-mă în cadrul concursului Raspberry Pi dacă v-a plăcut.
Aștept cu nerăbdare să vă citesc!
Recomandat:
Skateboard-uri conceptuale de modelare și redare în Fusion 360: 7 pași
Modelarea și redarea conceptului de skateboard-uri în Fusion 360: am constatat că, deși construirea unei mașini fizice, cum ar fi un skateboard, este distractivă și plină de satisfacții, uneori vrem doar să stăm într-un singur loc și să modelăm rezultate minunate … fără instrumente, materiale sau orice altceva! Exact ce
Tutorial: Cum se utilizează ESP32-CAM în serverul de redare a fluxului video: 3 pași
Tutorial: Cum se utilizează ESP32-CAM în serverul de video streaming video: Descriere: ESP32-CAM este un ESP32 Wireless IoT Vision Development Board într-un factor de formă foarte mic, conceput pentru a fi utilizat în diverse proiecte IoT, cum ar fi dispozitivele inteligente de acasă, industriale control fără fir, monitorizare fără fir, identificare fără fir QR
Redare MP3 Sound FX Wall: 12 pași (cu imagini)
MP3 Playing Sound FX Wall: Creați un perete de sunet distractiv și interactiv care redă MP3-uri cu o simplă atingere! Ce faci cu un perete gol? Ai putea să îi adaugi niște poze frumoase? Sau acoperiți-o cu o plantă colorată de casă. Am văzut chiar și unii oameni ascunzând pereții goi în spatele cărții
ARUPI - o unitate de înregistrare automată low-cost / unitate de înregistrare autonomă (ARU) pentru ecologiști ai peisajului sonor: 8 pași (cu imagini)
ARUPI - o unitate de înregistrare automată low-cost / unitate de înregistrare autonomă (ARU) pentru ecologiști ai peisajului sonor: acest instructiv a fost scris de Anthony Turner. Proiectul a fost dezvoltat cu mult ajutor de la Shed in the School of Computing, Universitatea din Kent (domnul Daniel Knox a fost de mare ajutor!). Vă va arăta cum să construiți o înregistrare audio automatizată
Înregistrare / redare / overdub Midi cu conexiuni cu 5 pini: 3 pași
Înregistrare / redare / overdub Midi cu conexiuni cu 5 pini: * Folosește un cip ATMega-1284 care rulează la 8 MHz, cu 4 k octeți de RAM și 4 kBiți de eeprom * Utilizează vechii conectori DIN cu 5 pini * Permite înregistrarea și redarea, precum și overdub: înregistrarea împreună cu ceva pe care l-ați înregistrat anterior. * Meniu complet * Capab