Sommario:

Registratore di riproduzione con Raspberry Pi: 7 passaggi (con immagini)
Registratore di riproduzione con Raspberry Pi: 7 passaggi (con immagini)

Video: Registratore di riproduzione con Raspberry Pi: 7 passaggi (con immagini)

Video: Registratore di riproduzione con Raspberry Pi: 7 passaggi (con immagini)
Video: Elisa Esposito ha tradito gentisosa con Gilbert Nana 2024, Dicembre
Anonim
Image
Image
Materiale necessario
Materiale necessario

Ciao a tutti, In questo tutorial spiego come ho realizzato un registratore di riproduzione usando Raspberry Pi. Il dispositivo è un Raspberry Pi modello B+, con 7 pulsanti sulla parte superiore, un altoparlante collegato a una delle porte USB del Pi e un microfono collegato a un'altra porta USB. Ad ogni pulsante è associato un suono, quindi può riprodurre 7 suoni diversi. I suoni vengono riprodotti dopo una breve pressione del pulsante. Per registrare un nuovo suono, è sufficiente premere il pulsante per più di 1 secondo, registrare dopo il segnale acustico e rilasciare il pulsante alla fine della registrazione. Non c'è niente di più semplice di così!

Passaggio 1: materiale necessario

Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario

Per questo progetto avevo bisogno di:

  • Un modello Raspberry Pi B+ e una scheda micro SD - 29,95 $ + 9,95 $
  • Una custodia in plastica Raspberry Pi - 7,95 $
  • Altoparlanti USB - 12,50 $
  • Un microfono USB - 5,95 $
  • Una mezza pensione perma-proto - 4,50 $
  • 7 pulsanti momentanei - 2,50 $

mi serviva anche:

  • Qualche filo elettrico
  • Intestazioni femmina ad angolo retto
  • Un po' di legno, vernice nera e colla per la custodia dei bottoni
  • Un saldatore e una saldatura

Passaggio 2: i pulsanti

I pulsanti
I pulsanti
I pulsanti
I pulsanti
I pulsanti
I pulsanti

I pulsanti utilizzati sono abbastanza alti (6 mm) in modo da poter passare attraverso lo spessore della cassa.

Ho posizionato i miei 7 pulsanti su una scheda perma-proto, che è come una breadboard, tranne per il fatto che i componenti sono saldati su di essa. Questo è più robusto di una breadboard e più economico della stampa di un pcb. Ogni pulsante collega la massa a un GPIO sul Raspberry Pi. Non ho resistori qui poiché il Pi ha già resistori pull-up/down interni che verranno impostati nel programma. In questo caso li ho impostati su pull-up (vedi programma sotto).

I pulsanti sono posizionati ogni 4 righe o ogni 0,4 pollici.

Passaggio 3: la custodia dei pulsanti

La custodia dei pulsanti
La custodia dei pulsanti
La custodia dei pulsanti
La custodia dei pulsanti
La custodia dei pulsanti
La custodia dei pulsanti

Ho realizzato un astuccio per i bottoni molto semplice, con fogli di compensato e tassello quadrato in legno. La dimensione del tassello deve essere abbastanza grande da contenere la base del bottone e la scheda, ma abbastanza piccola da far uscire il bottone dalla parte superiore. Ho usato un tassello da 1/4 di pollice x 1/4 di pollice.

Dopo essersi assicurati che la scheda si adatti alla custodia, i tasselli vengono incollati al foglio di base. Vengono quindi praticati dei fori sul foglio superiore (la tavola può essere utilizzata per fare con precisione segni ogni 0,4 pollici). Tutte le parti in legno sono dipinte, la tavola inserita nella custodia e il foglio superiore incollato sopra di essa.

Passaggio 4: il Raspberry Pi

Il Raspberry Pi
Il Raspberry Pi
Il Raspberry Pi
Il Raspberry Pi
Il Raspberry Pi
Il Raspberry Pi

Non volevo saldare i fili direttamente al Pi, nel caso volessi usare il Pi per qualcos'altro in futuro. Ho quindi saldato i fili alle intestazioni femmina ad angolo retto e ho collegato le intestazioni sul Pi.

I GPIO utilizzati sono 21, 26, 20, 19, 13, 6 e 5. Viene utilizzato anche il pin di terra.

Il microfono e l'altoparlante vengono semplicemente collegati a 2 delle 4 porte USB.

Il Pi è alimentato tramite la presa micro-usb

Passaggio 5: programmazione

Per programmare il Pi, l'ho collegato a Internet utilizzando un cavo Ethernet e l'ho controllato da un computer remoto utilizzando il visualizzatore VNC. Tuttavia, non è possibile utilizzare questa configurazione la prima volta che ci si connette al Pi, perché il sistema operativo non è ancora installato e SSH non è abilitato. Quindi dovrai collegare uno schermo, una tastiera e un mouse, almeno la prima volta.

È stata una vera seccatura trovare i comandi per registrare e riprodurre un suono sulla scheda audio giusta. Questi sono i comandi che hanno funzionato per me:

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

    Riproduce 0.wav

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

    Registra per un massimo di 20 secondi nel file 0.wav, con qualità cd

I file audio si trovano nella directory predefinita (/home/pi). È necessario anche un file audio per il beep, posizionato nella directory predefinita e chiamato beep.wav.

Il codice Python stesso è il seguente:

codice python per un registratore di riproduzione Raspberry Pi

importa RPi. GPIO come GPIO
tempo di importazione
importare il sistema operativo
#variabili:
butPressed = [True, True, True, True, True, True, True]#se il pulsante i è premuto, allora butPressed è False
pin = [26, 19, 13, 6, 5, 21, 20]#pin GPIO di ciascun pulsante
recordBool = False#True se è in corso un record
GPIO.setmode(GPIO. BCM)
per i nell'intervallo (0, 7):
GPIO.setup(pin, GPIO. IN, pull_up_down=GPIO. PUD_UP)#imposta i resistori interni di Pi su pull-up
mentre vero:
per i nell'intervallo (0, 7):
butPressed = GPIO.input(pin)# controlla se un pulsante è premuto
if butPressed == False:#se viene premuto un pulsante
oraprecedente = ora.ora()
while butPressed == False e recordBool == False:
butPressed = GPIO.input(pin)
if time.time() - previousTime > 1.0:#se il pulsante viene premuto per più di un secondo, allora recordBool è True
recordBool = True
if recordBool == True:#se recordBool è True, riproduce un segnale acustico e quindi registra
os.system("aplay -D plughw:CARD=Dispositivo_1, DEV=0 beep.wav")
os.system("arecord %d.wav -D sysdefault:CARD=1 -f cd -d 20 &" %i)#record per un massimo di 20 secondi nel file i.wav, con qualità cd
mentre butPressed == False:
butPressed = GPIO.input(pin)
os.system("pkill -9 arecord")#il record viene interrotto quando si rilascia il pulsante o dopo 20 secondi
recordBool = False
else:#se recordBool è False, riproduce il suono i.wav
os.system("aplay -D plughw:CARD=Dispositivo_1, DEV=0 %d.wav" %i)
tempo.sonno(0.1)

visualizza il registratore rawPlayback ospitato con ❤ da GitHub

Passaggio 6: eseguire lo script Python ad ogni avvio

Per eseguire lo script Python all'avvio di ogni Pi, le seguenti righe vengono inserite in un file chiamato playback.desktop nella cartella /home/pi/.config/autostart/

esegue playback.py all'avvio di Raspberry Pi

[Voce sul desktop]
Codifica=UTF-8
Tipo=Applicazione
Nome=Riproduzione
Comment=Questa è un'applicazione di riproduzione
Exec= python /home/pi/playback.py
StartupNotify=false
Terminale=vero
Nascosto=falso

visualizza rawplayback.desktop ospitato con ❤ da GitHub

Passaggio 7: nota finale

Per favore dimmi cosa ne pensi di questo progetto nella sezione commenti, fammi sapere i tuoi consigli e votami nel concorso Raspberry Pi se ti è piaciuto.

Non vedo l'ora di leggerti!

Consigliato: