В тази сесия ще използваме Raspberry Pi и функциите PYGAME, за да направим звукова платка. С прости думи, ще свържем няколко бутона към пиновете на Raspberry Pi GPIO и когато тези бутони бъдат натиснати, Raspberry Pi възпроизвежда аудио файлове, съхранени в паметта му. Тези аудио файлове могат да се възпроизвеждат един по един или всички да се възпроизвеждат заедно. С други думи, можете да натиснете един или няколко бутона едновременно, Raspberry Pi ще възпроизведе съответно един или няколко аудио файла едновременно. Проверете демонстрационния видеоклип в края на тази статия. Също така проверете нашата серия уроци за Raspberry Pi заедно с някои добри IoT проекти.
Имаме 26 GPIO пина в Raspberry Pi, които могат да бъдат програмирани, от които някои се използват за изпълнение на някои специални функции и след това остават 17 GPIO. Всеки GPIO щифт може да достави или изтегли максимум 15 mA. И сумата на токовете от всички GPIO не може да надвишава 50mA. Така че можем да изтеглим максимум 3 mA средно от всеки от тези GPIO щифтове. Ще използваме резистори, за да ограничим текущия поток. Научете повече за GPIO щифтовете и бутона за свързване с Raspberry Pi тук.
Необходими компоненти:
Тук използваме Raspberry Pi 2 Model B с OS Raspbian Jessie. Всички основни хардуерни и софтуерни изисквания са обсъдени по-рано, можете да ги потърсите във въведението на Raspberry Pi и мигащият индикатор Raspberry PI за начало, освен това, от което се нуждаем:
- Raspberry Pi с предварително инсталирана ОС
- Захранване
- Високоговорител
- 1KΩ резистор (6 броя)
- Бутони (6 броя)
- Кондензатор 1000uF
Работно обяснение:
Тук възпроизвеждаме звук с помощта на бутони с Raspberry Pi. Използвали сме 6 бутона за възпроизвеждане на 6 аудио файла. Можем да добавим още бутони и аудио файлове, за да разширим тази дъска, за да създадем по-красив модел, като натиснем тези бутони. Преди да обясните допълнително, изпълнете стъпките по-долу.
1. Първо изтеглете 6-те аудио файла от връзката, дадена по-долу, или можете да използвате вашите аудио файлове, но след това трябва да промените имената на файловете в Code.
Изтеглете аудио файлове от тук
2. Създайте нова папка на екрана на работния плот на Raspberry Pi и я наречете „PI SOUND BOARD“.
3. Разархивирайте изтеглените аудио файлове в папката, която сме създали на DESKTOP в предишната стъпка.
4. Отворете прозореца на терминала в Raspberry Pi и въведете командата по-долу:
sudo amixer cset numid = 3 1
Тази команда казва на PI да осигури аудио изход през 3,5 мм аудио жак на борда.
Ако искате аудио изход от HDMI порт, можете да използвате командата по-долу:
$ sudo amixer cset numid = 3 2
5. Свържете високоговорителите към 3,5 мм аудио изходния жак на платката Raspberry Pi.
6. Създайте файл PYTHON (разширение *.py) и го запазете в същата папка. Проверете този урок за създаване и стартиране на програмата Python в Raspberry Pi.
7. Pygame mixer ще бъде инсталиран по подразбиране в операционната система. Ако програмата след изпълнението не извика PYMIXER, актуализирайте операционната система на Raspberry Pi, като въведете командата отдолу в прозореца на терминала. Уверете се, че Pi е свързан с интернет.
sudo apt-get update
Изчакайте няколко минути, за да се актуализира операционната система.
Сега свържете всеки компонент според схемата, дадена по-долу, копирайте програмата PYHTON във файла PYHTON, създаден на работния плот и накрая натиснете Run, за да възпроизведете аудио файловете чрез бутоните. Програмата Python е дадена в края с демонстрационното видео.
Електрическа схема:
Обяснение на програмирането:
Тук създадохме Python програма за възпроизвеждане на аудио файлове според натискането на бутона. Тук трябва да разберем няколко команди, които сме използвали в програмата.
импортирайте RPi.GPIO като IO
Ще импортираме GPIO файл от библиотеката, горната команда ни позволява да програмираме GPIO пинове на PI. Преименуваме също „GPIO“ на „IO“, така че в програмата, когато искаме да се позовем на GPIO щифтове, ще използваме думата „IO“.
IO.setwarnings (False)
Понякога, когато GPIO пиновете, които се опитваме да използваме, може да изпълняват някои други функции. След това ще получавате предупреждения, когато изпълнявате програма. Тази команда казва на Raspberry Pi да игнорира предупрежденията и да продължи с програмата.
IO.setmode (IO.BCM)
Тук ще се позоваваме на I / O щифтове на PI по името на тяхната функция. Така че ние програмираме GPIO чрез BCM пин номера, което ни позволява да извикваме ПИН кодове с техния GPIO пин номер. Както можем да наречем PIN39 като GPIO19 в програмата.
импортиране на pygame.mixer
Обаждаме се на pygame mixer, за да възпроизвеждаме аудио файлове.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Призоваваме за аудио файл „buzzer.wav“, съхранен в папката на работния плот. Ако искате да възпроизведете друг файл, просто променете името на аудио файла във функцията, дадена по-горе. Можете да назовавате всички файлове, намиращи се в папката на работния плот.
channel1 = pygame.mixer.Channel (1)
Тук настройваме канал за всеки бутон, за да можем да възпроизвеждаме всички аудио файлове едновременно.
if (IO.input (21) == 0): channel1.play (audio1)
В случай, че условието в оператора if е вярно, изявлението под него ще бъде изпълнено веднъж. Така че, ако GPIO щифт 21 отива ниско или е заземен, тогава той ще възпроизведе аудио файла, присвоен на променлива audio1 . Според схемата на веригата можем да видим, че GPIO щифт 21 отива ниско, когато натиснем първия бутон. Така че можем да възпроизведем всеки аудио файл, като натиснем съответния бутон.
докато 1: се използва като цикъл завинаги, с тази команда операторите вътре в този цикъл ще се изпълняват непрекъснато.
Можете да направите промени в програмата на python, за да направите най-задоволителното Sound Board с Raspberry Pi. Можете дори да добавите още бутони, за да направите нещата по-интересни и да възпроизведете повече аудио файлове.