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

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 только мелкий - под заводское изготовление.

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

dollop
max809:

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

Если будет время на выходных - добавлю

Alex135:

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

В папке GS_msv_orig на гуглодрайве схема в Splan и плата в Sprint Layout

Shuricus

А существует возможность и желание обьеденится и заказать партию с изготовлением из китайщины?

dollop
dollop:

Если будет время на выходных - добавлю

В EasyToFlyMonitor v1.2 появилась поддержка соединения по Bluetooth.
Тестировал с модулями HC05. Вроде должно работать и с другими аналогичными

1 month later
Yanchak

Костя, а как EasyToTrack подключить к iNav контроллеру?. Там же не мавлинк.

dollop

В конфигураторе выбрать MSP режим.
На днях проверял эту связку - работает отлично.

Yanchak

И подключать паралленльно ОСД на тотже самый порт?

dollop
Yanchak:

И подключать паралленльно ОСД на тотже самый порт?

Да. Только провод RX от sender.
На подходе графическое ОСД (95% графики msv) со всеми функциями sender и в том же размере (примерно как minim osd стандартный).

Yanchak

ТО ШО НАДО!!! Я давно его хотел 😃!

max809
dollop:

На подходе графическое ОСД (95% графики msv) со всеми функциями sender и в том же размере (примерно как minim osd стандартный).

И это все на ATmega 328 ?

dollop

Чудес не бывает. ATmega1284. $3 на али.

max809

Уже можно заказывать для повторения или прошивка будет не доступна? ATmega1284P-AU - она?

emax
dollop:

На подходе графическое ОСД (95% графики msv) со всеми функциями sender и в том же размере (примерно как minim osd стандартный).

А как minimosd его можно будет подключить к АПМ например? т.е. мавлинк оно понимает?

dollop
max809:

Уже можно заказывать для повторения или прошивка будет не доступна? ATmega1284P-AU - она?

Atmega правильная
Прошивка конечно же будет в открытом доступе после успешного полевого испытания. На данный момент жду чтоб приехали печатки.
Вот схема осд (pdf). Если не видно номиналов на сайте хостинга картинок, то вверху есть выбор разрешения отображения

Из экзотики там только кварц на 20МГц размером 5.0мм х 3.2мм. Я их беру у этого продавца. Хотя можно найти и дешевле. Ну и крупные танталы (100мкФ 16В) размером C6032. Все остальное обычное и стандартное 0603.

emax:

А как minimosd его можно будет подключить к АПМ например? т.е. мавлинк оно понимает?

Это осд мультипротокольное и понимает MAVLINK, LTM, MSP (также голый UBLOX и NMEA). Поэтому его можно подключить к:

  • PX4
  • APM
  • iNAV
  • CLEANFLIGHT
  • MULTIWII
    Кроме этого, как я уже писал, оно совместимо с наземкой msv. То есть шлет телеметрию через аналоговый канал видео и, таким образом, весь лог и поведение ЛА можно наблюдать на андроид устройстве.
Yanchak

А стрелочку на самолетик сложно поменять?