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, Srpanj
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 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
Korišteni materijali
Korišteni materijali
Korišteni materijali
Korišteni materijali

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
Pripremite SD karticu i spojite modul SD kartice
Pripremite SD karticu i spojite modul SD kartice
Pripremite SD karticu i spojite modul SD kartice
Pripremite SD karticu i spojite modul SD kartice
Pripremite SD karticu i spojite modul SD kartice
Pripremite SD karticu i spojite modul SD kartice
  • 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
Spojite audio izlaz i mikrofon
Spojite audio izlaz i mikrofon
Spojite audio izlaz i mikrofon
Spojite audio izlaz i mikrofon
Spojite audio izlaz i mikrofon
Spojite audio izlaz i mikrofon

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
Ožičite gumbe
Ožičite gumbe
Ožičite gumbe
Ožičite gumbe

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
Učitajte kôd
Učitajte kôd
Učitajte kôd
Učitajte kôd

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: