V tej seji bomo uporabili Raspberry Pi in funkcije PYGAME za izdelavo zvočne plošče. Preprosto povedano, nekaj gumbov bomo povezali z zatiči Raspberry Pi GPIO in ob pritisku na te gumbe Raspberry Pi predvaja zvočne datoteke, shranjene v pomnilniku. Te zvočne datoteke lahko predvajate eno za drugo ali pa jih lahko predvajate vse skupaj. Z drugimi besedami, hkrati lahko pritisnete enega ali več gumbov, Raspberry Pi bo hkrati predvajal eno ali več zvočnih datotek. Preverite predstavitveni video na koncu tega članka. Oglejte si tudi našo vadnico Raspberry Pi skupaj z nekaj dobrimi IoT projekti.
V Raspberry Pi imamo 26 zatičev GPIO, ki jih lahko programiramo, od katerih se nekateri uporabljajo za izvajanje nekaterih posebnih funkcij, nato pa imamo še 17 GPIO. Vsak GPIO zatič lahko odda ali nariše največ 15 mA. In vsota tokov iz vseh GPIO ne sme presegati 50 mA. Tako lahko iz vsakega od teh GPIO zatičev v povprečju narišemo največ 3 mA. Za omejitev trenutnega pretoka bomo uporabili upore. Več o zatičih GPIO in gumbu za povezovanje z Raspberry Pi lahko preberete tukaj.
Potrebne komponente:
Tu uporabljamo model Raspberry Pi 2 Model B z OS Raspbian Jessie. Vse osnovne zahteve glede strojne in programske opreme so že obravnavane, za začetek si jih lahko ogledate v Uvodu Raspberry Pi in Utripajoči LED Raspberry PI, razen tistega, kar potrebujemo:
- Raspberry Pi s prednameščenim OS
- Napajanje
- Zvočnik
- 1KΩ upor (6 kosov)
- Potisni gumbi (6 kosov)
- 1000uF kondenzator
Delovna razlaga:
Tukaj predvajamo zvok z gumbi z Raspberry Pi. Za predvajanje 6 zvočnih datotek smo uporabili 6 tipk. S pritiskom na te gumbe lahko dodamo več gumbov in zvočnih datotek, da razširimo to ploščo in tako ustvarimo lepši vzorec. Pred nadaljnjim pojasnjevanjem izvedite spodnje korake.
1. Najprej prenesite 6 zvočnih datotek s spodnje povezave ali pa lahko uporabite svoje zvočne datoteke, nato pa morate imena datotek spremeniti v kodo.
Prenesite zvočne datoteke od tukaj
2. Ustvarite novo mapo na zaslonu namizja Raspberry Pi in jo poimenujte kot »PI SOUND BOARD«.
3. Razpakirajte prenesene zvočne datoteke v mapo, ki smo jo v prejšnjem koraku ustvarili na DESKTOP.
4. Odprite okno terminala v Raspberry Pi in vnesite spodnji ukaz:
sudo amixer cset numid = 3 1
Ta ukaz PI sporoča, naj zagotovi avdio izhod prek 3,5-milimetrskega avdio vtiča na vozilu.
Če želite avdio izhod iz vrat HDMI, lahko uporabite spodnji ukaz:
$ sudo amixer cset numid = 3 2
5. Zvočnike priključite na 3,5-milimetrski izhodni avdio priključek na plošči Raspberry Pi.
6. Ustvarite datoteko PYTHON (pripona *.py) in jo shranite v isto mapo. V tej vadnici si oglejte ustvarjanje in zagon programa Python v programu Raspberry Pi.
7. Mešalnik Pygame bo privzeto nameščen v OS. Če program po izvedbi ne prikliče PYMIXER, posodobite OS Raspberry Pi tako, da v okno terminala vnesete spodnji ukaz. Prepričajte se, da je Pi povezan z internetom.
posodobitev sudo apt-get
Počakajte nekaj minut, da se OS posodobi.
Zdaj povežite vsako komponento po spodnjem vezju, kopirajte program PYHTON v datoteko PYHTON, ustvarjeno na namizju, in na koncu pritisnite gumb za predvajanje zvočnih datotek s pomočjo gumbov. Program Python je podan na koncu z predstavitvenim videom.
Shema vezja:
Pojasnilo programiranja:
Tu smo ustvarili program Python za predvajanje zvočnih datotek glede na pritisk gumba. Tu moramo razumeti nekaj ukazov, ki smo jih uporabili v programu.
uvozi RPi.GPIO kot IO
Datoteko GPIO bomo uvozili iz knjižnice, zgornji ukaz nam omogoča programiranje GPIO nožic PI. Prav tako preimenujemo »GPIO« v »IO«, zato bomo v programu, kadar se želimo sklicevati na zatiče GPIO, uporabili besedo »IO«.
IO.setwarnings (False)
Včasih, ko zatiči GPIO, ki jih skušamo uporabiti, morda opravljajo nekatere druge funkcije. Nato boste prejeli opozorila vsakič, ko zaženete program. Ta ukaz naroči Raspberry Pi, naj prezre opozorila in nadaljuje s programom.
IO.setmode (IO.BCM)
Tu se bomo sklicevali na vhodno / izhodne zatiče PI po imenu funkcije. Torej programiramo GPIO s številkami pinov BCM, kar nam omogoča klicanje PIN-ov z njihovimi GPIO pin št. Kot lahko v programu pokličemo PIN39 kot GPIO19.
uvoz pygame.mixer
Za predvajanje zvočnih datotek pokličemo mešalnik pygame.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Zahtevamo zvočno datoteko 'buzzer.wav', shranjeno v namizni mapi. Če želite predvajati katero koli drugo datoteko, samo spremenite ime zvočne datoteke v zgornji funkciji. Datoteke v namizni mapi lahko poimenujete.
channel1 = pygame.mixer.Channel (1)
Tu nastavljamo kanal za vsak gumb, tako da lahko predvajamo vse zvočne datoteke hkrati.
if (IO.input (21) == 0): channel1.play (audio1)
V primeru, da je pogoj v trditvi if resničen, se izjava pod njim izvede enkrat. Torej, če gre GPIO pin 21 nizko ali ozemljen, bo predvajal zvočno datoteko, dodeljeno spremenljivki audio1 . Glede na shemo vezja lahko vidimo, da se GPIO pin 21 spusti, ko pritisnemo prvi gumb. Tako lahko s pritiskom na ustrezen gumb predvajamo katero koli zvočno datoteko.
medtem ko se 1: uporablja kot zanka za vedno, se s tem ukazom stavki znotraj te zanke izvajajo neprekinjeno.
Program Python lahko spremenite, da boste z Raspberry Pi naredili najbolj zadovoljivo zvočno ploščo. Dodate lahko celo več gumbov, da stvari postanejo bolj zanimive in predvajate več zvočnih datotek.