Sisukord:

Arduino saab rääkivaks Tomiks: 6 sammu
Arduino saab rääkivaks Tomiks: 6 sammu

Video: Arduino saab rääkivaks Tomiks: 6 sammu

Video: Arduino saab rääkivaks Tomiks: 6 sammu
Video: Lesson 06: Arduino Data Types | Robojax Arduino Step By Step Course 2024, Juuli
Anonim
Arduino saab rääkivaks Tomiks
Arduino saab rääkivaks Tomiks
Arduino saab rääkivaks Tomiks
Arduino saab rääkivaks Tomiks

Üks mu vanimaid mälestusi nutitelefoni kasutamisest oli mängu „Talking Tom” mängimine. Mäng oli päris lihtne. Seal on kass nimega Tom, kes oskab rääkida. Mängus kuulas Tom mis tahes sisendit telefoni mikrofoni kaudu ja kordas seejärel kuuldut. Nii et mida iganes Tomile öelda, kordab see sama asja oma terava häälega.

Kuigi see kõlab lihtsalt, nõuab kogu see protseduur mitmeid keerukaid samme, näiteks mikrode analoogsisendi proovivõtmine digitaalsel kujul, heli manipuleerimine, et anda Tomile ainulaadne hääl, ja seejärel rekonstrueerida kõigi nende digitaalsete väärtuste signaal, et seda kõlari kaudu taasesitada. Kõik need keerulised sammud, kuid nutitelefon sai sellega nagu võlu hakkama isegi 9–10 aastat tagasi!

Huvitav oleks näha, kas sama saab teha odava mikrokontrolleril põhineva Arduino plaadiga. Niisiis, selles juhendis näitan, kuidas saate Arduino ja mõne muu odava elektroonika abil teha lihtsa Talking Tom'i sarnase projekti.

See juhend on kirjutatud koostöös Delhi Hatchnhack Makerspace'iga

MÄRKUS. See juhend on projekti esimene versioon, mis täiendab Talking Tom'i funktsiooni "Talking", kus arduino saab korrata kõike, mida talle ütlete. Hääle muutmise osa on tulevases versioonis kajastatud, kuigi Arduino sisseehitatud ADC väiksema eraldusvõime tõttu kõlab salvestatud heli juba natuke teisiti: P (Seda on projekti videost selgelt märgata).

Nii et alustame!

Samm: kasutatud materjalid

Kasutatud materjalid
Kasutatud materjalid
Kasutatud materjalid
Kasutatud materjalid
Kasutatud materjalid
Kasutatud materjalid

Riistvara:

  • Arduino UNO
  • MAX4466 mikrofonimoodul reguleeritava võimendusega
  • SPI -põhine SD -kaardi lugeja moodul
  • SD -kaart
  • Helivõimendi nagu arvuti kõlar, PAM8403 võimendusmoodul jne.
  • Kõlarid võimendiga ühendamiseks
  • Naissoost helipistik
  • 1 x 1k oomi takisti
  • 2 x 10k oomi takisti
  • 1 x 10uF kondensaator
  • 2 x nupp
  • Jumper juhtmed

Tarkvara:

  • Arduino IDE
  • Audacity (valikuline)
  • TMRpcm ja SD raamatukogu Arduino jaoks

2. samm: projekti põhiülevaade

Projektil on peamiselt 2 funktsiooni:

  • See võib esitada juhuslikult valitud heli SD-kaardile eelinstallitud helifailide komplektist heliefektide jaoks jne.
  • See suudab salvestada mikrofonist sisestatud heli ja seejärel taasesitada kohe, kui salvestamine on peatunud. See võimaldab arduinol korrata kõike, mida ta mikrofoni kaudu kuulis.

Projekti kasutajaliides koosneb peamiselt kahest nupust, millest igaüks vastab ühele ülaltoodud funktsioonile.

Peamise raske töö SD -kaardilt helifailide salvestamise ja esitamise eest hoolitseb TMRpcm raamatukogu

