Проект Мегапират на самик!
никак нет, в осд тупо показывается значение одного байта скорости. Преобразование выполняется в _EOSD.pde
Олег, там же банальный
sport.write((byte)(g_gps->ground_speed*0.036));
Получается, есть только 3 варианта:
- (наименее вероятный) – неисправный GPS или связка Atmega2560 +GPS. Но тогда должно плющить и сам самолёт, gps->ground_speed используется повсеместно в коде, даже в DCM
- Компилятор сгенерировал кривой код для
(byte)(g_gps->ground_speed*0.036)
В принципе, вероятность этого есть, Ардуина же использует WinAvr’овский g++, а в нём часто находили говнокодо-генерацию.
3) Баг в прошивке самой ОСД. Например в функции, которая переводит число в строку. Достаточно распространённый трабл. Правда, непонятно почему тогда остальные показометры правильно отмалёвываются в ОСД.
Других вариантов я не вижу.😌
Расшевелил я смотрю ветку 😉
Компилятор сгенерировал кривой код для
Код:
sport.write((byte)(g_gps->ground_speed*0.036));
Перекомпилил я сие строчку в:
sport.write((byte)(g_gps->ground_speed * 36 / 1000));
Может с целыми числами дело пойдет лучше 😃
Сегодня -22, вот думаю поэкстрималить в полях, или лучше все же дома на печи поваляться 😃
Сегодня -22, вот думаю поэкстрималить в полях, или лучше все же дома на печи поваляться
Та ну, ни один автопилот не стоит такого издевательства над человеком.
Перекомпилил я сие строчку в:
sport.write((byte)(g_gps->ground_speed * 36 / 1000));
Результат отрицательный 😦 Скорость так же скачет…
Та ну, ни один автопилот не стоит такого издевательства над человеком.
Однако ваша правда, на крайнем полете сперва думали что сглючил АП, самуль проходя последнюю точку стал разворачиваться и быстро снижаться, метрах в 10-20 переключил на ручное ручку на себя, но скай как шел под углом градусов 45 так и вписался в сугроб…
Логи показали то ли отвалился кабанчик, то ли замерзла серва РВ… АП до последнего давил на себя на максимум…
К стати, какая переменная отвечает за шаг миссии? Хотелось бы знать какой шаг в данный момент исполняет АП… Я бы пока нет бвХУД вместо скорости вывел данные в планер, больше толка бы было, скорость все равно кривая 😃
К стати, какая переменная отвечает за шаг миссии? Хотелось бы знать какой шаг в данный момент исполняет АП…
Пока рылся в коде – натыкался на такие переменные next_nav_command и next_nonnav_command. Собственно у МегаПирата идёт разделение на эти 2 подтипа команд. Дёргается update_commands() на каждой итерации из commands_process.pde. Все кишки сидят в commands.pde, commands_logic.pde и commands_process.pde.
Счетчик туда прилепить может? И циферу в планер выводить, для настройки будет очень кстати.
Счетчик туда прилепить может? И циферу в планер выводить, для настройки будет очень кстати.
Не совсем понял. Там по каждой комманде при обработке идёт логирование на 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);
Спасиб! Это то что надо, теперь надо всего лишь “i” отправить куда надо 😃
Олег, может замутишь в еОСД еще один байт в сервис строке для отображения номера команды навигации?
не, не “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 градусов, вокруг оси Х.
Беда в том, что у каждого типа команды свой набор параметров. Как в количественном, так и в типовом( целое, вещественное и т.д.) виде. Думаю, что вывести команды вместе с параметрами на ОСД в общем случае не выйдет.
А вам ещё надо, на сколько я понял, и параметры самой команды
Насколько я понял, нужен всего лишь номер команды по порядку, как она в миссии записана.
Ну т.е, вас не устроит банальное, скажем 10
Да нет, вполне устроит, то что делает определенная строчка я и так знаю, для меня важно знать что он в данный момент выполняет именно ее. Так что достаточно банально знать номер выполняемой команды 😃
Так что достаточно банально знать номер выполняемой команды
Тогда Вам нужны эти 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 – это не айдишки команд в мишн-плане, а типы команд, например: разворот, набор высоты, сфотографировать вон ту красивую мадам с глубоким декольте и т.д.
В режиме Лойт и РТЛ ацки дергается серва РВ, фильтр чтоль отсутствует, и он так пытается высоту держать…?
Вывел вместо скорости (все равно кривую кажет) температуру с баро датчика для мониторинга, как показала практика если включенный вынести на морозец (сейчас -14) температура на плате меньше +6 не падает, вортекс сам себя греет не плохо 😃 Завтра замеряем что будет в полете.
Чтот опять ветка заглохла, походу все лежат на печи греются 😃
Полетали сегодня на очень позитивно 😃 Одно расстраивает, компас впадает в маразм… может летаем в аномальной зоне 😃 Данные просто замирают, и АП начинает тупить, пролетать точки и тд тп… В общем отключил его вообще и стало гораздо лучше, летает как по струнке, очень порадовал 😃
Сегодня впервые отпустили его за предел видимости, взлетел-пролетел-сел, все в полном автомате 😃
Качество видео не ахти, но кому интересно зацените 😃
dpiter.info/sky3.wmv
походу все лежат на печи греются
Да, именно так. 😃) У нас сегодня днём выше -22 так и не поднялось… А в ночь -32 обещают :0
Леонид, это на 2.26? По поводу компаса - один знакомый летает на коптере, тоже отмечал, что в мороз компас начинает дурить. Я это пока не проверял, в такие холода не люблю на улицу высовываться.😃
Вижу, Вы тоже две ОСД используете.😃 Я себе, с подсказками Олега (спасибо ему за это!😃), “подпилил” немного код для Е-ОСД, чтобы информация не дублировалась, теперь с неё выводится на экран только режим автопилота, авиагоризонт, птичка тангажа со шкалой и в самом низу экрана строка статуса. Вся остальная информация выводится с SmallTim OSD. Если хотите, могу выложить этот вариант прошивки.
это на 2.26?
Да, с 24 я чтот как то так и не подружился, летит сама куда хочет, возможно траблы были так же в компасе, только вот он там не отключается, и в терминале пытался и из планера, пишет что выключен, но по факту данные АП берет с него… + иногда не адекватные дерганья, которые победить так же не удалось…
26 как то более адеквато себя ведет. Странно что она у кого то виснет, у меня не разу траблов не было, даже если телеметрию отключить вообще…
Если хотите, могу выложить этот вариант прошивки.
Эх, жду бвХУД обещанный Олегом, киньте, лишним не будет, и если можно фотку, что она там кажет 😃
Привет всем. У нас холодно, шлангую дома. -15 и ветер-- кайфа куда-то ехать никакого. Тихонько разбираюсь с кодом “Пирата”. Одновременно, решил посмотреть на Mission Planner. Ну, кроме того, что это .NETовская поделка, всё остальное выглядит кошерно. Только вот 2 фигни не понравились. Первая – при старте последней версии 1.1.34 обнаружило наличие каких-то апдейтов. Я по глупости согласился. В результате оно накачало себе апдейтов с удалённого git сервера. И после этого уже не запускалось. Как ни пытался. Пришлось сносить и ставить заново с отказом от любых апдейтов. Дальше – всё шоколадно. Кроме 2х моментов. Снизу приаттачил скрин. ГПСом обнаружило чётко мой дом. Это при том, что я на расстоянии 3х метров от окна тестировал. Вот в чём сила внешней GPS-антены, хотя она и тяжёлая, сволочь. Так вот, на гугломепсах показало чётко, а вот слева пишет, что GPSа нет. Это чё такое? Ну и часы слева сверху со страшным значением. Откуда оно их взяло?
Откуда оно их взяло?
Часы как я понял идут с компа, то что ГПС пишет нет - глюк. В новом планере скорей всего все заточено под новый код арду, мы же юзаем то что они уже проехали 😃 Загрузи старый планер, будет все тип топ 😃
Есть мысли почему компас херню несет? К стати температура в полете на плате когда за бортом было -9 была +8 +11 градусов (по данным с барометра)
вариант прошивки.
Пожалуйста.
Сфотографировать сейчас не могу, прошита стандартная версия, железо всё разворочено:). Вот, примерно попытался изобразить:). Где-то так выглядит…😃
ага, попалась…
Чтобы скорость в еосд показывало нормально, нужно поменять в _eosd.pde
sport.write((byte)(g_gps->ground_speed*0.036));
на
sport.write((byte)(g_gps->ground_speed*0.01));