Smalltim OSD and autopilot (часть 1)

fenix

Это как с большого бодуна смотреть в морской бинокль 😃

smalltim

Коллеги, после некоторых размышлений 😃 в режиме удержания скорости по GPS или меньшей из скоростей по GPS и бародатчику решено скорость по GPS заменить на скорость приближения к базе, посчитанную по данным от модуля GPS. Математически - это проекция вектора скорости по GPS на вектор от самика до базы.

Ибо в текущем варианте может случиться ситуация, когда при очень сильном ветре скорость по баро будет высокой и скорость по GPS будет высокой, но самик летит нифига не на базу, а в какой-то момент, например, из-за бокового ветра, скажем, вправо от базы на 70-80 градусов. При этом самик будет таки приближаться к базе, и защита от сноса ветром не выстрелит, но из-за того, что скорость по GPS и баро будет большой, самик будет шпарить на каком-то уменьшенном газу, рискуя быть снесенным ветром или впустую расходуя энергию на противодействие ветру.

В новом варианте скорость приближения к базе будет = скорость по ГПС * косинус (70…80 град), т.е., сильно меньше целевой, и в итоге самик будет повышать газ, увеличивая скорость приближения к базе и выводя вектор своего полета ближе к вектору на базу.

В общем, если кто не понял или не пожелал разбиратья - привод на базу в условиях сильного ветра будет надежнее.

Когда на самике появится компас, можно будет считать скорость ветра прямо в полете и делать поправки на ветер, но об этом, и о полноценной гирокурсовертикали на замену пирометрам - пока молчок 😉

smalltim
baychi:

Монтажке тока радоваться можно, а по схеме всегда есть что спросить и покритиковать.

Да схема то там тривиальная. Видеоусилитель, сепаратор, компаратор, процессор, 4 светодиода, 2 кнопки, пищалка, АЦП и 2 стабилизатора 😃

Коллеги, в новой прошивке задействую 2й управляющий канал АП. Поскольку сам АП его не нюхает, а передает 2й управляющий на плату телеметрии, та его оцифровывает и отдает обратно АП, на 2й управляющий будет заведено только переключение экранов телеметрии.
Логика 1го управляющего не меняется, кому не хватает каланов, может 2й управляющий не использовать.

smalltim

Следующие данные предполагается отправлять с борта на наземную станцию по видеоканалу или через радиолинк Слона:

U32 second;
U8 gps_numsatellites;
U8 gps_fixmode;
U8 ap_status; // bits: ap_active:assist_active:rcsignal_lost etc
float gps_startlat;
float gps_startlon;
float gps_startalt;
float gps_curlat;
float gps_curlon;
float gps_curalt;
float gps_curspeed;
S16 gps_curheading;
S16 bearing_to_base;
U16 voltage1;
U16 voltage2;
U16 voltage3;
U16 current;
U32 mah;
S16 temperature; //8.8 bit
U16 baro_curspeed;
S16 baro_curalt;
S16 pyro_curroll;
S16 pyro_curpitch;
S8 targetthrottle;

Вместе с идентификатором пачки и контрольной суммой получается ровно 64 байта.
По видеолинку обновление данных ожидается ~20 раз в секунду, по радиолинку Слона минимум ~5 раз в секунду.
В случае работы телеметрии без АП формат пачки другой, данных меньше, но обновление данных в каждом кадре, т.е. 50(PAL)/60(NTSC) раз в секунду.

kulikof

лог можно будет на мониторе трекера посмотреть (полистать)?

//
Тим, если кому уж очень нужно отдай мой комплект АПиТ, мне он все равно раньше сентября не понадобится

smalltim

>лог можно будет на мониторе трекера посмотреть (полистать)?

Нет, лог на ЖК экранчике нельзя будет просмотреть-пролистать.
Это тащит за собой наличие хорошего объема памяти, более мощный проц, больше кнопок, сложнее софт. Зачем, когда можно слить лог с пилота на компук или просто посмотреть всё в реальном времени через GE или Ozi?

>Тим, если кому уж очень нужно отдай мой комплект АПиТ, мне он все равно раньше сентября не понадобится

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

Коллеги, я тут, наконец, воспроизвел, нашел и уничтожил редкий баг с дергающимся индикатором горизонта.
Баг проявляется только на многоканальных приемниках со скоростным (>50Гц) синхронным выходом PPM, и только при подключении всех 7 каналов, и вызван структурой софта (для максимальной точности захвата PPM прерывания PPM имеют наивысший приоритет, могут перебивать любые другие и даже сами себя).
При приходе 7 прерываний одновременно в момент, когда обрабатывается прерывание АЦП, процессор отвлекается на обработку PPM. А когда выкарабкивается из глубин всех этих вложенных вызовов обратно в АЦП, настает время выполнять уже следующее прерывание АЦП, ибо АЦП молотит во free run режиме, и ему, в общем-то, пофигу, чем занимается проц. В итоге новое прерывание АЦП вызывается в тот момент когда из старого еще не вывалились. При этом процедуре вышибает мозги и она пишет мусор или нули вместо данных с АЦП. Что уж там конкретно ломается, стек или еще чего - подробно разбираться не стал, ибо понятна главная проблема.
Писать прерывание АЦП реентерабельным, как всё остальное - дорого и не нужно. Попытки притормозить АЦП или завести объект синхронизации и сразу вываливаться из нового прерывания АЦП, если не завершено старое, ни к чему не привели, АЦП слишком самостоятельная штука со всеми его дурацкими флагами, триггерами и автозапуском, да и очень хочется сохранить постоянные интервалы на АЦП для правильного интерирования-дифференцирования…
В общем, бронебойное решение было найдено. Скорость АЦП была понижена вдвое, с 250 кГц до 125 кГц, а для сохранения высокой скорости опроса (150 Гц - полный цикл по всем каналам АЦП с учетом суперсэмплинга) ровно вдвое было понижено и число замеров в каждом канале. В таком варианте проблема исключена даже теоретически, у автопилота нет 14 входных каналов, чтоб затормозить АЦП в новом варианте.

Это всё вам, в общем-то, мало интересно, просто хотел поделиться радостью - месяц эта трудновоспроизводимая глюка висела и настроение портила.
За обнаружение глюки спасибо baychi.

smalltim

Если всё ок, то в понедельник-вторник-среду забираю.

NailMan

Тимофей! С Вами связаться все равно что с Путиным - ЛС переполнены, мыло внешнее как будто в спам сразу летит.

Пару месяцев назад я спрашивал про неверное отображение напряжения на 5S акке в большой(старой) версии телеметрии. Наверно забыли уж. Хотел вот прошивку все таки попросить сделать. Напомню - резики в делители измерителя напряжений впаял на 4.7К и версия прошивки была у меня под 150А датчик тока(тоже осенью специально Вы скомпилили прошивку на базе). Версия прошивки 2.54-150.

Очень жду ответа.

smalltim

Александр, не надо меня с Великим и Ужасным сравнивать, куда уж Ему до дел наших грешных.

4.7К поставили в верхние плечи делителей, а внизу остались 1К? Получается 5.7:1. Ближе к утру сделаю.

NailMan
smalltim:

Александр, не надо меня с Великим и Ужасным сравнивать, куда уж Ему до дел наших грешных.

4.7К поставили в верхние плечи делителей, а внизу остались 1К? Получается 5.7:1. Ближе к утру сделаю.

Да вместо тех что 2K(верхние), нижние остались 1К.

Спасибо!

smalltim

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

Хочу поспрашивать, какие нужны возможности в части работы с PPM.
Насколько я понял, нужно уметь добавлять к существующей пачке PPM на входе еще два импульса PPM от трекера, или заменять любые 2 канала со входа по выбору. Так?

Какие разъемы, форматы, крепление к голове-шапке-бейсболке считается устоявшимся стандартом, чтоб устроило всех? Как бы вам было удобнее его настраивать?
Одна кнопочка - задание нейтрали - пойдет? Надо пищалку нейтрали?
Какие выбрать размеры, корпус-некорпус? Можно и замельчить, сделать 10х20х10 мм, можно и большую коробку, как лучше?

Продублирую в тему о трекерах, там, наверное, более к месту.

Dareck

Тим а трекер чево именно имеется в виду?

И на маил ру загляни

Dareck

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

smalltim

Плыть не будет, гарантия 100%. На север-юг вставать не надо будет, гарантия 100% 😉
Встал как хочется, или сел в кресло как хочется, устремил взгляд прямо, нажал пымпу, и готово, трекер запомнил положение прямо, и поехали.

Dareck

Ну я в этом плане в шарки XGY 1000 встроил там и температура не гуляет и всякая фигня на голове не висит и с пультом через разъём наушников соединил. Вопшем красота получилась. А в чём смысл трекер к пилоту привязывать пилот сам по себе рулит а камера от головы

smalltim

А пилот тут ни причем вообще. Просто часть будущего железа, по зрелым размышлениям, будет отличным трекером.
Вот, уже первая идея - крепеж велкро петлей на очки.

Dareck

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

smalltim

Ну, разъемов, будет ровно 1 штука (земля, питание, вход PPM, выход PPM). Датчики - аксель, компас.

kulikof
smalltim:

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

Лучше лучшего не придумать, проще скопировать с R2