Привет всем! Это мой первый пост, не судите строго. Речь пойдет о получени данных телеметрии на ПК, логировании полученных данных и визуализации. Реализованно в виде программы для Windows.
Детали - в посте.
Преамбула)
Не претендую на звание программиста, это скорее мое увлечение, потому как действительно писать не индусский код - нужно много времени и усидчивости. Так уж выходит, что слишком много времени уделять ни моделизму ни программированию не получается, как бы ни старался, а поэтому могу что-то понимать неправильно, могу ошибаться в суждениях, могу делать вообще не нужные вещи, а по симу - общественность судья.
Амбула
Получил планер и аппаратуру к нему. Это мой первый планер, первый самолет, первая р\у модель, да и ранее как-то не приходилось ни общаться ни заниматься моделизмом. И естественно, заказывая аппаратуру сделал залог на будущее и докупил телеметрии. Выбор пал на FrSKY по двум причинам: цена не кусается и положительных отзывов много, по крайней мере среди тех, что я прочел)))
Ну и конечно же, после первого удачного полета, когда модель пробыла в воздухе более 15 минут и летела примерно туда, куда пытался направить, насмотревшись куч видео с FPV, захотелось тоже посмотреть на планету сверху, а не с земли на "птицу". Поискав и покапавшись аналогичных проектов я не нашел, поэтому без раздумий бросился в бой. Ну и собственно, что же из этого вышло.
А вышло из этого следующее: задавшись вопросом облазил сайт FrSKY, перечитал всю документацию, попробовал ПО, которое есть на их сайте, пришел к выводу, что нужно писать свое. Задача стояла такая: принять данные телеметрии, вытащить от туда показания датчиков, вывести на экран, записать в файл.
Таким образом, многоуважаемые читатели, предоставляю вашему вниманию альфа-альфа-альфа(очень нетерпелось выложить в сеть) версию ПО, писанного мною, для принятия и обработки телеметрийных данных аппаратуры FrSKY.
Первым делом хотелось видеть данные телеметрии не покупая дополнительно OSD или дисплеев от FrSKY(не нравится мне такая реализация, толком ничего не понятно на дисплее). Далее встал вопрос в логировании данных для просмотра маршрутов, постройки графиков, отладки аппаратуры и\или модели. В конечном итоге хочется получить более-менее нормальную наземную базу с отображением модели на карте, запасом в батареях, а в идеале получать видео с борта и накладывать данные телеметрии так, как это делают OSD системы, но бюджетно и минимум оборудования. Ну и главное - тут проще внести изменения, чем в закрытые продукты. Выкладываю сыроватую версию ПО потому как действительно не знаю, как отреагирует общественность, и, если это не имеет смысла - проект оставлю для себя, если же интересно - буду делиться обновлениями по мере возможности.
Вам потребуется:
Аппаратура FrSKY, COM порт, Windows, шнур от передатчика к COM порту по такой схеме Tx передатчика на 2й пин COMа, Rx передатчика на 3й пин COMа, GND - на 5й; +5v я не использовал.
Мой шнур выглядит как то вот так:
Аппа выглядит так:
Приемник с телеметрией так:
При разработке использовалось:
Turnigy 9XR, стоковая прошивка
D8R-XP
DHT-DIY - вмонтированный в аппу - антена и выход телеметрии сверху(на фото видно)
Хаб датчиков
Датчики: TEMS-01(температура), FVAS-01(высота), FAS-100(амперметр).
К сожалению, за неимением GPS датчика, и прочих(не было в наличии когда заказывал), остальные не тестировались.
На данный момент программа умеет:
- Принимать данные от всех описанных в документации датчиков
- Выводить данные на экран в реальном времени(как поступают)
- Записывать данные по шаблону в файл
- выводить данные на экран в табличном виде
- Особенно не глючить)))
Выглядит программа вот так:
И скачать ее можно отсюда.
И в заключение:
К сожалению, в боевых условиях программка не тестировалась, а собирались только данные с датчиков, которые лежат рядом и измеряют температуру то пола, то улицы, то "дыхания" ноутбука. Любой feedback приветствуется, писать лучше по контактам, что записаны в программе
PS> Программа не лишена некоторых косяков, о некоторых я знаю, о некоторых - возможно нет. Например, у меня, периодически выскакивают непонятные данные по датчикам, которых быть не могло. С проблемой разбираемся.
PPS> ну а если такой проект уже существует - ткните носом. Если сделал фигню - не ругайте сильно ))))
Наглядно:
http://www.frsky-rc.com/product/pro.php?pro_id=7
шнур от передатчика к COM порту по такой схеме Tx передатчика на 2й пин COMа, Rx передатчика на 3й пин COMа, GND - на 5й; +5v я не использовал.
нет, к USB не получится. Только через COM порт. В Вашем случае можно воспользоваться JTAG, если, конечно, планшет поддерживает такую штуку.
Было сказано "Как подключить такую систему к планшету,через переходник сом-usb?"
Так переходник есть или нет?
Нет, это не то, что нужно. Совершенно разные вещи.
Я использовал шнур mini-jack-to-mini-jack, т.е. по аудиошнурку подключал, через другие разъему не пробовал
Не советую использовать подобную телеметрию для ФПВ полетов, во-первых модули ФрСкай с телеметрией менее дальнобойные. Во-вторых радиус действия всего километра полтора +-, при этом телеметрию вы потеряете гораздо раньше, чем оборвется связь, передающий модуль на приемнике совсем маломощный и не предназначен для передачи телеметрии на большие расстояния. в-третьих, денег потраченных на датчики ФрСкай вполне хватило бы на недорогую OSD систему с теми же возможностями.
Ну и в четвертых и самое главное, без автопилота летать ФПВ - моветон и не по фен-шую! А если есть автопилот с OSD, то к чему весь этот огород городить? =)
Народ делает следующее:
На Бикслер (или любое другое FPV летало) ставят полетный контроллер, датчик GPS, FPV систему, OSD.
Функционирует так: Полетный контроллер (с прошивкой например Ардупилот) обрабатывает данные от ЖПС датчика, поступаемые по одному СОМ порту. Общается с платой ОСД по другому СОМ порту. ОСД платка к видеосигналу с камеры подмешивает показания датчиков, принятые от полетного контроллера (какие именно датчики куда ставить - определяется прошивкой ОСД). Пилот на экране ФПВ очков или дисплея или ФПВ шлема видит как картинку с борта, так и показания датчиков. Он всегда знает, в какую сторону света летит его самоль (или коптер), по стрелочке видит где "дом", текущие ЖПС координаты, удаление от цели, высоту, крен, скорость и прочая и прочая и прочая. При настроенном фэйлсейве, при потере сигнала или по команде пилота, борт разворачивается и сам летит на точку старта.
Виден недавно видео на ютубе - человек летал (уж не знаю на чем) на 80 километров. Причем 80 - в одну сторону, 80 в другую. При полетах далее километра Наличие автопилота (полетного контроллера), КМК - ОБЯЗАТЕЛЬНО.
Вот как-то так.
На тему "Не претендую на звание программиста, это скорее мое увлечение..." не беспокойтесь - аппетит приходит во время еды (когда решаешь интересную задачу - время летит абсолютно незаметно, плавали, знаем :) ).
Альфа-версия (и не только) без косяков не бывает (вообще-то, если софтина решает поставленную задачу - она написана ПРАВИЛЬНО, несмотря на косяки в коде) и это нормально.
Удачи!
И таки да - на чем писано? Какая ось?
Любое ПО для дорогих систем, где важна надежность пишется очень тщательно, в том числе используя метод "параноидального программирования".
Это так, к слову.
Статья действительно интересная (мне, как, в прошлом, авиационному радиоинженеру) - особенно. Там же как-то попалась статья о разработке ПО для Р/У вертолета. Задача - полет в автоматическом режиме из комнаты в комнату через отверстие в стене ограниченного размера с возвращением обратно.
У вашего ноутбука есть КОМ порт?
Как будете потом использовать полученную инфу? Или просто для статистики?
Использовать для анализа. Куда летел, как летел, как набирал высоту, как расходовал батарейку.
Насколько я понимаю данная система позволяет использовать так же и свои датчики, если они будут предоставлять данные в определенном формате, а значит кроме базовых можно повесить и свои, вроде воздушной скорости, определения горизонта и т.п.