Sa sesyon na ito gagamitin namin ang Raspberry Pi at ang mga function ng PYGAME upang makagawa ng isang sound board. Sa simpleng mga termino, ikokonekta namin ang ilang mga pindutan sa mga pin ng Raspberry Pi GPIO at kapag pinindot ang mga pindutan na ito ay nagpapatugtog ang mga audio file na Raspberry Pi na naimbak sa memorya nito. Ang mga audio file na ito ay maaaring i-play nang isa-isa o lahat ay maaaring i-play nang magkasama. Sa madaling salita maaari mong pindutin ang isa o maraming mga pindutan nang sabay, ang Raspberry Pi ay maglalaro ng isa o maraming mga audio file nang naaayon sa parehong oras. Suriin ang Demo Video sa pagtatapos ng artikulong ito. Suriin din ang aming Raspberry Pi Tutorial Series kasama ang ilang magagandang Proyekto ng IoT.
Mayroon kaming 26 GPIO pin sa Raspberry Pi na maaaring mai-program, kung saan ang ilan ay ginagamit upang maisagawa ang ilang mga espesyal na pag-andar at pagkatapos ay mayroon kaming natitirang 17 GPIO. Ang bawat GPIO pin ay maaaring maghatid o gumuhit ng maximum na 15mA. At ang kabuuan ng mga alon mula sa lahat ng GPIO ay hindi maaaring lumagpas sa 50mA. Kaya maaari kaming gumuhit ng maximum na 3mA sa average mula sa bawat isa sa mga GPIO pin na ito. Gagamitin namin ang mga resistors upang limitahan ang kasalukuyang daloy. Dagdagan ang nalalaman tungkol sa GPIO Pins at pindutan ng interfacing sa Raspberry Pi dito.
Kinakailangan ang Mga Bahagi:
Narito ginagamit namin ang Raspberry Pi 2 Model B kasama ang Raspbian Jessie OS. Ang lahat ng pangunahing mga kinakailangan sa Hardware at Software ay dati nang tinalakay, maaari mo itong tingnan sa Panimula ng Raspberry Pi at Raspberry PI LED Blinking para sa pagsisimula, bukod sa kailangan namin:
- Raspberry Pi na may paunang naka-install na OS
- Supply ng kuryente
- Tagapagsalita
- 1KΩ risistor (6 na piraso)
- Mga Push Button (6 na piraso)
- 1000uF capacitor
Paggawa ng Paliwanag:
Narito kami Nagpe - play ng Sound gamit ang mga Buttons na may Raspberry Pi. Gumamit kami ng 6 na pindutan ng push upang i-play ang 6 na audio file. Maaari kaming magdagdag ng higit pang mga pindutan at mga audio file upang mapalawak ang board na ito upang lumikha ng mas magandang pattern sa pamamagitan ng pagpindot sa mga pindutang ito. Bago ipaliwanag ang anumang karagdagang, kumpletuhin ang mga hakbang sa ibaba.
1. Una sa lahat i-download ang 6 Mga file na audio mula sa link na ibinigay sa ibaba o maaari mong gamitin ang iyong mga audio file, ngunit kailangan mong baguhin ang mga pangalan ng file sa Code.
Mag-download ng mga Audio file mula dito
2. Lumikha ng isang bagong folder sa Raspberry Pi desktop screen at pangalanan ito bilang "PI SOUND BOARD".
3. I-zip ang mga na-download na audio file sa folder na nilikha namin sa DESKTOP sa nakaraang hakbang.
4. Buksan ang window ng terminal sa Raspberry Pi at ipasok sa ibaba ang utos:
sudo amixer cset numid = 3 1
Sinasabi ng utos na ito sa PI na magbigay ng audio output sa pamamagitan ng 3.5mm audio jack sa board.
Kung nais mo ang output ng audio mula sa HDMI Port pagkatapos ay maaari mong gamitin sa ibaba ang utos:
$ sudo amixer cset numid = 3 2
5. Ikonekta ang mga speaker sa 3.5mm audio output jack sa Raspberry Pi board.
6. Lumikha ng isang PYTHON file (*.py extension) at i-save ito sa parehong folder. Suriin ang tutorial na ito para sa paglikha at pagpapatakbo ng Python Program sa Raspberry Pi.
7. Ang Pygame mixer ay mai-install bilang default sa OS. Kung ang programa, pagkatapos ng pagpapatupad, ay hindi naalala ang PYMIXER, pagkatapos ay i-update ang OS ng Raspberry Pi sa pamamagitan ng pagpasok sa ibaba ng utos sa window ng terminal. Tiyaking nakakonekta sa Pi ang internet.
sudo apt-get update
Maghintay ng ilang minuto para mag-update ang OS.
Ikonekta ngayon ang bawat bahagi alinsunod sa diagram ng circuit na ibinigay sa ibaba, Kopyahin ang PYHTON na programa sa PYHTON file na nilikha sa desktop at sa wakas ay tumakbo sa play ng mga audio file sa pamamagitan ng mga pindutan. Ang Python Program ay ibinibigay sa dulo kasama ang Demo Video.
Diagram ng Circuit:
Paliwanag sa Programming:
Nilikha namin ang Python Program upang i-play ang Audio Files alinsunod sa pindutan ng pindutan. Dito kailangan nating maunawaan ang ilang mga utos, na ginamit namin sa programa.
i-import ang RPi.GPIO bilang IO
Mag-a-import kami ng GPIO file mula sa silid-aklatan, sa itaas ng utos ay nagbibigay-daan sa amin upang mag-program ng mga GPIO na pin ng PI. Pinapalitan din namin ang pangalan ng "GPIO" sa "IO", kaya sa programa tuwing nais naming mag-refer sa mga GPIO pin gagamitin namin ang salitang 'IO'.
IO.setwarnings (Mali)
Minsan, kapag ang mga pin ng GPIO na sinusubukan naming gamitin ay maaaring gumawa ng ibang mga pag-andar. Pagkatapos ay tatanggap ka ng mga babala sa tuwing nagpapatupad ka ng isang programa. Sinasabi ng utos na ito sa Raspberry Pi na huwag pansinin ang mga babala at magpatuloy sa programa.
IO.setmode (IO.BCM)
Dito kami sasangguni sa i / o mga pin ng PI sa pamamagitan ng kanilang pangalan ng pag-andar. Kaya pinaprograma namin ang mga numero ng GPIO ng mga BCM pin, na nagbibigay-daan sa amin upang tumawag sa mga PIN gamit ang kanilang GPIO pin no. Tulad ng maaari naming tawagan ang PIN39 bilang GPIO19 sa programa.
i-import ang pygame.mixer
Tumatawag kami ng pygame mixer upang i-play ang mga audio file.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Tumatawag kami para sa 'buzzer.wav' audio file na nakaimbak sa desktop folder. Kung nais mong maglaro ng anumang iba pang file, baguhin lamang ang pangalan ng audio file sa pagpapaandar na ibinigay sa itaas. Maaari mong pangalanan ang anumang mga file na naroroon sa folder ng desktop.
channel1 = pygame.mixer.Channel (1)
Narito nagse-set up kami ng isang channel para sa bawat pindutan upang maaari naming sabay-sabay na i-play ang lahat ng mga audio file.
kung (IO.input (21) == 0): channel1.play (audio1)
Kung sakali, ang kundisyon sa kung pahayag ay totoo, ang pahayag sa ibaba nito ay isasagawa nang isang beses. Kaya't kung ang GPIO pin 21 ay bumaba o may grounded, i-play nito ang audio file na nakatalaga sa variable na audio1 . Tulad ng bawat Diagram sa Circuit, maaari nating makita na ang GPIO pin 21 ay bumababa kapag pinindot namin ang unang pindutan. Kaya maaari nating i-play ang anumang audio file sa pamamagitan ng pagpindot sa kaukulang pindutan.
habang ang 1: ay ginamit bilang walang hanggang loop, sa utos na ito ang mga pahayag sa loob ng loop na ito ay patuloy na isasagawa.
Maaari kang gumawa ng mga pagbabago sa programa ng sawa upang gawin ang pinaka-kasiya-siyang Sound Board sa Raspberry Pi. Maaari ka ring magdagdag ng higit pang mga pindutan upang gawing mas kawili-wili ang mga bagay at mag-play ng maraming mga audio file.