Sadržaj:
- Korak 1: Korišteni materijali
- Korak 2: Osnovni pregled projekta
- Korak 3: Pripremite SD karticu i povežite modul SD kartice
- Korak 4: Povežite audio izlaz i mikrofon
- Korak 5: Povežite dugmad
- Korak 6: Otpremite kôd
Video: Arduino postaje Talking Tom: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Jedno od mojih najstarijih sjećanja na korištenje pametnog telefona bilo je igranje igre 'Talking Tom'. Igra je bila prilično jednostavna. Postoji mačka po imenu Tom koja može govoriti, na neki način. U igri, Tom bi slušao bilo kakav ulaz preko mikrofona telefona, a zatim bi ponavljao sve što je čuo. Dakle, šta god rekli Tomu, samo bi to isto ponovilo svojim prodornim glasom.
Iako zvuči jednostavno, cijeli ovaj postupak zahtijeva mnogo složenih koraka, poput uzorkovanja analognog ulaza mikrofona u digitalnom obliku, manipuliranja zvukom kako bi Tomu dao jedinstveni glas, a zatim rekonstrukcije signala iz svih tih digitalnih vrijednosti za reprodukciju putem zvučnika. Svi ovi složeni koraci, ali pametni telefon je to riješio kao šarm čak i prije 9 do 10 godina!
Zanimljivo bi bilo vidjeti da li se isto može učiniti s jeftinom Arduino pločom zasnovanom na mikrokontroleru. Dakle, u ovom uputstvu pokazat ću vam kako od Arduina i neke druge jeftine elektronike možete napraviti jednostavan Talking Tom poput projekta.
Ovo uputstvo je napisano u saradnji sa Hatchnhack Makerspace -om u Delhiju
NAPOMENA: Ovo uputstvo je prva verzija projekta koja dovršava funkciju 'Talking' Talking Toma u kojoj će arduino moći ponavljati sve što mu kažete. Dio za promjenu glasa bit će pokriven u budućoj verziji, iako, zbog manje rezolucije Arduino -ovog ugrađenog ADC -a, snimljeni zvuk već zvuči malo drugačije: P (To se jasno može primijetiti u video snimku projekta).
Pa počnimo!
Korak 1: Korišteni materijali
Hardver:
- Arduino UNO
- MAX4466 mikrofonski modul sa podesivim pojačanjem
- Modul čitača SD kartica temeljen na SPI
- sd kartica
- Audio pojačalo poput PC zvučnika, PAM8403 pojačalo, itd.
- Zvučnici za spajanje na pojačalo
- Ženski audio priključak
- 1 x 1k ohm otpornik
- 2 x 10k ohm otpornik
- 1 x 10uF kondenzator
- 2 x Taster
- Džemper žice
Softver:
- Arduino IDE
- Odvažnost (nije obavezno)
- TMRpcm i SD biblioteka za Arduino
Korak 2: Osnovni pregled projekta
Projekat uglavnom ima 2 karakteristike:
- Može reproducirati nasumično odabrani zvuk iz skupa prethodno instaliranih audio datoteka na SD kartici radi zvučnih efekata itd.
- Može snimiti zvučni ulaz iz mikrofona, a zatim ga reproducirati čim snimanje prestane. Ovo omogućava arduinu da ponavlja sve što je čuo kroz mikrofon.
Korisničko sučelje projekta uglavnom se sastoji od 2 tipke od kojih svaka odgovara jednoj od gore navedenih funkcija.
Glavni naporan posao snimanja i reprodukcije audio datoteka sa SD kartice obavlja biblioteka TMRpcm
Zvučni zapis koristi MAX4466 mikrofonski modul, arduinov interni ADC i TMRpcm biblioteku za uzorkovanje zvuka, a zatim privremeno spremanje na SD karticu kao '.wav' datoteku za reprodukciju. '.wav' audio datoteke koriste PCM (Pulse Code Modulation) za pohranu audio podataka u digitalnom formatu tako da se mogu lako reproducirati. Općenito, bolje je koristiti vanjski ADC za projekte zasnovane na zvuku jer rezolucija Arduinovog ADC -a nije toliko visoka, ali radi za ovaj projekt.
Reprodukcija audio datoteka (unaprijed instaliranih i snimljenih) također se vrši uz pomoć TMRpcm biblioteke koja emituje zvuk kao PWM signal sa PWM omogućenog pina arduina. Ovaj signal se zatim dovodi u RC filter kako bi se dobio analogni signal koji se zatim dovodi u pojačalo za reprodukciju zvuka kroz zvučnik. Za ovaj dio možete koristiti i vanjski DAC jer ga arduino nema interno. Korištenje DAC -a moglo bi biti bolja opcija jer bi značajno poboljšalo kvalitetu zvuka.
Komunikacija između modula SD kartice i arduina vrši se putem SPI (serijskog perifernog sučelja). Kôd koristi SD & SPI biblioteku za lak pristup sadržaju SD kartice.
Korak 3: Pripremite SD karticu i povežite modul SD kartice
- Prvo morate formatirati kao SD karticu s datotečnim sistemom FAT16 ili FAT32 (Za formatiranje SD kartice možete koristiti pametni telefon).
- Sada unaprijed instalirajte neke.wav audio datoteke na SD karticu. Pomoću programa Audacity možete generirati.wav datoteke (pogledajte upute u nastavku). Zapamtite da datotekama date ime audio_1.wav, audio_2.wav, audio_3.wav i tako dalje.
Modul SD kartice koristi SPI za komunikaciju podataka s arduinom. Stoga se povezuje samo na one pinove koji imaju omogućen SPI. Ove veze su sljedeće:
- Vcc - 5v
- GND - GND
- MOSI (Master Out Slave In) - pin 11
- MISO (Master In Slave Out) - pin 12
- CLK (Sat) - pin 13
- SS/CS (Slave Select/Chip Select) - pin 10
Generiranje '.wav' datoteke pomoću Audacity softvera:
- Otvorite audio datoteku koju želite pretvoriti u.wav u Audacityju.
- Kliknite na naziv datoteke, a zatim odaberite 'Split Stereo to Mono'. Ova opcija dijeli stereo zvuk na dva mono kanala. Sada možete zatvoriti jedan od kanala.
- Promijenite vrijednost 'Project Rate' pri dnu na 16000 Hz. Ova vrijednost odgovara maksimalnoj frekvenciji uzorkovanja arduino internog ADC -a.
- Sada smo došli do File-> Export/Export as WAV.
- Odaberite odgovarajuću lokaciju i naziv datoteke. Iz izbornika za kodiranje odaberite 'Nepotpisani 8-bitni PCM' jer koristimo format PCM za pohranu zvuka u digitalnom formatu.
Korak 4: Povežite audio izlaz i mikrofon
Priključivanje mikrofona:
- Vcc - 3.3v
- GND - GND
- OUT - A0 pin
BILJEŠKA:
- Pokušajte spojiti mikrofon izravno na arduino umjesto pomoću matične ploče jer bi to moglo izazvati nepotrebnu buku u ulaznom signalu.
- Pazite da dobro zalemite zaglavlja na modulu mikrofona jer loši spojevi za lemljenje također stvaraju buku.
- Ovaj mikrofonski modul ima podesivo pojačanje koje se može kontrolirati uz pomoć lonca sa stražnje strane ploče. Predlažem vam da držite pojačanje donekle niskim jer tada neće jako pojačati šum, dok biste mogli govoriti držeći ga blizu usta što rezultira čistijim izlazom.
Povezivanje audio izlaza:
- Kondenzator od 10 uF i otpornik od 1 k ohma postavite serijski na ploču s pozitivom kondenzatora spojenim na otpornik. Oni zajedno tvore RC filter koji pretvara PWM izlaz u analogni signal koji se može napajati u pojačalo.
- Spojite pin 9 Arduina na drugi kraj otpornika.
- Negativni priključak kondenzatora povezuje se s lijevim i desnim kanalom ženskog audio priključka.
- GND audio priključka se povezuje sa GND -om.
- Audio priključak je povezan sa pojačalom pomoću Aux kabla. U mom slučaju koristio sam sistem zvučnika računara.
BILJEŠKA:
Korištenje PWM -a kao audio izlaza možda nije najbolja opcija jer bi vanjski DAC pružio mnogo bolju rezoluciju i kvalitetu. Dodatno, kondenzator i otpornik u RC filtru mogu izazvati neželjenu buku. No, ipak je izlaz bio prilično pristojan za ovaj projekt
Korak 5: Povežite dugmad
Projekt koristi gumbe kao korisničko sučelje. Oba obavljaju različite funkcije i koriste se različito, ali imaju isto ožičenje. Njihova veza je sljedeća:
- Postavite dugmad na matičnu ploču.
- Priključite jedan terminal jednog dugmeta na pin 2 arduina sa otpornikom za povlačenje od 10 k ohma. Drugi terminal dugmeta povezuje se na 5v. Dakle, kada se pritisne dugme, pin 2 postaje VISOK i to možemo otkriti u kodu.
- Drugo dugme se isto povezuje sa arduino pin 3 umjesto 2.
Gumb spojen na pin 2 reproducira nasumičnu audio datoteku iz skupa prethodno instaliranih audio datoteka na SD kartici kada se jednom pritisne.
Dugme spojeno na pin 3 služi za snimanje. Za snimanje morate pritisnuti i držati ovo dugme. Arduino počinje snimanje čim se pritisne ovo dugme i zaustavlja snimanje kada se ovo dugme otpusti. Nakon zaustavljanja snimanja, on se odmah reproducira.
Korak 6: Otpremite kôd
Prije postavljanja koda, provjerite jeste li instalirali sve potrebne biblioteke poput TMRpcm, SD itd.
Serijski monitor možete otvoriti i nakon učitavanja koda da biste dobili povratnu informaciju o tome šta arduino radi.
Trenutno kod ne manipulira snimljenim zvukom kako bi zvučao drugačije, ali planiram uključiti ovu funkciju u sljedeću verziju gdje ćete možda moći postaviti izlaznu frekvenciju audio signala uz pomoć lonca i dobiti različite vrste zvukova.
I gotovi ste !!
Preporučuje se:
Ruter postaje video rekorder za IP kamere: 3 koraka
Ruter postaje video rekorder za IP kamere: Neki usmjerivači imaju snažan CPU i USB priključak na ploči i mogu se koristiti kao video rekorder pored funkcija usmjeravanja, radi prikupljanja i distribucije videa i zvuka s IP kamera koje samo emitiraju H264/265 RTSP (kao najmoderniji jeftini hi
TV daljinski upravljač postaje RF daljinski -- NRF24L01+ Vodič: 5 koraka (sa slikama)
TV daljinski upravljač postaje RF daljinski || Vodič za NRF24L01+: U ovom projektu ću vam pokazati kako sam koristio popularni nRF24L01+ RF IC za bežično podešavanje svjetline LED trake putem tri beskorisna dugmeta na daljinskom upravljaču televizora. Hajde da počnemo
Pi Zero Talking Radio: 7 koraka (sa slikama)
Pi Zero Talking Radio: Ovo je stolni radio DeWald iz kasnih 1940 -ih kojem sam dao novi život koristeći Raspberry Pi Zero, Blinkt! LED traka i par PC zvučnika. Čita obavijesti s niza usluga povezanih s internetom koristeći Pyvona pretvaranje teksta u govor (TTS)
Broj koraka / koraka: 3 koraka
পেনড্রাইভ / মেমোরি কার্ডে ভাইরাসের ভাইরাসের হারিয়ে সমাধান সমাধান সমাধান সমাধান সমাধান পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি এখন এখন এখন।।।।।। Zaštita podataka, pristup prečicama / virusima
Napravite Talking Robot Head sa pogonom na Arduinu!: 26 koraka (sa slikama)
Napravite Talking Robot Head sa pogonom na Arduinu !: Ova glava robota je prvobitno izgrađena kao projekat za kraj moje godine za moj čas fizičkog računarstva, ali je tokom leta "naučila" kako razgovarati. Glavu pokreću dva Freeduinosa, 3 čipa TLC5940NT i Adafruit Industries