Turinys:
- 1 žingsnis: naudojamos medžiagos
- 2 žingsnis: pagrindinė projekto apžvalga
- 3 žingsnis: Paruoškite SD kortelę ir prijunkite SD kortelės modulį
- 4 veiksmas: prijunkite garso išvestį ir mikrofoną
- 5 žingsnis: prijunkite mygtukus
- 6 veiksmas: įkelkite kodą
Video: Arduino tampa kalbančiu Tomu: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Vienas seniausių prisiminimų apie išmaniojo telefono naudojimą buvo žaidimo „Kalbantis Tomas“žaidimas. Žaidimas buvo gana paprastas. Yra katė, vardu Tomas, kuri gali kalbėti. Žaidime Tomas klausėsi bet kokios informacijos per telefono mikrofoną ir tada pakartojo viską, ką išgirdo. Taigi, kad ir ką pasakytų Tomui, jis tą patį pakartotų savo aštriu balsu.
Nors tai skamba paprasta, visa ši procedūra reikalauja daug sudėtingų veiksmų, pavyzdžiui, imti skaitmeninės formos mikrofono analoginę įvestį, manipuliuoti garsu, kad Tomui būtų suteiktas unikalus balsas, o tada atkurti visų tų skaitmeninių verčių signalą, kad jis būtų atkurtas per garsiakalbį. Visi šie sudėtingi veiksmai, tačiau išmanusis telefonas su juo susitvarkė net 9–10 metų atgal!
Įdomu būtų pamatyti, ar tą patį galima padaryti naudojant pigią „Arduino“plokštę, pagrįstą mikrovaldikliu. Taigi, šioje pamokoje aš parodysiu, kaip iš „Arduino“ir kitos nebrangios elektronikos galite sukurti paprastą „Talking Tom“projektą.
Ši instrukcija buvo parašyta bendradarbiaujant su „Hatchnhack Makerspace“Delyje
PASTABA: Ši pamoka yra pirmoji projekto versija, kuri užbaigia „Talking Tom“funkciją „Talking Tom“, kur arduino galės pakartoti viską, ką jam sakote. Balso keitimo dalis bus įtraukta į būsimą versiją, nors dėl mažesnės „Arduino“integruotos ADC skiriamosios gebos įrašytas garsas jau skamba šiek tiek kitaip: P (tai galima aiškiai pastebėti projekto vaizdo įraše).
Taigi pradėkime!
1 žingsnis: naudojamos medžiagos
Techninė įranga:
- Arduino UNO
- MAX4466 mikrofono modulis su reguliuojamu stiprinimu
- SPI pagrįstas SD kortelių skaitytuvo modulis
- SD kortelė
- Garso stiprintuvas, pvz., Kompiuterio garsiakalbis, PAM8403 stiprintuvo modulis ir kt.
- Garsiakalbiai, skirti prijungti prie stiprintuvo
- Moteriškas garso lizdas
- 1 x 1k omo rezistorius
- 2 x 10k omų rezistorius
- 1 x 10uF kondensatorius
- 2 x mygtukas
- Trumpieji laidai
Programinė įranga:
- „Arduino IDE“
- „Audacity“(neprivaloma)
- „Arduino“TMRpcm ir SD biblioteka
2 žingsnis: pagrindinė projekto apžvalga
Projektas daugiausia turi 2 funkcijas:
- Jis gali atkurti atsitiktinai pasirinktą garsą iš iš anksto įdiegtų garso failų rinkinio SD kortelėje garso efektų ir pan.
- Jis gali įrašyti garso įvestį iš mikrofono ir atkurti, kai tik įrašymas nutrūksta. Tai leidžia arduino pakartoti viską, ką girdėjo per mikrofoną.
Projekto vartotojo sąsają daugiausia sudaro 2 mygtukai, kurių kiekvienas atitinka vieną iš aukščiau paminėtų funkcijų.
Pagrindinį sunkų darbą įrašant ir atkuriant garso failus iš SD kortelės atlieka TMRpcm biblioteka
Garso įrašas naudoja garso modulį MAX4466 mikrofono modulį, vidinį „arduino“ADC ir TMRpcm biblioteką, kad būtų galima atrinkti garso įrašą ir laikinai jį išsaugoti SD kortelėje kaip „.wav“failą. „.wav“garso failai naudoja PCM (impulso kodo moduliaciją), kad garso duomenys būtų saugomi skaitmeniniu formatu, kad juos būtų galima lengvai atkurti. Paprastai garso projektams geriau naudoti išorinį ADC, nes „Arduino“ADC skiriamoji geba nėra tokia didelė, tačiau ji tinka šiam projektui.
Garso failų (iš anksto įdiegtų ir įrašytų) leidimas taip pat atliekamas naudojant TMRpcm biblioteką, kuri perduoda garsą kaip PWM signalą iš PWM įjungto arduino kaiščio. Tada šis signalas tiekiamas į RC filtrą, kad būtų gautas analoginis signalas, kuris vėliau tiekiamas į stiprintuvą, kad būtų galima atkurti garsą per garsiakalbį. Šiai daliai taip pat galite naudoti išorinį DAC, nes „arduino“jo viduje neturi. DAC naudojimas gali būti geresnis pasirinkimas, nes tai žymiai pagerintų garso kokybę.
Ryšys tarp SD kortelės modulio ir arduino vyksta per SPI (Serial periferinė sąsaja). Šis kodas naudoja SD ir SPI biblioteką, kad lengvai pasiektų SD kortelės turinį.
3 žingsnis: Paruoškite SD kortelę ir prijunkite SD kortelės modulį
- Pirmiausia turite formatuoti SD kortelę su FAT16 arba FAT32 failų sistema (SD kortelę galite formatuoti naudodami savo išmanųjį telefoną).
- Dabar iš anksto įdiekite kai kuriuos.wav garso failus į SD kortelę. Galite generuoti.wav failus naudodami „Audacity“(žr. Toliau pateiktas instrukcijas). Nepamirškite pavadinti failų kaip audio_1.wav, audio_2.wav, audio_3.wav ir pan.
SD kortelės modulis naudoja SPI, kad perduotų duomenis su arduino. Todėl jis jungiasi tik prie tų kaiščių, kuriuose įgalintas SPI. Šios jungtys yra tokios:
- Vcc - 5v
- GND - GND
- MOSI („Master Out Slave In“) - kaištis 11
- MISO („Master In Slave Out“) - kaištis 12
- CLK (laikrodis) - 13 kaištis
- SS/CS (Slave Select/Chip Select) - kaištis 10
„. Wav“failo generavimas naudojant „Audacity“programinę įrangą:
- „Audacity“atidarykite garso failą, kurį norite konvertuoti į.wav.
- Spustelėkite failo pavadinimą ir pasirinkite „Split Stereo to Mono“. Ši parinktis padalina stereofoninį garsą į du monofoninius kanalus. Dabar galite uždaryti vieną iš kanalų.
- Pakeiskite „Project Rate“reikšmę apačioje į 16000 Hz. Ši vertė atitinka maksimalų arduino vidinio ADC mėginių ėmimo dažnį.
- Dabar eikite į Failas-> Eksportuoti/eksportuoti kaip WAV.
- Pasirinkite tinkamą failo vietą ir pavadinimą. Kodavimo meniu pasirinkite „Nepasirašytas 8 bitų PCM“, nes mes naudojame PCM formatą, norėdami išsaugoti garsą skaitmeniniu formatu.
4 veiksmas: prijunkite garso išvestį ir mikrofoną
Mikrofono prijungimas:
- Vcc - 3.3v
- GND - GND
- OUT - A0 kaištis
PASTABA:
- Pabandykite prijungti mikrofoną tiesiai prie arduino, o ne naudoti duonos lentą, nes tai gali sukelti nereikalingą triukšmą įvesties signale.
- Būtinai švariai lituokite mikrofono modulio antraštes, nes blogos lydmetalio jungtys taip pat kelia triukšmą.
- Šis mikrofono modulis turi reguliuojamą stiprinimą, kurį galima valdyti naudojant puodą, esantį plokštės gale. Aš siūlau išlaikyti stiprumą šiek tiek mažesnį, nes tada jis labai nesustiprins triukšmo, o jūs galėsite kalbėti, laikydami jį šalia burnos, todėl išvestis bus švaresnė.
Garso išvesties prijungimas:
- Įdėkite 10 uF kondensatorių ir 1 k omo rezistorių nuosekliai ant duonos lentos, prie kondensatoriaus teigiamo prijungto prie rezistoriaus. Jie kartu sudaro RC filtrą, kuris PWM išėjimą paverčia analoginiu signalu, kurį galima tiekti į stiprintuvą.
- Prijunkite „Arduino“kaištį 9 prie kito rezistoriaus galo.
- Neigiamas kondensatoriaus gnybtas prijungiamas prie kairiojo ir dešiniojo moterų garso lizdo kanalo.
- Garso lizdo GND prijungiamas prie GND.
- Garso lizdas prijungtas prie stiprintuvo naudojant „Aux“kabelį. Mano atveju naudojau savo kompiuterio garsiakalbių sistemą.
PASTABA:
PWM naudojimas kaip garso išvestis gali būti ne pats geriausias pasirinkimas, nes išorinis DAC užtikrintų daug geresnę skiriamąją gebą ir kokybę. Be to, RC filtro kondensatorius ir rezistorius gali sukelti nepageidaujamą triukšmą. Tačiau šio projekto rezultatas buvo gana geras
5 žingsnis: prijunkite mygtukus
Projektas naudoja mygtukus kaip vartotojo sąsają. Abu jie atlieka skirtingas funkcijas ir yra naudojami skirtingai, tačiau turi tą patį laidą. Jų ryšys yra toks:
- Padėkite mygtukus ant duonos lentos.
- Pritvirtinkite vieną iš vieno mygtuko gnybtų prie arduino 2 kaiščio su 10k omų nuleidžiamu rezistoriumi. Kitas mygtuko gnybtas prijungiamas prie 5V. Taigi, kai paspaudžiamas mygtukas, kaištis 2 tampa AUKŠTAS ir tai galime aptikti kodu.
- Kitas mygtukas taip pat prijungiamas prie „arduino“kaiščio 3, o ne 2.
Mygtukas, prijungtas prie 2 kaiščio, leidžia vieną kartą paspaudus atsitiktinį garso failą iš iš anksto įdiegtų garso failų rinkinio SD kortelėje.
Mygtukas, prijungtas prie 3 kaiščio, skirtas įrašymui. Norėdami įrašyti, turite paspausti ir palaikyti šį mygtuką. „Arduino“pradeda įrašinėti, kai tik paspaudžiamas šis mygtukas, ir sustabdo įrašymą, kai šis mygtukas atleidžiamas. Sustabdžius įrašymą, jis iškart pakartoja tą įrašą.
6 veiksmas: įkelkite kodą
Prieš įkeliant kodą, įsitikinkite, kad įdiegėte visas reikalingas bibliotekas, pvz., TMRpcm, SD ir kt.
Įkėlę kodą taip pat galite atidaryti serijinį monitorių, kad gautumėte atsiliepimą apie tai, ką daro arduino.
Šiuo metu kodas ne manipuliuoja įrašytu garsu, kad jis skambėtų kitaip, tačiau planuoju šią funkciją įtraukti į kitą versiją, kurioje galbūt galėsite nustatyti garso signalo išvesties dažnį naudodami puodą ir gauti skirtingų tipų garsus.
Ir jūs baigėte !!
Rekomenduojamas:
Maršrutizatorius tampa vaizdo įrašymo įrenginiu IP kameroms: 3 žingsniai
Maršrutizatorius tampa IP kamerų vaizdo įrašymo įrenginiu: kai kurie maršrutizatoriai turi galingą procesorių ir USB prievadą plokštėje ir gali būti naudojami kaip vaizdo įrašymo įrenginys, be maršruto parinkimo funkcijų, siekiant rinkti ir platinti vaizdo įrašus ir garsą iš tik transliuojamų IP kamerų H264/265 RTSP (kaip moderniausias pigus
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
Tampa De Aquário Automatizada .: 7 žingsniai
„Tampa De Aquário Automatizada“: aprašymas „Tampa de Aquário“automatizuotas temperatūros valdymas per pastilhas peltier e system de circulação de ar. „Tudo controlado usado microcontrolador esp32“prijungtas prie interneto. Idėja, kaip valdyti temperatūrą
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Televizoriaus nuotolinio valdymo pultas tampa RF nuotolinio valdymo pultu -- NRF24L01+ pamoka: 5 žingsniai (su paveikslėliais)
Televizoriaus nuotolinio valdymo pultas tampa RF nuotolinio valdymo pultu || NRF24L01+ Pamoka: Šiame projekte parodysiu, kaip aš naudoju populiarųjį nRF24L01+ RF IC, norėdamas belaidžiu būdu sureguliuoti LED juostos ryškumą per tris nenaudingus televizoriaus nuotolinio valdymo pulto mygtukus. Pradėkime