Автопилот Arduplane - открытое ПО

X3_Shim
Андрей_Головин:

Нигде не могу найти этот параметр, что бы сразу РТЛ срабатывал.

Так прям на в том же месте где порог PWM FS настраивается. Хотя я может и вру конечно, но в любом случае это FS_LONG_TIMEOUT, сейчас он видимо стоит 20.

Илья_Реджепов
Андрей_Головин:

У меня например, при ФС, сначала отображает киркл - круг, а потом через 20 сек - РТЛ. Нигде не могу найти этот параметр, что бы сразу РТЛ срабатывал.

Это настройки АПМ по умолчанию. Круг, это аэроплан пытается сигнал найти, например если антенна затеняется, ну а потом летит домой. Собственно режим FS надо настраивать в самом приёмнике.

Я в своих приемниках настраиваю FS на отключение выходов, хотя есть и рекомендации, настроить FS сразу на включение режима RTL. Есть ещё вариант с замораживанием сигнала, вот этот, по моему самый опасный.

нет режима полета “фаилсейв”. Ну по крайней мере я его не видел ни разу.

Я один раз услышал сообщение " файлсейв" с дроидпланнера. При том что до самолёта было метров 300, но он был низко над деревьями, и скорее всего сигнал 2,4 ГГц глушился лесом. Так что режима такого у АПМ нет, но сообщение в мавлинке об этом есть.

ВлАс
djsatan:

АПМ пишет что сработал фаилсейв (энкодер прошит) но на точку старта возвращаться не собирается , и на карте точку дом нарисовал в африке.

Да это еще повезло, что он домой не полетел, в африке его было-бы сложно искать, большая вероятность того, что туземцы сожгут на ритуальном огне (жертвоприношение, знаете-ли)
А если серьезно, то куда ты летел, если он спутников не наловил и дом не определил. Пока не научишь его ловить спутники, об автоматических режимах и думать нечего.

prg

Осенью поковырялся в прошивке MinimOSD. Хотел разобраться, почему по экрану пробегают “глючки”. Оказалось все просто - аффтары на утрудили себя синхронизацией обновления экрана с VSync. Или просто не осилили.
Прилагается прошивка на основе самолетной r805. Из внешних изменений - отсутствие “глючков”, индикация режима autotune, изменено отображение предупреждений в режиме “чистого экрана”. Еще они почему-то сделали загрузку шрифта отдельной прошивкой. Может, что-то у них там не влезало… В моей версии загрузка шрифта есть.
Исходники: github.com/KIrill-ka/MinimOSD-Extra

minimosdx-plane-r805.zip

kaveg
prg:

Еще они почему-то сделали загрузку шрифта отдельной прошивкой.

неправда, я из пргошивки какраз эту возможность выпилил нафиг … изза этого глючно работало… случайно срабатывал режим прошивки шрифтов))

prg
kaveg:

неправда

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

kaveg
prg:

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

переход в режим прошивки шрифтов происходил при получени трех символов перевода строки если такое случалось первые двадцать секундпосле включения или както так, вот у меня железка какимто хитрым способом эти символы получала и писала на экране апдейтинг чарсет… пришлось закоментить участок кода который отвечал за перепрошивку шрифтов. а неправда в том что загрузка шрифтов там есть… по крайней мере в нетестовых ревизиях. может вы какуюто промежуточную взяли где зачемто был код выпилен или деактивирован как в моем случае.
Ну и синхронизация с всинком в принципе полезна, но не так уж и критична

alexeykozin
prg:

Осенью поковырялся в прошивке MinimOSD. Хотел разобраться, почему по экрану пробегают “глючки”. Оказалось все просто - аффтары на утрудили себя синхронизацией обновления экрана с VSync. Или просто не осилили.

Кирилл, спасибо за проделанную работу!
не будет ли слишком большой наглостью с моей стороны попросить вкратце рассказать показать суть сделанных изменений?
по коду в каких то функциях остался вывод данных независимо от vsync
и есть кусочек checkvsync

prg
kaveg:

а неправда в том что загрузка шрифтов там есть… по крайней мере в нетестовых ревизиях

Вот, смотрите, что я имел в виду (ищите там uploadFont):
github.com/diydrones/…/MAVLink.ino
Вообще, конечно, там бардак с версиями и сложно понять, какая именно “правильная”.

kaveg:

Ну и синхронизация с всинком в принципе полезна, но не так уж и критична

Это что, вы хотите убедить всех, что вам моя прошивка не нужна? А зачем?

kaveg:

вот у меня железка какимто хитрым способом эти символы получала

Вполне вероятно, что на старте какой-то мусор может в порт сыпаться… Или какие-то особенности с последовательностью и временем старта компонентов системы. В полете это включиться не должно, т.к. там есть проверка, что если мавлинк OSD увидело, шрифты обновлять не будет пытаться. Я бы на вашем месте докопался - подключил логический анализатор или осциллограф и посмотрел, что там делается.

ions

Пролистал немало страниц, но так и не нашел расположение оборудования (компас, контроллер, телеметрия т.д.) на самолете типа бикслера, скайвокер. Как располагается компас, телеметрия, чтоб не было влияния друг на друга?

prg
alexeykozin:

не будет ли слишком большой наглостью с моей стороны попросить вкратце рассказать показать суть сделанных изменений

Да с удовольствием 😃
Основная штука - это запись отдельных строк в буфер в памяти. Обновление экрана делается целиком.
И решение попутных проблем - освободить памяти для буфера, ускорить работу с MAX’ом по SPI.
Вариант с буферизацией экрана я уже видел для таких OSD, только не для ardupilot/mavlink.
Программное отслеживание vsync - это сам придумал.
Еще одна вещь меня несколько удивила. В MAX7456 есть режим последовательной записи строки (auto-increment для адреса). Почему-то во всех реализациях подобных OSD, что я видел, используется некий, не описанный в документации, способ передачи данных. Который при этом в два раза медленнее.
Если интересуют более мелкие и кровавые подробности, наверное, лучше в ЛС.

ВлАс
ions:

Пролистал немало страниц, но так и не нашел расположение оборудования (компас, контроллер, телеметрия т.д.)

Давно это было 😃, сейчас даже автор не смог бы найти

ions:

на самолете типа бикслера, скайвокер. Как располагается компас, телеметрия, чтоб не было влияния друг на друга?

Там вроде только компас на крыло выносили, остальное плотным бутербродом упаковано было 😃
Но по уму надо его подальше от силовых проводов, остальное срастется 😃

ions

А как (где) ставится телеметрия APM и видеопередатчик камеры? На какое расстояние они разносятся?

alexeykozin
prg:

Если интересуют более мелкие и кровавые подробности, наверное, лучше в ЛС.

тема достойна написания статьи или как минимум отдельного обсуждения!
может в блоги рцдизайн?

ВлАс
ions:

А как (где) ставится телеметрия APM и видеопередатчик камеры? На какое расстояние они разносятся?

Я не замечал влияния одного на другое, телеметрию прилепил на “велкро” под АРМ, но моя не греется, если сильно греется, то лучше наружу вынести (ИМХО).
С миним ОСД есть ньюансы с питанием, камера и передатчик на 5В, запитать с одного источника не получилось, не рабртала камера и глючило ОСД, запитал передатчик от регуля, а камеру и ОСД от АРМ.

kaveg
prg:

В полете это включиться не должно, т.к. там есть проверка, что если мавлинк OSD увидело, шрифты обновлять не будет пытаться. Я бы на вашем месте докопался - подключил логический анализатор или осциллограф и посмотрел, что там делается.

Лениво както))
а вот код за аплоад шрифтов отвечающий:
if (mavlink_active == 0 && millis() < 20000 && millis() > 5000) {
if (c == ‘\n’ || c == ‘\r’) {
crlf_count++;
} else {
crlf_count = 0;
}
// if (crlf_count == 3) {
// uploadFont();
// }

Вот эти три последние строчки я какраз и коментил чтоб не глючило, с ними 90%вероятность при включении словить фонт аплоад.

ну и осталась небольшая вероятность несинхрониизаци мавлинка на включени… но уже не так критично и почему происходит понять не получилось, скорее всего стейтмашина протокола глючит и иногда не может синкануться на начало пакета по какойто причине.

alexeykozin

теоретически можно в утилите сделать параметр и передавать его в осд
для блокировки возможности заливки шрифта для тех кому мешает

ВлАс
kaveg:

Лениво както))

Ребята, по моему Вы не тем занимаетесь (не напрягайтесь) 😃
Видео от Юлиана. Подключение минимОСД к назэ32. Там авиагоризонт графический и все эволюции индицируются плавно.
Вопрос теоретический: для АРМ почему так не сделают? Я по началу думал, что это невозможно из-за использования такого МАХа.

kaveg
prg:

В MAX7456 есть режим последовательной записи строки (auto-increment для адреса). Почему-то во всех реализациях подобных OSD

не берусь утверждать но буфер экрана около 450байт, у 328меги оперативы всего 2килобайта оперативы. правильно былобы програмно сформировать буфер в 450 байт, а потом по прерыванию от всинк залить его весь в максимку. но оперативы всего 2 килобайта… потому, не утверждаю, но скорее всего формируются отдельные куски экрана по каждому параметру и заливаются по координатам, что дает оверхед…плюс у максимки spi может работать на скоростях до 20 мегабит… но чем выше скорость тем выше вероятность словить глюк при передаче от видеопередатчика или ещё какой наводки…
это так, мысли в слух.

ВлАс:

Там авиагоризонт графический и все эволюции индицируются плавно.
Вопрос теоретический: для АРМ почему так не сделают? Я по началу думал, что это невозможно из-за использования такого МАХа.

не может быть на макс графического горизонта, только псевдографикой, а количество символов ограничено 256, потому плавно не получится.

ВлАс
kaveg:

не может быть на макс графического горизонта, только псевдографикой,

Опс-с. Обознался 😃

11:00 начинается демонстрация. Действительно символами, но так плавно. Давно это видел, тогда показалось, что графика.

alexeykozin

думаю если поменять шрифт - вместо черточек сделать жирные точки или минимально короткие черточки то символьный горизонт не будет так плох

kaveg:

правильно былобы програмно сформировать буфер в 450 байт, а потом по прерыванию от всинк залить его весь в максимку

вот вот!
по прерыванию а не в цикле и программно запршивать vsync!
дело в том что у макса есть аппаратный выход vsync
и более того он уже соединен с 32 ногой атмеги
а это pd2 и прерывание int0 !

единственное может надо запрещать прерывания или отключать апдейты в моменты инициализации, обновления шрифтов итд.
и наверное буфер указатель буфера объявить волотильным ибо он будет опустошаться из прерывания - но тут я не силен