Talaan ng mga Nilalaman:

Naging Pakikipag-usap si Arduino Tom: 6 na Hakbang
Naging Pakikipag-usap si Arduino Tom: 6 na Hakbang

Video: Naging Pakikipag-usap si Arduino Tom: 6 na Hakbang

Video: Naging Pakikipag-usap si Arduino Tom: 6 na Hakbang
Video: Ang trabaho ko ay pagmamasid sa kagubatan at may kakaibang nangyayari dito. 2024, Nobyembre
Anonim
Si Arduino ay Naging Pakikipag-usap Tom
Si Arduino ay Naging Pakikipag-usap Tom
Si Arduino ay Naging Pakikipag-usap Tom
Si Arduino ay Naging Pakikipag-usap Tom

Ang isa sa aking pinakalumang alaala ng paggamit ng isang smartphone ay ang paglalaro ng 'Talking Tom' na laro. Ang laro ay medyo simple. Mayroong isang pusa, na pinangalanang Tom, na maaaring makipag-usap, uri ng. Sa laro, makikinig si Tom para sa anumang input sa pamamagitan ng mic ng telepono at pagkatapos ay ulitin ang anumang narinig. Kaya, anuman ang sabihin kay Tom, uulitin lamang ang parehong bagay sa sarili nitong matinis na tinig.

Habang tunog ito ay simple, ang buong pamamaraang ito ay nangangailangan ng maraming kumplikadong mga hakbang tulad ng pag-sample ng mic analog input sa digital form, pagmamanipula ng audio upang maibigay kay Tom ang natatanging tinig nito at pagkatapos ay muling itaguyod ang signal mula sa lahat ng mga halagang digital na i-play ito muli sa pamamagitan ng speaker. Ang lahat ng mga kumplikadong hakbang na ito, ngunit pinangasiwaan ito ng smartphone tulad ng isang alindog kahit 9 hanggang 10 taon na ang lumipas!

Ang kagiliw-giliw na bagay ay upang makita kung ang pareho ay maaaring gawin sa isang murang microcontroller batay sa Arduino board. Kaya, sa itinuturo na ito ay ipapakita ko kung paano ka makakagawa ng isang simpleng Pakikipag-usap Tom tulad ng proyekto mula sa isang Arduino at ilang iba pang murang electronics.

Ang itinuturo na ito ay isinulat sa pakikipagtulungan sa Hatchnhack Makerspace sa Delhi

TANDAAN: Ang itinuturo na ito ay ang unang bersyon ng proyekto na nakumpleto ang tampok na 'Pakikipag-usap' ng Talking Tom kung saan maaring ulitin ng arduino ang anumang sasabihin mo dito. Ang bahagi ng pagbabago ng boses ay sasakupin sa hinaharap na bersyon, bagaman, dahil sa mas kaunting resolusyon ng Arduino's sa built ADC ang naitala na audio ay medyo kakaiba ang tunog: P (Malinaw na mapapansin ito sa video ng proyekto).

Kaya Magsimula Na Tayo!

Hakbang 1: Ginamit na Mga Materyales

Mga Ginamit na Materyal
Mga Ginamit na Materyal
Mga Ginamit na Materyal
Mga Ginamit na Materyal
Mga Ginamit na Materyal
Mga Ginamit na Materyal

Hardware:

  • Isang Arduino UNO
  • MAX4466 microphone module na may Adjustable Gain
  • Batay sa module ng SD Card Reader na batay sa SPI
  • SD card
  • Audio Amplifier tulad ng PC speaker, PAM8403 amplifier module, atbp.
  • Mga nagsasalita para sa pagkonekta sa Amplifier
  • Babae Audio Jack
  • 1 x 1k ohm risistor
  • 2 x 10k ohm risistor
  • 1 x 10uF Capacitor
  • 2 x Push Button
  • Jumper Wires

Software:

  • Arduino IDE
  • Katapangan (opsyonal)
  • TMRpcm at SD library para sa Arduino

Hakbang 2: Isang Pangunahing Pangkalahatang-ideya ng proyekto

Pangunahing may 2 tampok ang proyekto:

  • Maaari itong maglaro ng isang sapalarang napiling audio mula sa isang hanay ng mga paunang naka-install na mga file na audio sa SD card para sa mga sound effects atbp.
  • Maaari itong magrekord ng input ng tunog mula sa mikropono at pagkatapos ay i-play ito muli sa sandaling tumigil ang pagrekord. Pinapayagan nito ang arduino na ulitin ang anumang narinig sa pamamagitan ng mic.

Ang User Interface ng proyekto higit sa lahat ay binubuo ng 2 mga pindutan ng push na bawat isa ay tumutugma sa isa sa tampok na nasa itaas.

Ang pangunahing pagsusumikap ng pagrekord at pag-play ng mga audio file mula sa SD card ay pinangangasiwaan ng TMRpcm library

Ginagamit ng audio recording ang MAX4466 mic module, panloob na ADC ng arduino at ang aklatan ng TMRpcm upang mai-sample ang audio at pagkatapos ay pansamantalang itago ito sa SD card bilang '.wav' file para sa pag-playback. Ang '.wav' audio files ay gumagamit ng PCM (Module ng Pulse Code) upang maiimbak ang data ng audio sa digital na format upang madali itong mai-play muli. Pangkalahatan, mas mahusay na gumamit ng isang panlabas na ADC para sa mga proyekto na batay sa audio dahil ang resolusyon ng Arduino's ADC ay hindi ganoon kataas ngunit gumagana ito para sa proyektong ito.

Ang pag-play ng mga audio file (paunang naka-install at naitala) ay tapos na rin sa tulong ng library ng TMRpcm na naglalabas ng audio bilang isang senyas ng PWM mula sa isang pin na pinagana ng PWM ng arduino. Ang signal na ito ay pagkatapos ay pinakain sa isang RC filter upang makakuha ng analog signal na pagkatapos ay pinakain sa isang amplifier para sa pag-play ng audio sa pamamagitan ng isang speaker. Para sa bahaging ito maaari mo ring gamitin ang isang panlabas na DAC dahil ang arduino ay walang isang panloob. Ang paggamit ng isang DAC ay maaaring maging isang mas mahusay na pagpipilian dahil makabubuti nitong mapabuti ang kalidad ng audio.

Ang komunikasyon sa pagitan ng module ng SD card at arduino ay ginagawa sa pamamagitan ng SPI (Serial peripheral Interface). Ang code, ginagamit ang SD & SPI library upang madaling ma-access ang mga nilalaman ng SD card.

Hakbang 3: Ihanda ang SD Card at Ikonekta ang Module ng SD Card

Ihanda ang SD Card at Ikonekta ang Module ng SD Card
Ihanda ang SD Card at Ikonekta ang Module ng SD Card
Ihanda ang SD Card at Ikonekta ang Module ng SD Card
Ihanda ang SD Card at Ikonekta ang Module ng SD Card
Ihanda ang SD Card at Ikonekta ang Module ng SD Card
Ihanda ang SD Card at Ikonekta ang Module ng SD Card
Ihanda ang SD Card at Ikonekta ang Module ng SD Card
Ihanda ang SD Card at Ikonekta ang Module ng SD Card
  • Una kailangan mong i-format bilang SD card na may isang FAT16 o FAT32 file system (Maaari mong gamitin ang iyong smartphone upang mai-format ang SD card).
  • Paunang pag-install ng ilang.wav audio file sa SD card. Maaari kang makabuo ng mga.wav file na may Audacity (tingnan ang mga tagubilin sa ibaba). Tandaan na pangalanan ang mga file bilang audio_1.wav, audio_2.wav, audio_3.wav at iba pa.

Ang module ng SD card ay gumagamit ng SPI upang maipaabot ang data sa arduino. Samakatuwid, kumokonekta lamang ito sa mga pin na pinagana ng SPI. Ang mga koneksyon na ito ay ang mga sumusunod:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - pin 11
  • MISO (Master In Slave Out) - pin 12
  • CLK (Clock) - pin 13
  • SS / CS (Select Slave / Chip Select) - pin 10

Bumubuo ng '.wav' file na may Audacity Software:

  • Buksan ang audio file na nais mong i-convert sa.wav sa Audacity.
  • Mag-click sa pangalan ng file at pagkatapos ay piliin ang 'Split Stereo to Mono'. Hinahati ng pagpipiliang ito ang stereo audio sa dalawang mono channel. Maaari mo na ngayong isara ang isa sa mga channel.
  • Baguhin ang halagang 'Project Rate' sa ibaba sa 16000 Hz. Ang halagang ito ay tumutugma sa pinakamataas na dalas ng sampling ng panloob na ADC ng arduino.
  • Nakuha ngayon ang File-> Export / Export bilang WAV.
  • Piliin ang naaangkop na lokasyon at pangalan ng file. Mula sa menu ng pag-encode piliin ang 'Unsigned 8-bit PCM' habang ginagamit namin ang format ng PCM upang maiimbak ang audio sa digital format.

Hakbang 4: Ikonekta ang Audio Output & Microphone

Ikonekta ang Audio Output at Mikropono
Ikonekta ang Audio Output at Mikropono
Ikonekta ang Audio Output at Mikropono
Ikonekta ang Audio Output at Mikropono
Ikonekta ang Audio Output at Mikropono
Ikonekta ang Audio Output at Mikropono
Ikonekta ang Audio Output at Mikropono
Ikonekta ang Audio Output at Mikropono

Pagkonekta sa Mikropono:

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

TANDAAN:

  • Subukang ikonekta ang mikropono nang direkta sa arduino sa halip na gumamit ng isang breadboard dahil maaari itong magbuod ng hindi kinakailangang ingay sa input signal.
  • Siguraduhin na malinis na maghinang ng mga header sa module ng mikropono dahil ang masamang mga solder joint ay gumagawa din ng ingay.
  • Ang module ng mikropono na ito ay may naaayos na pakinabang na maaaring makontrol sa tulong ng isang palayok sa likuran ng board. Iminumungkahi ko sa iyo na panatilihing mababa ang nakuha habang hindi ito magpapalakas ng ingay habang masasalita mong pinapanatili ito malapit sa iyong bibig na nagreresulta sa isang mas malinis na output.

Pagkonekta sa Audio Output:

  • Ilagay ang 10 uF Capacitor at ang 1k ohm risistor sa serye sa breadboard na may positibo ng capacitor na konektado sa risistor. Ang mga ito ay sama-sama na bumubuo ng isang RC filter na kung saan-convert ang output ng PWM sa analog signal na maaaring pinakain sa amplifier.
  • Ikonekta ang pin 9 ng Arduino sa kabilang dulo ng risistor.
  • Ang negatibong terminal ng Capacitor ay nakakakonekta sa kaliwa at kanang channel ng babaeng audio jack.
  • Ang GND ng Audio jack ay nakakakonekta sa GND.
  • Ang audio jack ay konektado sa amplifier gamit ang isang Aux Cable. Sa aking kaso ginamit ko ang Speaker System ng aking PC.

TANDAAN:

Ang paggamit ng PWM bilang audio output ay maaaring hindi ang pinakamahusay na pagpipilian bilang isang panlabas na DAC ay magbibigay ng mas mahusay na resolusyon at kalidad. Bilang karagdagan, ang capacitor at resistor sa RC filter ay maaaring magbuod ng hindi ginustong ingay. Ngunit ang output ay medyo disente para sa proyektong ito

Hakbang 5: Wire Up the Buttons

Wire Up the Buttons
Wire Up the Buttons
Wire Up the Buttons
Wire Up the Buttons
Wire Up the Buttons
Wire Up the Buttons

Gumagamit ang proyekto upang itulak ang mga pindutan bilang interface ng gumagamit. Parehong nagsasagawa ng iba't ibang mga pag-andar at ginagamit nang magkakaiba ngunit may parehong mga kable. Ang kanilang koneksyon ay ang mga sumusunod:

  • Ilagay ang mga pindutan sa breadboard.
  • Maglakip ng isang terminal ng isa sa mga pindutan upang i-pin ang 2 ng arduino gamit ang isang 10k ohm pull down resistor. Ang iba pang mga terminal ng pindutan ay nakakakonekta sa 5v. Kaya, kapag pinindot ang pindutan ang pin 2 ay nakakakuha ng TAAS at maaari nating makita iyon sa code.
  • Ang iba pang pindutan ay nakakakonekta nang pareho sa pin 3 ng arduino sa halip na 2.

Ang pindutang nakakonekta sa pin 2 ay gumaganap ng isang random na audio file mula sa hanay ng mga paunang naka-install na audio file sa SD Card kapag pinindot ito nang isang beses.

Ang pindutan na konektado sa pin 3 ay para sa pagrekord. Kailangan mong pindutin nang matagal ang pindutan na ito para sa pagrekord. Ang arduino ay nagsisimulang magrekord sa sandaling ang pindutan na ito ay pinindot at ititigil ang pagre-record kapag ang pindutan na ito ay pinakawalan. Matapos itigil ang pagre-record, agad nitong i-replay ang recording.

Hakbang 6: I-upload ang Code

I-upload ang Code
I-upload ang Code
I-upload ang Code
I-upload ang Code
I-upload ang Code
I-upload ang Code

Bago i-upload ang code, tiyaking na-install mo na ang lahat ng kinakailangang aklatan tulad ng TMRpcm, SD atbp.

Maaari mo ring buksan ang Serial Monitor pagkatapos mag-upload ng code upang makakuha ng isang puna sa ginagawa ng arduino.

Sa kasalukuyan ang code ay hindi pagmamanipula ng naitala na audio upang maiba ang tunog nito ngunit balak kong isama ang tampok na ito sa susunod na bersyon kung saan maaari mong maitakda ang dalas ng output ng audio signal sa tulong ng palayok at makakuha ng iba't ibang mga uri ng tunog.

At Tapos Na !!

Inirerekumendang: