Творческий тупик неожиданно быстро закончился. На сайте Futaba-rc выложили официальную прошивку V2.0 . Теперь можно произвольно выбирать вывод датчиков на экран и (самое главное!) посмотреть текущие координаты GPS в настройках алармов для параметра “Distance”. Это открыло новые горизонты для творческих исследований.
Датчики GPS SBS-01G и F1675.
Оба два датчика имеют на борту GPS и барометрический датчик высоты. Выдают на экран высоту, вариометр, расстояние и скорость. Как я уже упоминал выше, можно посмотреть текущие координаты, можно установить текущие координаты как точку отсчета для вычисления расстояния, которое происходит в передатчике. Высота определяется как в датчиках Vario F1672 и Vario F1712, первое значение высоты над уровнем моря запоминается, и потом вычитается из текущего значения. Датчики занимают по 8 слотов каждый. В невидимом слоте предается время UTC, которое не выводится на экран 14SG, но пишется в логи 18MZ и FX32.
SBS-01G
Этот датчик мне не понравился, такое впечатление, что разработчики пытались затолкать в него все, что можно и любым способом. В результате получился формат данных в котором непросто разобраться и неудобно имитировать. Широта и долгота делят один из байтов пополам. Старший бит (биты?) скорости где-то затерялись в байтах другого параметра. Еще там должно быть UTC время, которое требует по уму больше 4-х байт, значит залезает в байт другого параметра. По слухам, там еще расстояние с самого GPS, и как его искать, и зачем? Надоело, в ведро!
Только для информации.
F1675 - GPS-Multi-Sensor.
Тут все логично и понятно.
Про тайминги.
С этого надо было начинать. Но, все к лучшему. За время экспериментов появились некоторые новые полезные знания.
Если посмотреть на экран осциллографа, засинхронизироваться, то увидим такую картинку.
Слева идет пакет данных от приемника на шину, там данные для сервомашинок и фейлсейв, как в SBUS. Именно этот пакет данных заканчивается байтом 04h. Через 2 миллисекунды приемник выдает на шину 3 байта, это адрес (Slot0 ) и 2 байта данных. Мы уже знаем, какие это данные. Далее пустое место для слотов с первогого по седьмой. Из картинки на сайте Jerry , мы видим, следующий слот (slot1) выдается датчиком температуры через 325 микросекунд.
Почему я ссылаюсь на картинку с сайта Jerry? Он использует оригинальные датчики, их тайминги можно считать типичными для SBUS2. И думаю, что у него оборудование чуть лучше, чем ОМЛ-3М 80-х годов, с нелинейной разверткой после самодельного ремонта.
Считаем тайминги. Время одного слота 335 микросекунд, время между слотами 325 микросекунд, получается 660 микросекунд на слот. 660 умножаем на 8, получаем 5280 микросекунд, включая паузу после последнего слота. При программировании самодельного датчика, использующего 8 слотов, мы должны стремиться к такому распределению времени. Если промежутки будут немного больше, система будет работать. При изучении GPS датчика, я использовал все 8 слотов, с паузами 800 микросекунд. На экране осциллографа, все выглядело вполне прилично, но я терял последний слот или пару. Долго не мог понять, почему не меняются данные долготы, система не показывает фолт “--------“ на GPS данных, просто нули. Сейчас паузы между слотами 400 микросекунд, все нормально.
Выглядит это вот так, занят фрейм 3, слоты с 24 по 31. Справа видим начало фрейма 0 и слот 0.
Скорость и формат шины такой же, как SBUS, 100000 бод, 8E2. В пустых местах, где не идут данные, шина переходит в высокоимпедансное (еще раз извиняюсь за выражение) состояние. Амплитуда сигнала 3,3 вольта.
Вроде все. Желаю успеха в создании самодельных датчиков.
Alex K.
15 августа 2013 г.