Mündəricat:

STM32CubeMx Mikrofonu (STM32F407VG): 5 addım
STM32CubeMx Mikrofonu (STM32F407VG): 5 addım

Video: STM32CubeMx Mikrofonu (STM32F407VG): 5 addım

Video: STM32CubeMx Mikrofonu (STM32F407VG): 5 addım
Video: STM32 Микрофон и фильтр от статики 2024, Noyabr
Anonim
STM32CubeMx Mikrofon (STM32F407VG)
STM32CubeMx Mikrofon (STM32F407VG)

Salam! Bu layihədə mikrofondan istifadə edərək səs almağa çalışacağıq (mikroavtobus xaricində deyil) və dinamikdən çalın. Bəzi videolara istinad edərək layihə hissələrinin izahlarını verəcəyim üçün bu dərs çox qısa olacaq. Beləliklə, layihəyə keçək:)

Addım 1: Proqram və Təchizat Tələbləri

Avadanlıq tələbləri:

  • STM32F4 kəşf lövhəsi (və ya hər hansı digər STM32F4 lövhəsi)
  • MAX9814 gücləndiricili elektret mikrofonu
  • PAM8403 səs gücləndirici modulu
  • 4 OHM dinamik

Proqram tələbləri:

  • STM32CubeMX
  • Keil uVision 5

Addım 2: Layihə Planını müəyyənləşdirin

Beləliklə, əvvəlcə nə etmək istədiyimizi anlayaq. Birincisi, elektret mikrofonundan səs almaq istəyirik. Bildiyiniz kimi, MCU hər şeyi rəqəmsal şəkildə emal edir. Ancaq səs analoq siqnaldır. Beləliklə, onu rəqəmsal siqnala çevirməliyik və bu ADC (analogdan rəqəmsal çeviriciyə) tərəfindən aparılır və prosesə nümunə deyilir. Ətraflı məlumat üçün axtarış edə bilərsiniz. Burada bir vacib məqam var: Dinamikdən uyğun bir şəkildə səs çıxarmaq üçün nümunə götürmə tezliyi çıxışdakı səs tezliyindən ən azı iki dəfə çox olmalıdır. Buna Nyquist-Shannon teoremi deyilir.

Rəqəmsal siqnala çevirdikdən sonra istədiyimiz kimi emal edə bilərik və sonra yenidən həmin səsi çıxara bilərik. Ancaq dinamikin analoq siqnala ehtiyacı var. Beləliklə, bu rəqəmsal siqnalın analoq geri çevrilməsinə ehtiyacımız var. Bunun üçün DAC (rəqəmsaldan analoqa çevirici) istifadə edəcəyik. Sonda bu səsi çıxara bilərik:)

Addım 3: ADMA və DAC -ı DMA ilə necə qurmaq və tətbiq etmək olar

Dediyim kimi, bu prosesi bir videodan da öyrəndim. Bu videonun linkini verəcəm. Səbirli olun və diqqətlə dinləyin. Bütün prosesi mükəmməl izah edir.

Bağlantılar: 1 -ci hissə və 2 -ci hissə

*Qeyd: Kodunuzda bu sətri yoxlayın və DMA davamlı istəyini aktiv edin:

hadc1. Init. DMAContinuousRequests = ENABLE;

Addım 4: Dinamikə çıxın

Dinamikə
Dinamikə

Bütün addımları etdikdən sonra yuxarıdakı şəkil kimi dinamikə qoşulmalısınız. Bundan sonra, telefonunuzda səs çalın və səsini çətinliklə eşidə biləcəyiniz həddə endirin. Sonra telefonu mikrofona yaxınlaşdırın və dinamikdən yüksək səs eşidəcəksiniz. Mikrofonla danışmayın, çünki dinamikdən çıxış olub olmadığını anlamaq çətin olacaq:)

Addım 5: Nəticə

Beləliklə, layihənin sonuna çatdıq. Hər hansı bir sualınız və ya probleminiz varsa, soruşmaqdan çəkinməyin:)

Tövsiyə: