wifi микрофон stm32 esp8266 HD
stm32 esp8266 самодельный wifi микрофон. Применен микроконтроллер stm32f103c8t6 и wifi модуль esp8266.Модуль esp8266 управляется AT командами. Для захвата звука применен микрофонный модуль MAX9814. Вкратце по работе проекта. Задействовано два канала ДМА один работает на передачу из периферии в память другой наоборот. Первый канал ДМА работает с АЦП забирает из него данные и собирает в буфер. Захват данных АЦП работает с частотой 8 килогерц(есть тесты с частотой 48 kHz), по триггеру обновления таймера 3. Четвертый канал ДМА передает кодированные данные в USART. Кодирование данных буфера из 512 значений захваченных АЦП , занимает не более 1 ms.Работает это все в следующей последовательности. Таймер запускает преобразование АЦП с частотой 8 килогерц , по окончанию каждого преобразования АЦП отправляет запрос ДМА на передачу данных. Когда ДМА заполнит половину буфера данными с АЦП, мы попадем в прерывание, т.к. будет передана половина данных, на которые мы настраивали ДМА. Данное прерывание нужно было разрешить, что заделано здесь. Далее выставляем флаг, что половина буфера уже готова и очищаем флаг прерывания. Дальше в основном цикле проверяем, если буфер еще не обработан, обрабатываем его, т.е. кодируем и запускаем 4 канал ДМА на передачу этих данных, далее у нас будет заполнена вторая часть буфера значениями с АЦП и все повторяется. Для захвата звука был применен микрофонный модуль на базе max9814,на выходе которого, присутствует постоянное смещение относительно нуля, около 1.5В. Которое можно было очень легко убрать используй я инжектированный канал . У них есть следующая фишка, т.е можно указать значение, которое будет вычитаться из измеренного и сразу получить положительные и отрицательные значения, но лень матушка берет свое. 00:00 тест 8 и 16 kHz. 01:54 первый тест и неудача 8 kHz. Настройка cubemx stm32 : 02:40 тактирование. 02:50 настройка таймера. 03:12 stm32 настройка АЦП и ДМА. 03:35 настройка stm32 USART DMA . 04:07 опция сборки под HAL_LL. 04:12 тест записи звука, при частоте дискретизации 16 kHz. Разбираю сгенерированные функции(низкоуровневые драйвера периферии): 04:12 настройка GPIO. 05:08 ковыряю HAL_LL разбираюсь, как работает. 07:23 функция настройки таймера. 08:00 тест записи звука, при частоте дискретизации 36 kHz. 08.30 функция настройки USART и DMA. 09:20 stm32 инициализация DMA. 09:35 настройка АЦП и DMA. 10:10 окончательная настройка DMA, то что пришлось настраивать самому!!! 11:54 wifi микрофон как он работает?. 12:40 микрофонный модуль MAX9814. 12.52 почему лучше использовать было инжектированный канал АЦП. 13:04 тест записи звука, при частоте дискретизации 48 kHz. 13:25 настройка stm32 esp8266 at команды режим моста 13:42 серверная в часть для записи в .wav формат на python 13:57 кодирование данных с АЦП кодек G711. 17:08 тест записи звука, при частоте дискретизации 48 kHz. 17:18 самодельный wi-fi микрофон в разобранном виде!!! Ссылка на проект и доп инструкции https://drive.google.com/open?id=1kIhgnhAtyQicB-o
Похожие видео
Показать еще