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

Oliver
baychi:

Отображение RSSI с AD7 сделано только в прошивке автопилота. Автономную прошивку ТМ под это никто не портировал.

Вернулся из отпуска. Судя по личке пара человек попробовали на себе результаты экспериментов с прошивкой для автономной телеметрии. Кроме того, смотрю, появились еще пожелания. Пару дней буду разгребать на работе, а потом можем продолжить изыски. Если кто еще пробовал 300 и 301 - отпишитесь, у кого что вылезало?

smalltim
Timofey:

Тим, подскажи а когда пойдет продажа? я наконец-то созрел, и есть ли на горизонте IMU? Есть смысл ждать? или потом просто докупить вместо пироголов? Спасибо.

Телеметрии есть, АП - в течение месяца. Над ИМУ работаем. Она уже живет, дышит, надо точить софт. Скорее всего, перед отправкой в серию вместе с I2C выведем наружу и CAN интерфейс для общения с CAN-совместимым оборудованием Слона.
Заранее думаем, как половчее и поспокойнее для пользователя можно обновлять прошивки. Сейчас выведен на контакты платы интерфейс USB, но, возможно, от него избавимся в пользу CAN.
Общение с автопилотом - по-прежнему, по I2C, обновление прошивки - скорее всего, не напрямую с компа через USB или USB-UART переходник, а средствами автопилота, так же, как обновление автопилотом прошивки телеметрии. Никаких драйверов, флипов и прочей мороки.

Изучаем, присматриваемся к процу, думаем, какие еще задачи можно возложить на плату ИМУ, кроме функций тупой AHRS. АРМ - интереснее, чем AVR, всё-таки.

smalltim:

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

Пока не осознал, как через штатный USB бутлоадер AT90USB1287 достучаться до нужных фьюзбитов, но тут на морях возможности невелики, и платы АП под рукой нет.
Но внимательное курение даташита выдало, что по дефолту BOD стоит на 2.6В, а корректная работоспособность проца на 16 МГц гарантируется на напряжении от 4.5В.


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

То есть, при старте, если напряжение питания растет медленно, напряжение вырастает выше 2.6В и цепь BOD (Brown Out Detection, встроенный узел, детектирующий просадки напряжения и ресетящий проц при слишком низком напряжении питания) выводит проц из ресета. Проц уже заводится, но питания еще недостаточно для корректной работы. Неверное исполнение команд прошивки теоретически может привести к операциям записи во флеш память - туда где лежит программа - всякого мусора.

Вариантов решения вижу пять, три программных и два аппаратных:

  1. Увеличение постоянной времени цепи сброса - увеличение емкости конденсатора в RC цепи на ноге RESET сразу раз в десять. Самый простой вариант. Но есть недостаток. При отключении питания и быстрой подаче питания назад (например, при дребезге контактов питания в момент подключения питания) конденсатор в цепи сброса не успеет разрядиться и не сформирует сигнал сброса нужной длительности, и появится та же проблема, которую пытались решить изначально. Но это очень маловероятно.

  2. Выставление BOD фьюзбитами до 4.5В. Вполне себе нормальный вариант, надо только сделсть всё корректно и незаметно для пользователя, так, как делает АП, выставляя нужные фьюзбиты при прошивании телеметрии. Как следует это протестировать.

  3. Вариант 2 дробь 1 - увеличить startup time до максимума. Это тоже штука, задаваемая фьюзбитами. Позволяет выдержать паузу перед включением проца после подачи питания. Нужно

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

  5. Поставить аппаратный формирователь сигнала сброса нужной длительности на маленькой специализированной микросхемке. Вкупе с вариантом 4 - самое правильное решение. Но платы новых АП уже ушли в производство, а колхозить что-то на уже готовых платах - не комильфо.

Timofey
smalltim:

Телеметрии есть, АП - в течение месяца. Над ИМУ работаем. Она уже живет, дышит, надо точить софт.

А можно как-то “встать на очередь”? М.б. внести предоплату?

smalltim
Timofey:

А можно как-то “встать на очередь”?

Не нужно. Будет делаться сразу большая партия, чтоб цена была хорошая. Хватит всем.

Timofey
smalltim:

Хватит всем.

Спасибо. Оставил заказ на сайте. Будем ждать…

baychi
smalltim:

Увеличение постоянной времени цепи сброса - увеличение емкости конденсатора в RC цепи на ноге RESET сразу раз в десять. Самый простой вариант. Но есть недостаток. При отключении питания и быстрой подаче питания назад (например, при дребезге контактов питания в момент подключения питания) конденсатор в цепи сброса не успеет разрядиться

Хороший способ - поставить параллельно резистору диод в обратном направлении. Мгновенный разряд гарантированн.

Ильвир
smalltim:

Хватит всем.

А для тех у кого уже есть - нельзя ли вернуться к вопросу в посту №2241 и 2247?

Oliver
maloii:

Да и на мой вопрос тоже бы ответ услышать Smalltim OSD and autopilot (часть 2)

Давайте определимся в понятиях. Как раз реальный курс (куда летим) и так виден - его показывает GPS компас. А вот куда показывает нос самолета - можно узнать только имея магнитный компас. ИМХО. А вот имея оба курса, данные о тангаже и вертикальной скорости нарисовать нужный Вам кружочек проблем не составит.
Итого - нужен магнитный компас в составе датчиков.

Ильвир:

А для тех у кого уже есть - нельзя ли вернуться к вопросу в посту №2241 и 2247?

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

В автопилотной прошивке думаю Тим сделает без проблем - было бы время.

maloii
Oliver:

Давайте определимся в понятиях. Как раз реальный курс (куда летим) и так виден - его показывает GPS компас. А вот куда показывает нос самолета - можно узнать только имея магнитный компас. ИМХО. А вот имея оба курса, данные о тангаже и вертикальной скорости нарисовать нужный Вам кружочек проблем не составит.
Итого - нужен магнитный компас в составе датчиков.

Ну я даже скрин привел. То есть к примеру направили мы мы самолет на начало взлетки, но ветер нас снес вправо, да ещё и задрало вверх и мы перелетели. Нарисовать визирную метку куда реально смотрит морда самолета с учетом сноса ветром, тангажа, вертикальной скорости и т.д.

Ильвир
Oliver:

В автопилотной прошивке думаю Тим сделает без проблем - было бы время.

А в автопилотной версии возможно не просто кружочек бегающей вокруг центра экрана без относительного удаления, и именно так как примерно в Игловской ТМ показано? Т.е. птичка или самолетик с острием - удаляющаяся от центра экрана и вращающаяся вокруг своей оси(при развороте модели).

Oliver
maloii:

Ну я даже скрин привел. То есть к примеру направили мы мы самолет на начало взлетки, но ветер нас снес вправо, да ещё и задрало вверх и мы перелетели. Нарисовать визирную метку куда реально смотрит морда самолета с учетом сноса ветром, тангажа, вертикальной скорости и т.д.

Я так и говорю. Сейчас телеметрия у Тимофея вычисляет курс исходя из показаний GPS. Т.е. это именно то, куда летим. А вот куда при этом смотрит нос - знает только пилот, если ему в очки хоть что-то видно. Чтобы телеметрия знала, куда направлен нос и вычислив разницу нарисовала кружок - нужен компас.

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

maloii

Ну с объектами это уже лишнее. Конкретно мне это пригодилось бы для прохождения ворот в гонках и при заходе на посадку. Из “кабины” самолета я не чувствую боковой ветер. И чтобы мне точно зайти на взлетку надо идти на посадку боком, а то выставил нос на начало взлетки, а тебя постоянно сносит, получается что на взлетку заходишь с раза второго когда поймешь куда дует ветер и как надо держать нос чтобы четко попасть на начало взлетки. А так визирная метка показывала куда реально смотрит нос идешь по ней и всегда четко попадаешь куда летел.

strannik

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

Oliver
maloii:

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

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

Хотя я бы тоже от магнитного компаса не отказался. Подумываю повесить перед камерой шарик китайский. 😃 У кого-то видел такой вариант супер-мини телеметрии. 😁

maloii

Ну мне не сложно и 10 раз зайти на посадку. Я просто более “приземленный” пример привел 😁. Мне это больше надо для полетов по гоночной трассе. При сильном боковом ветре тяжело ровно проходить ворота. Да вообще фишка крутая, такой точно ни у кого нет 😃

how-eee

Глупости не пишите! Куда смотрит нос прекрасно знают пирометры. А вот вектор движения самолета можно точно узнать только с помощью инерциалки. Так что ждите иму.

Oliver
how-eee:

Глупости не пишите! Куда смотрит нос прекрасно знают пирометры. А вот вектор движения самолета можно точно узнать только с помощью инерциалки. Так что ждите иму.

😃 Евгений. безотносительно к глупостям. Пирометры знают угол крена и тангажа. + вертикальная пара не дает им ошибиться при перевернутом полете. К тому, в какую сторону света смотрит нос самолета, они, к сожалению, не имеют отношения.

Хотя, с помощью пирометров можно было бы организовать “полет за солнцем”. 😃 Если кому-то это понадобится.
Прикольно, кстати, когда та же IGO (автомобильная навигационная программа) в режиме 3D рисует над картой виртуальное солнышко. 😃 А у нас могло бы быть почти реальное. Типа стрелочка “Это - солнце!”. 😁

strannik

А вот, кстати, неплохая идея. Если с помощью пирометров вычислить где солнце, можно сделать компенсацию перекоса теплового горизонта.
А вообще, в будущем хотелось бы иметь цифровую форму передачи сигнала от таких важных датчиков как датчики горизонта. Все остальное - температура, воздушная скорость и прочие мелочи можно оставить аналоговыми в пользу простоты. А то зашумел вдруг видео-передатчик на борту и хоп! 30-40 градусов крена 😦 Полная чушь.

Ильвир
how-eee:

Глупости не пишите! Куда смотрит нос прекрасно знают пирометры. А вот вектор движения самолета можно точно узнать только с помощью инерциалки. Так что ждите иму.

Вот Вы точно глупость написали, а Александр по делу предложение подал.

Oliver:

😃

Типа стрелочка “Это - солнце!”. 😁

Слишком усложненно получается, сделать бы хотя бы для начала - стрелочка “Это самолет!”. Я бы огромное спасибо(думаю не только я) сказал.

Oliver
Ильвир:

Слишком усложненно получается, сделать бы хотя бы для начала - стрелочка “Это самолет!”. Я бы огромное спасибо(думаю не только я) сказал.

Не понимаю, чем вас не устаривает кружочек “Это база”? 😉
Серьезно, два года назад (если не ошибаюсь) у Тимофея была стрелочка, изображающая самолет, вокруг которой кружился кружочек - база. Тогда наоборот большинство кричало, что это непонятно, проще показывать курс на базу так же, как и компас…

Я повторю, я хотел добавить в автономную телеметрию этот кружочек. Но потом подумал, а в чем суть? Мне по большому счету надо знать, где база - справа или слева, спереди или сзади. С градациями “совсем слева, немного слева, чуть-чуть слева”. И знать это надо как визуально, так и в цифрах. Это и есть - на нижней шкале. Вот еще визуально видеть бы “очень далеко, далеко, рядом, совсем рядом”. Сейчас только мигать может начать, если “очень далеко”.