Проект Мегапират на самик!

ukkr
Syberian:

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

Олег, там же банальный

sport.write((byte)(g_gps->ground_speed*0.036));

Получается, есть только 3 варианта:

  1. (наименее вероятный) – неисправный GPS или связка Atmega2560 +GPS. Но тогда должно плющить и сам самолёт, gps->ground_speed используется повсеместно в коде, даже в DCM
  2. Компилятор сгенерировал кривой код для
(byte)(g_gps->ground_speed*0.036)

В принципе, вероятность этого есть, Ардуина же использует WinAvr’овский g++, а в нём часто находили говнокодо-генерацию.
3) Баг в прошивке самой ОСД. Например в функции, которая переводит число в строку. Достаточно распространённый трабл. Правда, непонятно почему тогда остальные показометры правильно отмалёвываются в ОСД.

Других вариантов я не вижу.😌

LeonVS

Расшевелил я смотрю ветку 😉

ukkr:

Компилятор сгенерировал кривой код для
Код:
sport.write((byte)(g_gps->ground_speed*0.036));

Перекомпилил я сие строчку в:
sport.write((byte)(g_gps->ground_speed * 36 / 1000));
Может с целыми числами дело пойдет лучше 😃
Сегодня -22, вот думаю поэкстрималить в полях, или лучше все же дома на печи поваляться 😃

ukkr

Сегодня -22, вот думаю поэкстрималить в полях, или лучше все же дома на печи поваляться

Та ну, ни один автопилот не стоит такого издевательства над человеком.

LeonVS
LeonVS:

Перекомпилил я сие строчку в:
sport.write((byte)(g_gps->ground_speed * 36 / 1000));

Результат отрицательный 😦 Скорость так же скачет…

ukkr:

Та ну, ни один автопилот не стоит такого издевательства над человеком.

Однако ваша правда, на крайнем полете сперва думали что сглючил АП, самуль проходя последнюю точку стал разворачиваться и быстро снижаться, метрах в 10-20 переключил на ручное ручку на себя, но скай как шел под углом градусов 45 так и вписался в сугроб…
Логи показали то ли отвалился кабанчик, то ли замерзла серва РВ… АП до последнего давил на себя на максимум…

К стати, какая переменная отвечает за шаг миссии? Хотелось бы знать какой шаг в данный момент исполняет АП… Я бы пока нет бвХУД вместо скорости вывел данные в планер, больше толка бы было, скорость все равно кривая 😃

ukkr
LeonVS:

К стати, какая переменная отвечает за шаг миссии? Хотелось бы знать какой шаг в данный момент исполняет АП…

Пока рылся в коде – натыкался на такие переменные next_nav_command и next_nonnav_command. Собственно у МегаПирата идёт разделение на эти 2 подтипа команд. Дёргается update_commands() на каждой итерации из commands_process.pde. Все кишки сидят в commands.pde, commands_logic.pde и commands_process.pde.

LeonVS

Счетчик туда прилепить может? И циферу в планер выводить, для настройки будет очень кстати.

ukkr
LeonVS:

Счетчик туда прилепить может? И циферу в планер выводить, для настройки будет очень кстати.

Не совсем понял. Там по каждой комманде при обработке идёт логирование на GCS, если я правильно понимаю :
gcs_send_text_fmt(PSTR(“Executing command ID #%i”),next_nav_command.id);
и
gcs_send_text_fmt(PSTR(“Executing command ID #%i”),next_nonnav_command.id);

LeonVS

Спасиб! Это то что надо, теперь надо всего лишь “i” отправить куда надо 😃
Олег, может замутишь в еОСД еще один байт в сервис строке для отображения номера команды навигации?

ukkr

не, не “i” 😃 Вот это: “Executing command ID #%i” всего лишь показывает, что вместо %i надо подставить целочисленное значение.
А уже функция gcs_send_text_fmt подставит значение второго параметра( к примеру, next_nav_command.id) в эту строку.

То, что Вам надо-- эти две переменные:next_nav_command.id и next_nonnav_command.id. Вам надо посылать их на еОСД, а там парсить и выводить. Только учтите, эти айдишки – всего лишь айдишки типов команд. Ну т.е. банальные 1-2-3 и т.д. А вам ещё надо, на сколько я понял, и параметры самой команды. Ну т.е, вас не устроит банальное, скажем 10(к примеру, это поворот). А Вы хотите увидеть что-то типа: команда 10(поворот), направление 10 градусов, вокруг оси Х.
Беда в том, что у каждого типа команды свой набор параметров. Как в количественном, так и в типовом( целое, вещественное и т.д.) виде. Думаю, что вывести команды вместе с параметрами на ОСД в общем случае не выйдет.

Syberian
ukkr:

А вам ещё надо, на сколько я понял, и параметры самой команды

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

LeonVS
ukkr:

Ну т.е, вас не устроит банальное, скажем 10

Да нет, вполне устроит, то что делает определенная строчка я и так знаю, для меня важно знать что он в данный момент выполняет именно ее. Так что достаточно банально знать номер выполняемой команды 😃

ukkr
LeonVS:

Так что достаточно банально знать номер выполняемой команды

Тогда Вам нужны эти 3 переменные( насколько я понял):

static byte	command_index;						// current command memory location
static byte	nav_command_index;					// active nav command memory location
static byte	non_nav_command_index;				// active non-nav command memory location

Потому что, next_nav_command.id и next_nonnav_command.id – это не айдишки команд в мишн-плане, а типы команд, например: разворот, набор высоты, сфотографировать вон ту красивую мадам с глубоким декольте и т.д.

LeonVS

В режиме Лойт и РТЛ ацки дергается серва РВ, фильтр чтоль отсутствует, и он так пытается высоту держать…?

LeonVS

Вывел вместо скорости (все равно кривую кажет) температуру с баро датчика для мониторинга, как показала практика если включенный вынести на морозец (сейчас -14) температура на плате меньше +6 не падает, вортекс сам себя греет не плохо 😃 Завтра замеряем что будет в полете.

LeonVS

Чтот опять ветка заглохла, походу все лежат на печи греются 😃
Полетали сегодня на очень позитивно 😃 Одно расстраивает, компас впадает в маразм… может летаем в аномальной зоне 😃 Данные просто замирают, и АП начинает тупить, пролетать точки и тд тп… В общем отключил его вообще и стало гораздо лучше, летает как по струнке, очень порадовал 😃
Сегодня впервые отпустили его за предел видимости, взлетел-пролетел-сел, все в полном автомате 😃
Качество видео не ахти, но кому интересно зацените 😃
dpiter.info/sky3.wmv

dundel1
LeonVS:

походу все лежат на печи греются

Да, именно так. 😃) У нас сегодня днём выше -22 так и не поднялось… А в ночь -32 обещают :0
Леонид, это на 2.26? По поводу компаса - один знакомый летает на коптере, тоже отмечал, что в мороз компас начинает дурить. Я это пока не проверял, в такие холода не люблю на улицу высовываться.😃
Вижу, Вы тоже две ОСД используете.😃 Я себе, с подсказками Олега (спасибо ему за это!😃), “подпилил” немного код для Е-ОСД, чтобы информация не дублировалась, теперь с неё выводится на экран только режим автопилота, авиагоризонт, птичка тангажа со шкалой и в самом низу экрана строка статуса. Вся остальная информация выводится с SmallTim OSD. Если хотите, могу выложить этот вариант прошивки.

LeonVS
dundel1:

это на 2.26?

Да, с 24 я чтот как то так и не подружился, летит сама куда хочет, возможно траблы были так же в компасе, только вот он там не отключается, и в терминале пытался и из планера, пишет что выключен, но по факту данные АП берет с него… + иногда не адекватные дерганья, которые победить так же не удалось…
26 как то более адеквато себя ведет. Странно что она у кого то виснет, у меня не разу траблов не было, даже если телеметрию отключить вообще…

dundel1:

Если хотите, могу выложить этот вариант прошивки.

Эх, жду бвХУД обещанный Олегом, киньте, лишним не будет, и если можно фотку, что она там кажет 😃

ukkr

Привет всем. У нас холодно, шлангую дома. -15 и ветер-- кайфа куда-то ехать никакого. Тихонько разбираюсь с кодом “Пирата”. Одновременно, решил посмотреть на Mission Planner. Ну, кроме того, что это .NETовская поделка, всё остальное выглядит кошерно. Только вот 2 фигни не понравились. Первая – при старте последней версии 1.1.34 обнаружило наличие каких-то апдейтов. Я по глупости согласился. В результате оно накачало себе апдейтов с удалённого git сервера. И после этого уже не запускалось. Как ни пытался. Пришлось сносить и ставить заново с отказом от любых апдейтов. Дальше – всё шоколадно. Кроме 2х моментов. Снизу приаттачил скрин. ГПСом обнаружило чётко мой дом. Это при том, что я на расстоянии 3х метров от окна тестировал. Вот в чём сила внешней GPS-антены, хотя она и тяжёлая, сволочь. Так вот, на гугломепсах показало чётко, а вот слева пишет, что GPSа нет. Это чё такое? Ну и часы слева сверху со страшным значением. Откуда оно их взяло?

LeonVS
ukkr:

Откуда оно их взяло?

Часы как я понял идут с компа, то что ГПС пишет нет - глюк. В новом планере скорей всего все заточено под новый код арду, мы же юзаем то что они уже проехали 😃 Загрузи старый планер, будет все тип топ 😃
Есть мысли почему компас херню несет? К стати температура в полете на плате когда за бортом было -9 была +8 +11 градусов (по данным с барометра)

dundel1
dundel1:

вариант прошивки.

Пожалуйста.
Сфотографировать сейчас не могу, прошита стандартная версия, железо всё разворочено:). Вот, примерно попытался изобразить:). Где-то так выглядит…😃

MegaPirateOSD_AHI_only.zip

Syberian

ага, попалась…
Чтобы скорость в еосд показывало нормально, нужно поменять в _eosd.pde

sport.write((byte)(g_gps->ground_speed*0.036));
на
sport.write((byte)(g_gps->ground_speed*0.01));