Satura rādītājs:

Arduino kļūst par runājošu Tomu: 6 soļi
Arduino kļūst par runājošu Tomu: 6 soļi

Video: Arduino kļūst par runājošu Tomu: 6 soļi

Video: Arduino kļūst par runājošu Tomu: 6 soļi
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Novembris
Anonim
Arduino kļūst par runājošo Tomu
Arduino kļūst par runājošo Tomu
Arduino kļūst par runājošo Tomu
Arduino kļūst par runājošo Tomu

Viena no manām senākajām atmiņām par viedtālruņa lietošanu bija spēles “Runājošais Toms” spēlēšana. Spēle bija diezgan vienkārša. Ir kaķis, vārdā Toms, kurš var runāt. Spēlē Toms klausījās jebkuru ievadi, izmantojot tālruņa mikrofonu, un pēc tam atkārtoja visu dzirdēto. Tātad, ko lai saka Toms, tas tikai atkārtotu to pašu savā skaļajā balsī.

Lai gan tas izklausās vienkārši, visa šī procedūra prasa daudzas sarežģītas darbības, piemēram, paraugu ņemšanu no mikrofona analogās ieejas digitālā formā, manipulāciju ar audio, lai sniegtu Tomam unikālo balsi un pēc tam rekonstruētu signālu no visām šīm digitālajām vērtībām, lai atskaņotu to caur skaļruni. Visi šie sarežģītie soļi, bet viedtālrunis to risināja kā šarmu pat 9 līdz 10 gadus atpakaļ!

Interesanti būtu redzēt, vai to pašu var izdarīt ar lētu mikrokontrolleru balstītu Arduino plati. Tātad, šajā pamācībā es parādīšu, kā no Arduino un kādas citas lētas elektronikas var izveidot vienkāršu Talking Tom līdzīgu projektu.

Šī pamācība tika uzrakstīta sadarbībā ar Hatchnhack Makerspace Deli

PIEZĪME. Šī pamācība ir projekta pirmā versija, kas pabeidz Talking Tom funkciju “Runāšana”, kur arduino varēs atkārtot visu, ko tam sakāt. Balss maiņas daļa tiks apskatīta nākamajā versijā, lai gan, ņemot vērā mazāku Arduino iebūvētās ADC izšķirtspēju, ierakstītais audio jau izklausās nedaudz savādāk: P (to var skaidri pamanīt projekta video).

Tātad, sāksim!

1. darbība. Izmantotie materiāli

Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli
Izmantotie materiāli

Aparatūra:

  • Arduino UNO
  • MAX4466 mikrofona modulis ar regulējamu pastiprinājumu
  • Uz SPI balstīts SD karšu lasītāja modulis
  • SD karte
  • Audio pastiprinātājs, piemēram, datora skaļrunis, PAM8403 pastiprinātāja modulis utt.
  • Skaļruņi savienošanai ar pastiprinātāju
  • Sieviešu audio ligzda
  • 1 x 1k omu rezistors
  • 2 x 10k omu rezistors
  • 1 x 10uF kondensators
  • 2 x spiedpoga
  • Jumper vadi

Programmatūra:

  • Arduino IDE
  • Audacity (pēc izvēles)
  • TMRpcm un SD bibliotēka Arduino

2. darbība. Pamata pārskats par projektu

Projektam galvenokārt ir 2 iezīmes:

  • Tas var atskaņot nejauši izvēlētu audio no iepriekš instalētu audio failu kopas SD kartē skaņas efektiem utt.
  • Tas var ierakstīt skaņas ievadi no mikrofona un pēc tam to atskaņot, tiklīdz ierakstīšana tiek pārtraukta. Tas ļauj arduino atkārtot visu, ko dzirdējis caur mikrofonu.

Projekta lietotāja saskarne galvenokārt sastāv no 2 spiedpogām, no kurām katra atbilst kādai no iepriekš minētajām funkcijām.

Galveno smago darbu, ierakstot un atskaņojot audio failus no SD kartes, veic TMRpcm bibliotēka

Audio ieraksts izmanto MAX4466 mikrofona moduli, arduino iekšējo ADC un TMRpcm bibliotēku, lai izlasītu audio un pēc tam to īslaicīgi saglabātu SD kartē kā “.wav” failu atskaņošanai. '.wav' audio failos tiek izmantots PCM (impulsa koda modulācija), lai saglabātu audio datus digitālā formātā, lai tos varētu viegli atskaņot vēlreiz. Parasti uz audio balstītiem projektiem labāk ir izmantot ārēju ADC, jo Arduino ADC izšķirtspēja nav tik augsta, taču tā darbojas šim projektam.

Audio failu atskaņošana (iepriekš instalēta un ierakstīta) tiek veikta arī ar TMRpcm bibliotēkas palīdzību, kas izvada audio kā PWM signālu no arduino PWM iespējota tapas. Pēc tam šis signāls tiek ievadīts RC filtrā, lai iegūtu analogo signālu, kas pēc tam tiek ievadīts pastiprinātājā, lai atskaņotu audio caur skaļruni. Šajā daļā jūs varētu izmantot arī ārēju DAC, jo arduino iekšēji tāda nav. DAC izmantošana varētu būt labāka iespēja, jo tas ievērojami uzlabotu skaņas kvalitāti.

Saziņa starp SD kartes moduli un arduino tiek veikta, izmantojot SPI (seriālo perifēro saskarni). Šis kods izmanto SD un SPI bibliotēku, lai viegli piekļūtu SD kartes saturam.

3. darbība: sagatavojiet SD karti un pievienojiet SD kartes moduli

Sagatavojiet SD karti un pievienojiet SD kartes moduli
Sagatavojiet SD karti un pievienojiet SD kartes moduli
Sagatavojiet SD karti un pievienojiet SD kartes moduli
Sagatavojiet SD karti un pievienojiet SD kartes moduli
Sagatavojiet SD karti un pievienojiet SD kartes moduli
Sagatavojiet SD karti un pievienojiet SD kartes moduli
Sagatavojiet SD karti un pievienojiet SD kartes moduli
Sagatavojiet SD karti un pievienojiet SD kartes moduli
  • Vispirms jāformatē kā SD karte ar FAT16 vai FAT32 failu sistēmu (SD kartes formatēšanai varat izmantot viedtālruni).
  • Tagad iepriekš instalējiet dažus.wav audio failus SD kartē. Jūs varat ģenerēt.wav failus, izmantojot Audacity (skatiet tālāk sniegtos norādījumus). Atcerieties failus nosaukt kā audio_1.wav, audio_2.wav, audio_3.wav un tā tālāk.

SD kartes modulis izmanto SPI, lai sazinātos ar arduino. Tāpēc tas savienojas tikai ar tām tapām, kurās ir iespējota SPI. Šie savienojumi ir šādi:

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

. Wav faila ģenerēšana, izmantojot programmatūru Audacity:

  • Audacity atveriet audio failu, kuru vēlaties pārvērst par.wav.
  • Noklikšķiniet uz faila nosaukuma un pēc tam atlasiet “Split Stereo to Mono”. Šī opcija sadala stereo audio divos mono kanālos. Tagad jūs varat aizvērt vienu no kanāliem.
  • Mainiet “Project Rate” vērtību apakšā uz 16000 Hz. Šī vērtība atbilst arduino iekšējā ADC maksimālajai paraugu ņemšanas frekvencei.
  • Tagad dodieties uz Fails-> Eksportēt/Eksportēt kā WAV.
  • Izvēlieties atbilstošo faila atrašanās vietu un nosaukumu. Kodēšanas izvēlnē atlasiet “Neparakstīts 8 bitu PCM”, jo audio saglabāšanai digitālā formātā mēs izmantojam PCM formātu.

4. darbība: pievienojiet audio izvadi un mikrofonu

Pievienojiet audio izvadi un mikrofonu
Pievienojiet audio izvadi un mikrofonu
Pievienojiet audio izvadi un mikrofonu
Pievienojiet audio izvadi un mikrofonu
Pievienojiet audio izvadi un mikrofonu
Pievienojiet audio izvadi un mikrofonu
Pievienojiet audio izvadi un mikrofonu
Pievienojiet audio izvadi un mikrofonu

Mikrofona pievienošana:

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

PIEZĪME:

  • Mēģiniet pievienot mikrofonu tieši arduino, nevis izmantot maizes dēli, jo tas var izraisīt nevajadzīgu troksni ievades signālā.
  • Noteikti lodējiet mikrofona moduļa galvenes, jo slikti lodēšanas savienojumi arī rada troksni.
  • Šim mikrofona modulim ir regulējams pastiprinājums, ko var kontrolēt ar poda palīdzību tāfeles aizmugurē. Es ieteiktu jums saglabāt pastiprinājumu nedaudz zemu, jo tad troksnis netiks ļoti pastiprināts, kamēr jūs varētu runāt, turot to pie mutes, tādējādi iegūstot tīrāku izvadi.

Audio izejas pievienošana:

  • Ievietojiet 10 uF kondensatoru un 1k omu rezistoru virknē uz maizes dēļa ar kondensatora pozitīvo, kas pievienots rezistoram. Tie kopā veido RC filtru, kas pārveido PWM izeju par analogo signālu, ko var ievadīt pastiprinātājā.
  • Savienojiet Arduino 9. tapu ar pretestības otru galu.
  • Kondensatora negatīvais kontakts tiek savienots ar sieviešu audio ligzdas kreiso un labo kanālu.
  • Audio ligzdas GND tiek savienots ar GND.
  • Audio ligzda ir pievienota pastiprinātājam ar Aux kabeli. Manā gadījumā es izmantoju sava datora skaļruņu sistēmu.

PIEZĪME:

PWM izmantošana kā audio izeja varētu nebūt labākā iespēja, jo ārējais DAC nodrošinātu daudz labāku izšķirtspēju un kvalitāti. Turklāt kondensators un rezistors RC filtrā var izraisīt nevēlamu troksni. Bet tomēr šī projekta rezultāti bija diezgan pienācīgi

5. solis: pievienojiet pogas vadiem

Pievienojiet pogas vadiem
Pievienojiet pogas vadiem
Pievienojiet pogas vadiem
Pievienojiet pogas vadiem
Pievienojiet pogas vadiem
Pievienojiet pogas vadiem

Projekts izmanto pogu nospiešanu kā lietotāja interfeisu. Abas veic dažādas funkcijas un tiek izmantotas atšķirīgi, taču tām ir vienāda elektroinstalācija. To savienojums ir šāds:

  • Novietojiet pogas uz maizes dēļa.
  • Pievienojiet vienu no pogas spailēm arduino 2. tapai ar 10k omu nolaižamo rezistoru. Otrs pogas terminālis tiek savienots ar 5V. Tātad, nospiežot pogu, tapa 2 kļūst HIGH, un mēs to varam noteikt kodā.
  • Otra poga tiek savienota ar arduino tapu 3, nevis 2.

Poga, kas savienota ar 2. tapu, atskaņo nejaušu audio failu no SD kartes iepriekš instalēto audio failu kopas, kad tas tiek nospiests vienu reizi.

Poga, kas savienota ar 3. tapu, ir paredzēta ierakstīšanai. Lai ierakstītu, jums ir jānospiež un turiet šo pogu. Arduino sāk ierakstīšanu, tiklīdz tiek nospiesta šī poga, un pārtrauc ierakstīšanu, kad šī poga tiek atlaista. Pēc ierakstīšanas apturēšanas tas nekavējoties atkārto šo ierakstu.

6. darbība: augšupielādējiet kodu

Augšupielādējiet kodu
Augšupielādējiet kodu
Augšupielādējiet kodu
Augšupielādējiet kodu
Augšupielādējiet kodu
Augšupielādējiet kodu

Pirms koda augšupielādes pārliecinieties, vai esat instalējis visas nepieciešamās bibliotēkas, piemēram, TMRpcm, SD utt.

Varat arī atvērt seriālo monitoru pēc koda augšupielādes, lai saņemtu atsauksmes par arduino darbību.

Pašlaik kods nemanipulē ar ierakstīto audio, lai tas izklausītos citādi, bet es plānoju iekļaut šo funkciju nākamajā versijā, kur, iespējams, varēsit iestatīt audio signāla izejas frekvenci, izmantojot katlu un iegūt dažāda veida skaņas.

Un Tu esi Gatavs !!

Ieteicams: