U ovoj ćemo sesiji koristiti Raspberry Pi i PYGAME funkcije za izradu zvučne ploče. Jednostavno rečeno, spojit ćemo nekoliko gumba na igle Raspberry Pi GPIO, a kada se pritisnu ove tipke, Raspberry Pi reproducira audio datoteke pohranjene u svojoj memoriji. Te se audio datoteke mogu reproducirati jedna po jedna ili se mogu svi zajedno. Drugim riječima, možete istovremeno pritisnuti jednu ili više tipki, Raspberry Pi će istovremeno reproducirati jednu ili više audio datoteka. Pogledajte demo video na kraju ovog članka. Također pogledajte našu seriju lekcija za Raspberry Pi zajedno s nekim dobrim IoT projektima.
Imamo 26 GPIO pinova u Raspberry Pi koji se mogu programirati, od kojih se neki koriste za obavljanje nekih posebnih funkcija, a zatim nam ostaje 17 GPIO. Svaki GPIO pin može isporučiti ili izvući najviše 15mA. A zbroj struja iz svih GPIO ne može premašiti 50mA. Tako iz svakog od ovih GPIO pinova možemo u prosjeku izvući najviše 3 mA. Otporima ćemo ograničiti strujanje. Ovdje saznajte više o GPIO pinovima i gumbu za povezivanje s Raspberry Pi.
Potrebne komponente:
Ovdje koristimo Raspberry Pi 2 Model B s Raspbian Jessie OS. Svi osnovni hardverski i softverski zahtjevi su prethodno raspravljeni, možete ih potražiti u Uvodu Raspberry Pi i Trepćući LED Raspberry PI za početak, osim onoga što nam treba:
- Raspberry Pi s unaprijed instaliranim OS-om
- Napajanje
- Zvučnik
- Otpor 1KΩ (6 komada)
- Tipke (6 komada)
- Kondenzator od 1000uF
Radno objašnjenje:
Ovdje reproduciramo zvuk pomoću gumba s Raspberry Pi. Koristili smo 6 tipki za reprodukciju 6 audio datoteka. Pritiskom na ove gumbe možemo dodati više gumba i audio datoteka kako bismo proširili ovu ploču kako bismo stvorili ljepši uzorak. Prije daljnjeg objašnjavanja, poduzmite korake u nastavku.
1. Prije svega preuzmite 6 zvučnih datoteka s donje veze ili možete koristiti svoje audio datoteke, ali tada morate promijeniti nazive datoteka u kodu.
Audio datoteke preuzmite odavde
2. Stvorite novu mapu na zaslonu radne površine Raspberry Pi i nazovite je kao „PI SOUND BOARD“.
3. Otpakirajte preuzete audio datoteke u mapu koju smo stvorili na DESKTOP-u u prethodnom koraku.
4. Otvorite prozor terminala u Raspberry Pi i unesite naredbu ispod:
sudo amixer cset numid = 3 1
Ova naredba govori PI-u da osigura audio izlaz putem 3,5 mm audio priključka na ploči.
Ako želite audio izlaz s HDMI priključka, možete koristiti naredbu ispod:
$ sudo amixer cset numid = 3 2
5. Spojite zvučnike na 3,5 mm izlaznu audio utičnicu na ploči Raspberry Pi.
6. Stvorite datoteku PYTHON (ekstenzija *.py) i spremite je u istu mapu. Pogledajte ovaj vodič za stvaranje i pokretanje programa Python u Raspberry Pi.
7. Pygame mikser bit će instaliran prema zadanim postavkama u OS. Ako se program nakon izvršenja ne prizove PYMIXER, ažurirajte OS Raspberry Pi unošenjem naredbe ispod u prozor terminala. Provjerite je li Pi povezan s internetom.
sudo apt-get ažuriranje
Pričekajte nekoliko minuta da se OS ažurira.
Sada spojite svaku komponentu prema dolje navedenom dijagramu sklopa, kopirajte program PYHTON u datoteku PYHTON stvorenu na radnoj površini i na kraju pritisnite gumb za reprodukciju audio datoteka putem gumba. Python program dat je na kraju s Demo videom.
Kružni dijagram:

Objašnjenje programiranja:
Ovdje smo stvorili Python program za reprodukciju audio datoteka prema pritisku gumba. Ovdje moramo razumjeti nekoliko naredbi, koje smo koristili u programu.
uvezi RPi.GPIO kao IO
Uvest ćemo GPIO datoteku iz knjižnice, gornja naredba omogućuje nam programiranje GPIO pinova PI. Također smo preimenovali "GPIO" u "IO", pa ćemo u programu kad god se želimo pozvati na GPIO pinove upotrijebiti riječ "IO".
IO.setwarnings (False)
Ponekad, kada GPIO pinovi koje pokušavamo koristiti možda rade neke druge funkcije. Tada ćete primati upozorenja kad god izvršavate program. Ova naredba govori Raspberry Pi-u da zanemari upozorenja i nastavi s programom.
IO.setmode (IO.BCM)
Ovdje ćemo uputiti ulazno / izlazne pinove PI prema njihovom imenu funkcije. Dakle, programiramo GPIO pomoću BCM pin brojeva, što nam omogućuje pozivanje PIN-ova s njihovim GPIO pin brojem. Kao da u programu možemo nazvati PIN39 kao GPIO19.
import pygame.mixer
Pozivamo pygame mikser za reprodukciju audio datoteka.
audio1 = pygame.mixer.Sound ("zujalica.wav")
Pozivamo na audio datoteku 'buzzer.wav' koja je pohranjena u mapi radne površine. Ako želite reproducirati bilo koju drugu datoteku, samo promijenite naziv zvučne datoteke u funkciji datoj gore. Možete imenovati sve datoteke koje se nalaze u mapi radne površine.
channel1 = pygame.mixer.Channel (1)
Ovdje postavljamo kanal za svaki gumb kako bismo mogli istovremeno reproducirati sve audio datoteke.
if (IO.input (21) == 0): channel1.play (audio1)
U slučaju da je uvjet u izjavi if istinit, izjava ispod nje izvršit će se jednom. Dakle, ako GPIO pin 21 padne ili je uzemljen, tada će reproducirati audio datoteku dodijeljenu varijabli audio1 . Prema shemi kruga, možemo vidjeti da GPIO pin 21 pada kad pritisnemo prvi gumb. Tako možemo reproducirati bilo koju audio datoteku pritiskom na odgovarajući gumb.
dok se 1: koristi kao zauvijek petlja, s ovom naredbom će se izrazi unutar ove petlje kontinuirano izvršavati.
Možete napraviti promjene u programu python kako biste napravili najzadovoljniju zvučnu ploču s Raspberry Pi. Možete dodati čak i više gumba kako biste stvari učinili zanimljivijima i reproducirali više audio datoteka.
