Kazalo:
- Korak: Uporabljeni materiali
- 2. korak: Osnovni pregled projekta
- 3. korak: Pripravite kartico SD in priključite modul kartice SD
- 4. korak: Priključite avdio izhod in mikrofon
- 5. korak: Povežite gumbe
- 6. korak: Naložite kodo
Video: Arduino postane Talking Tom: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Eden mojih najstarejših spominov na uporabo pametnega telefona je bil igra "Talking Tom". Igra je bila precej preprosta. Obstaja mačka po imenu Tom, ki lahko govori na nek način. V igri je Tom poslušal kakršen koli vnos prek mikrofona telefona in nato ponavljal vse, kar je slišal. Torej, karkoli bi rekel Tomu, bi isto stvar ponovil v svojem hripavem glasu.
Čeprav se sliši preprosto, ta celoten postopek zahteva veliko zapletenih korakov, kot je vzorčenje analognega vhoda mikrofona v digitalni obliki, manipulacija z zvokom, da bi Tomu dal edinstven glas, nato pa rekonstrukcija signala iz vseh teh digitalnih vrednosti za predvajanje skozi zvočnik. Vsi ti zapleteni koraki, a pametni telefon se je s tem ukvarjal kot čar že 9 do 10 let nazaj!
Zanimivo bi bilo videti, ali je enako mogoče storiti s poceni ploščo Arduino na osnovi mikrokrmilnika. Tako bom v tem navodilu pokazal, kako lahko naredite preprost projekt, podoben Talking Tomu, iz Arduina in druge poceni elektronike.
Ta pouk je bil napisan v sodelovanju s Hatchnhack Makerspace v Delhiju
OPOMBA: Ta navodila so prva različica projekta, ki dopolnjuje funkcijo "Talking" Talking Toma, kjer bo arduino lahko ponavljal vse, kar mu boste povedali. Del, ki spreminja glas, bo zajet v prihodnji različici, čeprav se zaradi manjše ločljivosti Arduinovega vgrajenega ADC -ja posneti zvok že sliši nekoliko drugače: P (To je jasno opaziti v video posnetku projekta).
Pa začnimo!
Korak: Uporabljeni materiali
Strojna oprema:
- Arduino UNO
- Mikrofonski modul MAX4466 z nastavljivim ojačanjem
- Modul za branje kartic SD na osnovi SPI
- sD kartice
- Zvočni ojačevalnik, kot je zvočnik za računalnik, ojačevalni modul PAM8403 itd.
- Zvočniki za priključitev na ojačevalnik
- Ženski avdio priključek
- 1 x 1 k ohmski upor
- 2 x 10k ohmski upor
- 1 x 10uF kondenzator
- 2 x gumb
- Mostične žice
Programska oprema:
- Arduino IDE
- Audacity (neobvezno)
- Knjižnica TMRpcm in SD za Arduino
2. korak: Osnovni pregled projekta
Projekt ima predvsem 2 značilnosti:
- Predvaja naključno izbran zvok iz nabora vnaprej nameščenih zvočnih datotek na kartici SD za zvočne učinke itd.
- Lahko snema zvočni vhod iz mikrofona in ga nato predvaja takoj, ko se snemanje ustavi. To omogoča arduinu, da ponovi vse, kar je slišal skozi mikrofon.
Uporabniški vmesnik projekta je v glavnem sestavljen iz 2 gumbov, od katerih vsak ustreza eni od zgornjih funkcij.
Glavno trdo delo pri snemanju in predvajanju zvočnih datotek s kartice SD opravlja knjižnica TMRpcm
Zvočni posnetek uporablja mikrofonski modul MAX4466, notranji ADC arduino in knjižnico TMRpcm za vzorčenje zvoka in ga nato začasno shrani na kartico SD kot datoteko ».wav« za predvajanje. Zvočne datoteke ».wav« uporabljajo PCM (Pulse Code Modulation) za shranjevanje zvočnih podatkov v digitalni obliki, tako da jih je mogoče preprosto predvajati. Na splošno je za zvočne projekte bolje uporabiti zunanji ADC, saj ločljivost Arduinovega ADC ni tako visoka, vendar za ta projekt deluje.
Predvajanje zvočnih datotek (vnaprej nameščenih in posnetih) se izvaja tudi s pomočjo knjižnice TMRpcm, ki oddaja zvok kot signal PWM s pin-ja arduina, ki podpira PWM. Ta signal se nato vnese v RC filter, da dobi analogni signal, ki se nato vnese v ojačevalnik za predvajanje zvoka skozi zvočnik. Za ta del lahko uporabite tudi zunanji DAC, saj ga arduino nima. Uporaba DAC -a je lahko boljša možnost, saj bi bistveno izboljšala kakovost zvoka.
Komunikacija med modulom kartice SD in arduinom poteka prek SPI (serijski periferni vmesnik). Koda uporablja knjižnico SD & SPI za enostaven dostop do vsebine kartice SD.
3. korak: Pripravite kartico SD in priključite modul kartice SD
- Najprej morate formatirati kot kartico SD z datotečnim sistemom FAT16 ali FAT32 (za formatiranje kartice SD lahko uporabite pametni telefon).
- Zdaj vnaprej namestite nekaj zvočnih datotek.wav na kartico SD. Z Audacityjem lahko ustvarite datoteke.wav (glejte spodnja navodila). Ne pozabite poimenovati datotek kot audio_1.wav, audio_2.wav, audio_3.wav itd.
Modul kartice SD uporablja SPI za komunikacijo podatkov z arduinom. Zato se poveže samo s tistimi zatiči, ki imajo omogočeno SPI. Te povezave so naslednje:
- Vcc - 5V
- GND - GND
- MOSI (glavni izhod pomožni vhod) - pin 11
- MISO (Master In Slave Out) - pin 12
- CLK (ura) - pin 13
- SS/CS (Slave Select/Chip Select) - pin 10
Ustvarjanje datoteke ».wav« s programsko opremo Audacity:
- Odprite zvočno datoteko, ki jo želite pretvoriti v.wav v programu Audacity.
- Kliknite na ime datoteke in nato izberite 'Split Stereo to Mono'. Ta možnost razdeli stereo zvok na dva monokanala. Zdaj lahko zaprete enega od kanalov.
- Spremenite vrednost »Project Rate« na dnu na 16000 Hz. Ta vrednost ustreza največji frekvenci vzorčenja notranjega ADC -ja arduina.
- Zdaj smo prišli do Datoteka-> Izvozi/izvozi kot WAV.
- Izberite ustrezno mesto in ime datoteke. V meniju za kodiranje izberite 'Nepodpisani 8-bitni PCM', saj uporabljamo format PCM za shranjevanje zvoka v digitalni obliki.
4. korak: Priključite avdio izhod in mikrofon
Priključitev mikrofona:
- Vcc - 3.3V
- GND - GND
- OUT - pin A0
OPOMBA:
- Poskusite priključiti mikrofon neposredno na arduino, namesto da bi uporabili načrt, saj lahko povzroči nepotreben šum v vhodnem signalu.
- Glave na modulu mikrofona dobro spajkajte, saj slabi spajkalni spoji povzročajo tudi hrup.
- Ta mikrofonski modul ima nastavljiv ojačevalnik, ki ga je mogoče nadzorovati s pomočjo lonca na zadnji strani plošče. Predlagam, da dobite rahlo nizko vrednost, saj potem ne bo močno povečal hrupa, medtem ko boste lahko govorili ob ustih, kar bo povzročilo čistejši izhod.
Priključitev avdio izhoda:
- Kondenzator 10 uF in 1 k ohmski upor postavite zaporedoma na ploščo s pozitivom kondenzatorja, priključenega na upor. Ti skupaj tvorijo RC filter, ki pretvori izhod PWM v analogni signal, ki se lahko napaja v ojačevalnik.
- Priključite nožico 9 Arduina na drugi konec upora.
- Negativni priključek kondenzatorja je povezan z levim in desnim kanalom ženskega avdio priključka.
- GND avdio priključka se poveže z GND.
- Zvočni priključek je priključen na ojačevalnik z Aux kablom. V mojem primeru sem uporabil zvočniški sistem računalnika.
OPOMBA:
Uporaba PWM kot avdio izhoda morda ni najboljša možnost, saj bi zunanji DAC zagotovil veliko boljšo ločljivost in kakovost. Poleg tega lahko kondenzator in upor v RC filtru povzročita neželen šum. Toda vseeno je bil rezultat za ta projekt precej dostojen
5. korak: Povežite gumbe
Projekt uporablja gumbe kot uporabniški vmesnik. Oba opravljata različne funkcije in se uporabljata različno, vendar imata enako ožičenje. Njihova povezava je naslednja:
- Gumbe postavite na ploščo.
- Pritrdite en priključek enega od gumbov na pin 2 arduina z 10k ohmskim uporom navzdol. Drugi priključek gumba se priključi na 5v. Torej, ko pritisnete gumb, pin 2 postane VISOK in to lahko zaznamo v kodi.
- Drugi gumb se isto poveže z arduino pin 3 namesto 2.
Gumb, priključen na pin 2, predvaja naključno zvočno datoteko iz nabora vnaprej nameščenih zvočnih datotek na kartici SD, ko jo enkrat pritisnete.
Gumb, priključen na pin 3, je namenjen snemanju. Za snemanje morate pritisniti in držati ta gumb. Arduino začne snemati takoj, ko pritisnete ta gumb, in zaustavi snemanje, ko ta gumb spustite. Po prekinitvi snemanja se posnetek takoj predvaja.
6. korak: Naložite kodo
Preden naložite kodo, se prepričajte, da ste namestili vse potrebne knjižnice, kot so TMRpcm, SD itd.
Serijski monitor lahko odprete tudi po nalaganju kode, da dobite povratne informacije o tem, kaj arduino počne.
Trenutno koda ne manipulira s posnetim zvokom, da bi bil drugačen, vendar nameravam to funkcijo vključiti v naslednjo različico, kjer boste morda lahko s pomočjo lonca nastavili izhodno frekvenco zvočnega signala in dobili različne vrste zvokov.
In končali ste !!
Priporočena:
Usmerjevalnik postane video snemalnik za IP kamere: 3 koraki
Usmerjevalnik postane video snemalnik za kamere IP: Nekateri usmerjevalniki imajo zmogljiv procesor in vrata USB na plošči in jih je mogoče uporabiti tudi kot snemalnik video posnetkov poleg usmerjevalnih funkcij za zbiranje in distribucijo videa in zvoka iz IP-kamer, ki pretakajo samo H264/265 RTSP (kot najsodobnejši poceni hi
Pixie - Naj vaša rastlina postane pametna: 4 koraki (s slikami)
Pixie - Naj vaša rastlina postane pametna: Pixie je bil projekt, razvit z namenom, da bi rastline, ki jih imamo doma, naredile bolj interaktivne, saj je za večino ljudi eden od izzivov, da imajo rastlino doma, vedeti, kako skrbeti zanjo, kako pogosto zalivamo, kdaj in koliko
TV daljinec postane RF daljinec -- NRF24L01+ Vadnica: 5 korakov (s slikami)
TV daljinec postane RF daljinec || NRF24L01+ Vadnica: V tem projektu vam bom pokazal, kako sem s priljubljenim nRF24L01+ RF IC brezžično prilagajal svetlost LED traku s tremi neuporabnimi gumbi na daljinskem upravljalniku televizorja. Začnimo
Glasbena reaktivna svetloba -- Kako narediti super preprosto glasbeno reaktivno svetlobo, da namizje postane čudovito .: 5 korakov (s slikami)
Glasbena reaktivna svetloba || Kako narediti super preprosto glasbo reaktivno svetlobo za namizje namizja: Hej kaj je fantje, danes bomo zgradili zelo zanimiv projekt. Danes bomo zgradili glasbeno reaktivno svetlobo. LED bo spremenil svojo svetlost glede na bas, ki je pravzaprav nizkofrekvenčni zvočni signal. Zgraditi ga je zelo preprosto
Naj vaš Pi postane (lokalni) strežnik v oblaku!: 19 korakov (s slikami)
Naj vaš Pi postane (lokalni) strežnik v oblaku !: Shranite in dostopajte do dokumentov, fotografij in glasbe na svojem lokalnem strežniku v oblaku Pi! Najboljši del: uporabite ga, če ali kdaj internet pade (ali če ste na oddaljenem mestu in želite dostop do Wikipedije). Oh hej, in če tvoj prijatelj dobi eno in drugo