Helisalvestis kasutab heli proovimiseks MAX4466 mikrofonimoodulit, arduino sisemist ADC -d ja TMRpcm raamatukogu ning salvestab selle ajutiselt taasesitamiseks SD -kaardile.wav -failina. ".wav" helifailid kasutavad heliandmete salvestamiseks digitaalses vormingus PCM -i (impulsskoodi modulatsiooni), et neid oleks lihtne uuesti esitada. Üldiselt on helipõhiste projektide jaoks parem kasutada välist ADC -d, kuna Arduino ADC eraldusvõime ei ole nii kõrge, kuid see sobib selle projekti jaoks.

Helifailide (eelinstallitud ja salvestatud) esitamine toimub ka TMRpcm raamatukogu abil, mis väljastab heli PWM-signaalina arduino PWM-toega tihvtilt. See signaal suunatakse seejärel RC -filtrisse, et saada analoogsignaal, mis seejärel suunatakse võimendisse heli esitamiseks läbi kõlari. Selle osa jaoks võite kasutada ka välist DAC -i, kuna arduino sisemiselt seda ei tee. DAC -i kasutamine võib olla parem valik, kuna see parandaks oluliselt helikvaliteeti.

Side SD -kaardimooduli ja arduino vahel toimub SPI (Serial perheral Interface) kaudu. Kood kasutab SD- ja SPI -teeki, et hõlpsalt SD -kaardi sisule juurde pääseda.

Samm: valmistage SD -kaart ette ja ühendage SD -kaardi moodul

Valmistage SD -kaart ette ja ühendage SD -kaardi moodul
Valmistage SD -kaart ette ja ühendage SD -kaardi moodul
Valmistage SD -kaart ette ja ühendage SD -kaardi moodul
Valmistage SD -kaart ette ja ühendage SD -kaardi moodul
Valmistage SD -kaart ette ja ühendage SD -kaardi moodul
Valmistage SD -kaart ette ja ühendage SD -kaardi moodul
Valmistage SD -kaart ette ja ühendage SD -kaardi moodul
Valmistage SD -kaart ette ja ühendage SD -kaardi moodul
  • Kõigepealt peate vormindama SD -kaardina FAT16 või FAT32 failisüsteemiga (SD -kaardi vormindamiseks saate kasutada oma nutitelefoni).
  • Nüüd installige SD-kaardile mõned.wav helifailid. Audacity abil saate luua.wav -faile (vt allolevaid juhiseid). Ärge unustage nimetada faile audio_1.wav, audio_2.wav, audio_3.wav ja nii edasi.

SD -kaardi moodul kasutab SPI -d andmete edastamiseks arduinoga. Seetõttu ühendub see ainult nende tihvtidega, millel on SPI lubatud. Need ühendused on järgmised:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - tihvt 11
  • MISO (Master In Slave Out) - tihvt 12
  • CLK (kell) - tihvt 13
  • SS/CS (alamvalik/kiibi valimine) - tihvt 10

. Wav -faili genereerimine tarkvaraga Audacity:

  • Avage Audacity helifail, mille soovite teisendada.wav -failiks.
  • Klõpsake faili nimel ja seejärel valige „Split Stereo to Mono”. See suvand jagab stereoheli kaheks monokanaliks. Nüüd saate ühe kanali sulgeda.
  • Muutke "Project Rate" väärtus allosas 16000 Hz. See väärtus vastab arduino sisemise ADC maksimaalsele proovivõtusagedusele.
  • Nüüd jõudsin menüüsse File-> Export/Export as WAV.
  • Valige sobiv asukoht ja faili nimi. Valige kodeerimismenüüst „Unsigned 8-bit PCM”, kuna me kasutame heli digitaalses vormingus salvestamiseks PCM-vormingut.

Samm: ühendage heliväljund ja mikrofon

Ühendage heliväljund ja mikrofon
Ühendage heliväljund ja mikrofon
Ühendage heliväljund ja mikrofon
Ühendage heliväljund ja mikrofon
Ühendage heliväljund ja mikrofon
Ühendage heliväljund ja mikrofon
Ühendage heliväljund ja mikrofon
Ühendage heliväljund ja mikrofon

