flybrain. передатчик + приемник + автопилот. powered by stm32

AlexSneg

Пришел EasyCap. Вот записал OSD оцифровал, видно как я поворачиваю плату и угол горизонта на экране соответственно отслеживается. Пока я не понял, почему качество записи хромает. Реально в предпросмотре, пока я пишу на экране вообще все идеально, а записанный ролик качеством хуже. Может потому что ноут бук слабый, и алгоритм сильно жмет.
На этом ролике видно небольшое мерцание по отрисовке, на телеке я этого почти не замечал, инерционность трубки видно выше. Значит полностью отрисовка экрана в межкадровку не попадает, прерывания не дают. Но это конечно фигня, нет никакой необходимости весь экран 50 раз в секунду рисовать 😉 Это уже проблема оптимизации дальнейшей.

Syberian
AlexSneg:

нет никакой необходимости весь экран 50 раз в секунду рисовать

судя по дерганости горизонта, рисуется 8-12 Гц максимум 😇

AlexSneg
SkyWorker:

Создавая такой девайс, типа Вашего, надо обязательно закладывать какие то ноу хау.

Я вчера еще раз подумал на тему звука. И все-таки нет, пока нет. DAC2 канал занят тактированием SPI1. Здесь либо звук, либо полетная флешка. Либо не писать логи в тот момент пока звук генерится. Не знаю, чего-то смутили меня. Уже хотел отправить платы, и вот теперь сижу весь в сомнениях. Второй канал в операционнике не задействован и вроде бы логично напрашивается добавить на него выход звука на будущее. Но, блин ХЗ…
Ну чего делать канал звука на всякий случай, но работать flash и звук будут последовательно?

Syberian:

судя по дерганости

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

Oliver
AlexSneg:

Может потому что ноут бук слабый, и алгоритм сильно жмет.

Пишите без сжатия и разрешением поменьше, потом жмите отдельной прогой, дубом тем же…

SGordon

про мерцание - видимо картинка без двойной буфферизации, или рисуется не синхронно с обратным ходом луча?

Syberian
AlexSneg:

большой визуальный шаг между соседними положениями

именно!

идеалом в плане 50-Гц развертки (но не в плане точности индюкатора, гы) считаю dragonOSD.

AlexSneg
SGordon:

про мерцание - видимо картинка без двойной буфферизации

Да, у меня и так два буфера. Сейчас напрямую пишу туда, поэтому такой эффект. Сейчас мне жалко еще 2 буфера теневых выделять. Будет свободная память, выделю.

SGordon:

или рисуется не синхронно с обратным ходом луча?

Нет, это исключено.

Syberian:

именно!

Заглянул в код. Олег, как ты догадался так точно про 12Гц? Точняк, я таймер разрешения перерисовки забыл изменить, оно там 100мс стоит. Блин! Я лоханулся, и ведь написал себе в комментах, переключить его на 20мс. Ну может сегодня вечером еще раз все перекомпиляю и попробую на 25 герцах перерисовки.

Все, я проверил на 40мс перерисовки. Все работает четко, как в DragonOSD ролике, что Олег выше кинул. Все плавно и ровно. Переписывать ролик не буду, и так все для меня понятно, а нового там ничего не прибавится. Мерцания остаются, но это тема будущей программной оптимизации.

SkyWorker

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

AlexSneg
SkyWorker:

А что если звук выдавать на самом борт

Ну так я так и смотрю на эту тему. У меня в видео передатчике есть отдельный вход звука. На приемнике есть выход звука. Автопилот сам может генерить звук и слать на землю вместе с видеосигналом. А как по другому это можно организовать?

Павeл
SkyWorker:

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

SkyWorker:

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

Так у EagleTree это уже есть, предепреждает о пропадании РУ, о понижении напруги, низком остатке мАч, а вообще там чуть ли не по любым параметрам можно настроить оповещения. Я использую.

project_Ikar
Syberian:

именно!

идеалом в плане 50-Гц развертки (но не в плане точности индюкатора, гы) считаю dragonOSD.

Dragon OSD IMU Test

Вот это я понимаю видео! автор, скорее всего, так не сможет, к сожалению…

SGordon

про мерцание не понял, почему 2 буферов не хватает?

AlexSneg
SGordon:

почему 2 буферов не хватает?

Один буфер - засветка, Второй - тень. Они постоянно разворачиваются параллельно. Запись в них на прямую сразу изменяет изображение на экране.
Чтобы не было мерцания надо либо отрисовку оптимизировать, чтобы уложиться в длину КСИ, либо иметь еще +2 буфера, чтобы рисовать в них, а в течение КСИ просто копировать буфера друг в друга. Сейчас я по простому сделал, напрямую рисую в экранных буферах. Каждый раз весь кадр стирается и рисуется заново. Оно не успевает все прорисовать до начала развертки, соответственно видим эффект мерцания. Это лечится чисто софтово, но это не самое главное для меня сейчас.

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

rual
AlexSneg:

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

четвёртое источник звука?

AlexSneg

Нет, источник звука - сам автопилот, я на свободном,оставшемся от синхры операционнике развел.
Четвертое - это датчик тока до 30А.

Oliver
AlexSneg:

датчик тока до 30А

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

AlexSneg

У меня нет токов выше 30А. Это отдельная маленькая платка, она втыкается в аккумулятор ходовой, с нее на приемник идут показания тока отдельными проводами. Она ни в коем случае не будет лежать рядом с автопилотом. Я этот датчик нарисовал, только потому, что у меня 6 кв см на плате незаполненных осталось. Китайцам по фиг, что там на плате, я плачу за 100кв. см. PCB

serj
Syberian:

Ну вот ни разу нисмишно. Вы вообще в курсе, зачем видеопередатчик обычно еще и аудиоканал имеет, .

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

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

У нас все озвучивается на земле( там комп неограниченный 😃 ), ибо канал управления и телеметрия это одно и тоже.

AlexSneg

Все, гербер файлы отправились китайцам для проверки. Если все ОК, отправят в производство. Ждем. А пока возвращаемся к алгоритмам стабилизации:)

project_Ikar:

Плавность прорисовки графики…

Да, DirectX 9 и OpenGL догнать скорее всего не удастся