I denne session skal vi bruge Raspberry Pi og PYGAME-funktionerne til at lave et lydkort. Kort sagt vil vi forbinde nogle få knapper til Raspberry Pi GPIO-benene, og når disse knapper trykkes, spiller Raspberry Pi lydfiler, der er gemt i hukommelsen. Disse lydfiler kan afspilles en efter en, eller de kan alle afspilles sammen. Med andre ord kan du trykke på en eller flere knapper på samme tid, Raspberry Pi afspiller en eller flere lydfiler i overensstemmelse hermed på samme tid. Tjek demovideoen i slutningen af denne artikel. Tjek også vores Raspberry Pi Tutorial Series sammen med nogle gode IoT-projekter.
Vi har 26 GPIO-ben i Raspberry Pi, som kan programmeres, hvoraf nogle bruges til at udføre nogle specielle funktioner, og så har vi 17 GPIO tilbage. Hver GPIO-pin kan levere eller tegne maksimalt 15mA. Og summen af strømme fra alle GPIO må ikke overstige 50 mA. Så vi kan maksimalt trække 3 mA i gennemsnit fra hver af disse GPIO-ben. Vi bruger modstande til at begrænse strømmen. Lær mere om GPIO Pins og interface-knap med Raspberry Pi her.
Nødvendige komponenter:
Her bruger vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grundlæggende hardware- og softwarekrav er tidligere diskuteret, du kan slå det op i Raspberry Pi Introduktion og Raspberry PI LED Blinker for at komme i gang, bortset fra at vi har brug for:
- Raspberry Pi med forudinstalleret OS
- Strømforsyning
- Højttaler
- 1KΩ modstand (6 stykker)
- Trykknapper (6 stykker)
- 1000uF kondensator
Arbejdsforklaring:
Her spiller vi lyd ved hjælp af knapper med Raspberry Pi. Vi har brugt 6 trykknapper til at afspille 6 lydfiler. Vi kan tilføje flere knapper og lydfiler for at udvide dette kort til at skabe et smukkere mønster ved at trykke på disse knapper. Gennemfør nedenstående trin, før du forklarer yderligere.
1. Først og fremmest download de 6 lydfiler fra nedenstående link, ellers kan du bruge dine lydfiler, men så skal du ændre filnavne i kode.
Download lydfiler herfra
2. Opret en ny mappe på Raspberry Pi-skrivebordsskærmen, og navngiv den som "PI SOUND BOARD".
3. Pak de downloadede lydfiler ud i den mappe, som vi har oprettet på DESKTOP i forrige trin.
4. Åbn terminalvinduet i Raspberry Pi, og indtast kommandoen nedenfor:
sudo amixer cset numid = 3 1
Denne kommando fortæller PI at levere lydoutput gennem 3,5 mm lydstik om bord.
Hvis du vil have lydoutput fra HDMI-port, kan du bruge kommandoen nedenfor:
$ sudo amixer cset numid = 3 2
5. Tilslut højttalere til 3,5 mm lydudgangsstikket på Raspberry Pi-kortet.
6. Opret en PYTHON-fil (*.py-udvidelse), og gem den i samme mappe. Tjek denne vejledning for at oprette og køre Python-programmet i Raspberry Pi.
7. Pygame-mixer installeres som standard i operativsystemet. Hvis programmet efter udførelse ikke husker PYMIXER, skal du opdatere OS af Raspberry Pi ved at indtaste kommandoen nedenfor i terminalvinduet. Sørg for, at Pi har forbindelse til internettet.
sudo apt-get opdatering
Vent et par minutter på, at operativsystemet opdateres.
Forbind nu hver komponent i henhold til kredsløbsdiagrammet nedenfor, Kopier PYHTON-programmet til PYHTON-filen oprettet på skrivebordet og tryk til sidst på run for at afspille lydfilerne gennem knapperne. Python-programmet gives i slutningen med demo- videoen.
Kredsløbsdiagram:
Programmeringsforklaring:
Her har vi oprettet Python-program til at afspille lydfiler i henhold til tryk på knappen. Her skal vi forstå nogle få kommandoer, som vi har brugt i programmet.
importer RPi.GPIO som IO
Vi skal importere GPIO-filer fra biblioteket, ovenstående kommando giver os mulighed for at programmere GPIO-ben på PI. Vi omdøber også "GPIO" til "IO", så når vi vil henvise til GPIO-ben i programmet, bruger vi ordet 'IO'.
IO.setwarnings (Falsk)
Nogle gange, når GPIO-benene, som vi prøver at bruge, muligvis udfører nogle andre funktioner. Derefter modtager du advarsler, hver gang du udfører et program. Denne kommando fortæller Raspberry Pi at ignorere advarslerne og fortsætte med programmet.
IO.setmode (IO.BCM)
Her skal vi henvise til i / o-ben på PI ved deres funktionsnavn. Så vi programmerer GPIO med BCM-pin-numre, som gør det muligt for os at kalde PIN-koder med deres GPIO-pin-nr. Som vi kan kalde PIN39 som GPIO19 i programmet.
importer pygame.mixer
Vi kalder pygame mixer for at afspille lydfiler.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Vi opfordrer til 'buzzer.wav' lydfil gemt i desktop-mappen. Hvis du vil afspille en anden fil, skal du bare ændre lydfilnavnet i ovenstående funktion. Du kan navngive alle filer, der findes i skrivebordsmappen.
channel1 = pygame.mixer.Channel (1)
Her opretter vi en kanal for hver knap, så vi kan afspille alle lydfiler samtidigt.
hvis (IO.input (21) == 0): kanal1.play (lyd1)
I tilfælde af, at tilstanden i hvis erklæringen er sand, vil udsagnet nedenfor udføres en gang. Så hvis GPIO-pin 21 bliver lav eller jordforbundet, afspiller den den lydfil, der er tildelt audio1- variablen . I henhold til kredsløbsdiagram kan vi se, at GPIO-pin 21 går lavt, når vi trykker på den første knap. Så vi kan afspille enhver lydfil ved at trykke på den tilsvarende knap.
mens 1: bruges som evigt loop, med denne kommando udføres udsagnene inde i denne loop kontinuerligt.
Du kan foretage ændringer i python-programmet for at gøre det mest tilfredsstillende Sound Board med Raspberry Pi. Du kan endda tilføje flere knapper for at gøre tingene mere interessante og afspille flere lydfiler.