Indholdsfortegnelse:
- Trin 1: Brugte materialer
- Trin 2: En grundlæggende oversigt over projektet
- Trin 3: Forbered SD -kortet, og tilslut SD -kortmodulet
- Trin 4: Tilslut lydudgangen og mikrofonen
- Trin 5: Tråd op knapperne
- Trin 6: Upload koden
Video: Arduino bliver Talking Tom: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Et af mine ældste minder om at bruge en smartphone var at spille 'Talking Tom' -spillet. Spillet var ret simpelt. Der er en kat ved navn Tom, som kan tale, sådan noget. I spillet ville Tom lytte efter input via telefonens mikrofon og derefter gentage det, den hørte. Så uanset hvad du siger til Tom, ville det bare gentage det samme med sin egen skingre stemme.
Selvom det lyder enkelt, kræver hele denne procedure mange komplekse trin som at sampler den analoge mikrofonindgang i digital form, manipulere lyden for at give Tom sin unikke stemme og derefter rekonstruere signalet fra alle de digitale værdier for at afspille det gennem højttaleren. Alle disse komplekse trin, men smartphonen håndterede det som en charme selv 9 til 10 år tilbage!
Det interessante ville være at se, om det samme kan gøres med et billigt mikrokontrollerbaseret Arduino -kort. Så i denne instruktive vil jeg vise, hvordan du kan lave et simpelt Talking Tom -lignende projekt fra en Arduino og anden billig elektronik.
Denne instruktive blev skrevet i samarbejde med Hatchnhack Makerspace i Delhi
BEMÆRK: Denne instruerbare er den første version af projektet, der fuldender 'Talking' -funktionen i Talking Tom, hvor arduinoen vil være i stand til at gentage, hvad du siger til den. Den stemmeskiftende del vil blive dækket i den fremtidige version, selvom den optagede lyd allerede på grund af mindre opløsning af Arduinos indbyggede ADC allerede lyder en smule anderledes: P (Dette kan tydeligt ses i projektvideoen).
Så lad os starte!
Trin 1: Brugte materialer
Hardware:
- En Arduino UNO
- MAX4466 mikrofonmodul med justerbar forstærkning
- SPI -baseret SD -kortlæsermodul
- SD kort
- Lydforstærker som pc -højttaler, PAM8403 forstærkermodul osv.
- Højttalere til tilslutning til forstærkeren
- Lydstik til kvinder
- 1 x 1k ohm modstand
- 2 x 10k ohm modstand
- 1 x 10uF kondensator
- 2 x trykknap
- Jumper Wires
Software:
- Arduino IDE
- Frækhed (valgfrit)
- TMRpcm og SD bibliotek til Arduino
Trin 2: En grundlæggende oversigt over projektet
Projektet har hovedsageligt 2 funktioner:
- Det kan afspille en tilfældigt valgt lyd fra et sæt forudinstallerede lydfiler på SD-kortet til lydeffekter osv.
- Det kan optage lydinput fra mikrofonen og derefter afspille det, så snart optagelsen stopper. Dette gør det muligt for arduinoen at gentage, hvad den hørte gennem mikrofonen.
Projektets brugergrænseflade består hovedsageligt af 2 trykknapper, der hver svarer til en af ovenstående funktioner.
Det vigtigste hårde arbejde med at optage og afspille lydfiler fra SD -kortet varetages af TMRpcm -biblioteket
Lydoptagelsen gør brug af MAX4466 mikrofonmodulet, arduinos interne ADC og TMRpcm -biblioteket til at prøve lyden og derefter midlertidigt gemme den på SD -kortet som en.wav -fil til afspilning. '.wav' lydfiler bruger PCM (Pulse Code Modulation) til at gemme lyddataene i det digitale format, så de let kan afspilles igen. Generelt er det bedre at bruge en ekstern ADC til lydbaserede projekter, da opløsningen på Arduinos ADC ikke er så høj, men den fungerer til dette projekt.
Afspilning af lydfilerne (forudinstalleret og optaget) udføres også ved hjælp af TMRpcm-biblioteket, der udsender lyden som et PWM-signal fra en PWM-aktiveret pin på arduinoen. Dette signal føres derefter ind i et RC -filter for at få et analogt signal, som derefter føres ind i en forstærker til afspilning af lyden gennem en højttaler. Til denne del kan du også bruge en ekstern DAC, da arduino ikke har en internt. Brug af en DAC kan være en bedre mulighed, da det ville forbedre lydkvaliteten betydeligt.
Kommunikationen mellem SD -kortmodulet og arduino sker via SPI (Serial Peripheral Interface). Koden gør brug af SD & SPI -biblioteket for let at få adgang til indholdet på SD -kortet.
Trin 3: Forbered SD -kortet, og tilslut SD -kortmodulet
- Først skal du formatere som SD -kort med et FAT16- eller FAT32 -filsystem (Du kan bruge din smartphone til at formatere SD -kortet).
- Installer nu nogle.wav-lydfiler på SD-kortet. Du kan generere.wav -filer med Audacity (se instruktionerne herunder). Husk at navngive filerne som audio_1.wav, audio_2.wav, audio_3.wav og så videre.
SD -kortmodulet bruger SPI til at kommunikere dataene med arduinoen. Derfor tilsluttes det kun de stifter, der har SPI aktiveret. Disse forbindelser er som følger:
- Vcc - 5v
- GND - GND
- MOSI (Master Out Slave In) - pin 11
- MISO (Master In Slave Out) - pin 12
- CLK (ur) - pin 13
- SS/CS (Slave Select/Chip Select) - pin 10
Generering af '.wav' -fil med Audacity Software:
- Åbn den lydfil, du vil konvertere til.wav i Audacity.
- Klik på filnavnet, og vælg derefter 'Split Stereo to Mono'. Denne indstilling opdeler stereolyd i to monokanaler. Du kan nu lukke en af kanalen.
- Skift 'Project Rate' værdi i bunden til 16000 Hz. Denne værdi svarer til den maksimale samplingsfrekvens for arduinos interne ADC.
- Kom nu til File-> Export/Export som WAV.
- Vælg den passende placering og navnet på filen. Vælg 'Usigneret 8-bit PCM' i kodningsmenuen, da vi bruger PCM-formatet til at gemme lyden i digitalt format.
Trin 4: Tilslut lydudgangen og mikrofonen
Tilslutning af mikrofon:
- Vcc - 3,3v
- GND - GND
- OUT - A0 pin
BEMÆRK:
- Prøv at slutte mikrofonen direkte til arduinoen i stedet for at bruge et brødbræt, da det kan forårsage unødvendig støj i indgangssignalet.
- Sørg for at lodde hovederne på mikrofonmodulet rent, da dårlige loddeled også producerer støj.
- Dette mikrofonmodul har justerbar forstærkning, som kan styres ved hjælp af en gryde på bagsiden af brættet. Jeg vil foreslå dig at holde gevinsten noget lav, da det ikke forstærker støjen særlig meget, mens du kan tale og holde den tæt på munden, hvilket resulterer i et renere output.
Tilslutning af lydudgangen:
- Placer 10 uF kondensatoren og 1 k ohm modstanden i serie på brødbrættet med kondensatorens positive forbundet til modstanden. Disse danner tilsammen et RC -filter, der konverterer PWM -udgangen til et analogt signal, der kan føres til forstærkeren.
- Tilslut stiften 9 på Arduino til den anden ende af modstanden.
- Den negative terminal på kondensatoren bliver forbundet til venstre og højre kanal i det kvindelige lydstik.
- GND for lydstikket tilsluttes GND.
- Lydstik er forbundet til forstærkeren med et Aux -kabel. I mit tilfælde brugte jeg min pc's højttalersystem.
BEMÆRK:
Brug af PWM som lydoutput er muligvis ikke den bedste løsning, da en ekstern DAC ville give meget bedre opløsning og kvalitet. Derudover kan kondensatoren og modstanden i RC -filteret forårsage uønsket støj. Men stadig var output temmelig anstændigt for dette projekt
Trin 5: Tråd op knapperne
Projektet bruger til at trykke på knapper som brugergrænseflade. Begge udfører forskellige funktioner og bruges forskelligt, men har de samme ledninger. Deres forbindelse er som følger:
- Placer knapperne på brødbrættet.
- Fastgør den ene terminal på en af knapperne til pin 2 på arduinoen med en 10k ohm pull down -modstand. Den anden terminal på knappen bliver forbundet til 5v. Så når der trykkes på knappen, bliver pin 2 HØJ, og vi kan registrere det i koden.
- Den anden knap bliver forbundet det samme med arduinos pin 3 i stedet for 2.
Knappen, der er forbundet til pin 2, afspiller en tilfældig lydfil fra sættet med forudinstallerede lydfiler på SD-kortet, når der trykkes på den én gang.
Knappen tilsluttet pin 3 er til optagelse. Du skal trykke og holde denne knap nede for optagelsen. Arduinoen begynder at optage, så snart der trykkes på denne knap, og stopper optagelsen, når denne knap slippes. Efter at optagelsen er stoppet, genoptages den optagelse med det samme.
Trin 6: Upload koden
Inden du uploader koden, skal du sørge for at have installeret alle de nødvendige biblioteker som TMRpcm, SD osv.
Du kan også åbne Serial Monitor efter upload af koden for at få en tilbagemelding om, hvad arduinoen laver.
I øjeblikket manipulerer koden ikke den optagede lyd for at få den til at lyde anderledes, men jeg planlægger at inkludere denne funktion i den næste version, hvor du måske kan indstille lydsignalets udgangsfrekvens ved hjælp af pot og få forskellige typer lyde.
Og du er færdig !!
Anbefalede:
Router bliver videooptager til IP -kameraer: 3 trin
Router bliver videooptager til IP-kameraer: Nogle routere har kraftig CPU og USB-port på et kort og kan bruges som en videooptager ud over routingsfunktioner for at indsamle og distribuere video og lyd fra IP-kameraer, der kun streamer H264/265 RTSP (som de fleste moderne billige hi
TV -fjernbetjening Bliver en RF -fjernbetjening -- NRF24L01+ Tutorial: 5 trin (med billeder)
TV -fjernbetjening Bliver en RF -fjernbetjening || NRF24L01+ Tutorial: I dette projekt vil jeg vise dig, hvordan jeg brugte den populære nRF24L01+ RF IC til at justere lysstyrken på en LED -strimmel trådløst gennem tre ubrugelige knapper på en fjernsyns fjernbetjening. Lad os komme igang
Mammoths fødder bliver kolde (sily Solutions): 4 trin
Mammoths fødder bliver kolde (sily Solutions): I dette projekt er mammutens fødder bogstaveligt talt kolde! Jeg tilføjede nogle hvide støvler fra guiden, fordi de sandsynligvis vil holde hans fødder toasty, rene og stilfulde
Sådan bygger du en Farnsworth Fusion Reactor og bliver en del af den nukleare kultur Canon: 10 trin
Hvordan man opbygger en Farnsworth Fusion Reactor og bliver en del af den nukleare kultur Canon: Med håbet om at decentralisere vidensmagthierarkier og styrke individet, vil vi gennemgå de nødvendige trin for at bygge en enhed, der vil ionisere partikler til plasma ved hjælp af elektricitet. Denne enhed vil demonstrere
Sådan hygger du dig med Arduino (og bliver en nørd i processen): 12 trin
Sådan hygger du dig med Arduino (og bliver en nørd i processen): Ønsker du at tjene dit nørdekort - pronto? Lad os komme igang! Denne vejledning starter dig på vejen til den mørke side ved hjælp af open source Arduino udviklings- og prototypeplatform. Det vil introducere dig til mikrokontrollere, komme i gang med