Варианты сборки и их отличия
- Ардуино 5В: плюсы – можно контролировать напряжение батареи, плата 16МГц. Минусы: напряжение питания не менее 5В
- Ардуино 3.3В: плюсы – можно контролировать напряжение батареи, питание от литий-ионного аккумулятора 3.7В. Минусы: плата 8МГц – не все прошивки подойдут один в один
- GY-951: Плюсы: минимальный размер – процессор и датчики на одной плате. Минусы: всё те же 8МГц; нельзя проконтролировать напряжение питания аккумулятора
Железо
Процессорная плата
- Nano
- Pro Mini (3.3/5В)
- Pro Micro
Датчики
- GY-85
- GY-86
- GY521 + GY-271
- GY-80
- MPU-9150/MPU-9250
Аккумулятор
Для плат 3.3В:- Li-Ion 3.7В, ёмкость по желанию
- Крона или аккумулятор 9В, 6F22
- Аккумуляторы 2х3.7В любого типоразмера
Беспроводной модуль
HC-05 + USB-Bluetooth (если на компьютере нет Bluetooth)Остальное
- Корпус
- Выключатель
- Провода и разъёмы
- Переходник COM-USB (опасаемся FTDI)
Подготовка
Настройка модуля Bluetooth
Модуль HC-05 предварительно нужно немного донастроить. Для этого подключаем его к компьютеру с помощью переходника USB-COM:VCC-VCC
GND-GND
TX-RX
RX-TX
KEY – на GND, т.е. присоединить к минусу. Нужно только для настройки.
При подключении синий светодиод должен медленно мигать. Запускаем терминальную программу, например, TeraTerm. В настройках указываем скорость 38400, передавать CR+LF – обязательно.
В терминале настраиваем имя устройства и скорость передачи (такую же, как в прошивке):
AT+NAME=HEADTRK
AT+UART=115200,0,0
После каждой строки должен прийти ответ «OK».
Прошивка
Всё, как в первом письме, кроме варианта с платой 3.3В. В прошивке придется изменить частоту срабатывания таймера и уменьшить скорость COM-порта (касается прошивки, Bluetooth и FTnoIR)Сборка
Рассматриваю только вариант ардуино + датчики.VIN – питание от батареи 3.3-12/5-12 в зависимости от процессора (8/16МГц)
GND – минус батареи
TX1 – RX Bluetooth
RX0 – TX Bluetooth
A4 – SDA датчика
A5 – SCL датчика
Bluetooth и датчик тоже должны получить свои GND и VCC. Конкретно откуда - в зависимости от компоновки.
Упаковка в корпус – по желанию. Главное условие – правильно расположить датчик относительно головы (горизонтально, стрелочка X в сторону монитора) и убрать подальше любое железо.
Натюрморт беспроводного трекера |
Настройка
Тем, у кого нет Bluetooth в компьютере, подключить модуль USB Bluetooth. Включить собранный беспроводной трекер. Произвести спаривание, код по умолчанию – 1234.В FacetrackNoIR выбрать COM-порт. Не забудьте настроить скорость порта, если меняли. COM-портов может оказаться два. В таком случае, придётся пробовать по очереди. Один из них должен заработать.
возможно ли добавить набор кнопок и использовать как геймпад?
ОтветитьУдалитьМожно, но будет нужен драйвер для того, чтобы игра узнала о геймпаде. Поскольку обмен данными идёт через виртуальный COM-порт.
ОтветитьУдалитьВариант, как отделаться всего одним аккумулятором и малюсенькой платкой: https://forum.warthunder.ru/index.php?/topic/115548-inertcionnyj-treker-svoimi-rukami/?p=5209270
ОтветитьУдалитьУ меня есть такие же или очень похожие платы, но на выходе они дают напряжение аккумулятора. У меня в более позднем варианте (см. выше) такая плата предусмотрена, с преобразователем в 5В.
УдалитьЕсли есть такие, которые действительно выдают на выходе 5В, хотелось бы ссылку на конкретного продавца.
Этот комментарий был удален автором.
УдалитьУ меня такие платки по 40 рублей от одноячейной литиевой батарейки, снятой со старого мобильника, все 9В выдают (могут до 15-30В, но больше тока жрут). Например, для транзистортестера с графическим экраном с подсветкой (на нем автоотключение, но аккум от повышающей платки вручную клавишным выключателем надо). Платки со step-up DC-DC (повышающим) чипом MT3608 для маломощных применений (0,5А, 1А в пике) на али по ключевому слову MT3608
УдалитьИ можно еще для равномерной регулировки-настройки выходного напряжения на обратной стороне платы кинуть соплю между двумя ножками подстроечника - центральной и ближней к краю короткой стороны платы. 40 рублей, Карл!
Ссылку, где взять, Карл!
УдалитьНу ладно, щас по 30 рублей...
УдалитьДля ленивых http://goo.gl/j1mHi8
(аналогично вбиванию MT3608 в поиск али, опции сортировки по цене, бесплатная доставка)
Супер, спасибо!
УдалитьЯ не понимаю, почему геймерские мыши 1000 раз в секунду опрашиваются, а ентот сенсор раз 50 (в подобной данной англоязычной статье, тоже со скетчами для ардуин на 328 атмеге - 128 раз). Вроде как можно и быстрее, но более быстрыми МК (типа STM32f103, в т.ч. ардуино-совместимыми). Мне пока лень прочитать исходники (хотя, если в статьях идет речь о снижении скорости опроса при печати в порт в дебаг-режиме, то, значит, в обычном режиме опрос всех датчиков до 128 раз в секунду с выдачей в порт бинарных данных, а не ASCII), но, думается, что драйверы большинства современных usb-uart микросхем позволяют скорости до 921кбод (да и УАРТы/УСАРТы мк 115,2 кбодами далеко и давно не ограничены)
ОтветитьУдалить1. максимальная частота выдачи данных от датчиков - около 200Гц, причём желательно не делать больше 100, иначе точность измерений резко падает
Удалить2. В процессе обсчёта может происходить интерполяция, что ещё больше снижает частоту на выходе
3. Скорость ардуины может оказаться недостаточна
4.Единственная причина использования ардуины - под нее неспециалисту проще всего залить /поправить прошивку
5. Зачем нужны частоты более 50Гц для контроля поворотов головы? Голова - это же не мышь :)
Ну да, если частить, то точность пострадает. Мышь - да хотя бы для наведения в симуляторах (типа digital combat sim, dcs) с VR, если нет трекинга зрачков (как в FOVE).
УдалитьА если сервами камеру на БПЛА крутить - то и 50Гц за глаза. Для простых поворотов головы с целью смены обзора (не микромоторных) много не нужно в т.ч. из-за инерции зрительной системы (persistence of vision)
Однако, дополнительная информация по ускорениям и векторам движений для нужд экстраполированного предсказания (для движка с поддержкой какой-нибудь OSVR) тоже лишней не была бы.
Собственно, линейные и угловые ускорения - это и есть сырые данные.
УдалитьВот статья http://www.rcgroups.com/forums/showthread.php?t=1677559
ОтветитьУдалитьЭто один из первоисточников, в общем-то :)
Удалитьhttp://www.macs.hw.ac.uk/~ruth/year4VEs/Resources/AeroSense98.pdf
ОтветитьУдалитьтеория, блин
Спасибо, интересный документик
УдалитьМысли из разряда "датчиков много не бывает": вот тут https://inmagicwetrust.wordpress.com/2015/11/04/diy-project-wearable-imu-tracking-sensor/comment-page-1/#comment-128 говорящие по-немецки ребята на таких точно трекерах делали бюджетный моушн кэпчур (чтобы больше трекеров повесить на один БТ-приемник (не более 7 ведомых же) делали один HC-06 на две ардуинки, одну мастер и одну слейв друг с дружкой соединяя.
ОтветитьУдалитьМне чудится, что большинство потребностей "симулянтов" можно решить увеличением числа осей (точек установки сенсоров), без необходимости применения позиционного трекинга. Что я имею в виду: такой сдвоенный беспроводной трекер, один датчик на голову, другой - "принять на грудь". При этом такие потребности: "выглянуть в форточку, нагнуться влево-вправо, наклониться ближе к приборной панели в кокпите/откинуться подальше" - удовлетворяются естественно, легко и непринужденно, без отрывания зада от кресла.
Я планировал попрбовать интегрировать несколько показаний датчиков для уменьшения ошибки. Но времени нет
ОтветитьУдалитьПовышение точности - это тоже здорово, но я о другом. Я про два трекера (пусть даже не один сдвоенный, а два обычных, каждый со своими бт и батарейкой - хоть это и более расточительно), повешенных на разные части тела (между головой (черепом) и грудью (грудиной) ведь есть подвижное сочленение, шейный отдел позвоночника) для обхода необходимости в позиционном трекинге головы во всяких симуляторах (самолеты, авто, мото, гребля, лыжи и охота), если его можно заменить еще одним инерционным трекингом наклона-положения корпуса-туловища (придвинуть/отодвинуть передний план, высунуться-выглянуть из двери водителя и т.п.) Просто для этого нужно еще независимых осей (например, facetrackir на один компорт, и подобная ему шляпа на другой) для управления в игре.
УдалитьЭто ж ак придётся изгибаться... Хуже йоги
ОтветитьУдалитькак пределы и кривые настроишь, так и придется.
УдалитьХуже йоги лучше нет. Это всё позволит дополнительные ракурсы-виды получить, а основные виды из наиболее удобного для игры положения в кресле, крутя одной башкой. грудной отдел в сидячем положении очень даже подвижен. Только вот не надо огульного охаивания, коль скоро вы тут разработчик (я всегда считал умозрительную критику других, не подкрепленную эмпирическими данными, своей прерогативой). Лучше, конечно, прямой интерфейс в мозг, чтобы вообще не шевелиться, не то что головой вертеть. Только я и не липмоушен какой-то предлагаю, руки на весу, а вполне удобный и рабочий VR вариант (джойстик тоже не на 360 и даже не на 180 крутится, нелинейная кривая спасет гиганта мысли)