În această sesiune vom folosi Raspberry Pi și funcțiile PYGAME pentru a crea o placă de sunet. În termeni simpli, vom conecta câteva butoane la pinii Raspberry Pi GPIO și atunci când aceste butoane sunt apăsate, Raspberry Pi redă fișierele audio stocate în memoria sa. Aceste fișiere audio pot fi redate unul câte unul sau toate pot fi redate împreună. Cu alte cuvinte, puteți apăsa unul sau mai multe butoane în același timp, Raspberry Pi va reda unul sau mai multe fișiere audio în consecință în același timp. Verificați videoclipul demonstrativ de la sfârșitul acestui articol. Verificați, de asemenea, seria noastră de tutoriale Raspberry Pi, împreună cu câteva proiecte IoT bune.
Avem 26 de pini GPIO în Raspberry Pi care pot fi programați, dintre care unii sunt utilizați pentru a îndeplini unele funcții speciale și apoi mai avem 17 GPIO. Fiecare pin GPIO poate livra sau atrage maximum 15mA. Iar suma curenților din toate GPIO nu poate depăși 50mA. Deci, putem extrage maxim 3mA în medie din fiecare dintre acești pini GPIO. Vom folosi rezistențe pentru a limita debitul curent. Aflați mai multe despre pini GPIO și butonul de interfață cu Raspberry Pi aici.
Componente necesare:
Aici folosim Raspberry Pi 2 Model B cu Raspbian Jessie OS. Toate cerințele de bază privind hardware-ul și software-ul sunt discutate anterior, le puteți căuta în Introducere Raspberry Pi și LED-ul Raspberry PI Clipește pentru a începe, în afară de asta avem nevoie:
- Raspberry Pi cu sistem de operare preinstalat
- Alimentare electrică
- Speaker
- Rezistor 1KΩ (6 bucăți)
- Butoane (6 bucăți)
- Condensator 1000uF
Explicație de lucru:
Aici redăm sunetul folosind butoane cu Raspberry Pi. Am folosit 6 butoane pentru a reda 6 fișiere audio. Putem adăuga mai multe butoane și fișiere audio pentru a extinde această placă pentru a crea un model mai frumos apăsând aceste butoane. Înainte de a explica mai departe, parcurgeți pașii de mai jos.
1. În primul rând descărcați cele 6 fișiere audio de pe linkul de mai jos sau puteți utiliza fișierele audio, dar apoi trebuie să schimbați numele fișierelor din Cod.
Descărcați fișiere audio de aici
2. Creați un folder nou pe ecranul desktop Raspberry Pi și denumiți-l ca „PI SOUND BOARD”.
3. Dezarhivați fișierele audio descărcate în folderul pe care l-am creat pe DESKTOP în pasul anterior.
4. Deschideți fereastra terminalului în Raspberry Pi și introduceți comanda de mai jos:
sudo amixer cset numid = 3 1
Această comandă îi spune PI să furnizeze ieșire audio prin mufa audio de 3,5 mm la bord.
Dacă doriți o ieșire audio de la portul HDMI, puteți utiliza comanda de mai jos:
$ sudo amixer cset numid = 3 2
5. Conectați difuzoarele la mufa de ieșire audio de 3,5 mm de pe placa Raspberry Pi.
6. Creați un fișier PYTHON (extensia *.py) și salvați-l în același folder. Verificați acest tutorial pentru crearea și rularea programului Python în Raspberry Pi.
7. Pygame mixer va fi instalat implicit în sistemul de operare. Dacă programul, după executare, nu reamintește PYMIXER, atunci actualizați sistemul de operare al Raspberry Pi introducând comanda de mai jos în fereastra terminalului. Asigurați-vă că Pi este conectat la internet.
sudo apt-get update
Așteptați câteva minute pentru ca sistemul de operare să se actualizeze.
Acum conectați fiecare componentă conform schemei de circuite date mai jos, copiați programul PYHTON în fișierul PYHTON creat pe desktop și, în cele din urmă, apăsați Run pentru a reda fișierele audio prin intermediul butoanelor. Programul Python este oferit la final cu Video Demo.
Diagrama circuitului:
Explicație de programare:
Aici am creat programul Python pentru a reda fișierele audio în funcție de apăsarea butonului. Aici trebuie să înțelegem câteva comenzi, pe care le-am folosit în program.
import RPi.GPIO ca IO
Vom importa fișierul GPIO din bibliotecă, comanda de mai sus ne permite să programăm pinii GPIO ai PI. De asemenea, redenumim „GPIO” în „IO”, așa că în program ori de câte ori dorim să ne referim la pinii GPIO vom folosi cuvântul „IO”.
IO.setwarnings (Fals)
Uneori, când pinii GPIO pe care încercăm să-i folosim ar putea să îndeplinească alte funcții. Apoi, veți primi avertismente ori de câte ori executați un program. Această comandă îi spune lui Raspberry Pi să ignore avertismentele și să continue programul.
IO.setmode (IO.BCM)
Aici vom referi pinii i / o ai PI după numele funcției lor. Așadar, programăm GPIO prin numere de pin BCM, ceea ce ne permite să apelăm PIN-uri cu pinul GPIO nr. De exemplu, putem apela PIN39 ca GPIO19 în program.
import pygame.mixer
Chemăm mixer pygame pentru a reda fișiere audio.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Solicităm fișierul audio „buzzer.wav” stocat în folderul desktop. Dacă doriți să redați orice alt fișier, trebuie doar să schimbați numele fișierului audio în funcția de mai sus. Puteți denumi orice fișiere prezente în folderul desktop.
channel1 = pygame.mixer.Channel (1)
Aici configurăm un canal pentru fiecare buton, astfel încât să putem reda simultan toate fișierele audio.
if (IO.input (21) == 0): channel1.play (audio1)
În cazul în care condiția din instrucțiunea if este adevărată, instrucțiunea de mai jos va fi executată o singură dată. Deci, dacă pinul GPIO 21 este redus sau împământat, atunci va reda fișierul audio atribuit variabilei audio1 . Conform schemei de circuite, putem vedea că pinul GPIO 21 scade când apăsăm primul buton. Deci putem reda orice fișier audio apăsând butonul corespunzător.
în timp ce 1: este folosit ca buclă pentru totdeauna, cu această comandă instrucțiunile din această buclă vor fi executate continuu.
Puteți face modificări la programul python pentru a face cea mai satisfăcătoare placă de sunet cu Raspberry Pi. Puteți chiar să adăugați mai multe butoane pentru a face lucrurile mai interesante și pentru a reda mai multe fișiere audio.