In questa sessione utilizzeremo Raspberry Pi e le funzioni PYGAME per creare una tavola armonica. In termini semplici, collegheremo alcuni pulsanti ai pin GPIO di Raspberry Pi e quando questi pulsanti vengono premuti, Raspberry Pi riproduce i file audio archiviati nella sua memoria. Questi file audio possono essere riprodotti uno per uno o possono essere riprodotti tutti insieme. In altre parole, puoi premere uno o più pulsanti contemporaneamente, Raspberry Pi riprodurrà uno o più file audio di conseguenza contemporaneamente. Guarda il video dimostrativo alla fine di questo articolo. Controlla anche la nostra serie di tutorial Raspberry Pi insieme ad alcuni buoni progetti IoT.
Abbiamo 26 pin GPIO in Raspberry Pi che possono essere programmati, di cui alcuni vengono utilizzati per eseguire alcune funzioni speciali e poi abbiamo 17 GPIO rimanenti. Ogni pin GPIO può fornire o assorbire un massimo di 15 mA. E la somma delle correnti da tutti i GPIO non può superare i 50mA. Quindi possiamo disegnare un massimo di 3mA in media da ciascuno di questi pin GPIO. Useremo resistori per limitare il flusso di corrente. Scopri di più sui pin GPIO e sul pulsante di interfacciamento con Raspberry Pi qui.
Componenti richiesti:
Qui stiamo usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Tutti i requisiti hardware e software di base sono stati discussi in precedenza, puoi cercarli nell'introduzione di Raspberry Pi e LED Raspberry PI lampeggiante per iniziare, oltre a quello di cui abbiamo bisogno:
- Raspberry Pi con sistema operativo preinstallato
- Alimentazione elettrica
- Altoparlante
- Resistenza da 1KΩ (6 pezzi)
- Pulsanti (6 pezzi)
- Condensatore 1000uF
Spiegazione di lavoro:
Qui stiamo riproducendo il suono usando i pulsanti con Raspberry Pi. Abbiamo utilizzato 6 pulsanti per riprodurre 6 file audio. Possiamo aggiungere più pulsanti e file audio per estendere questa scheda e creare pattern più belli premendo questi pulsanti. Prima di spiegare ulteriormente, completare i passaggi seguenti.
1. Prima di tutto scarica i 6 file audio dal link indicato di seguito oppure puoi utilizzare i tuoi file audio, ma poi devi cambiare i nomi dei file in Codice.
Scarica i file audio da qui
2. Creare una nuova cartella sulla schermata del desktop Raspberry Pi e denominarla "PI SOUND BOARD".
3. Decomprimere i file audio scaricati nella cartella che abbiamo creato su DESKTOP nel passaggio precedente.
4. Apri la finestra del terminale in Raspberry Pi e inserisci il comando seguente:
sudo amixer cset numid = 3 1
Questo comando indica a PI di fornire l'uscita audio tramite jack audio da 3,5 mm a bordo.
Se desideri l'uscita audio dalla porta HDMI, puoi utilizzare il comando seguente:
$ sudo amixer cset numid = 3 2
5. Collegare gli altoparlanti al jack di uscita audio da 3,5 mm sulla scheda Raspberry Pi.
6. Creare un file PYTHON (estensione *.py) e salvarlo nella stessa cartella. Controlla questo tutorial per creare ed eseguire il programma Python in Raspberry Pi.
7. Il mixer Pygame verrà installato per impostazione predefinita nel sistema operativo. Se il programma, dopo l'esecuzione, non richiama PYMIXER, aggiorna quindi il SO di Raspberry Pi inserendo sotto il comando nella finestra del terminale. Assicurati che Pi sia connesso a Internet.
sudo apt-get update
Attendi alcuni minuti per l'aggiornamento del sistema operativo.
Ora collega ogni componente come da schema elettrico riportato di seguito, Copia il programma PYHTON nel file PYHTON creato sul desktop e infine premi Esegui per riprodurre i file audio tramite i pulsanti. Il programma Python viene fornito alla fine con il video dimostrativo.
Schema elettrico:
Spiegazione della programmazione:
Qui abbiamo creato il programma Python per riprodurre i file audio in base alla pressione del pulsante. Qui abbiamo bisogno di capire alcuni comandi, che abbiamo usato nel programma.
importa RPi.GPIO come IO
Stiamo per importare il file GPIO dalla libreria, il comando sopra ci consente di programmare i pin GPIO di PI. Stiamo anche rinominando "GPIO" in "IO", quindi nel programma ogni volta che vogliamo fare riferimento ai pin GPIO useremo la parola "IO".
IO.setwarnings (False)
A volte, quando i pin GPIO che stiamo cercando di utilizzare potrebbero svolgere altre funzioni. Quindi riceverai avvisi ogni volta che esegui un programma. Questo comando dice a Raspberry Pi di ignorare gli avvisi e procedere con il programma.
IO.setmode (IO.BCM)
Qui faremo riferimento ai pin i / o di PI con il loro nome di funzione. Quindi stiamo programmando il GPIO con i numeri pin BCM, che ci consente di chiamare i PIN con il loro pin GPIO n. Come possiamo chiamare PIN39 come GPIO19 nel programma.
importa pygame.mixer
Stiamo chiamando il mixer pygame per riprodurre i file audio.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Chiediamo il file audio "buzzer.wav" memorizzato nella cartella del desktop. Se vuoi riprodurre qualsiasi altro file, cambia semplicemente il nome del file audio nella funzione sopra. Puoi nominare qualsiasi file presente nella cartella del desktop.
channel1 = pygame.mixer.Channel (1)
Qui stiamo impostando un canale per ogni pulsante in modo da poter riprodurre tutti i file audio contemporaneamente.
if (IO.input (21) == 0): channel1.play (audio1)
Nel caso in cui la condizione nell'istruzione if sia vera, l'istruzione sottostante verrà eseguita una volta. Quindi, se il pin 21 GPIO diventa basso o messo a terra, riprodurrà il file audio assegnato alla variabile audio1 . Come da diagramma del circuito, possiamo vedere che il pin 21 GPIO si abbassa quando premiamo il primo pulsante. Quindi possiamo riprodurre qualsiasi file audio premendo il pulsante corrispondente.
mentre 1: è usato come ciclo per sempre, con questo comando le istruzioni all'interno di questo ciclo verranno eseguite continuamente.
Puoi apportare modifiche al programma python per rendere la scheda audio più soddisfacente con Raspberry Pi. Puoi anche aggiungere più pulsanti per rendere le cose più interessanti e riprodurre più file audio.