Turinys:

STM32CubeMx mikrofonas (STM32F407VG): 5 žingsniai
STM32CubeMx mikrofonas (STM32F407VG): 5 žingsniai

Video: STM32CubeMx mikrofonas (STM32F407VG): 5 žingsniai

Video: STM32CubeMx mikrofonas (STM32F407VG): 5 žingsniai
Video: STM32 - программирование для начинающих. Пошагово. CubeMX CubeIDE 2024, Liepa
Anonim
STM32 „CubeMx“mikrofonas (STM32F407VG)
STM32 „CubeMx“mikrofonas (STM32F407VG)

Sveiki! Šiame projekte mes stengsimės gauti garsą naudodami mikrofoną (išorinį, o ne įmontuotą mikrofoną) ir leisti jį per garsiakalbį. Ši pamoka bus labai trumpa, nes paaiškinsiu projekto dalis, remdamasi kai kuriais vaizdo įrašais. Taigi, pradėkime nuo projekto:)

1 žingsnis: Programinės įrangos ir aparatūros reikalavimai

Techninės įrangos reikalavimai:

  • STM32F4 atradimo lenta (arba bet kuri kita STM32F4 plokštė)
  • MAX9814 elektretinis mikrofonas su stiprintuvu
  • PAM8403 garso stiprintuvo modulis
  • 4 OHM garsiakalbis

Programinės įrangos reikalavimai:

  • STM32CubeMX
  • Keil uVision5

2 žingsnis: nustatykite projekto planą

Taigi, pirmiausia supraskime, ką norime padaryti. Pirma, mes norime gauti garsą iš elektreto mikrofono. Kaip žinote, MCU viską tvarko skaitmeniniu būdu. Tačiau garsas yra analoginis signalas. Taigi, mes turime jį paversti skaitmeniniu signalu ir tai daro ADC (analoginis į skaitmeninį keitiklį), o procesas vadinamas atranka. Galite ieškoti daugiau informacijos. Čia yra vienas svarbus dalykas: norint tinkamai išgirsti garsiakalbį, mėginių ėmimo dažnis turi būti bent du kartus didesnis nei garso dažnis išvestyje. Tai vadinama Nyquist-Shannon teorema.

Konvertavę jį į skaitmeninį signalą, galime jį apdoroti taip, kaip norime, ir tada vėl išleisti tą garsą. Tačiau garsiakalbiui reikia analoginio signalo. Taigi, turime konvertuoti šį skaitmeninį signalą į analoginį. Tam naudosime skaitmeninį analoginį keitiklį (DAC). Pabaigoje galime išleisti tą garsą:)

3 žingsnis: Kaip nustatyti ir įdiegti ADC ir DAC naudojant DMA

Kaip jau sakiau, šio proceso išmokau ir iš vaizdo įrašo. Pateiksiu šio vaizdo įrašo nuorodą. Būkite kantrūs ir atidžiai klausykitės. Jis puikiai paaiškina visą procesą.

Nuorodos: 1 ir 2 dalys

*Pastaba: pažymėkite šią kodo eilutę ir įgalinkite nuolatinę DMA užklausą:

hadc1. Init. DMAContinuousRequests = ĮJUNGTI;

4 žingsnis: eikite į garsiakalbį

Išeikite pas garsiakalbį
Išeikite pas garsiakalbį

Atlikę visus veiksmus, turite prijungti garsiakalbį, kaip parodyta aukščiau. Po to paleiskite garsą savo telefone ir sumažinkite garsą iki ribos, kurią beveik negirdite. Tada prijunkite telefoną prie mikrofono ir garsiai girdėsite garsiakalbio garsą. Nekalbėkite su mikrofonu, nes bus sunku suprasti, ar garsiakalbis išleidžia garsą, ar ne:)

5 žingsnis: Išvada

Taigi, mes pasiekėme projekto pabaigą. Jei turite kokių nors klausimų ar problemų, nedvejodami klauskite:)

Rekomenduojamas: