Smalltim OSD and autopilot (часть 1)
Классная фотка ! Ракурс обалденный !
ЗЫ Я про самолет ! 😃
IMHO, “минимальная доводка-функция-мелочь” содержащая в себе все остальные, это универсальный интерфейс типа I2C, который позволит, внешним модулем, делать цветные буквы 3D-шными шрифтами, мегакрутой даунлинк в синхропаузе или вообще отдельным передатчиком или вообще другой источник данных положения по осям для стабилизатора.
А базовая модель должна иметь не меганавороченую, всё равно, удовлетворить запросы массовой фантазии, нереально, а законченую функциональность и комплектацию позволяющую всё воткнуть и стабильно полететь любуясь на циферки высоты и скорости.
А можно ссылочку на такой модуль? Как у него с доступностью и ценой?
Нет таких ссылок, а цена, определяется практическим потолком фантазии, так же как и функционал.
Просто, я не вижу других способов расширять функциональность, не превращая устройство в монстра, который может почти всё, но почти всегда, не точно то, что нужно.
а я думал вы из тех что сами делали -)) Хотя при желании я думаю толстый процессор подобрать можно, вопрос в соотношение цена/потребности …
Из свежих изменений по вашим просьбам:
- Добавлено 3е напряжение к двум уже имеющимся во все части кода, запускающие автопилот, включающие мигание и т.д.
- Шкалы в Контрольной Панели теперь подписаны, что каждая означает.
- Добавлен мониторинг данных модуля ГПС в Контрольную Панель.
- Убран тип стабилизации как класс. Теперь всегда работает режим 2 - непрямое управление самолетом, fly by wire, кто как назовет. С ручек вы просто задаете требуемые углы крена-тангажа, а автопилот приводит самик к этим углам.
- Измененена логика работы управляющего канала:
- 5 положений, как и раньше, из них:
– 1 - Принудительное выключение автопилота, стабилизации. Вступает в силу мгновенно, перевешивает все условия автовключения автопилота и запрещает автопилот и стабилизацию в течение всего времени, пока канал в этом положении.
– 2 - Переключение экранов телеметрии. Срабатывает (сменяет экран) каждые 3 секунды, пока канал в этом положении. Не влияет на логику работы автопилота и стабилизации.
– 3 - Нет команд. Не влияет на логику работы автопилота и стабилизации.
– 4 - Включение стабилизации. Вступает в силу через 1 секунду после установки канала в это положение.
– 5 - Принудительное включение автопилота и стабилизации. Вступает в силу через 1 секунду после установки канала в это положение. Перевешивает все условия автовыключения автопилота и держит автопилот и стабилизацию включенными в течение всего времени, пока канал в этом положении.
Напомню, что фактические положения ручки для каждой команды управляющего канала могут быть разбросаны в любом удобном для вас порядке.
Напомню, что команды, задаваемые с управляющего канала, имеют безусловный приоритет над любой внутренней логикой автопилота, всеми условиями автовключения и автовыключения. Но только в том случае, когда автопилот видит RC связь. Как только RC связь теряется, он игнорирует любые команды с управляющего канала, до тех пор, пока связь не восстановится.
baychi просит поменять 4е положение:
– “Включение стабилизации”
на
– “Включение стабилизации, Выключение автопилота” .
Ему не нравится, что если хочется выключить автопилот и остаться со включенной стабилизацией, то приходится с 5го положения уходить в 1е а потом в 4е. Неудобно, можно запутаться.
Сделать, то, что просит Александр, просто, но я вижу здесь противоречие, которое хочу вынести на обсуждение.
-
При переходе в 4е положение можно включить и держать стабилизацию включенной, и дать ЕДИНИЧНУЮ команду на выключение автопилота. Тогда автопилот выключится, но при срабатывании условия автовключения он опять включится.
Если, скажем, оказалось, что аппа хорошая, и хочется полетать скажем, за слишком пессимистично поставленной дальностью автовключения пилота в, скажем, 500м, то пилот постоянно будет включаться, и с выключенным пилотом и включенной стабилизацией в таком случае полетать не удастся. -
При переходе в 4е положение можно включить и держать стабилизацию включенной, и УДЕРЖИВАТЬ команду на выключение автопилота. Тогда автопилот выключится и не будет включаться при любых условиях автовключения. Можно залетаться, потерять ориентацию, и автопилот не выручит - его в этом режиме УДЕРЖИВАЮТ от включения.
Такая вот разница.
Думаю, или извинюсь перед тобой, Александр, и не буду делать то, что ты просишь 😃, или сделаю 1й вариант. Так риска гораздо меньше.
При переходе в 4е положение можно включить и держать стабилизацию включенной, и дать ЕДИНИЧНУЮ команду на выключение автопилота. Тогда автопилот выключится, но при срабатывании условия автовключения он опять включится. Если, скажем, оказалось, что аппа хорошая, и хочется полетать скажем, за слишком пессимистично поставленной дальностью автовключения пилота в, скажем, 500м, то пилот постоянно будет включаться, и с выключенным пилотом и включенной стабилизацией в таком случае полетать не удастся.
Вопрос как рассматривать команду при переходе в позицию Nx? Если, как однократную, то описанная проблема будет доставлять неудобство. Другой вопрос, зачем выставлять себе ограничение в 500 м, а затем пытаться его нарушить? В конце концов, команда “выключить все” в этом случае, тоже будет противоречить желанию пилота полетать за пределами 500 м.
Но можно еще ввести автоповтор (постоянный или задаваемый доп. флагом) команд для кажого состояния. Тогда требование “включить стабилизацию и отключить АП” буде повторяться через каждые 2-3 сек, и быстро отменит любое влючени АП по условиям (если условие, в свою очередь, не дает постоянно повторяющегося требования, а срабатывает лишь однажды при переходе соответсвующей границы).
Еще один выход - однозначная логика приоритеов. Высший приоритет у потери РУ. Далее, приоритены прямые команды пилота. До тех пор пока упр. канал находится в любом состоянии, кроме “нет команды”, логика атовключения/выключения АП заблокирована. И только в положении “нет команды” работают уставки по дальности, времени и т.п.
>и быстро отменит любое влючени АП по условиям (если условие, в свою очередь, не дает постоянно повторяющегося требования, а срабатывает лишь однажды при переходе соответсвующей границы).
Нет, флаги автовключения взводятся каждый цикл автопилота по результатам проверок всех условий, и менять я это не буду, 100%.
Если улетел за 500м, то как ни крути, отключишь автопилот с управляющего канала, а он через 10 миллисекунд опять включится. У нас всё строго 😃. Отключишь пилот только если управляющий канал в положении принудительного выключения.
В общем, ты за 1й вариант, как меньшее из двух зол? 😃
PS: Пока не забыл вопрос по доработкам плат ТМ. Их у меня на сегодняшний день 2 (делаю на всех платах, хотя и жаль курочить). 😃
- Увеличение вх. сопротивления каналов АЦП, измеряющих напряжение. Давно хотел спросить, почему, Тимофей, ты вибрал относиттельно низкое вх. сопростивлене (2+1=3К кОм)? Ведь не RSSI, ни любой другой источник с вых сопротивлением более 100 оМ к ним просто так не подключишь. Что мешало использовать высоокомные делители на входе? (Меге достаточно 50 пА вх. тока).
- Вход Tx на GPS модулях Locosys (5 Гц) притянут к земле, за счет делителя 5->3 В. Но модуль нормально начинает работать только при лог 1 на этом входе. А начальное состояние меги при включении питания иногда совсем не 1-ца. Мне приходилось шаманить: многократно вкючать питание, чтобы заработал GPS, пока не додумался подтянуть Tx +3.3 В. Неужели только у меня проблемма с запуском GPS проявилась?
В общем, ты за 1й вариант, как меньшее из двух зол?
Да. Пусть состояние “включение стабилизации” означает также “разрешение логики АП”. Но “выключить все” - запрещение этой логики.
>Давно хотел спросить, почему, Тимофей, ты вибрал относиттельно низкое вх. сопростивлене (2+1=3К кОм)?
Да как-то так получилось 2 года назад. Принято. Вовремя, кстати, пока - успеваем поправить 😉
>Вход Tx на GPS модулях Locosys (5 Гц) притянут к земле, за счет делителя 5->3 В.
Вход ТХ? может быть, выход ТХ? Или ты про RX? В общем, от тебя первого я о такой проблеме слышу.
>Да. Пусть состояние “включение стабилизации” означает также “разрешение логики АП”. А “выключить все” - запрещение этой логики.
Принято, я не против.
Вход ТХ?
Выход Tx по отношению к АП/ТМ; вход RX на GPS.
Гдето-я об этом уже писал. Долго не мог понять, почему GPS то сразу стратует, то хоть час жди - фиг тебе спутники 😉 Потом глянул на осцилле, и увидел, если в момент подачи питания или чуть позже на RX GPS лог 0 (шире байта по времени), то он не начинает автопередачу NMEA строк, а ждет каких-то команд. 😦
Поэтому теперь RX вход GPS модулей после обработки GPSPICK-ером постоянно перевешиваю на +5 В телеметрии.
>Поэтому теперь RX вход GPS модулей после обработки GPSPICK-ером постоянно перевешиваю на +5 В телеметрии.
Понятно. У тебя еще и модуль старый 😦
Нам с конца 2009 сразу на заводе под наши требования модули перепрошивают.
В любом случае, подтяжку можно сделать прямо на модуле, операция плевая, мы же проводки к модулям так и так сами делаем…
Я вот выскажу крамольную мысль - мы чего все ждем, пока пиродатчики приедут ? Или тут кроется еще какая-то подоплека, в частности недошлифованый код ? Судя по скорости доставки пиродатчиков, они идут своими ногами (точнее мелко перебирают своими “ножками” и идут-идут цепочкой как муравьи), а не едут.
ИМХО Вопрос прозвучал исключительно риторический.
А то может полетаем с чем есть, а некоторые 😃“эстеты”😃, которым по 10 режимов на одном канале надо, пусть и занимаются эпикурством !
Наболело, извини Тим, но некоторые твои клиенты плавно перетекают в разряд “бывших” 😦 Но я пока держусь. Из последних сил.
- Вход Tx на GPS модулях Locosys (5 Гц) притянут к земле, за счет делителя 5->3 В. Но модуль нормально начинает работать только при лог 1 на этом входе. А начальное состояние меги при включении питания иногда совсем не 1-ца. Мне приходилось шаманить: многократно вкючать питание, чтобы заработал GPS, пока не додумался подтянуть Tx +3.3 В. Неужели только у меня проблемма с запуском GPS проявилась?
Можно же много проще решить - не ставить делитель, подтяжку, а просто последовательно сопротивление килоом на 10 между RX модуля и TX телеметрии. Это обычное решение согласования уровней для таких ситуаций- работает у многих - в том числе и у меня…
И не будет проблем, Вами озвученных…
>Я вот выскажу крамольную мысль - мы чего все ждем, пока пиродатчики приедут
Да. Если ты сможешь подобрать, договориться, получить сэмплы, оттестировать, облетать, заказать партию и привезти столько же, сколько тащим мы, и сделать всё это быстрее чем это получается у нас, то, наверное, автопилот стоило тебе делать 😃
Пока едут датчики, между прочим, телеметрия и пилот полностью переразведены, с импульсниками, с изменениями и дополнениями по результатам облетов, под массовое производство (пайку) роботами на заводе, и всё это с условием обязательной совместимости с текущими телеметриями и пилотами по софту, по подключению, и т.д. Это не очень просто было сделать. Зато теперь при необходимости за 2 недели можно сделать хоть грузовик телеметрий-автопилотов.
>Наболело, извини Тим, но некоторые твои клиенты плавно перетекают в разряд “бывших” 😦 Но я пока держусь. Из последних сил.
Появится пилот - будут новости.
Мы работаем. Дизайнеры причесывают документацию, делают сайт, я полирую базовый функционал и облетываю модели, другие люди занимаются производством плат, закупками комплектухи, поворотными антеннами, радиоканалом и т.д.
Обещание массовой доступности к началу полетного сезона - в силе. Вылезают какие-то вопросы по результатам облетов - обсуждаем, а докладывать в теме по каждому чиху - давным-давно надоело.
Про рашку я и не говорил, в общем ты прав… 😦
Я уж поменял сообщение, про орлодерево убрал, добавил конструктива, перечитай 😃
А как тебе вариант сделать автопилот самообучающимся?
Тоесть поставил - поднял самолет в воздух и крутишь пилотаж какоето время.
Он себе строит поверхности управления (скорость-воздействие - результат) по каждому из каналов управления, потом набирает высоту побольше и пробует сам заполнить пробелы в построенных поверхностях. В результате он знает как будет вести себя самолет при каком воздейстии, и дальше управлять будет сразу по накатанным данным.
А как тебе вариант сделать автопилот самообучающимся? …
Пробовал по логам расчитать настройки АП - не получилось (получилась туфта, забросил)
Логи три раза выкладывались в соседней теме, около этого места.
>А как тебе вариант сделать автопилот самообучающимся?
Интересная, но слишком сложная тема, чтобы сейчас ею заниматься.
Интересная, но слишком сложная тема, чтобы сейчас ею заниматься.
Дак наоборот. Пишешь один раз код а дальше он себе сам мозги сушит.