Cuprins:

Înregistrare redare cu Raspberry Pi: 7 pași (cu imagini)
Înregistrare redare cu Raspberry Pi: 7 pași (cu imagini)

Video: Înregistrare redare cu Raspberry Pi: 7 pași (cu imagini)

Video: Înregistrare redare cu Raspberry Pi: 7 pași (cu imagini)
Video: Un film bazat pe fapte reale _ 2024, Noiembrie
Anonim
Image
Image
Material necesar
Material necesar

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

Material necesar
Material necesar
Material necesar
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
Butoanele
Butoanele
Butoanele
Butoanele
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

Cazul Butoane
Cazul Butoane
Cazul Butoane
Cazul Butoane
Cazul Butoane
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

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
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: