Mundarija:

STM32CubeMx mikrofoni (STM32F407VG): 5 qadam
STM32CubeMx mikrofoni (STM32F407VG): 5 qadam

Video: STM32CubeMx mikrofoni (STM32F407VG): 5 qadam

Video: STM32CubeMx mikrofoni (STM32F407VG): 5 qadam
Video: STM32 Микрофон и фильтр от статики 2024, Noyabr
Anonim
STM32CubeMx mikrofoni (STM32F407VG)
STM32CubeMx mikrofoni (STM32F407VG)

Salom! Ushbu loyihada biz ovozni mikrofon (tashqi mikrofon emas) yordamida qabul qilib, uni karnay orqali ijro etishga harakat qilamiz. Bu darslik juda qisqa bo'ladi, chunki men ba'zi videolarga asoslanib loyiha qismlari haqida tushuntirishlar beraman. Shunday qilib, loyihaga o'tamiz:)

1 -qadam: Dasturiy ta'minot va apparat talablari

Uskuna talablari:

  • STM32F4 kashfiyot kartasi (yoki boshqa STM32F4 kartasi)
  • MAX9814 kuchaytirgichli elektret mikrofon
  • PAM8403 audio kuchaytirgich moduli
  • 4 OHM dinamik

Dasturiy ta'minot talablari:

  • STM32CubeMX
  • Keil uVision 5

2 -qadam: Loyihaning rejasini aniqlang

Shunday qilib, avval nima qilmoqchi ekanligimizni tushunib olaylik. Birinchidan, biz elektret mikrofonidan ovoz olishni xohlaymiz. Ma'lumki, MCU hamma narsani raqamli tarzda qayta ishlaydi. Biroq, ovoz analog signaldir. Shunday qilib, biz uni raqamli signalga aylantirishimiz kerak va bu ADC (analogdan raqamli konvertor) tomonidan amalga oshiriladi va jarayon namuna olish deb ataladi. Qo'shimcha ma'lumotni qidirishingiz mumkin. Bu erda bitta muhim nuqta bor: karnaydan ovozni to'g'ri qabul qilish uchun namuna olish chastotasi chiqishdagi ovoz chastotasidan kamida ikki baravar yuqori bo'lishi kerak. Bu Nyquist-Shannon teoremasi deb ataladi.

Raqamli signalga o'tkazgandan so'ng, biz uni xohlaganimizcha qayta ishlashimiz va ovozni qayta chiqarishimiz mumkin. Biroq, karnayga analog signal kerak. Shunday qilib, biz bu raqamli signalni analogga aylantirishimiz kerak. Buning uchun biz DAC (raqamli -analogli konvertor) dan foydalanamiz. Oxirida biz bu ovozni chiqarishimiz mumkin:)

3 -qadam: DMA yordamida ADC va DAC -ni o'rnatish va amalga oshirish

Aytganimdek, men bu jarayonni videodan bilib oldim. Men bu videoga havolani beraman. Sabr qiling va diqqat bilan tinglang. U butun jarayonni mukammal tushuntiradi.

Havolalar: 1 -qism va 2 -qism

*Eslatma: Kodingizda ushbu qatorni tekshiring va DMA uzluksiz so'rovini yoqing:

hadc1. Init. DMAContinuousRequests = ENABLE;

4 -qadam: Karnayga chiqish

Spikerga chiqish
Spikerga chiqish

Barcha qadamlarni bajarganingizdan so'ng, karnayni yuqoridagi rasm sifatida ulashingiz kerak. Shundan so'ng, telefoningizda ovozni o'ynating va ovozni deyarli eshitmaydigan darajada kamaytiring. Keyin telefonni mikrofon yoniga olib boring, shunda siz karnaydan baland ovozda eshitasiz. Mikrofon bilan gaplashmang, chunki dinamikdan chiqadimi yoki yo'qligini tushunish qiyin bo'ladi:)

5 -qadam: Xulosa

Shunday qilib, biz loyihaning oxiriga yetdik. Agar sizda biron bir savol yoki muammo bo'lsa, so'rashdan tortinmang:)

Tavsiya: