Innholdsfortegnelse:
- Trinn 1: Materialer som brukes
- Trinn 2: En grunnleggende oversikt over prosjektet
- Trinn 3: Forbered SD -kortet og koble til SD -kortmodulen
- Trinn 4: Koble til lydutgang og mikrofon
- Trinn 5: Tråd opp knappene
- Trinn 6: Last opp koden
Video: Arduino blir Talking Tom: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Et av mine eldste minner om bruk av en smarttelefon var å spille "Talking Tom" -spillet. Spillet var ganske enkelt. Det er en katt som heter Tom, som kan snakke, liksom. I spillet ville Tom lytte etter input via telefonens mikrofon og deretter gjenta det den hørte. Så uansett hva du sier til Tom, vil det bare gjenta det samme med sin egen skingre stemme.
Selv om det høres enkelt ut, krever hele denne prosedyren mange komplekse trinn som å sampler mikrofonens analoge inngang i digital form, manipulere lyden for å gi Tom sin unike stemme og deretter rekonstruere signalet fra alle de digitale verdiene for å spille det av gjennom høyttaleren. Alle disse komplekse trinnene, men smarttelefonen håndterte det som en sjarm selv 9 til 10 år tilbake!
Det interessante ville være å se om det samme kan gjøres med et billig mikrokontrollerbasert Arduino -kort. Så i denne instruksen vil jeg vise hvordan du kan lage et enkelt Talking Tom -lignende prosjekt fra en Arduino og annen billig elektronikk.
Denne instruksen ble skrevet i samarbeid med Hatchnhack Makerspace i Delhi
MERK: Denne instruksjonsboken er den første versjonen av prosjektet som fullfører "Talking" -funksjonen i Talking Tom hvor arduinoen vil kunne gjenta hva du sier til den. Den stemmeskiftende delen vil bli dekket i den fremtidige versjonen, men på grunn av mindre oppløsning av Arduino i innebygd ADC høres den innspilte lyden allerede litt annerledes ut: P (Dette kan tydelig sees i prosjektvideoen).
Så La oss starte!
Trinn 1: Materialer som brukes
Maskinvare:
- En Arduino UNO
- MAX4466 mikrofonmodul med justerbar forsterkning
- SPI -basert SD -kortlesermodul
- SD kort
- Lydforsterker som PC -høyttaler, PAM8403 forsterkermodul, etc.
- Høyttalere for tilkobling til forsterkeren
- Lydkontakt for kvinner
- 1 x 1k ohm motstand
- 2 x 10k ohm motstand
- 1 x 10uF kondensator
- 2 x trykknapp
- Jumper Wires
Programvare:
- Arduino IDE
- Frimodighet (valgfritt)
- TMRpcm og SD -bibliotek for Arduino
Trinn 2: En grunnleggende oversikt over prosjektet
Prosjektet har hovedsakelig to funksjoner:
- Den kan spille av en tilfeldig valgt lyd fra et sett med forhåndsinstallerte lydfiler på SD-kortet for lydeffekter etc.
- Den kan ta opp lydinngang fra mikrofonen og deretter spille den av så snart opptaket stopper. Dette gjør at arduinoen kan gjenta det den hørte gjennom mikrofonen.
Brukergrensesnittet til prosjektet består hovedsakelig av to trykknapper som hver tilsvarer en av funksjonene ovenfor.
Det viktigste harde arbeidet med å ta opp og spille av lydfilene fra SD -kortet håndteres av TMRpcm -biblioteket
Lydopptaket bruker MAX4466 -mikrofonmodulen, arduinos interne ADC og TMRpcm -biblioteket for å prøve lyden og deretter lagre den midlertidig på SD -kortet som en.wav -fil for avspilling. '.wav' lydfiler bruker PCM (Pulse Code Modulation) for å lagre lyddataene i det digitale formatet slik at de enkelt kan spilles av igjen. Vanligvis er det bedre å bruke en ekstern ADC for lydbaserte prosjekter, da oppløsningen til Arduinos ADC ikke er så høy, men den fungerer for dette prosjektet.
Avspilling av lydfilene (forhåndsinstallert og innspilt) gjøres også ved hjelp av TMRpcm-biblioteket som sender ut lyden som et PWM-signal fra en PWM-aktivert pin på arduinoen. Dette signalet mates deretter inn i et RC -filter for å få et analogt signal som deretter mates inn i en forsterker for å spille lyden gjennom en høyttaler. For denne delen kan du også bruke en ekstern DAC da arduino ikke har en internt. Å bruke en DAC kan være et bedre alternativ, da det ville forbedre lydkvaliteten betydelig.
Kommunikasjonen mellom SD -kortmodulen og arduino skjer via SPI (Serial Peripheral Interface). Koden bruker SD & SPI -biblioteket for enkelt å få tilgang til innholdet på SD -kortet.
Trinn 3: Forbered SD -kortet og koble til SD -kortmodulen
- Først må du formatere som SD -kortet med et FAT16- eller FAT32 -filsystem (Du kan bruke smarttelefonen til å formatere SD -kortet).
- Installer nå noen.wav-lydfiler på SD-kortet. Du kan generere.wav -filer med Audacity (se instruksjonene nedenfor). Husk å navngi filene som audio_1.wav, audio_2.wav, audio_3.wav og så videre.
SD -kortmodulen bruker SPI for å kommunisere dataene med arduinoen. Derfor kobles den bare til de pinnene som har SPI aktivert. Disse forbindelsene er som følger:
- Vcc - 5v
- GND - GND
- MOSI (Master Out Slave In) - pin 11
- MISO (Master In Slave Out) - pinne 12
- CLK (Klokke) - pinne 13
- SS/CS (Slave Select/Chip Select) - pin 10
Genererer en.wav -fil med Audacity -programvare:
- Åpne lydfilen du vil konvertere til.wav i Audacity.
- Klikk på filnavnet og velg deretter 'Split Stereo to Mono'. Dette alternativet deler stereolyd i to monokanaler. Du kan nå lukke en av kanalen.
- Endre verdien 'Prosjektfrekvens' i bunnen til 16000 Hz. Denne verdien tilsvarer den maksimale samplingsfrekvensen for arduinos interne ADC.
- Nå kom jeg til File-> Export/Export as WAV.
- Velg riktig sted og navn på filen. Velg 'Usignert 8-biters PCM' fra kodingsmenyen, ettersom vi bruker PCM-formatet til å lagre lyden i digitalt format.
Trinn 4: Koble til lydutgang og mikrofon
Koble til mikrofonen:
- Vcc - 3.3v
- GND - GND
- UT - A0 -pinne
MERK:
- Prøv å koble mikrofonen direkte til arduinoen i stedet for å bruke et brødbrett, da det kan forårsake unødvendig støy i inngangssignalet.
- Sørg for å lodde toppene på mikrofonmodulen rent ettersom dårlige loddeskjøter også gir støy.
- Denne mikrofonmodulen har justerbar forsterkning som kan kontrolleres ved hjelp av en gryte på baksiden av brettet. Jeg vil foreslå at du holder gevinsten noe lav, da det ikke vil forsterke støyen veldig mye mens du kan snakke og holde den nær munnen din, noe som resulterer i en renere utgang.
Koble til lydutgangen:
- Plasser 10 uF kondensatoren og 1 k ohm motstanden i serie på brødbrettet med kondensatorens positive koblet til motstanden. Disse danner sammen et RC -filter som konverterer PWM -utgangen til et analogt signal som kan mates til forsterkeren.
- Koble pinnen 9 på Arduino til den andre enden av motstanden.
- Den negative terminalen på kondensatoren blir koblet til venstre og høyre kanal på den kvinnelige lydkontakten.
- GND for lydkontakten blir koblet til GND.
- Lydkontakten er koblet til forsterkeren med en AUX -kabel. I mitt tilfelle brukte jeg PC -ens høyttalersystem.
MERK:
Å bruke PWM som lydutgang er kanskje ikke det beste alternativet, da en ekstern DAC ville gi mye bedre oppløsning og kvalitet. I tillegg kan kondensatoren og motstanden i RC -filteret forårsake uønsket støy. Men resultatet var fortsatt ganske anstendig for dette prosjektet
Trinn 5: Tråd opp knappene
Prosjektet bruker til å trykke på knapper som brukergrensesnitt. Begge utfører forskjellige funksjoner og brukes annerledes, men har samme ledninger. Forbindelsen deres er som følger:
- Plasser knappene på brødbrettet.
- Fest den ene kontakten på en av knappene til pinne 2 på arduinoen med en 10k ohm nedtrekksmotstand. Den andre terminalen på knappen blir koblet til 5v. Så når du trykker på knappen, blir pinne 2 HØY, og vi kan oppdage det i koden.
- Den andre knappen blir koblet det samme med arduinos pin 3 i stedet for 2.
Knappen som er koblet til pin 2 spiller en tilfeldig lydfil fra settet med forhåndsinstallerte lydfiler på SD-kortet når den trykkes en gang.
Knappen som er koblet til pin 3 er for opptak. Du må trykke og holde inne denne knappen for innspillingen. Arduino starter opptaket så snart denne knappen trykkes og stopper opptaket når denne knappen slippes. Etter at opptaket er stoppet, spiller det umiddelbart opp igjen.
Trinn 6: Last opp koden
Før du laster opp koden, må du kontrollere at du har installert alle nødvendige biblioteker som TMRpcm, SD etc.
Du kan også åpne Serial Monitor etter at du har lastet opp koden for å få en tilbakemelding på hva arduinoen gjør.
For øyeblikket manipulerer ikke koden den innspilte lyden for å få den til å høres annerledes ut, men jeg planlegger å inkludere denne funksjonen i den neste versjonen der du kanskje kan angi utgangsfrekvensen til lydsignalet ved hjelp av potten og få forskjellige typer lyder.
Og du er ferdig !!
Anbefalt:
Ruter blir videoopptaker for IP -kameraer: 3 trinn
Router blir videoopptaker for IP-kameraer: Noen rutere har kraftig CPU og USB-port på et kort og kan brukes som en videoopptaker i tillegg til rutefunksjoner, for å samle og distribuere video og lyd fra IP-kameraer som bare streamer H264/265 RTSP (som de fleste moderne billige hi
Slik loddes blinkende lysdioder på en tom PCB: 5 trinn
Slik loddes blinkende lysdioder på et tomt kretskort: Et kretskort er et akronym for " Printed Circuit Board ". På en PCB vil du En PCB har hull der du kan glide i komponenten og på baksiden kan du lodde bena på komponentene for å holde dem på plass. Lodding er også en
TV -fjernkontrollen blir en RF -fjernkontroll -- NRF24L01+ Opplæring: 5 trinn (med bilder)
TV -fjernkontrollen blir en RF -fjernkontroll || NRF24L01+ Opplæring: I dette prosjektet vil jeg vise deg hvordan jeg brukte den populære nRF24L01+ RF IC til å justere lysstyrken til en LED -stripe trådløst gjennom tre ubrukelige knapper på en TV -fjernkontroll. La oss komme i gang
Hydroelektrisk generator er tom for søppel?!?!: 11 trinn
Hydroelektrisk generator Ut av søppel?!?!: Sluttproduktet skal se omtrent slik ut, der metallpinnene ville gå i bakken ved elven, ville eggstrukturen fungere som vifte, bli presset av vannet og forårsake hagen stang for å snu, få girene til å snu. Utvekslingsforholdet m
Søppel blir aldri kastet: 5 trinn
Søppel blir aldri kastet .: Teamet vårt startet et prosjekt som heter " Søppel blir aldri kastet. &Quot; med søppelproblemet til KARTS. De forskjellige årsakene til skolen skaper store mengder søppel og blir fornærmet av hensynsløs dumping. For å løse dette problemet, først