Самодельный головной трекер с нулевой конфигурацией и автоматической калибровкой
Head Tracker работает на платах Seeeduino XIAO BLE Sense и Arduino Nano 33 BLE и подключается к радиомодулям OpenTX и ETHOS через проводную (PPM) или беспроводную (Bluetooth) связь для обучения.
Быстрая установка
- Купить плату Seeeduino XIAO BLE Sense
- Флеш-прошивка
- Подключите плату к компьютеру
- Двойное нажатие на
RST
кнопку на плате (маленькая, рядом с разъемом USB-C),XIAO-SENSE
всплывает USB-накопитель - Скачать
ht_xiao-ble_x.x.x.uf2
из последней версии - Скопируйте файл на
XIAO-SENSE
USB-накопитель - USB-накопитель отключается и перезагружается (поздравляю! Теперь у вас есть хедтрекер!)
- Подключиться к своему радио
- Поднимите свое радио с беспроводной связью тренера (Bluetooth)
все последние радиостанции FrSky имеют беспроводной тренажер, популярные TX16S могут быть модифицированы для поддержки Bluetooth - Подключите плату XIAO BLE Sense в качестве беспроводного тренажера,
узнайте идентификатор платы через последовательную консоль , подключив небольшой экран (см. ниже) или прогуливаясь с ноутбуком, радио и доской вдали от других источников Bluetooth. - Определите микшеры от каналов Trainer 1, 2 и 3 до желаемых выходов модели,
вы можете масштабировать выходы, чтобы они соответствовали углам вращения трекера головы и подвеса вашей камеры.
- Поднимите свое радио с беспроводной связью тренера (Bluetooth)
- Прикрепите Head Tracker к очкам FPV.
См. файлы STL в папке «case», экран и кнопка не являются обязательными. - Калибровка и настройка
здесь делать нечего, переходим к следующему пункту - ВЕСЕЛИТЬСЯ!
и рассмотрите возможность установки нашего собственного подвеса для камеры fpv на вашу любимую модель!
Видеоуроки
- Подключите трекер головы по беспроводной сети к радио.
Посмотрите полное видео, чтобы узнать, как питать трекер головы с помощью 1-элементной липо-батареи.
Подвес камеры
Проверьте наш самодельный 3D-печатный микрокарданный подвес для камеры
Протестированные радиостанции
- FrSky X-Lite Pro (OpenTX)
- FrSky X20S Тандем (EthOS)
- Радиомастер TX16S можно модифицировать, чтобы он имел беспроводную связь с тренером и работал с трекером головы.
Ссылка на проводку
- D2 : Контакт сброса ориентации, используйте кнопку, которая соединяет этот контакт с GND.
- D8 : контакт активации режима PPM, припаяйте его постоянно к GND или используйте позиционный переключатель
- D10 : сигнальный контакт PPM, подключите его к наконечнику аудиоразъема и GND к корпусу разъема.
- SDA и SCL : коммуникационные контакты I2C, подключите их к экрану 128×32 SSD1306.
Поддерживаемые платы
Перечисленные платы идеально подходят для проекта хедтрекера, поскольку они имеют как IMU для ориентации, так и Bluetooth для подключения.
XIAO BLE Sense — это крошечная плата с предварительно установленным загрузчиком UF2 и SoftDevice (драйвером Bluetooth), что делает ее очень простой в использовании. Плата относительно новая, найти ее может быть сложнее. Обратите внимание и заказывайте вариант «Sense», в нем есть IMU.
Рекомендуется для пользователей без опыта программирования встраиваемых систем.
Nano 33 BLE — это более крупная плата от Arduino, которую будет проще найти. Существует два варианта этой платы: «Nano 33 BLE» и «Nano 33 BLE Sense» — оба подойдут для этого проекта. На этой плате нет предварительно прошитого загрузчика UF2, и для прошивки загрузчика UF2 требуется отладочный зонд.
Рекомендуется для опытных пользователей, у которых есть отладочный зонд (совместимый с JLink или CMSIS-DAP) и которые могут его использовать.
Долгое время Nano 33 BLE была единственной поддерживаемой платой. У него есть дополнительный датчик, магнитометр, который обычно используют хедтрекеры для устранения дрейфа рыскания. Однако на практике магнитометр добавляет больше проблем, чем решает. Магнитометр очень чувствителен к окружающей среде, и его сложно правильно откалибровать. В этом проекте мы не используем магнитометр и вместо этого используем автоматическую непрерывную калибровку гироскопа с нулевой конфигурацией для решения проблемы дрейфа. Уже после первых 5 секунд калибровка достаточно хороша, чтобы остановить дрейф.
На данный момент плата Nano 33 BLE не дает никаких преимуществ по сравнению с XIAO BLE Sense. Вместо этого более поздняя плата на самом деле проще в использовании благодаря предварительно прошитому загрузчику UF2 и меньшему размеру. В будущем, просто для удовольствия, может быть добавлена поддержка магнитометра, но только если мы сможем сделать калибровку автоматической и прозрачной для пользователя.
У вас есть еще одна плата на базе nRF52840 с IMU и вы хотите ее использовать? Отправьте запрос функции. А еще лучше сделайте PR напрямую!
Двоичный файл Flash
XIAO BLE Sense (простой)
Подключите плату к компьютеру, дважды нажмите кнопку RST и скопируйте ht_xiao-ble_xxx.uf2
файл на USB-накопитель XIAO-SENSE.
Nano 33 BLE (расширенный)
Во-первых, вы должны прошить загрузчик UF2 на плату . Вам нужно сделать это только один раз для каждой новой доски. Затем подключите плату к компьютеру, дважды нажмите на кнопку и скопируйте ht_nano-33-ble_xxx.uf2
файл на USB-накопитель NANO33BOOT.
Используйте трекер головы
Прикрепите доску с высветившимся кодом хедтрекера к очкам FPV.
Положите очки на твердую поверхность и запитайте хед-трекер от двухэлементной батареи или источника питания 5 В. Я использую отсек для аналогового адаптера на своих очках DJI для источника 5 В.
светодиоды
При запуске плата должна непрерывно мигать синим, красным и зеленым/оранжевым светодиодами.
- Синий светодиод указывает на состояние Bluetooth и мигает, когда соединение не установлено, при успешном подключении к радиостанции он постоянно горит синим цветом (см. ниже);
- Красный светодиод указывает на начальную калибровку гироскопа, вы должны подождать, пока красный светодиод не погаснет перед использованием, обычно не более нескольких секунд;
- Зеленый/оранжевый светодиод указывает на исправность хедтрекера и будет медленно мигать при нормальной работе.
Кнопки
Головной трекер записывает первоначальную ориентацию при включении питания, соответственно наденьте очки.
При желании кнопку сброса ориентации можно подключить к контактам D2 и GND .
Экран
Если к вашей плате добавлен светодиодный экран 128×32 (через I2C), то на нем отображается адрес bluetooth платы. Мигающие символы «:» указывают на состояние подключения Bluetooth, например, синий светодиод. При запуске, пока гироскоп калибруется, на экране ненадолго появится версия хедтрекера. Затем версия заменяется тремя горизонтальными полосами, по одной на каждую ось: крен, тангаж и рыскание.
Подключиться к радио
HeadTracker может работать как в беспроводном (Bluetooth), так и в проводном (PPM) режиме.
Режим Bluetooth активен по умолчанию.
Bluetooth
- Прошить плату файлом релиза
- Подключитесь к плате с помощью последовательной консоли и запишите адрес платы (например:
7b:f5:1e:35:de:94
) - Светодиодный дисплей SSD1306 можно подключить (через I2C) к плате; в таком случае там же отображается адрес платы
- В вашем радио выберите режим тренера «Master/BT» , немного подождите и нажмите «[Discover]»
- Найдите свою доску по указанному ранее адресу и подключитесь к ней.
- Синий светодиод на плате загорится, указывая на успешное подключение
- Не забудьте настроить функцию Trainer в вашем радиоприемнике либо на экране «Специальные функции» вашей модели, либо в «Глобальных функциях» настройки вашего радио.
Проволока
- Активируйте выход тренера PPM, соединив контакты D8 и GND .
- Соберите сигнал PPM с контакта D10 . (Наконечник аудиоразъема должен быть подключен к D10 , а остальные к GND )
Особенности
- Мощный Процессор:Скандинавский nRF52840, ARM®Кортекс™-32-битный процессор M4 с FPU, работающий на частоте 64 МГц
- Беспроводные возможности: Bluetooth-совместимый 5,0, NFC и модуль ZigBee со встроенной антенной
- Ультра-маленький размер: 21×17,5 мм, Классический форм-фактор серии Seeed Xiao для Носимых устройств
- Сверхнизкая Мощность сна: 5 мкА, модель глубокого сна
- Чип зарядки аккумулятора:БК25101Чип поддерживает управление зарядом литиевой батареи
- Богатый интерфейс: 1x Кнопка сброса, Ix UART, 1x IIC, 1x SPI, 1x NFC, 1x SWD, 11x GPIO, 6X ADC, 1x светодиод «Три в одном», 1x пользовательский светодиод
- Встроенная вспышка 2 МБ
- Встроенный микрофон PDM и 6-осевой IMU (только дляЧувство XIAO BLE nRF52840)
- Односторонние компоненты, конструкция для поверхностного монтажа
Описание
В качестве первого беспроводного продукта в семействе Seeed XIAO, Seeed XIAO BLE оснащен мощным микроконтроллером Nordic nRF52840, который разработан в Bluetooth-совместимом модуле 5,0, построенном на 32-битной ARM.®Кортекс™-Процессор M4 с
Блок с плавающей точкой (FPU), работающий на частоте 64 МГц. Обладая возможностью беспроводного подключения, он по-прежнему остается классическим форм-фактором серии Seeed XIAO, маленьким и изысканным, который можно использовать для ношения.
Устройства и проекты Интернета вещей. Кроме того, он стоит всего 5 мкА в модели глубокого сна и поддерживает управление зарядом батареи благодаря чипу BQ25101. Для лучшей поддержки проектов IoT и TinyML AI существует расширенная версия «Seeed XIAO BLE Sense», которая поддерживает как 6-осевые микрофоны IMU, так и PDM.
По сравнению с XIAO RP2040, XIAO BLE имеет более богатый интерфейс. Первое, что нужно отметить, это то, что на плате работает Near Field Communication(NFC). Во-вторых, на одной стороне есть крошечная и элегантная кнопка сброса.
Интерфейс Type-C. С другой стороны, Он спроектирован в виде светодиода «Три в одном» вместе со светодиодом питания. Существует 11 цифровых входов/выходов, которые можно использовать как выводы ШИМ, и 6 аналоговых входов/выходов, которые можно использовать как выводы АЦП.
Он поддерживает UART, IIC и SPI все три распространенных последовательных порта. Как и Seeed XIAO RP2040, он имеет встроенную флэш-память 2 МБ, что означает, что его также можно программировать с помощью Arduino, MicroPython, CircuitPython или других языков программирования.
Если вас интересует Программирование встроенного машинного обучения, у нас естьКодекрафтГрафическое программирование, которое может помочь вам быстро начать свой собственный проект TinyML. И мы создали# ТинимлКанал
На нашем сервере Discord нажмите, чтобы присоединиться к круглосуточному созданию, обмену,
Обсуждая, и помогая друг другу. Мы можем делать это весь день.
Параметры
Пункт | Seeed XIAO BLE — nRF52840 | Seeed XIAO BLE Sense — nRF52840 |
Процессор | Скандинавский nRF52840 | То же, что XIAO BLE |
ARM®Кортекс®-M4 с FPU работает до 64 МГц | ||
Беспроводной | Bluetooth-совместимый 5,0/NFC/Zigbee | То же, что XIAO BLE |
Память На-обломока | 1 МБ флэш-памяти и 256 КБ ОЗУ | То же, что XIAO BLE |
Встроенная память | 2 МБ флэш-памяти QSPI | То же, что XIAO BLE |
Интерфейс | 1xUART, 1xIIC, 1xSPI, 1xNFC, 1xSWD, | То же, что XIAO BLE |
11xGPIO (ШИМ), 6xADC | ||
Датчики | Встроенный цифровой микрофон PDM | |
Встроенный 6-осевой IMU | ||
Размеры | 21 х 17,5 мм | То же, что XIAO BLE |
Мощность | Рабочее напряжение цепи: 3,3 В при 200 мА | То же, что XIAO BLE |
Зарядный ток: 50 мА/100 мА | ||
Входное напряжение (VIN): 5 В | ||
Потребляемая мощность в режиме ожидания: <5 мкА |
Применение
- Носимые устройства
- Беспроводное подключение
- Встроенные проекты машинного обучения
- Идеально подходит для мини-проектов Arduino
- Крошечное приложение машинного обучения
Распиновка оборудования
Seeed серии XIAO
Ссылка на выбор продуктов серии Seeeduino XIAO приведена здесь. В таблице подробно сравниваются Seeedino XIAO, Seeed XIAO RP2040, Seeed XIAO BLE и Seeed XIAO BLE Sense с точки зрения процессора, памяти, интерфейса и т. Д.
Пункт | Seeeduino XIAO | Seeed XIAO RP2040 | Seeed XIAO BLE | Seeed XIAO BLE Sense |
Процессор | SAMD21M0 + @ 48 МГц | RP2040 Dual-coreM0 + @ 133 МГц | NRF52840M4F @ 64 МГц | NRF52840M4F @ 64 МГц |
Беспроводное подключение | Н/А | Н/А | Bluetooth-совместимый 5,0/BLE/NFC | Bluetooth 5,0/BLE/NFC |
Память | 32 КБ SRAM 256 КБ ВСПЫШКА | 264 КБ SRAM 2 МБ встроенной флэш-памяти | 256 КБ ОЗУ, 1 МБ флэш-памяти 2 МБ встроенной флэш-памяти | 256 КБ ОЗУ, 1 МБ флэш-памяти 2 МБ встроенной флэш-памяти |
Встроенные датчики. | Н/А | Н/А | Н/А | 6 DOF IMU (LSM6DS3TR-C), микрофон PDM |
Интерфейсы | I2C/UART/SPI | I2C/UART/SPI | I2C/UART/SPI | I2C/UART/SPI |
ШИМ/аналоговые штифты | 11/11 | 11/4 | 11/6 | 11/6 |
Встроенные кнопки | Н/А | Кнопка сброса/загрузки | Кнопка сброса | Кнопка сброса |
Встроенные светодиоды | Н/А | Полноцветный RGB/ 3-In-One светодиод | Светодиод 3-в-одном/светодиод зарядки | Светодиод 3-в-одном/светодиод зарядки |
Чип заряда аккумулятора | Н/А | Н/А | БК25101 | БК25101 |
Языки программирования | Arduino/ CircuitPython | Ардуйно/МикроПитон/ЦепитПитон | Ардуйно/МикроПитон/ЦепитПитон | Ардуйно/МикроПитон/ЦепитПитон |