Head Tracker'ы. Подключение, использование и все что с ними связано

ivanbalandin

Сделал Head Tracker на основе DCM алгоритма реализованого уважаемым RAZORом. Заодно портировал его на платформу MultiWii SE V2.0 Flight Controller работает и с модулем GY-87. Будет работать на любой платформе с набором датчиков MPU6050 и HMC5883L, возможно придется проверить ориентацию датчиков. Кнопка и выход PPM на тех же выходах. Режим паузы не используется, оставил только центровку. Калибровка осуществляется методом предложенным RAZORом.
Прошу извинить за мусор оставленный в скетче, управление датчиков использовал из скетча MultiWii, причем целиком. Вполне возможно что будет работать и с любым другим набором датчиков имеющимся в скетче, но не могу проверить, ввиду отсутствия оных.
Вот собственно архив со скетчем.

Headtracker 260515.zip

vasil368

А все таки может кто помочь поправить прошивку для этого диваиса banned link и сказать где снимать выход РРМ сигнал.Я бы был очень благодарен, а то валяются 2 шт. пристроить как нибудь бы в качестве (хэдтрекера) Прошивку залить магу а вот менять в ней что то для меня это тёмный лес. Заранее всем огромное спасибо.

18 days later
ivanbalandin

Почта сработала на удивление быстро, 20 дней и 4 bluetooth модуля hc-05 у меня. Вчера удалось выполнить сопряжение на скорости 115200 - получил виртуальный СОМ порт. Теперь модули автоматически сопрягаются друг с другом при подаче питания. Дальше все оказалось все просто.

Описанный мной в посте #701 Head Tracker выдает через СОМ порт углы ориентации платы датчиков в текстовом виде. Поэтому в скетч ведомого контроллера скопировал процедуры пересчета углов в РРМ, собственно формирователь РРМ и обработчик нажатия кнопки (установка нуля). Ну и конечно добавил процедуру приема данных через СОМ порт.

На фото представлены очки со смонтированным ведущим устройством, рядом ведомое. Платы контроллеров изготовил сам, разумеется ардуино загрузчик тоже прошил. Частота обоих кварцев 16МГц. Платы делал заранее, поэтому не предусмотрел стабилизаторы напряжения. bluetooth модули требуют 3.3 В. Пришлось стабилизаторы лепить сверху.

Так как прошивку ведущего устройства не переделывал, сохранилась способность выдавать РРМ по проводу, достаточно поменять кабель с разьемом на очках.

receiver 140614.zip

7 days later
ivanbalandin

Опробовал сегодня Head Tracker с bluetooth каналом. Результаты прямо скажу не очень. Во первых bluetooth модуль влияет на магнитометр. При наклоне вверх вниз уплывает горизонт. Возможно поможет калибровка с включенным модулем. Попробую еще изменить ориентацию модуля.
Кроме того забивается видеолинк 5.8ГГц приемник встроен в очки. Помеха появляется уже на удалении 100м. С проводным соединением такого не было. Может быть поможет установка ферритовых колечек на питающие проводники.

ivanbalandin

Провел небольшое расследование по поводу

ivanbalandin:

Результаты прямо скажу не очень.

Оказалось, что все не так уж и плохо.
На магнитометр влиял не bluetooth модуль а провода питания самих очков, проложенные под платой Head Tracker-а. Для устранения недостатка провода закрепил на дне корпуса очков, а для Head Tracker-а соорудил пьедестал из толстого двустороннего скотча высотой около 20 мм. Это позволило полностью устранить уход горизонта.
Для устранения помех видеоканалу поставил дополнительный электролит по питанию на 100мкф на плату Head Tracker-а, ферритового колечка правда нужного размера не нашлось. Качество картинки заметно улучшилось. Буду искать дальше.

ivanbalandin

Сегодня совершил два вылета по одному маршруту. С Head Tracker-ом и без него (полностью обесточен) разницы по помехам нет никакой. Таким образом ухудшение качества сигнала связано прежде всего с погодными условиями (высокая влажность). Поэтому считаю очки со встроенным Head Tracker-ом и bluetooth каналом принятыми в эксплуатацию.
P.S. летаю больше зимой так как безветренных дней больше да и видеолинк устойчивый.

