![Arduino postaje Talking Tom: 6 koraka Arduino postaje Talking Tom: 6 koraka](https://i.howwhatproduce.com/images/002/image-5392-j.webp)
Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47
![Arduino postaje Talking Tom Arduino postaje Talking Tom](https://i.howwhatproduce.com/images/002/image-5392-1-j.webp)
![Arduino postaje Talking Tom Arduino postaje Talking Tom](https://i.howwhatproduce.com/images/002/image-5392-2-j.webp)
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 je Tom slušao bilo kakav ulaz putem mikrofona telefona, a zatim ponavljao sve što je čuo. Dakle, što god rekli Tomu, samo bi to isto ponovilo vlastitim kreštavim glasom.
Iako zvuči jednostavno, cijeli ovaj postupak zahtijeva mnoge složene korake poput uzorkovanja analognog ulaza mikrofona u digitalnom obliku, manipuliranja zvukom kako bi Tomu dao jedinstveni glas, a zatim rekonstruiranja signala iz svih tih digitalnih vrijednosti za reprodukciju putem zvučnika. Svi ti složeni koraci, ali pametni telefon je to riješio kao šarm čak 9 do 10 godina unatrag!
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 kako možete napraviti jednostavan Talking Tom projekt poput Arduina i neke druge jeftine elektronike.
Ovo uputstvo napisano je u suradnji s Hatchnhack Makerspaceom u Delhiju
NAPOMENA: Ova instrukcija je prva verzija projekta koja dovršava značajku '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 razlučivosti Arduino -ovog ugrađenog ADC -a, snimljeni zvuk već zvuči malo drugačije: P (To se jasno može primijetiti u video snimci projekta).
Pa krenimo!
Korak 1: Korišteni materijali
![Korišteni materijali Korišteni materijali](https://i.howwhatproduce.com/images/002/image-5392-3-j.webp)
![Korišteni materijali Korišteni materijali](https://i.howwhatproduce.com/images/002/image-5392-4-j.webp)
![Korišteni materijali Korišteni materijali](https://i.howwhatproduce.com/images/002/image-5392-5-j.webp)
Hardver:
- Arduino UNO
- Modul mikrofona MAX4466 s podesivim pojačanjem
- Modul čitača SD kartica temeljen na SPI
- SD kartica
- Audio pojačalo poput zvučnika za računalo, modula pojačala PAM8403 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 Tipka
- Žice za kratkospojnike
Softver:
- Arduino IDE
- Odvažnost (izborno)
- TMRpcm i SD knjižnica za Arduino
Korak 2: Osnovni pregled projekta
Projekt uglavnom ima 2 značajke:
- Može reproducirati nasumično odabran zvuk iz skupa unaprijed instaliranih audio datoteka na SD kartici radi zvučnih efekata itd.
- Može snimati zvučni ulaz iz mikrofona, a zatim ga reproducirati čim snimanje prestane. To omogućuje 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 značajki.
Glavni naporan posao snimanja i reprodukcije audio datoteka sa SD kartice obavlja biblioteka TMRpcm
Za snimanje zvuka koristi se mikrofonski modul MAX4466, unutarnji arduino ADC i biblioteka TMRpcm 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 ponovno reproducirati. Općenito, bolje je koristiti vanjski ADC za projekte temeljene na zvuku jer razlučivost 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ć biblioteke TMRpcm koja emitira zvuk kao PWM signal s PWM omogućenog pina arduina. Taj se signal 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 odvija se putem SPI -ja (serijsko periferno sučelje). Kôd koristi biblioteku SD i SPI za lak pristup sadržaju SD kartice.
Korak 3: Pripremite SD karticu i spojite modul SD kartice
![Pripremite SD karticu i spojite modul SD kartice Pripremite SD karticu i spojite modul SD kartice](https://i.howwhatproduce.com/images/002/image-5392-6-j.webp)
![Pripremite SD karticu i spojite modul SD kartice Pripremite SD karticu i spojite modul SD kartice](https://i.howwhatproduce.com/images/002/image-5392-7-j.webp)
![Pripremite SD karticu i spojite modul SD kartice Pripremite SD karticu i spojite modul SD kartice](https://i.howwhatproduce.com/images/002/image-5392-8-j.webp)
![Pripremite SD karticu i spojite modul SD kartice Pripremite SD karticu i spojite modul SD kartice](https://i.howwhatproduce.com/images/002/image-5392-9-j.webp)
- Prvo morate formatirati SD karticu s datotečnim sustavom 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 spaja 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 datoteke.wav s Audacity softverom:
- Otvorite audiodatoteku koju želite pretvoriti u.wav u Audacityju.
- Pritisnite 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 Datoteka-> Izvoz/Izvoz kao WAV.
- Odaberite odgovarajuće mjesto i naziv datoteke. Na izborniku za kodiranje odaberite '8-bitni PCM bez potpisa' jer koristimo format PCM za spremanje zvuka u digitalni format.
Korak 4: Spojite audio izlaz i mikrofon
![Spojite audio izlaz i mikrofon Spojite audio izlaz i mikrofon](https://i.howwhatproduce.com/images/002/image-5392-10-j.webp)
![Spojite audio izlaz i mikrofon Spojite audio izlaz i mikrofon](https://i.howwhatproduce.com/images/002/image-5392-11-j.webp)
![Spojite audio izlaz i mikrofon Spojite audio izlaz i mikrofon](https://i.howwhatproduce.com/images/002/image-5392-12-j.webp)
![Spojite audio izlaz i mikrofon Spojite audio izlaz i mikrofon](https://i.howwhatproduce.com/images/002/image-5392-13-j.webp)
Spajanje mikrofona:
- Vcc - 3.3V
- GND - GND
- OUT - pin A0
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 na stražnjoj strani ploče. Predlažem vam da pojačanje držite na niskoj razini jer tada neće jako pojačati šum, dok biste mogli govoriti držeći ga blizu usta, što rezultira čistijim izlazom.
Spajanje 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 uvesti u pojačalo.
- Spojite pin 9 Arduina na drugi kraj otpornika.
- Negativni priključak kondenzatora povezuje se s lijevim i desnim kanalom ženske audio priključnice.
- GND audio priključnice povezuje se s GND -om.
- Audio priključak spojen je na pojačalo pomoću Aux kabela. U mom slučaju koristio sam zvučnički sustav računala.
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 gumbe
![Ožičite gumbe Ožičite gumbe](https://i.howwhatproduce.com/images/002/image-5392-14-j.webp)
![Ožičite gumbe Ožičite gumbe](https://i.howwhatproduce.com/images/002/image-5392-15-j.webp)
![Ožičite gumbe Ožičite gumbe](https://i.howwhatproduce.com/images/002/image-5392-16-j.webp)
Projekt koristi gumbe kao korisničko sučelje. Obje obavljaju različite funkcije i koriste se različito, ali imaju isto ožičenje. Njihova veza je sljedeća:
- Postavite gumbe na ploču s ploču.
- Priključite jedan terminal jedne tipke na pin 2 arduina s otpornikom od 10 k ohma koji se povlači. Drugi terminal gumba spaja se na 5v. Dakle, kad se pritisne gumb, pin 2 postaje VISOK i to možemo otkriti u kodu.
- Drugi gumb isto se povezuje s 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.
Gumb spojen na pin 3 služi za snimanje. Za snimanje morate pritisnuti i držati ovaj gumb. Arduino počinje snimanje čim se pritisne ovaj gumb i zaustavlja snimanje kad se ovaj gumb otpusti. Nakon prestanka snimanja, ona se odmah reproducira.
Korak 6: Prenesite kôd
![Učitajte kôd Učitajte kôd](https://i.howwhatproduce.com/images/002/image-5392-17-j.webp)
![Učitajte kôd Učitajte kôd](https://i.howwhatproduce.com/images/002/image-5392-18-j.webp)
![Učitajte kôd Učitajte kôd](https://i.howwhatproduce.com/images/002/image-5392-19-j.webp)
Prije učitavanja koda provjerite jeste li instalirali sve potrebne knjižnice poput TMRpcm, SD itd.
Serijski monitor možete otvoriti i nakon učitavanja koda da biste dobili povratnu informaciju o tome što arduino radi.
Trenutno kod ne manipulira snimljenim zvukom kako bi zvučao drugačije, ali planiram uključiti ovu značajku 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čeni:
ESP8266 Sat vremenske postaje: 4 koraka
![ESP8266 Sat vremenske postaje: 4 koraka ESP8266 Sat vremenske postaje: 4 koraka](https://i.howwhatproduce.com/images/001/image-1190-j.webp)
ESP8266 Sat vremenske postaje: Ovaj je projekt lijep način prikaza vremena i vremena u malom prikladnom paketu. Objasnit ću projekt, kako funkcionira i ovdje prikazati kôd. Možete pritisnuti različite tipke za prikaz trenutnog vremena na određenom mjestu, kao i tempe
Ruter postaje video rekorder za IP kamere: 3 koraka
![Ruter postaje video rekorder za IP kamere: 3 koraka Ruter postaje video rekorder za IP kamere: 3 koraka](https://i.howwhatproduce.com/images/001/image-1915-j.webp)
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 uz funkcije usmjeravanja, kako bi prikupljali i distribuirali video i zvuk s IP kamera koje samo struje H264/265 RTSP (kao najsuvremeniji jeftini hi
DIY Osobni monitor vremenske postaje: 6 koraka
![DIY Osobni monitor vremenske postaje: 6 koraka DIY Osobni monitor vremenske postaje: 6 koraka](https://i.howwhatproduce.com/images/001/image-680-44-j.webp)
DIY Osobni monitor vremenske postaje: DarkSky ,, Naša API usluga za postojeće korisnike danas se ne mijenja, ali više nećemo prihvaćati nove prijave. API će nastaviti funkcionirati do kraja 2021. https: //blog.darksky.net/Osobni monitor vremenske postaje prikazuje vaš mi
Tweetanje meteorološke postaje: 8 koraka (sa slikama)
![Tweetanje meteorološke postaje: 8 koraka (sa slikama) Tweetanje meteorološke postaje: 8 koraka (sa slikama)](https://i.howwhatproduce.com/images/004/image-9161-j.webp)
Tweetanje meteorološke postaje: Jeste li ikada željeli pratiti trenutne vremenske uvjete u vašem gradu, ugljični otisak, razinu buke i onečišćenja? Želite li biti križar klimatskih promjena ili postaviti vlastitu meteorološku postaju za tvitovanje i podijeliti svoje lokalne vremenske uvjete sa ženom
TV daljinski upravljač postaje RF daljinski -- NRF24L01+ Vodič: 5 koraka (sa slikama)
![TV daljinski upravljač postaje RF daljinski -- NRF24L01+ Vodič: 5 koraka (sa slikama) TV daljinski upravljač postaje RF daljinski -- NRF24L01+ Vodič: 5 koraka (sa slikama)](https://i.howwhatproduce.com/images/004/image-11727-j.webp)
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 gumba na daljinskom upravljaču televizora. Započnimo