En aquesta sessió utilitzarem Raspberry Pi i les funcions PYGAME per crear una placa de so. En termes senzills, connectarem pocs botons als pins Raspberry Pi GPIO i, quan es premen aquests botons, Raspberry Pi reprodueix fitxers d’àudio emmagatzemats a la seva memòria. Aquests fitxers d'àudio es poden reproduir un per un o es poden reproduir tots junts. Dit d’una altra manera, podeu prémer un o diversos botons alhora, Raspberry Pi reproduirà un o diversos fitxers d’àudio en conseqüència al mateix temps. Consulteu el vídeo de demostració al final d’aquest article. Consulteu també la nostra sèrie de tutorials Raspberry Pi juntament amb alguns bons projectes IoT.
Tenim 26 pins GPIO a Raspberry Pi que es poden programar, dels quals alguns s’utilitzen per realitzar algunes funcions especials i després ens queden 17 GPIO. Cada pin GPIO pot lliurar o dibuixar un màxim de 15 mA. I la suma de corrents de tots els GPIO no pot superar els 50 mA. Per tant, podem treure un màxim de 3 mA de mitjana de cadascun d’aquests pins GPIO. Utilitzarem resistències per limitar el flux de corrent. Obteniu més informació sobre els pins GPIO i el botó d’interfície amb Raspberry Pi aquí.
Components necessaris:
Aquí fem servir Raspberry Pi 2 Model B amb Raspbian Jessie OS. Tots els requisits bàsics de maquinari i programari s’han comentat prèviament. Podeu consultar-los a la Introducció de Raspberry Pi i al LED Raspberry PI Parpellejant per començar, a part del que necessitem:
- Raspberry Pi amb sistema operatiu preinstal·lat
- Font d'alimentació
- Altaveu
- Resistència 1KΩ (6 peces)
- Botons de pressió (6 peces)
- Condensador de 1000uF
Explicació de treball:
Aquí estem reproduint so fent servir botons amb Raspberry Pi. Hem utilitzat 6 polsadors per reproduir 6 fitxers d'àudio. Podem afegir més botons i fitxers d'àudio per ampliar aquest tauler per crear un patró més bonic prement aquests botons. Abans d’explicar-ho, seguiu els passos següents.
1. Primer de tot, descarregueu els 6 fitxers d'àudio des de l'enllaç que es mostra a continuació o podeu utilitzar els fitxers d'àudio, però després heu de canviar els noms dels fitxers a Code.
Baixeu fitxers d'àudio des d'aquí
2. Creeu una nova carpeta a la pantalla de l’escriptori Raspberry Pi i bategeu-la amb el nom de “PI SOUND BOARD”.
3. Descomprimiu els fitxers d'àudio descarregats a la carpeta que hem creat a DESKTOP al pas anterior.
4. Obriu la finestra del terminal a Raspberry Pi i introduïu l'ordre següent:
sudo amixer cset numid = 3 1
Aquesta ordre indica a PI que proporcioni una sortida d'àudio mitjançant un connector d'àudio de 3,5 mm a la placa.
Si voleu sortida d'àudio des del port HDMI, podeu utilitzar l'ordre següent:
$ sudo amixer cset numid = 3 2
5. Connecteu altaveus a la presa de sortida d'àudio de 3,5 mm de la placa Raspberry Pi.
6. Creeu un fitxer PYTHON (extensió *.py) i deseu-lo a la mateixa carpeta. Consulteu aquest tutorial per crear i executar el programa Python a Raspberry Pi.
7. El mesclador Pygame s'instal·larà per defecte al SO. Si el programa, després de l'execució, no recorda PYMIXER, actualitzeu el sistema operatiu de Raspberry Pi introduint l'ordre següent a la finestra del terminal. Assegureu-vos que Pi estigui connectat a Internet.
sudo apt-get update
Espereu uns minuts fins que el sistema operatiu s’actualitzi.
Ara connecteu tots els components segons el diagrama de circuits que es mostra a continuació, copieu el programa PYHTON al fitxer PYHTON creat a l'escriptori i, finalment, premeu Executar per reproduir els fitxers d'àudio mitjançant els botons. El programa Python es dóna al final amb el vídeo de demostració.
Esquema de connexions:

Explicació de la programació:
Aquí hem creat el programa Python per reproduir els fitxers d’àudio segons el botó. Aquí hem d’entendre algunes ordres que hem utilitzat al programa.
importar RPi.GPIO com a IO
Importarem el fitxer GPIO de la biblioteca, l’ordre anterior ens permet programar pins GPIO de PI. També estem canviant el nom de "GPIO" per "IO", de manera que al programa sempre que vulguem referir-nos als pins GPIO utilitzarem la paraula "IO".
IO.setwarnings (fals)
De vegades, quan els pins GPIO que intentem utilitzar poden estar fent algunes altres funcions. A continuació, rebreu avisos sempre que executeu un programa. Aquesta ordre indica a Raspberry Pi que ignori les advertències i continuï amb el programa.
IO.setmode (IO.BCM)
Aquí anem a referir els pins d'E / S de PI pel seu nom de funció. Per tant, estem programant els números de pin GPIO per BCM, cosa que ens permet trucar a PIN amb el seu número de PIN GPIO. Igual que podem trucar al PIN39 com a GPIO19 al programa.
importa pygame.mixer
Estem trucant al mesclador pygame per reproduir els fitxers d'àudio.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Estem demanant un fitxer d'àudio "buzzer.wav" emmagatzemat a la carpeta d'escriptori. Si voleu reproduir qualsevol altre fitxer, només heu de canviar el nom del fitxer d'àudio a la funció indicada anteriorment. Podeu anomenar qualsevol fitxer present a la carpeta de l'escriptori.
channel1 = pygame.mixer.Channel (1)
Aquí estem configurant un canal per a cada botó perquè puguem reproduir tots els fitxers d'àudio simultàniament.
if (IO.input (21) == 0): channel1.play (audio1)
En cas que la condició de la sentència if sigui certa, la sentència que hi ha a sota s'executarà una vegada. Per tant, si el pin GPIO 21 baixa o està connectat a terra, reproduirà el fitxer d’àudio assignat a la variable audio1 . Segons el diagrama del circuit, podem veure que el pin 21 GPIO baixa quan premem el primer botó. Per tant, podem reproduir qualsevol fitxer d’àudio prement el botó corresponent.
mentre que 1: s'utilitza com a bucle per sempre, amb aquesta ordre les instruccions dins d'aquest bucle s'executaran contínuament.
Podeu fer canvis al programa python per obtenir la placa de so més satisfactòria amb Raspberry Pi. Fins i tot podeu afegir més botons per fer les coses més interessants i reproduir més fitxers d’àudio.