Драган

Никак не могу заставить работать трекер типа DIY.
Все хозяйство установил, трекер отображается, COM порт есть, графики идут.
Аппаратура 9er.
Что с чем замиксовать - не пойму
Присвоил каналы, в аппе тоже PPM с теми же номерами.
Трекер включается, лампочка горит, ошибки в распайке PPM быть не может (до этого стоял SKY EYE)

2 months later
fargo

подскажите как откалибровать магнитометр. смотрел топик с рцгрупс www.rcgroups.com/forums/showthread.php?t=1677559&h… не нашел файла с шага 12 -Magnetometer_cal_v0_02 где его искать? (я понимаю что прошивка 1.04 и видимо в конце будет 1_04)

kimu

Всё откалибровалось по инструкциям кнопки calibrate.
Правда со второго раза, в первый заместо севера выступил саунбуфер стоящий под столом >_<

Shuricus
ivanbalandin:

рядом ведомое.

Просто замечательное решение! А можно ли использовать модули БТ которые уже на плате обвеса?
Какая тогда должна быть схема подключения?

ivanbalandin
Shuricus:

модули БТ которые уже на плате обвеса

Прошу уточнить, я не в теме. Вообще один из модулей может быть любым, необходимо только получить его адрес. Второй же обязательно должен быть ведущим. При этом без разницы какой из них будет передатчиком, а какой приемником.

Shuricus

Я гораздо больше не в теме! 😃

Есть два таких модуля. И треккер спаянный по схеме оригинала с РЦГрупс.
Огромная просьба обьяснить, как для геолога - как это все соединить?

ivanbalandin
Shuricus:

Есть два таких модуля.

Фото ни о чем не говорит. Master и slave модули абсолютно одинаковы на вид, отличаются только прошивкой. Но по опыту на плату монтируются slave модули, поэтому скорее всего никак. Тем более что на разъем управляющий вывод не выведен. Так что в любом случае надо докупить Master модуль.
А по поводу трекера - надо код смотреть, я с оригинальным не работал. Т.к. у меня другой алгоритм был отработан, мне проще было его применить, чем еще с одним разбираться.

Shuricus

Иван, докупить модуль не проблема. А можно вас попросить еще раз доступно обьяснить по порядку как повторить ваше решение. Просто вы сделали замечательную вещь, но все так размазано по ветке, что я например разобраться не могу.

ivanbalandin
Shuricus:

все так размазано по ветке

все мои сообщения только на этой странице, в том числе дано описание работы и ссылки на исходный алгоритм. Еще раз напишу, что оригинальный алгоритм у меня не пошел, точнее не пошла калибровка, а так как у меня уже был отработанный алгоритм, подобный используемому кстати в мозгах multiwii, поэтому я им не занимался.
В общих чертах задача состоит в разделении алгоритма на 3 части:
1 обработка информации с датчиков и преобразование её в углы (pan, tilt);
2 преобразование углов в длительность импульсов ШИМ;
3 преобразование длительности импульсов ШИМ в РРМ и вывод ее на пульт.
Соответственно передачу информации между любой парой частей можно выполнить в виде последовательности байт передаваемых через БТ. В моем случае по БТ передаются углы в текстовом виде.

Shuricus

Иван, я неправильно прошу обьяснений, или вы меня не понимаете. Мне все равно как оно работает. Я хочу собрать такое устройство. Как это сделать вообще не понятно.
Начиная прямо с этого:

ivanbalandin:

Платы контроллеров изготовил сам, разумеется ардуино загрузчик тоже прошил.

Какие платы? Как их их изготовить?

Или

ivanbalandin:

Вчера удалось выполнить сопряжение

Как удалось? Что для этого нужно сделать?
Тут не все инженеры на форуме. Я могу припаять провода в нужные места. Но что это за места. Может вы можете выложить схемы?

Обычно проект описывают так:

  1. Спаиваем такую схему из таких комплектующих.
  2. Заливаем такую прошивку.
  3. Настраиваем таким ГУИ.

Тогда все понятно.

Спасибо.

ivanbalandin
Shuricus:

Обычно проект описывают так

Схему я постараюсь нарисовать и выложить в ближайшие дни, прошивки уже выложены, а по настройке есть ссылка на алгоритм Rasor`а там же описание настройки ГУИ есть но по его результатам вносится изменение в скетч. По сопряжению модулей можно поискать в интернете. К сожалению прошло уже некоторое время, я алгоритм запустил и мне он больше не нужен, кое-что забылось, разбираться заново нет времени. Платки можно взять готовые, например такие же как в оригинале с РЦГрупс. Т.е. нужно 2 платы ардуино, 2 БТ модуля, один из которых ведущий, и плата датчиков, например GY-87.

Shuricus

Спасибо Иван!

А подскажите пожалуйста ключевой момент, почему вы основывались на проекте Разора, а не Дениса? Мне показалось, что это одно и то-же вначале, а теперь я вижу, что не совсем. У Дениса все выглядит гораздо проще и понятнее.

У меня как раз его трекер. Его можно подключить через блютус вашим способом (оставив прошивку Дениса)?

ivanbalandin
Shuricus:

почему вы основывались на проекте Разора, а не Дениса?

ivanbalandin:

оригинальный алгоритм у меня не пошел, точнее не пошла калибровка

имелся в виду алгоритм оригинала с РЦГрупс.

Shuricus:

Его можно подключить через блютус

моим способом, но прошивку надо допилить.
выкладываю схемы приемника и передатчика соответственно. Схемы для готовых arduino nano модулей. Я просто не стал их заказывать и спаял сам.

Shuricus

Так гораздо понятнее! 😃

Осталось два вопроса - в чем заключается принцип сопряжения блютус модулей? Я постараюсь найти как это сделать в интернете, но не понимаю что искать - пока ерунду выдает.

И что нужно допиливать в оригинальной прошивке с РЦГ, коммуникацию с БТ? Там просто подстановка куска кода из вашей прошивки, или все сложнее?
И видимо еще управление обнулением нужно добавить?

ivanbalandin
Shuricus:

в чем заключается принцип сопряжения блютус модулей?

В youtube видео было на русском, я по нему и делал, думаю поиск поможет.

Shuricus:

И что нужно допиливать в оригинальной прошивке с РЦГ, коммуникацию с БТ?

БТ - фактически беспроводной СОМ порт. Поэтому Вам надо организовать передачу каких-либо данных с передатчика на приемник. У меня передаются углы PAN, TILT в текстовом виде.
Управление обнулением организовано в прошивке приемника.
Если вам интересно, посмотрите прошивку приемника, какие данные он использует, и попробуйте реализовать их передачу прошивкой с РЦГ. Возможно допиливать придется немного.

Shuricus

Кажется видео нашел.

Видимо речь о том, что прописывается команда бинд по макадресу.

Кстати, можно менять режим приемника/передатчика в любом модуле АТ командой.

ivanbalandin:

Управление обнулением организовано в прошивке приемника.

По какому принципу? Там же нужно кнопкой на треккере замыкать?

ivanbalandin
Shuricus:

По какому принципу?

перенес код обнуления в приемник, чтобы руку к трекеру не тянуть. Кнопку на пульт приклеил.

Shuricus:

Кстати, можно менять режим приемника/передатчика в любом модуле АТ командой

только если модуль поддерживает MASTER режим (например HC-05). Slave модули (НС-06) имеют урезанный набор АТ команд, в мастер режим не переключаются.

Shuricus

Спасибо за разьяснение по модулям - это принципиально.

А по коду обнуления, там просто какие-то коэффициенты меняются в переменных?

ivanbalandin
Shuricus:

по коду обнуления

При нажатии кнопки запоминаются текущие углы, поступающие с датчиков. Сигнал РРМ формируется на основе разности текущих углов и сохраненных.
Все это происходит в приемнике.
Паузу делать не стал, т.к. это проще сделать тумблером на пульте.