I den här sessionen ska vi använda Raspberry Pi och PYGAME-funktionerna för att skapa ett ljudkort. Enkelt uttryckt kommer vi att ansluta några knappar till Raspberry Pi GPIO-stiften och när dessa knappar trycks ned spelar Raspberry Pi ljudfiler som är lagrade i dess minne. Dessa ljudfiler kan spelas en efter en eller så kan de alla spelas tillsammans. Med andra ord kan du trycka på en eller flera knappar samtidigt, Raspberry Pi kommer att spela en eller flera ljudfiler i enlighet därmed samtidigt. Kontrollera demonstrationsvideon i slutet av den här artikeln. Kolla också vår Raspberry Pi-handledningsserie tillsammans med några bra IoT-projekt.
Vi har 26 GPIO-stift i Raspberry Pi som kan programmeras, varav några används för att utföra några specialfunktioner och sedan har vi 17 GPIO kvar. Varje GPIO-stift kan leverera eller rita högst 15 mA. Och summan av strömmar från alla GPIO kan inte överstiga 50 mA. Så vi kan dra högst 3 mA i genomsnitt från var och en av dessa GPIO-stift. Vi kommer att använda motstånd för att begränsa strömflödet. Läs mer om GPIO Pins och gränssnittsknappen med Raspberry Pi här.
Komponenter som krävs:
Här använder vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alla grundläggande hårdvaru- och mjukvarukrav har tidigare diskuterats, du kan slå upp det i Raspberry Pi Introduction och Raspberry PI LED Blinking för att komma igång, annat än vad vi behöver:
- Raspberry Pi med förinstallerat operativsystem
- Strömförsörjning
- Högtalare
- 1KΩ motstånd (6 delar)
- Tryckknappar (6 delar)
- 1000uF kondensator
Arbetsförklaring:
Här spelar vi ljud med knappar med Raspberry Pi. Vi har använt 6 tryckknappar för att spela upp 6 ljudfiler. Vi kan lägga till fler knappar och ljudfiler för att utöka detta kort för att skapa vackrare mönster genom att trycka på dessa knappar. Innan du förklarar ytterligare, slutför stegen nedan.
1. Först och främst ladda ner de 6 ljudfilerna från länken nedan eller så kan du använda dina ljudfiler, men sedan måste du ändra filnamnen i kod.
Ladda ner ljudfiler härifrån
2. Skapa en ny mapp på skrivbordsskärmen på Raspberry Pi och namnge den som “PI SOUND BOARD”.
3. Packa upp de nedladdade ljudfilerna i mappen som vi skapade på DESKTOP i föregående steg.
4. Öppna terminalfönstret i Raspberry Pi och ange kommandot nedan:
sudo amixer cset numid = 3 1
Detta kommando berättar för PI att tillhandahålla ljudutgång via 3,5 mm ljuduttag ombord.
Om du vill ha ljud från HDMI-porten kan du använda kommandot nedan:
$ sudo amixer cset numid = 3 2
5. Anslut högtalarna till 3,5 mm ljuduttaget på Raspberry Pi-kortet.
6. Skapa en PYTHON-fil (*.py-förlängning) och spara den i samma mapp. Kontrollera den här guiden för att skapa och köra Python-programmet i Raspberry Pi.
7. Pygame-mixer installeras som standard i operativsystemet. Om programmet, efter körning, inte kommer ihåg PYMIXER, uppdaterar du operativsystemet för Raspberry Pi genom att ange kommandot nedan i terminalfönstret. Se till att Pi är ansluten till internet.
sudo apt-get uppdatering
Vänta några minuter tills operativsystemet uppdateras.
Anslut nu varje komponent enligt kretsschemat nedan, Kopiera PYHTON-programmet till PYHTON-filen som skapats på skrivbordet och slutligen tryck på run för att spela upp ljudfilerna genom knapparna. Python-programmet ges i slutet med demo- videon.
Kretsschema:
Programmeringsförklaring:
Här har vi skapat Python-programmet för att spela ljudfilerna enligt knapptryckning. Här behöver vi förstå några kommandon, som vi har använt i programmet.
importera RPi.GPIO som IO
Vi ska importera GPIO-filer från biblioteket, ovanför kommandot kan vi programmera GPIO-stift av PI. Vi döper också om "GPIO" till "IO", så i programmet när vi vill hänvisa till GPIO-stift kommer vi att använda ordet "IO".
IO.setwarnings (False)
Ibland, när GPIO-stiften som vi försöker använda kan göra några andra funktioner. Då får du varningar när du kör ett program. Detta kommando säger till Raspberry Pi att ignorera varningarna och fortsätta med programmet.
IO.setmode (IO.BCM)
Här ska vi hänvisa i / o-stift av PI med deras funktionsnamn. Så vi programmerar GPIO med BCM-pin-nummer, vilket gör att vi kan ringa PIN-koder med deras GPIO-pin-nr. Som om vi kan ringa PIN39 som GPIO19 i programmet.
importera pygame.mixer
Vi ringer pygame mixer för att spela upp ljudfilerna.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Vi efterlyser "buzzer.wav" ljudfil som lagras i skrivbordsmappen. Om du vill spela någon annan fil, ändra bara ljudfilsnamnet i funktionen ovan. Du kan namnge alla filer som finns i skrivbordsmappen.
channel1 = pygame.mixer.Channel (1)
Här ställer vi in en kanal för varje knapp så att vi kan spela upp alla ljudfiler samtidigt.
if (IO.input (21) == 0): channel1.play (audio1)
Om villkoret i om uttalandet är sant kommer uttalandet nedan att köras en gång. Så om GPIO-stiftet 21 blir lågt eller jordat, kommer det att spela upp den ljudfil som tilldelats audio1- variabeln . Enligt kretsschemat kan vi se att GPIO-stift 21 blir lågt när vi trycker på den första knappen. Så vi kan spela vilken ljudfil som helst genom att trycka på motsvarande knapp.
medan 1: används som alltid loop, med detta kommando kommer uttalandena inuti denna loop att köras kontinuerligt.
Du kan göra ändringar i pythonprogrammet för att göra det mest tillfredsställande Sound Board med Raspberry Pi. Du kan till och med lägga till fler knappar för att göra saker mer intressanta och spela upp fler ljudfiler.