Mikrofoni ühendamine:

  • Vcc - 3.3v
  • GND - GND
  • OUT - A0 tihvt

MÄRGE:

  • Proovige leiba asemel kasutada mikrofoni ühendamist otse arduinoga, kuna see võib sisendsignaalis tekitada tarbetut müra.
  • Jootke kindlasti mikrofonimooduli päised puhtalt jootma, kuna halvad jootekohad tekitavad ka müra.
  • Sellel mikrofonimoodulil on reguleeritav võimendus, mida saab juhtida plaadi tagaküljel asuva poti abil. Soovitan teil hoida võimendust mõnevõrra madalal, kuna see ei võimenda müra kuigi palju, kui saate rääkida, hoides seda suu lähedal, mille tulemuseks on puhtam väljund.

Heliväljundi ühendamine:

  • Asetage 10 uF kondensaator ja 1 k ohm takisti järjestikku leivaplaadile, kusjuures takisti külge ühendatud kondensaatori positiivne külg. Need koos moodustavad RC -filtri, mis teisendab PWM -väljundi analoogsignaaliks, mida saab võimendisse suunata.
  • Ühendage Arduino tihvt 9 takisti teise otsa.
  • Kondensaatori negatiivne klemm ühendatakse emase helipistiku vasaku ja parema kanaliga.
  • Helipistiku GND ühendatakse GND -ga.
  • Helipistik on võimendiga ühendatud Aux -kaabli abil. Minu puhul kasutasin oma arvuti kõlarisüsteemi.

MÄRGE:

PWM -i kasutamine heliväljundina ei pruugi olla parim valik, kuna väline DAC tagaks palju parema eraldusvõime ja kvaliteedi. Lisaks võivad RC -filtri kondensaator ja takisti põhjustada soovimatut müra. Kuid selle projekti väljund oli siiski üsna korralik

Samm: ühendage nupud juhtmega

Ühendage nupud juhtmetega
Ühendage nupud juhtmetega
Ühendage nupud juhtmetega
Ühendage nupud juhtmetega
Ühendage nupud juhtmetega
Ühendage nupud juhtmetega

Projekt kasutab kasutajaliidesena nuppude vajutamist. Mõlemad täidavad erinevaid funktsioone ja neid kasutatakse erinevalt, kuid neil on sama juhtmestik. Nende ühendus on järgmine:

  • Asetage nupud leivaplaadile.
  • Kinnitage ühe nupu üks klemm arduino tihvti 2 külge 10k oomise tõmbetakistiga. Nupu teine klemm ühendatakse 5v pingega. Niisiis, kui nuppu vajutatakse, muutub tihvt 2 KÕRGE ja me saame seda koodis tuvastada.
  • Teine nupp ühendatakse samamoodi arduino tihvtiga 3, mitte 2.

Pistikuga 2 ühendatud nupp esitab juhusliku helifaili SD-kaardile eelinstallitud helifailide komplektist, kui seda üks kord vajutada.

Pistikuga 3 ühendatud nupp on salvestamiseks. Salvestamiseks peate seda nuppu all hoidma. Arduino alustab salvestamist kohe, kui seda nuppu vajutatakse, ja peatab salvestamise selle nupu vabastamisel. Pärast salvestamise peatamist taasesitab seda kohe.

Samm: laadige kood üles

Laadige kood üles
Laadige kood üles
Laadige kood üles
Laadige kood üles
Laadige kood üles
Laadige kood üles

Enne koodi üleslaadimist veenduge, et olete installinud kõik vajalikud teegid, nagu TMRpcm, SD jne.

Pärast koodi üleslaadimist saate avada ka jadamonitori, et saada tagasisidet arduino tegemiste kohta.

Praegu kood ei manipuleeri salvestatud heli, et see erinevalt kõlaks, kuid kavatsen lisada selle funktsiooni järgmisse versiooni, kus võib -olla saate potti abil helisignaali väljundsageduse määrata ja erinevat tüüpi helisid saada.

Ja olete valmis !!

Soovitan: