Satura rādītājs:
- 1. darbība. Izmantotie materiāli
- 2. darbība. Pamata pārskats par projektu
- 3. darbība: sagatavojiet SD karti un pievienojiet SD kartes moduli
- 4. darbība: pievienojiet audio izvadi un mikrofonu
- 5. solis: pievienojiet pogas vadiem
- 6. darbība: augšupielādējiet kodu
Video: Arduino kļūst par runājošu Tomu: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
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
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
- 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
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
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
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:
Maršrutētājs kļūst par IP kameru video ierakstītāju: 3 soļi
Maršrutētājs kļūst par IP kameru video ierakstītāju: dažiem maršrutētājiem ir jaudīgs centrālais procesors un USB ports, un tos var izmantot kā video ierakstītāju papildus maršrutēšanas funkcijām, lai savāktu un izplatītu video un skaņu no tikai straumētām IP kamerām H264/265 RTSP (kā vismodernākais lētais hi
Televizora tālvadības pults kļūst par RF tālvadības pulti -- NRF24L01+ apmācība: 5 soļi (ar attēliem)
TV tālvadības pults kļūst par RF tālvadības pulti || NRF24L01+ apmācība: Šajā projektā es jums parādīšu, kā es izmantoju populāro nRF24L01+ RF IC, lai bezvadu režīmā pielāgotu LED sloksnes spilgtumu, izmantojot trīs bezjēdzīgas TV tālvadības pults pogas. Sāksim
Mamuta pēdas kļūst aukstas (sily Solutions): 4 soļi
Mamuta pēdas kļūst aukstas (sily Solutions): Šajā projektā mamuta pēdas ir burtiski aukstas! Es pievienoju dažus baltus zābakus no vedņa, jo tie, iespējams, saglabās viņa kājas grauzdētas, tīras un stilīgas
Kā izveidot runājošu PIR kustības drošības sistēmu: 3 soļi
Kā izveidot runājošu PIR kustības drošības sistēmu: šajā video mēs izveidosim drošības sistēmu, kas nosaka kustību un runā. Šajā projektā PIR sensors nosaka kustību, un DFPlayer Mini MP3 modulis atskaņo iepriekš noteikto skaņu
Izveidojiet runājošu pulksteni: 10 soļi (ar attēliem)
Izveidojiet runājošu pulksteni: šis pulkstenis paziņo laiku, izmantojot savu balsi! Es to saliku kā cieņu vecajam Popkorna pakalpojumam Ziemeļkalifornijā. Jūs varat zvanīt uz POPCORN no jebkura tālruņa, un ieraksts parādīs diennakts laiku. Oriģināls