OSD на ATmega1281

Иван

нашёл тут fpv-community.ru/topic/314-megapirate-x/page-41 вот это alex57russ сказал(а) 29 Ноя 2013 - 14:30:
где на датчике и на трубке вход - выход?
Без разницы, значения всегда положительные. Не забудьте, чтобы во время арминга на трубку ПВД был надет колпачок из поролона или тряпки, чтобы показания не сбивались.

процесс калибровки, видимо

msv

Запустил вчера MS5611. Подключил к ногам PC4…PC7, они оказались разведены на моей плате. Конечно софтовый SPI работает помедленней аппаратного, но время чтения все равно много меньше времени выполнения математики расчета высоты, так что приемлемо. Если кому будет надо честный SPI, может перекомпилировать условной компиляцией.
Вчера за час давление было стабильное и высота не плыла, сегодня давление растет на глазах, и за полчаса высота убежала на 1-2м… Ну в принципе не так и плохо, если учесть что GPS-высота на малой высоте убегает на десятки метров…
Код конечно еще буду причесовать…

msv

Давайте подумаем как теперь использовать воздушную скорость. Вывод сделал универсальным, 4-ре варианта:

  1. Только GPS скорость.
  2. GPS в основное поле + шкала, воздушная в дополнительное поле.
  3. Баро в основное поле + шкала, GPS в дополнительное поле.
  4. Только баро скорость.
    Скорость используется для блокировки двигателя в автоматических режимах. Использование GPS-скорости иногда приводило к ложным блокировкам, когда самолет зависал против ветра. Но и использование воздушной скорости может оказаться ненадежным, например самолет повис на дереве, а в трубку пито задувает ветер… Подумайте, как надежнее организовать блокировку…
    Или просто менять по режимам вывода - если 1,2, то по GPS, если 3,4- по воздушной скорости?
Dacor

ИМХО лучше уж когда самолет повис на дереве и из-за бароскорости мотором маслает, чем упадет еще дальше из-за отключения мотора по скорости ГПС.

Приведу пример снова с Иглов. У них используется при полете обе скорости: максимальное ограниение по бароскороси (чтобы не выйти за эксплуатационные ограничения поанера), а минимальное ограничение по ГПС (чтобы не отключало мотор на скоростях ниже определенного порога, чтобы не останавливаться при полете против ветра).

msv

Желающие могут попробовать баросенсоры: OSD V2.9.0.
Версия несовместима по конфигурации с предыдущими, все будет сброшено в “заводские” настройки. Поэтому нужно не забыть старым конфигуратором прочитать/сохранить все настройки, а потом новым загрузить/записать.
Датчик MPXV7002DP цепляется к порту PF4, тут проблем не должно быть.
Для MS5611-01BA01 собрал такую схемку согласования:

Обратите внимание на ножки меги, к которым следует подключаться, SPI софтовый.
Кстати помучался, то ли сразу продали дохлые полевики (отсыпали из какого-то пакета, а не от ленты отрезали), то ли сам запалил (может так бояться статики?). Но два полевика оказались поддохшими и долго не мог сообразить почему нефига не согласовывает схема, да еще подпитывает до 4В сенсор…
Думаю можно обойтись делителями на резисторах для CLK, SDI, CSB (выходы OSD), а SDO пустить напрямую (не пробовал, есть шанс схватить паразитное питание от включенной подтяжки).
В этой версии дискретные выходы PA1…PA4 заточены под управление серийной съемкой фотиком, пока в тестовом режиме, толком не проверял, поэтому подробности позже.
Спасибы пожалуйста только после проверки… 😃

Иван

Сергей, у меня ламерский вопрос - один без другого барика будут работать адекватно в АП ? или это “система” сенсоров

alexeykozin
msv:

Вчера за час давление было стабильное и высота не плыла, сегодня давление растет на глазах,

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

я использую ардупилот, там тот же MS5611 в основном после 30 минутного полета высота не уходит больше метра, но если порывистый ветер и погода неспокойная то может и на 5 метров измениться. в помещении совсем другая картинка бародавление может прыгать и на 3 и 5 метров.

кстати к ардупилоту осд на дурацком max видеопроцессоре с его убогой графикой, прицепить бы туда толковое осд, все необходимые данные ардупилот выдает по открытому протоколу mavlink, есть библиотеки ардуино

msv
Иван:

один без другого барика будут работать адекватно в АП ?

Да, они полностью независимы.
MPXV7002DP- измерение приборной скорости. После включения 4сек идет авто-калибровка. В ветер перед включением есть смысл закрывать трубку НЕгерметичным колпачком, потом не забыть снять.
В конфигураторе “Калибровка->Коэфф. расчета бароскорости” можно задать чувствительность. Если будет нормально работать коэфф. по умолчанию, потом уберу. В “Экран->Определение скорости по GPS/баро” четыре варианта (0-3): от совсем не использовать баро-скорость (датчик даже не будет опрашиваться), до использовать только ее. Если параметр больше 1, для определения флага “Полет” (см. доку) используется баро-скорость.
MS5611-01BA01- измерение баро-высоты. В конфигураторе “Экран->Определение высоты по GPS/баро” тоже четыре варианта. 0- сенсор не опрашивается. Если больше 1, все алгоритмы (RTH, FBW итп) используют баро-высоту. Так же в конфигураторе можно указать альтернативно вывод температуры с этого сенсора (с точностью 0.1 град) и вывод атмосферного давления c точностью 0.1 мм. рт. ст. (ну может просто интересно).

alexeykozin:

кстати к ардупилоту осд на дурацком max видеопроцессоре с его убогой графикой

Зато какие красивые обводки… Даже завидно… 😃

ubd

Если параметр больше 1, для определения флага “Полет” (см. доку) используется баро-скорость.

Где дока?

msv

Имелось в виду старая документация (уже забыл куда выложил), в которой объяснял про этот флаг.

ubd

Да понял. Эта документация у меня есть. Я подумал, что есть уже новая версия доки.

Итак. Я тут давеча, от Сергей узнал, что в данный момент, баро высота и баро скорость, никакой роли в работе автопилота не играют. Можно только, выбирать датчики, и всё. т.е. если выбрана баро скорость, то АП будет брать её, на GPS не обращать внимание. Или наоборот. Так же про высоту.
Не знаю у кого как, но меня GPS скорость и высота, вполне устраивают. И смысла пока нет переходить на новую версию. т.к. функция, добавления газа, когда разница в скорости баро, сильно больше GPS, (полёт против ветра, или набор высоты на FBW), отсутствует. А меня интересует только она…

msv

Сергей, что ты хочешь получить от увеличения газа против ветра? (кстати, для оценки этого нужна только GPS-скорость) В моем представлении крейсерский режим (уровень газа под текущий тангаж) должен быть настроен под самый высокий кпд полета. Т.е. поддав газку самолет конечно полетит быстрее (по моей практике не так уж и намного), но очень быстро высосет акк. Те. в итоге пролетит все равно меньше, хоть по ветру, хоть против.
ЗЫ А баросенсоры, конечно не предмет первой необходимости… Так… для солидности… Раз у других есть, чем я хуже… 😃

ubd

Ладно ясно. И за это спасибо!

lis713

Сергей, об’ясни старому пенсионеру- стоит бароскорость, самолет против ветра (как у меня по GPS скорость 0-5) показывает, ну пусть 50 км\ч (образно!), значит АП не будет добавлять газ т.к. скорость высокая. А самолет летит хвостом вперед (назад?). Получается ты ввел просто дополнительный датчик- показометр? АП не высчитывает разницу между баро и GPSом? Будешь менять как-то код? И потом: у всех есть полет по точкам- почему бы и нам не попробовать? И еще - нельзя ли убрать управление пантильтом из АП. Катастрофически не хватает каналов со слоном!

ubd

И еще - нельзя ли убрать управление пантильтом из АП.

Ножом, по сердцу - РАЗ.

у всех есть полет по точкам- почему бы и нам не попробовать?

Ножом по сердцу - ДВА.

msv
lis713:

Получается ты ввел просто дополнительный датчик- показометр?

Ну не совсем… Хотя иметь именно простой показометр приборной скорости вроде бы все и просили… Действительно, не очень приятно видеть низкие цифры GPS-скорости, и нормальные значения приборной скорости позволят чуть меньше напрягаться в полете. Если сделать бороскорость основной, исключена блокировка двигателя в полете (как ты и хотел), и вообще определение состояния полета в некоторых случаях будет надежнее (правда в других случаях, о которых предупреждал, как раз наоборот…).
Если сделать баровысоту основной, во всех авто-режимах АП она будет использоваться как референсная (ты же и хотел в FBW использовать ее). RTH по ней по идее тоже должен приводить точнее. Практика покажет.
Не понимаю, что вы хотите получить от разности модулей скоростей GPS и баро… Только (!) в случае если направления их векторов совпадает, это даст скорость ветра. Но зачем эта скорость нужна вообще и тем более АП? Догадываюсь, что есть желание сделать газ как функцию не от тангажа а от этих скоростей… Цель достойная и тоже понятна- что бы в любой ураган самолет гарантировано возвращался. Напишите алгоритм хотя бы свободным текстом, обещаю подумать… Тк. в своих идеях на этот счет вижу больше потенциальных проблем, чем пользы.

lis713:

у всех есть полет по точкам- почему бы и нам не попробовать?

Надо же хоть чем то отличаться… 😃

lis713:

нельзя ли убрать управление пантильтом из АП.

Убрать несложно, сделаю (ломать не строить). Тем более что давно не пользуюсь. Но непонятно почему нельзя вытащить эти каналы прямо из приемника. Какие проблемы например со слоном?

Dacor

По поводу использования бароскорости и скорочти ГПС автопилотом. Я выше писал как это можно использовать. Задается минимальный предел по скорости ГПС (например 20км/ч) и максимальный по бароскорости (наприемер 90км/ч). При уменьшении скорости ГПС ниже 20 км/ч включаем газ на круизный режим. Если скорость не выросла выше 20 км/ч даем три четверти газа и т.д. Это чтобы модель не летела хвостом вперед. Ну и наоборот при выходе за предел 90 км/ч (только по баро) - чтобы модель в воздухе не развалить. Выключение мотора на земле можно сделать при баровысоте ниже 3 метров плюс скрость гпс равна нулю.

ПС пишу с телефона - извеняюсь за возможные ошибки
ППС ненавижу сенсорные телефоны…

ubd

Тем более что давно не пользуюсь. Но непонятно почему нельзя вытащить эти каналы прямо из приемника.

Ну наконец то… Ими никто не пользуется.

А если приёмник в крыле как у меня? Я конечно вытащил из приёмника 2 аналоговых канала, это пропустив ещё два провода. Но это колхоз - пускать параллельно проводам I2C, где идут все эти же каналы, но в цифре. Было бы удобнее в плату АП воткнуть разъёмчик, если нужно использовать. А приёмник пусть живёт в крыле, только по I2C общается АП. Или сумм-ППМ, у кого как.

что бы в любой ураган самолет гарантировано возвращался.

Ну не то что бы в ураган, а в ветер, он всегда есть особенно на высоте. И бывает метров 200 от земли, достаточно сильный. Хотя на поверхности земли не очень.
Я в ураган не летаю. Всегда для полётов жду хорошую погоду.

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

Так вот и алгоритм:

По поводу использования бароскорости и скорочти ГПС автопилотом. Я выше писал как это можно использовать. Задается минимальный предел по скорости ГПС (например 20км/ч) и максимальный по бароскорости (наприемер 90км/ч). При уменьшении скорости ГПС ниже 20 км/ч включаем газ на круизный режим. Если скорость не выросла выше 20 км/ч даем три четверти газа и т.д. Это чтобы модель не летела хвостом вперед. Ну и наоборот при выходе за предел 90 км/ч (только по баро) - чтобы модель в воздухе не развалить.

Выключение мотора на земле можно сделать при баровысоте ниже 3 метров плюс скрость гпс равна нулю.

А если упал на горе +200м например как у меня однажды было?
Это тоже нужно всё учесть.

Dacor
ubd:

А если упал на горе +200м например как у меня однажды было?

У нас тоже рельеф интересный - шансов на нештатную посадку не в точке взлета с нулевой высотой практически нет… Ну в смысле высота однозначно будет не как на старте - либо выше либо ниже))) Сопки у нас кругом.
Как бы лучше батарейкой пожертвовать, чем на земле у своих ног по рукам винтом получить. Все ж падаем не каждый день.

msv
Dacor:

Как бы лучше батарейкой пожертвовать, чем на земле у своих ног по рукам винтом получить.

Тут как раз противоречия нет… 😃 Если использовать на отключение баро-скорость, велик шанс будет и того, и другого ( да еще сломаный винт, сгоревший рег и двигатель)… А если по “И” еще ждать нулевую высоту (хоть баро хоть гпс) двигатель практически вообще никогда сам не отключится. С гпс-скоростью были случаи ложных кратковременных отключений в полете. В новой прошивке ожидает для отключения двига именно нулевая скорость (а не меньше минимальной) в течении 4 сек (а не мгновенно), поэтому случайные срабатывания почти исключены.

Dacor:

Задается минимальный предел по скорости ГПС (например 20км/ч) и максимальный по бароскорости (наприемер 90км/ч). При уменьшении скорости ГПС ниже 20 км/ч включаем газ на круизный режим. Если скорость не выросла выше 20 км/ч даем три четверти газа и т.д. Это чтобы модель не летела хвостом вперед.

Вся засада в деталях… Значение, полученные по этой логики, надо как-то (как?) увязать с тем, которое сейчас вычисляется по тангажу. (Регулировать газ просто по скорости, как у Тимофея, категорически несогласен). Ну и не могу же я дергать ступеньками газ. Значит надо менять с какой-то скоростью, не допускающей автоколебаний. Вообщем если все параметры и коэффициенты регулирующие эти и другие моменты вынести в конфигурацию, боюсь мало кто сможет настроить, да и сам через месяц забуду что с чем связано и на что влияет. Попробую что-нибудь придумать на эту тему, хоть и остаюсь в сомнении целесообразности форсажей против ветра…
(Кстати, Сергей ubd, обрати внимание, для этого нужно только гпс скорость и не непонятная разница с баро…)

Dacor:

Ну и наоборот при выходе за предел 90 км/ч (только по баро) - чтобы модель в воздухе не развалить.

В принципе проблемы те же. К тому же развалить мои носители можно только на выходе из крутого пике, когда газ и по существующему алгоритму будет установлен в минимальный. Ну тоже можно попробовать что-нибудь придумать…

Dacor
msv:

надо как-то (как?)

Вот в том то и вопрос! )))

msv:

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

Не знаю как объяснить… Скажем так, алгоритм который сейчас есть - он приоритетный, но если например бароскорость выходит за границу допустимого предустановленного, то газ нужно сбросить. Это понятно, что носитель развалить сложно. КМК, в случае очень тяжелого носителя (тот же Скай перегруженный аккумами) скорость набирает довольно быстро - АП начинает снижать самолет, скорость растет, при пикировании АП газ сбрасывает. Но после выравнивания скорость мгновенно не гаситься - инерция. И вот тут если снова газку поддать, да еще и по тангажу порулить (АП бывает не сразу занимает нужную высоту, немного промахивается) - появляется риск сложить крыло.

ubd

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

Вот это мне уже нравиться… Об этом в первый раз слышу.

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

Согласен!

15 days later
RTemka

Народ, а нельзя всю эту красивость заставить считывать данные с ардупилота ?

ubd

Можно всё, но этим никто не будет заниматься.

msv

Наконец запустил серийную съемку фотика. Для этого слепил такой адаптер:

На своей старенькой мыльнице вывел на разъем необходимые цепи.
Работает… 😃
В конфигураторе для первого дискретного канала, выбирается канал и диапазон который будет включать съемку. Для каналов 2-4 можно задать только инверсию.
Логика такая:
Если значение в управляющий канал значение в заданном диапазоне-

  1. Включается питание фотика. Пауза 4 сек.
  2. На 1сек “нажимается” кнопка включения. Пауза 4 сек.
  3. На 2сек “нажимается” фокусировка.
  4. На 4сек “нажимается” спуск с удержанием фокусировки.
  5. Пауза 5сек.
  6. Если управляющий канал остается активным переход на п. 3.
    Если нет:
  7. На 1сек “нажимается” включение (в этом случае- отключение). Пауза 5сек.
  8. Отключается питание.

ЗЫ. Обдумываю новый алгоритм автопосадки. Как будет время, сформулирую для обсуждения…