Проект разработки VR-джойстика с поддержкой голосового управления выполнен с применением следующих устройств:
- плата STM32F3 Discovery с гироскопом L3GD20 и акселерометром LSM303DLHC на борту;
- микрофон MAX9814;
- микроконтроллер ESP32;
- ЖК-дисплей LCD1602.
Принцип работы устройства можно разделить на 2 этапа:
1. Определение положения углов пространственного положения;
2. Реализация голосового управления.
Алгоритм определения положения углов пространственного положения следующий:
1. Микроконтроллер STM32F303VCT6 опрашивает гироскоп и акселерометр;
2. По полученным данным с акселерометра и гироскопа выполняется фильтрация данных и расчет углов положения платы в пространстве;
3. Полученные значения углов передаются на ПК с помощью интерфейса USB-HID и на ЖК дисплей LCD1602.
Алгоритм реализации голосового управления следующий:
1. Аналоговый сигнал с микрофона MAX9814 преобразуется в цифровой с помощью АЦП
микроконтроллера STM32F303VCT6;
2. Полученный с помощью АЦП цифровой сигнал передается по интерфейсу UART в микроконтроллер ESP32;
3. Микроконтроллер ESP32 выполняет https запрос на сервис yandex-speech. Сервис yandex-speech преобразует голосовую команду в текстовый вид и возвращает текстовую строку обратно в микроконтроллер ESP32;
4. ESP32 передает текстовую строку (распознанную голосовую команду) обратно в STM32 по интерфейсу UART.
Проект для STM32F3VCT6 написан в среде CooCox на языке C с использованием библиотеки SPL и ОС FreeRTOS.
Проект для ESP32 написан в среде ESP-IDE на языке C.
Ссылка с проектом на github:
https://github.com/trifonov-yuriy/VR-Joystick-with-voice-control-support/tree/main