I denne økten skal vi bruke Raspberry Pi og PYGAME-funksjonene til å lage et lydkort. Enkelt sagt skal vi koble noen få knapper til Raspberry Pi GPIO-pinnene, og når disse knappene trykkes, spiller Raspberry Pi lydfiler som er lagret i minnet. Disse lydfilene kan spilles en etter en, eller de kan alle spilles av sammen. Med andre ord kan du trykke på en eller flere knapper samtidig, Raspberry Pi vil spille en eller flere lydfiler tilsvarende samtidig. Sjekk demovideoen på slutten av denne artikkelen. Sjekk også Raspberry Pi Tutorial Series sammen med noen gode IoT-prosjekter.
Vi har 26 GPIO-pinner i Raspberry Pi som kan programmeres, hvorav noen brukes til å utføre noen spesielle funksjoner, og så har vi 17 GPIO igjen. Hver GPIO-stift kan levere eller tegne maksimalt 15mA. Og summen av strømmer fra alle GPIO kan ikke overstige 50 mA. Så vi kan trekke maksimalt 3 mA i gjennomsnitt fra hver av disse GPIO-pinnene. Vi vil bruke motstander for å begrense strømmen. Lær mer om GPIO Pins og grensesnittknapp med Raspberry Pi her.
Nødvendige komponenter:
Her bruker vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grunnleggende maskinvare- og programvarekravene er tidligere diskutert, du kan slå opp i Raspberry Pi Introduction og Raspberry PI LED Blinking for å komme i gang, annet enn det vi trenger:
- Raspberry Pi med forhåndsinstallert OS
- Strømforsyning
- Høyttaler
- 1KΩ motstand (6 deler)
- Trykknapper (6 stk)
- 1000uF kondensator
Arbeidsforklaring:
Her spiller vi lyd ved hjelp av knapper med Raspberry Pi. Vi har brukt 6 trykknapper for å spille av 6 lydfiler. Vi kan legge til flere knapper og lydfiler for å utvide dette kortet for å skape et vakrere mønster ved å trykke på disse knappene. Fullfør trinnene nedenfor før du forklarer noe videre.
1. Først og fremst last ned de 6 lydfilene fra lenken nedenfor, eller du kan bruke lydfilene dine, men så må du endre filnavnene i Code.
Last ned lydfiler herfra
2. Opprett en ny mappe på Raspberry Pi skrivebordsskjerm og gi den navnet “PI SOUND BOARD”.
3. Pakk ut de nedlastede lydfilene i mappen som vi har opprettet på DESKTOP i forrige trinn.
4. Åpne terminalvinduet i Raspberry Pi og skriv under kommandoen:
sudo amixer cset numid = 3 1
Denne kommandoen ber PI om å gi lydutgang gjennom 3,5 mm lydkontakt om bord.
Hvis du vil ha lydutgang fra HDMI-port, kan du bruke kommandoen nedenfor:
$ sudo amixer cset numid = 3 2
5. Koble høyttalere til 3,5 mm lydutgang på Raspberry Pi-kortet.
6. Opprett en PYTHON-fil (*.py-utvidelse) og lagre den i samme mappe. Sjekk denne opplæringen for å lage og kjøre Python-programmet i Raspberry Pi.
7. Pygame-mikser blir installert som standard i operativsystemet. Hvis programmet etter kjøring ikke husker PYMIXER, oppdaterer du operativsystemet til Raspberry Pi ved å angi kommandoen nedenfor i terminalvinduet. Forsikre deg om at Pi er koblet til internett.
sudo apt-get oppdatering
Vent noen minutter til operativsystemet oppdateres.
Koble nå hver komponent i henhold til kretsskjemaet nedenfor, Kopier PYHTON-programmet til PYHTON-filen som er opprettet på skrivebordet, og trykk til slutt på run for å spille av lydfilene gjennom knappene. Python-programmet blir gitt til slutt med Demo Video.
Kretsdiagram:
Programmeringsforklaring:
Her har vi laget Python Program for å spille av lydfiler i henhold til knappetrykk. Her trenger vi å forstå få kommandoer, som vi har brukt i programmet.
importer RPi.GPIO som IO
Vi skal importere GPIO-filer fra biblioteket, over kommandoen lar oss programmere GPIO-pinner på PI. Vi omdøper også "GPIO" til "IO", så når vi vil referere til GPIO-pinner i programmet, bruker vi ordet "IO".
IO.setwarnings (False)
Noen ganger, når GPIO-pinnene vi prøver å bruke, kan gjøre noen andre funksjoner. Deretter vil du motta advarsler når du utfører et program. Denne kommandoen ber Raspberry Pi om å ignorere advarslene og fortsette med programmet.
IO.setmode (IO.BCM)
Her skal vi referere i / o-pinner av PI med deres funksjonsnavn. Så vi programmerer GPIO med BCM-pin-nummer, som gjør det mulig for oss å ringe PIN-koder med deres GPIO-pin-nr. Som om vi kan kalle PIN39 som GPIO19 i programmet.
importer pygame.mixer
Vi ringer pygame-mikser for å spille av lydfilene.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Vi etterlyser 'buzzer.wav' lydfil lagret i skrivebordsmappen. Hvis du vil spille av en annen fil, er det bare å endre lydfilnavnet i funksjonen gitt ovenfor. Du kan navngi alle filer som er tilstede i skrivebordsmappen.
channel1 = pygame.mixer.Channel (1)
Her setter vi opp en kanal for hver knapp, slik at vi kan spille av alle lydfiler samtidig.
hvis (IO.inngang (21) == 0): kanal1.spill (lyd1)
I tilfelle tilstanden i hvis utsagnet er sant, vil utsagnet under det utføres en gang. Så hvis GPIO-pinnen 21 blir lav eller jordet, vil den spille av lydfilen som er tilordnet audio1- variabelen . I henhold til kretsdiagrammet kan vi se at GPIO-pinne 21 går lavt når vi trykker på den første knappen. Så vi kan spille hvilken som helst lydfil ved å trykke på den tilsvarende knappen.
mens 1: brukes som evig sløyfe, med denne kommandoen vil setningene i denne sløyfen utføres kontinuerlig.
Du kan gjøre endringer i pythonprogrammet for å gjøre det mest tilfredsstillende lydkortet med Raspberry Pi. Du kan til og med legge til flere knapper for å gjøre ting mer interessante og spille av flere lydfiler.