Sisällysluettelo:

Arduinosta tulee puhuva Tom: 6 vaihetta
Arduinosta tulee puhuva Tom: 6 vaihetta

Video: Arduinosta tulee puhuva Tom: 6 vaihetta

Video: Arduinosta tulee puhuva Tom: 6 vaihetta
Video: Автомобильный кемпинг на горе - тент для палатки и грузовика 2024, Marraskuu
Anonim
Arduinosta tulee puhuva Tom
Arduinosta tulee puhuva Tom
Arduinosta tulee puhuva Tom
Arduinosta tulee puhuva Tom

Yksi vanhimmista muistoistani älypuhelimen käytöstä oli Talking Tom -pelin pelaaminen. Peli oli aika yksinkertainen. On kissa nimeltä Tom, joka osaa puhua. Pelissä Tom kuunteli kaikki tulot puhelimen mikrofonin kautta ja toisti sitten kaiken, mitä se kuuli. Joten mitä tahansa Tomille sanoisikaan, se vain toistaa saman asian omalla karkealla äänellään.

Vaikka tämä kuulostaa yksinkertaiselta, tämä koko menettely vaatii monia monimutkaisia vaiheita, kuten näytteenoton mikrofonin analogisesta tulosta digitaalisessa muodossa, äänen manipuloinnin, jotta Tom saa ainutlaatuisen äänen ja rekonstruoi sitten signaalin kaikista näistä digitaalisista arvoista toistamaan sen kaiuttimen kautta. Kaikki nämä monimutkaiset vaiheet, mutta älypuhelin hoiti sen kuin viehätys jopa 9-10 vuotta sitten!

Mielenkiintoista olisi nähdä, voidaanko sama tehdä halvalla mikrokontrolleripohjaisella Arduino -kortilla. Joten tässä opastettavassa aion näyttää, kuinka voit tehdä yksinkertaisen Talking Tomin kaltaisen projektin Arduinosta ja jostakin muusta edullisesta elektroniikasta.

Tämä ohje on kirjoitettu yhteistyössä Hathinhack Makerspacen kanssa Delhissä

HUOMAUTUS: Tämä ohje on projektin ensimmäinen versio, joka täydentää Talking Tomin Talking -ominaisuuden, jossa arduino voi toistaa mitä sanot sille. Äänenvaihto -osa käsitellään tulevassa versiossa, vaikka Arduinon sisäänrakennetun ADC: n pienemmän resoluution vuoksi tallennettu ääni kuulostaa jo hieman erilaiselta: P (Tämä näkyy selvästi projektivideossa).

Aloitetaan siis!

Vaihe 1: Käytetyt materiaalit

Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit

Laitteisto:

  • Arduino UNO
  • MAX4466 -mikrofonimoduuli, jossa säädettävä vahvistus
  • SPI -pohjainen SD -kortinlukijamoduuli
  • Sd-kortti
  • Äänenvahvistin, kuten PC -kaiutin, PAM8403 -vahvistinmoduuli jne.
  • Kaiuttimet vahvistimeen liittämistä varten
  • Naarasääniliitin
  • 1 x 1 k ohmin vastus
  • 2 x 10 k ohmin vastus
  • 1 x 10uF kondensaattori
  • 2 x painike
  • Hyppyjohdot

Ohjelmisto:

  • Arduino IDE
  • Audacity (valinnainen)
  • TMRpcm ja SD -kirjasto Arduinolle

Vaihe 2: Peruskuva projektista

Projektissa on pääasiassa 2 ominaisuutta:

  • Se voi toistaa satunnaisesti valitun äänen joukosta esiasennettuja äänitiedostoja SD-kortilta äänitehosteita varten jne.
  • Se voi tallentaa äänitulon mikrofonista ja toistaa sen heti, kun tallennus lopetetaan. Tämän avulla arduino voi toistaa kaiken, mitä se kuuli mikrofonin kautta.

Projektin käyttöliittymä koostuu pääasiassa kahdesta painikkeesta, joista jokainen vastaa yhtä yllä olevista ominaisuuksista.

Tärkein kova työ äänitiedostojen tallentamisesta ja toistamisesta SD -kortilta hoidetaan TMRpcm -kirjastossa

Äänitallennus käyttää MAX4466 -mikrofonimoduulia, arduinon sisäistä ADC: tä ja TMRpcm -kirjastoa näytteenottoon äänestä ja sen tallentamiseen väliaikaisesti SD -kortille.wav -tiedostona toistoa varten..wav -äänitiedostot käyttävät PCM (Pulse Code Modulation) -toimintoa äänitietojen tallentamiseen digitaalisessa muodossa, jotta niitä voidaan helposti toistaa. Yleensä on parempi käyttää ulkoista ADC: tä äänipohjaisiin projekteihin, koska Arduinon ADC: n resoluutio ei ole niin korkea, mutta se toimii tässä projektissa.

Äänitiedostojen (esiasennettu ja tallennettu) toisto tapahtuu myös TMRpcm-kirjaston avulla, joka lähettää äänen PWM-signaalina arduinon PWM-yhteensopivasta nastasta. Tämä signaali syötetään sitten RC -suodattimeen analogisen signaalin saamiseksi, joka sitten syötetään vahvistimeen äänen toistamiseksi kaiuttimen kautta. Tässä osassa voit käyttää myös ulkoista DAC -laitetta, koska arduino ei sisällä sitä sisäisesti. DAC: n käyttö saattaa olla parempi vaihtoehto, koska se parantaisi merkittävästi äänenlaatua.

Tiedonsiirto SD -korttimoduulin ja arduinon välillä tapahtuu SPI: n (Serial peripheral Interface) kautta. Koodi käyttää SD- ja SPI -kirjastoa päästäkseen helposti käsiksi SD -kortin sisältöön.

Vaihe 3: Valmistele SD -kortti ja liitä SD -korttimoduuli

Valmistele SD -kortti ja liitä SD -korttimoduuli
Valmistele SD -kortti ja liitä SD -korttimoduuli
Valmistele SD -kortti ja liitä SD -korttimoduuli
Valmistele SD -kortti ja liitä SD -korttimoduuli
Valmistele SD -kortti ja liitä SD -korttimoduuli
Valmistele SD -kortti ja liitä SD -korttimoduuli
Valmistele SD -kortti ja liitä SD -korttimoduuli
Valmistele SD -kortti ja liitä SD -korttimoduuli
  • Aluksi sinun on alustettava SD -kortti FAT16- tai FAT32 -tiedostojärjestelmällä (voit käyttää älypuhelinta SD -kortin alustamiseen).
  • Asenna nyt joitakin.wav-äänitiedostoja SD-kortille. Voit luoda.wav -tiedostoja Audacityllä (katso alla olevat ohjeet). Muista nimetä tiedostot audio_1.wav, audio_2.wav, audio_3.wav ja niin edelleen.

SD -korttimoduuli käyttää SPI: tä tietojen välittämiseen arduinon kanssa. Siksi se muodostaa yhteyden vain niihin nastoihin, joissa SPI on käytössä. Nämä liitännät ovat seuraavat:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - nasta 11
  • MISO (Master In Slave Out) - nasta 12
  • CLK (Kello) - nasta 13
  • SS/CS (orjavalinta/sirun valinta) - nasta 10

. Wav -tiedoston luominen Audacity -ohjelmistolla:

  • Avaa äänitiedosto, jonka haluat muuntaa.wav -muotoon Audacityssä.
  • Napsauta tiedoston nimeä ja valitse sitten Split Stereo to Mono. Tämä vaihtoehto jakaa stereoäänen kahteen monokanavaan. Voit nyt sulkea yhden kanavista.
  • Muuta projektinopeuden arvo alareunassa arvoon 16000 Hz. Tämä arvo vastaa arduinon sisäisen ADC: n maksiminäytteenottotaajuutta.
  • Nyt pääsin Tiedosto-> Vie/Vie WAV: na.
  • Valitse sopiva sijainti ja tiedoston nimi. Valitse koodausvalikosta 'Unsigned 8-bit PCM', koska käytämme PCM-muotoa äänen tallentamiseen digitaalisessa muodossa.

Vaihe 4: Liitä äänilähtö ja mikrofoni

Liitä äänilähtö ja mikrofoni
Liitä äänilähtö ja mikrofoni
Liitä äänilähtö ja mikrofoni
Liitä äänilähtö ja mikrofoni
Liitä äänilähtö ja mikrofoni
Liitä äänilähtö ja mikrofoni
Liitä äänilähtö ja mikrofoni
Liitä äänilähtö ja mikrofoni

Mikrofonin liittäminen:

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

HUOMAUTUS:

  • Yritä kytkeä mikrofoni suoraan arduinoon sen sijaan, että käytät leipälevyä, koska se voi aiheuttaa tarpeetonta kohinaa tulosignaalissa.
  • Varmista, että juotat mikrofonimoduulin otsikot puhtaasti, koska huonot juotosliitokset tuottavat myös melua.
  • Tässä mikrofonimoduulissa on säädettävä vahvistus, jota voidaan ohjata levyn takana olevan potin avulla. Ehdotan, että pidät vahvistuksen jonkin verran pienenä, koska se ei vahvista kohinaa kovin paljon, kun voisit puhua pitämällä sen lähellä suutasi, mikä johtaa puhtaampaan ulostuloon.

Audiolähdön liittäminen:

  • Aseta 10 uF: n kondensaattori ja 1 k ohmin vastus sarjaan leipälevylle siten, että kondensaattorin positiivinen osa on kytketty vastukseen. Nämä yhdessä muodostavat RC -suodattimen, joka muuntaa PWM -lähdön analogiseksi signaaliksi, joka voidaan syöttää vahvistimeen.
  • Liitä Arduinon nasta 9 vastuksen toiseen päähän.
  • Kondensaattorin negatiivinen liitin kytketään naarasääniliittimen vasempaan ja oikeaan kanavaan.
  • Audioliittimen GND kytketään GND: hen.
  • Audioliitin on liitetty vahvistimeen Aux -kaapelilla. Minun tapauksessani käytin tietokoneen kaiutinjärjestelmää.

HUOMAUTUS:

PWM: n käyttäminen äänilähtönä ei ehkä ole paras vaihtoehto, koska ulkoinen DAC tarjoaa paljon paremman resoluution ja laadun. Lisäksi RC -suodattimen kondensaattori ja vastus voivat aiheuttaa ei -toivottua kohinaa. Mutta silti tulos oli melko kunnollinen tälle projektille

Vaihe 5: Yhdistä painikkeet

Kiinnitä painikkeet
Kiinnitä painikkeet
Kiinnitä painikkeet
Kiinnitä painikkeet
Kiinnitä painikkeet
Kiinnitä painikkeet

Projekti käyttää painikkeita käyttöliittymänä. Molemmat suorittavat erilaisia toimintoja ja niitä käytetään eri tavalla, mutta niillä on sama johdotus. Niiden yhteys on seuraava:

  • Aseta painikkeet leipäpöydälle.
  • Kiinnitä yhden painikkeen liitin arduinon nastaan 2 10 k ohmin vetovastuksella. Painikkeen toinen liitin kytketään 5V: iin. Joten, kun painiketta painetaan, nasta 2 on KORKEA ja voimme havaita sen koodissa.
  • Toinen painike yhdistetään samalla tavalla arduinon nastalla 3 2: n sijasta.

Nastaan 2 liitetty painike toistaa satunnaisen äänitiedoston SD-kortille esiasennetuista äänitiedostoista, kun sitä painetaan kerran.

Nastaan 3 liitetty painike on tallennusta varten. Sinun on pidettävä tätä painiketta painettuna tallennusta varten. Arduino aloittaa tallennuksen heti, kun tätä painiketta painetaan, ja lopettaa tallennuksen, kun tämä painike vapautetaan. Tallennuksen pysäyttämisen jälkeen se toistaa välittömästi kyseisen tallennuksen.

Vaihe 6: Lataa koodi

Lataa koodi
Lataa koodi
Lataa koodi
Lataa koodi
Lataa koodi
Lataa koodi

Ennen kuin lataat koodin, varmista, että olet asentanut kaikki tarvittavat kirjastot, kuten TMRpcm, SD jne.

Voit myös avata sarjamonitorin koodin lataamisen jälkeen saadaksesi palautteen siitä, mitä arduino tekee.

Tällä hetkellä koodi ei manipuloi tallennettua ääntä, jotta se kuulostaisi erilaiselta, mutta aion sisällyttää tämän ominaisuuden seuraavaan versioon, jossa saatat pystyä asettamaan äänisignaalin lähtötaajuuden potin avulla ja saamaan erilaisia ääniä.

Ja olet valmis !!

Suositeltava: