EasyToTrack - DIY универсальная наземка, повортка, телеметрия

dollop

Собрал я недавно поворотку/наземку от Сергея (msv), и настолько мне понравилась и идея и реализация, что буквально за несколько недель добавил к исходному функционалу кое-какие плюшки.
Так как в последнее время летаю на всякой мелочи, то имею в парке не только мой любимый EasyToFly-автопилот, но и Ardupilot, iNav. Так появилась идея использовать одну наземку/поворотку для всех своих моделей.
Итак, кратко и в картинках опишу что это такое:
EasyToTrack - это система передачи телеметрии через видеоканал. То есть для работы наземной станции, антенного трекера, приема лога полета нет необходимости в дополнительном радиоканале. Есть несколько готовых АП с подобными функциями. Например PitLab, MyFlyDream. Можно найти еще пару-тройку opensource проектов (QuanTracker). Но, EasyToFly Сергея построена, работает и радует; android приложение написано…
EasyToTrack состоит из двух частей – бортовая часть EasyToTrack Sender и наземная – антенный трекер EasyToFly.
Сам Sender выглядит так

А поворотку можно глянуть по самой первыой ссылке этого поста.
К бортовой части (Sender) по-минимуму можно подключить только камеру и GPS

…или полетный контроллер работающий по mavlink протоколу

При этом система прозрачна для ОСД.
При помощи конфигуратора настраиваются основные параметры

А углы отработки серв поворотки можно настраивать прямо с телефона.
Ниже покажу видео по которому можно оценить данные передающиеся с борта. На показание тока/расхода сильно внимание не обращать - были не откалиброваны датчики.

Все необходимое для повторения собрано в архиве
Android приложение тут
Буду рад вопросам и предложениям.

emax

схемы то чем можно посмотреть?

dollop
Радиомоделист:

А есть более подробно о том какие серво и как механически это устроено ?

Так это ж полет фантазии. У каждого частоты, приемники, антенны разные. Сам я делал по нагугленным картинкам. В папку гуглодрайва добавил проект солида для моего варинта. Все выпилено лобзиком из фанеры 5мм. Склеено на эпоксидку. Корпус китайский покупной.

Сервы сначала поставил MG995, но они меня не очень радовали - ход был на пределе, дискретность движения. В результате поставил DSS-M15S. Эти полностью устраивают.

emax:

схемы то чем можно посмотреть?

Схемы, печатки делались в Altium. Если просто посмотреть, то вот картинками
Sender

GroundStation

Yanchak

Костя оно с тимометрией будет работать? Тим вроди сам гонит какуюто дату - там на время передачи информации видео сигнал блокируется?

Радиомоделист:

А есть более подробно о том какие серво и как механически это устроено ?

dollop

Саша, если в тимометрии что-то передается во время VBLANK (кадровый гасящий импульс), то работать не будет. Девайс прозрачен для обычных osd типа minim, mwosd и т.п. не затрагивающих VBLANK

Yanchak

Именно это я и хотел выяснить. Вроди Тим передает в какито строках.
Я понимаю что оно уже даже не старое а древнее, но самолет летает, иногда хочется полетать без автопилота, а вот дальности без направленных антенн немножко маловато.

dollop

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

Yanchak

Хорошая идея - попробую 😃

На тему доработок были бы полезными еще 2 вещи - отдавать Video RSSI на планшет и ручной доворот антенны. Полезно для точной подстройки антенны.

dollop
Yanchak:

Video RSSI на планшет

Это есть

Yanchak:

ручной доворот антенны. Полезно для точной подстройки антенны.

Как это должно выглядеть? В смысле интерфейса. Просто ползунок, который двигает по азимуту поворотку скажем на ±45 градусов? Потому что я свою мелкую поворотку чуть рукой повернул и порядок. У тебя сложнее с этим, а я с большими поворотками дела не имел 😃

Yanchak
dollop:

Как это должно выглядеть? В смысле интерфейса. Просто ползунок, который двигает по азимуту поворотку скажем на ±45 градусов? Потому что я свою мелкую поворотку чуть рукой повернул и порядок. У тебя сложнее с этим, а я с большими поворотками дела не имел

Ползунок со стрелочками(как скроллбар) чтоб можно было грубо - точно довернуть. Тоько ползунок это грубо а стрелочки точно. И угол навернео +.-180.

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

dollop
Yanchak:

Ползунок со стрелочками(как скроллбар)

Сделал релиз версии 1.1
Добавил коррекцию азимута. Через меню. Ползунок, экранные кнопки, кнопки громкости устройства.
Добавил поддержку протоколов MSP (Multiwii Serial Protocol), LTM (Lightweight Telemetry). Теперь тип протокола устанавливается только на стороне Sender при конфигурации. А приложение само его определяет. Естественно, совместимость с msv наземкой и автопилотом полная.

26 days later
schs

Кто нибудь заказывал серию плат под это дело? Рисовать самому лениво, CAD’ов никаких нет. Я бы купил несколько плат, интересно попробовать.

Crystall4

Константин а на базе этой электроники можно сделать вот так?

красным я отметил, информацию в формате mavlink
OSD1 и OSD2 имеют разные настройки и показывают разную информацию. за счет чего в шлеме не захломлен экран параметрами за которыми следит “штурман” на экране

и сразу еще вопрос, если записать видео поток напрямую с видеоприемника, до того как он попадет в EasyToFly GS то сохранится ли, на записи, телеметрия, которую можно будет вытянуть проиграв запись в EAT GS?

Yanchak

Штурман на планшете будет иметь всю необходимую информацию. А в ОСД можно оставить только то, что нужно пилоту.

dollop
schs:

Кто нибудь заказывал серию плат под это дело? Рисовать самому лениво, CAD’ов никаких нет. Я бы купил несколько плат, интересно попробовать.

Так все готовое и нарисованное уже в архиве. Там же герберы. Заказываются платы на любом сервисе. Я заказывал себе на dirtypcbs.com/store/pcbs

Glinco:

А я бы готовую купил.

Вопросы в личку

Crystall4:

Константин а на базе этой электроники можно сделать вот так?

Так как реализовано на данный момент - нет. Мавлинк в чистом виде по видеоканалу не передается. Но можно попробовать сделать типа видео-модем и тогда гнать любые данные вроде как без проблем.

Crystall4:

если записать видео поток напрямую с видеоприемника, до того как он попадет в EasyToFly GS то сохранится ли, на записи, телеметрия, которую можно будет вытянуть проиграв запись в EAT GS?

Смотря на что записать. Если оцифровать, то НЕТ 100%. Если на VHS то скорее всего ДА. А на DV - я не знаю 😃.

schs
dollop:

Так все готовое и нарисованное уже в архиве. Там же герберы. Заказываются платы на любом сервисе. Я заказывал себе на dirtypcbs.com/store/pcbs

Насчёт заказа партии плат я знаю, на десяток TX и десяток RX мне не к чему. А вот парочка TX и одна приёмная интересны.
Может в Sprint Layout есть? Если односторонняя можно и сделать.
P.S. в личку отписал.

dollop

Односторонняя будет ну очень много места занимать.
А вообще, плата наземки без wi-fi есть в Sprint Layout. Но двухсторонняя. Но ЛУТом легко делается. А Sender только мелкий - под заводское изготовление.

max809

Очень интересный проект! Константин, расскажите пожалуйста, чем обусловлен выбор кварца на 20Мгц и можно ли переделать sender и GS на 16Мгц?

dollop

Выбор кварца как в sender так и наземке обусловлен использованием в качестве основы проекта asm кода ответственного за обработку прерываний кадровой развертки. Автором этой части кода является msv. А так как основное для меня - полная совместимость с EasyToFly автопилотом, то частота на которой работают мк и обрабатывают код критичный для временных интервалов остаются такими - же 20МГц.
Как итог, переделать можно. Но я не буду, так как будет потеряна совместимость с EasyToFly.

Crystall4
dollop:

Так как реализовано на данный момент - нет. Мавлинк в чистом виде по видеоканалу не передается. Но можно попробовать сделать типа видео-модем и тогда гнать любые данные вроде как без проблем.

Ну нет так нет. Тогда пойдем другим путем, я так понимаю что esp-ха у вас тупо пробрасывает, то, что прилетает из UART любому подключенному к ней клиенту если он постучится в правильный порт, а подробнее можно, порт, протокол, формат данных, нужно постоянно дергать этот порт или там что то вроде WebSocket один канал открыл и оттуда постоянно прилетают данные?
Попробую забрать это на малинку а там сохранить в лог и паралельно превратить их в Мавлинк для раздачи OSD-шкам.

dollop

Все верно, просто пробрасываю UART. ESP-link разрешает множественные подключения. Открываем сокет с портом 23 или 2323. Слушаем и забираем данные.
Вид пакета такой:

[SYN_BYTE] [LENGTH] [TYPE_BYTE] [TO_HOST_DATA] [CRC] [\r\n]

где
SYN_BYTE = 0x55
LENGTH = длина payload (sizeof(TYPE_BYTE) + sizeof(TO_HOST_DATA))
TYPE_BYTE = 0x00 для этого типа пакета

typedef struct
{
s_int  Track_azimuth; //Азимут для поворотки
s_int  Track_elevation; //Элевация для поворотки
u_long GPS_lat;   //Latitude
u_long GPS_lon;  //Longitude
u_long Home_lat;  //Home Latitude
u_long Home_lon; //Home Longitude
u_int  GPS_course; //Курс по GPS
s_int  Altitude;  //Высота по GPS
u_int  GPS_speed;  //Скорость по GPS
u_char APmode;  //Режим полетного контроллера
u_char CTRL_RSSI; //RSSI канала управления
s_int RollAngle; //угол Roll
s_int PitchAngle; //угол Pitch
u_int BattVoltage; //Напряжение батареи
u_int BattCurrent; //Ток батареи
u_int BattCapacity; //Израсходованная емкость батареи
u_int  AV_RSSI; //RSSI видео приемника
u_char AVErrors; //Ошибки декодирования данных из видео
u_char Reserved[2];
u_char GS_Version; //Версия наземки
u_char InputMode; //Тип Sender
u_char AP_Version; //Версия Sender
}TO_HOST_DATA;  // 46 bytes 

CRC рассчитывается просто при помощи логической операции XOR. Просто XORим все байты после SYN_BYTE.

Так как сначала все делалось под самолеты, то курс, высота и скорость берутся по GPS. В планах добавить в конфиг Sender источник этих данных

max809

Константин, не планируете поддержку Bluetooth в EasyToFlyMonitor (хочется повторить на имеющемся в наличие модуле HC05)?

Alex135
dollop:

А вообще, плата наземки без wi-fi есть в Sprint Layout. Но двухсторонняя. Но ЛУТом легко делается. А Sender только мелкий - под заводское изготовление.

А можно туда же выложить?