Sadržaj:

Arduino postaje Talking Tom: 6 koraka
Arduino postaje Talking Tom: 6 koraka

Video: Arduino postaje Talking Tom: 6 koraka

Video: Arduino postaje Talking Tom: 6 koraka
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Novembar
Anonim
Arduino postaje Talking Tom
Arduino postaje Talking Tom
Arduino postaje Talking Tom
Arduino postaje Talking Tom

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

Korišćeni materijali
Korišćeni materijali
Korišćeni materijali
Korišćeni materijali
Korišćeni materijali
Korišćeni 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

Pripremite SD karticu i povežite modul SD kartice
Pripremite SD karticu i povežite modul SD kartice
Pripremite SD karticu i povežite modul SD kartice
Pripremite SD karticu i povežite modul SD kartice
Pripremite SD karticu i povežite modul SD kartice
Pripremite SD karticu i povežite modul SD kartice
Pripremite SD karticu i povežite modul SD kartice
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

Povežite audio izlaz i mikrofon
Povežite audio izlaz i mikrofon
Povežite audio izlaz i mikrofon
Povežite audio izlaz i mikrofon
Povežite audio izlaz i mikrofon
Povežite audio izlaz i mikrofon
Povežite audio izlaz i mikrofon
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

Povežite dugmad
Povežite dugmad
Povežite dugmad
Povežite dugmad
Povežite dugmad
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

Otpremite kôd
Otpremite kôd
Otpremite kôd
Otpremite kôd
Otpremite kôd
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: