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

Shuricus

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

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

AlexSneg
Shuricus:

Можно ли это сделать, и могли бы вы поделится кусками кода для рисования графики, если это у вас, конечно, не сугубо коммерческий проект и вы никому ничего ни-ни?

Я бы может быть и поделился какими-то кусками ОСД кода, но с мной у вас проблема у вас другого характера. Основная засада состоит в том, что вам придется переделать железку. Залить мой код в атмегу не получится ни при каких обстоятельствах так как:

  1. только на вычислениях вращения объектов Мега закончится на первом же кадре.
  2. Тот, кто дал себе труд разобраться в схемотехнке и каким образом у меня устроена развертка подтвердит, что там решение почти полностью аппаратное, за исключением отлова кадрового импульса. Весь остальной кадр разворачивается без использования вычислительной мощности процессора, работает только DMA. Это соответственно исключает мозможность каких-то произвольных аппаратных платформ тем более на АТ Мегах в любых вариантах.
  3. У меня есть текщий видеобуфер из которого ДМА постоянно кадры разворачивает, а есть теневой, где происходит зарисовка, что позволяет мне не думать во время какой фазы текущей развертки я использую освободившиеся вычислительные мощности для отрисовки нового кадра, таким образом я отвязал себя от необходимости какой-либо синхронизации с синхроимпульсами. После окончания зарисовки в теневом буфере, он свапируется с текущим реальным между кадрами. Это обеспечивает гладкость и отсутствие спецэффектов стробоскопа. На STM я могу себе позволить создать 2 видео буфера, на меге нет физически столько памяти. Соответственно это исключает ценность моего ОСД графического кода для осд’ешек, которые построчно отрисовываются. Таким образом, я завязан на эксплуатации нюансов и возможностей аппаратных STM32 по самую макушку, тем самым освобождаю программный код от всяких ненужных программных извращений.

Выводы.

  1. Даже, если я вам дам какие-то коды от графики, вам их никак не употребить
  2. нужно делать специальную аппаратную платформу на базе мозголета, только чисто под ОСД, без датчиком и проч., но с аппаратной спецификой под мою развертку кадровых буферов. В этом случае можно будет достичь того результата, которого вы хотите. Можно конечно взять текущую плату АП и не паять датчики и сделать прошивку чисто под ОСД. Но заниматься очумелыми ручками все равно придется.
  3. можно ли замутить отдельный проект на аппаратной базе мозголета но только с возможностями ОСД и принимать МАВЛИНК? В принципе да, но не раньше чем закончу с наземкой. Сейчас я только только наземкой буду заниматься.
Shuricus

Я прошу прощения, что сразу не сформулировал ясно, что именно в использовании Арма вся идея. Т.е как у вас в п.2 выводов. Конечно использовать именно вашу схемотехнику.

AlexSneg:

можно ли замутить отдельный проект на аппаратной базе мозголета но только с возможностями ОСД и принимать МАВЛИНК? В принципе да, но не раньше чем закончу с наземкой. Сейчас я только только наземкой буду заниматься.

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

А долго еще наземку делать?

AlexSneg
Shuricus:

А долго еще наземку делать?

Май - испытания, Июнь - доводка.

Описанный протокол мавлинка есть? Там УАРТ обычный?

Shuricus

qgroundcontrol.org/mavlink/start

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

Моя идея очень проста - хочется сделать поддержку сразу трех основных контроллеров, как это реализовано у МинимОСД. А именно - Арду (и Мегапират), Мультивии и Наза. Все прошивки для МинимОСД уже есть, они открытые и отличаются только обработкой протокола. Таким образом мы получим ОСД сразу под ЧЕТЫРЕ платформы! + самостоятельный вариант с прямым подключением ЖПС. Ну это же просто песня!

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

DChernov
Shuricus:

Конечно использовать именно вашу схемотехнику.

Единственно, посмотрите, не целесообразно ли для выделения синхры использовать LM1881 вместо компаратора? Как-то существующая схема очень чувствительна к параметрам видеосигнала…

X3_Shim
AlexSneg:

) нужно делать специальную аппаратную платформу на базе мозголета, только чисто под ОСД, без датчиком и проч., но с аппаратной спецификой под мою развертку кадровых буферов. В этом случае можно будет достичь того результата, которого вы хотите. Можно конечно взять текущую плату АП и не паять датчики и сделать прошивку чисто под ОСД. Но заниматься очумелыми ручками все равно придется.
3) можно ли замутить отдельный проект на аппаратной базе мозголета но только с возможностями ОСД и принимать МАВЛИНК? В принципе да, но не раньше чем закончу с наземкой. Сейчас я только только наземкой буду заниматься.

Если у вас данные которые OSD берет от АП (я не про железки, а про софтверную часть говорю) хранятся в неком структруированном виде, то видится вполне себе логичным, переделать все это так, что бы их не ваш АП формировал, а получать из mavlink. Что бы сильно не трогать код который занимается формированием фреймбуфера и наложением его на видео (ну хотя бы для начальной версии). Сам mavlink в исходниках конечно есть.

А то прям обидно, что пользователи пиратов, ардупайлотов вынуждены наблюдать на экране OSD сделанное из телетекста 😃

alexeykozin

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

DChernov
alexeykozin:

идея сделать красивое осд на арме с поддержкой мавлинка очень интересна.
в принципе еслиб такое осд стоило 1000-1500р купил бы для себя штучки три прямо сейчас.

Присоединяюсь к предыдущему оратору. Штуки три очень интересуют.

X3_Shim
alexeykozin:

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

Для теста можно купить и www.ebay.com/itm/…/261423114768 + lm1881
А потом уже разводить плату. Вопрос в основном в исходниках от AlexSneg или в его мотивации заняться этим самому заняться этим самому 😃

Shuricus

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

schs

Тоже с удовольствием бы купил 2-3 шт.

Drinker
Shuricus:

Так мы и хотим делать на Арме

Если не охота уговаривать алексаснега, то я мог бы показать простое решение на стм32ф405 с лм1881. Без камеры или при пропадании сигнала, продолжает работать как генератор. Вот только с протоколом затык. Может кто знает мавлинк - поможет.


Вот на этой штучке за 20 баксов

X3_Shim
Drinker:

Если не охота уговаривать алексаснега, то я мог бы показать простое решение на стм32ф405 с лм1881. Без камеры или при пропадании сигнала, продолжает работать как генератор. Вот только с протоколом затык. Может кто знает мавлинк - поможет.

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

Этот девайс что умеет рисовать ? Разрешение у OSD какое ? софт для непосредственно подмешивания информации из буфера на видеосигнал уже есть реализованный ?

AlexSneg

По современным ценам только компоненты + плата будут обходиться в 1500 руб. Потом еще все собрать надо. Для конечного пользователя будет +/- ~ 2500 руб.

X3_Shim:

lm1881

Как только мы ставим это, то сразу начинаем думать где нам достать +5В. Мое решение на операционнике было продиктовано именно удешевлением. На самом деле проблем с синхрой я не наблюдаю в своем решении. Давно уще вроде они все решены.

Shuricus:

Еще есть важное пожелание сделать подключение не в разрыв видео, а параллельно, на случай непредвиденных ситуаций

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

X3_Shim:

Для теста можно купить

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

А экранное меню ОСД прямо в полете, это тоже нужно? А контрольную панель через USB тоже надо? В мавлинке есть возможность считывать положения джойстиков и других управляющих каналов?

X3_Shim
AlexSneg:

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

А экранное меню ОСД прямо в полете, это тоже нужно? А контрольную панель через USB тоже надо? В мавлинке есть возможность считывать положения джойстиков и других управляющих каналов?

Ну это если вы согласитесь делать софт, то вам проще на своей плате отладится (это очевидно), а если у вас “выпросить” кусочки софта, то тем у кого нет платы, проще купить отладочную.

Я не очень понимаю что такое экранное меню. Меня пока устраивает как реализовано в MinimOSD. Через конфигуратор на компе задаем инфу для 3 разных версий экрана (с разным количеством информации), в полете просто переключаем их по одному из каналов. мавлинк отдает положение всех каналов.

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

AlexSneg:

Как только мы ставим это, то сразу начинаем думать где нам достать +5В

У нас +5 вольт идет с автопилота, с этим проблем вообще нет 😃 Родная MinimOSD (для ArduPilot), может просто от 5 вольт работать, а может от +5 и +12. Но +5 на нее в любом случае заводится.

AlexSneg:

Описанный протокол мавлинка есть? Там УАРТ обычный?

Уарт обычный, только в него писать нельзя, только читать.

Drinker
X3_Shim:

Этот девайс что умеет рисовать ?

Этот девайс ничего не умеет рисовать - это платка с камнем стм32ф405 и всеми компонентами для его работы. Шьется через усб.

X3_Shim:

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

А как же, есть. Завтра припаяю проводками лм1881, 3 резюка и 2 кондера и покажу.
Я о чем, лмка приклеивается прямо к плате, все проводками соединяется и в термоусадочку. Вот и осд размером даже меньше минимосд. По смешной цене. 20$ + лм1881

X3_Shim
Drinker:

как же, есть. Завтра припаяю проводками лм1881, 3 резюка и 2 кондера и покажу.
Я о чем, лмка приклеивается прямо к плате, все проводками соединяется и в термоусадочку. Вот и осд размером даже меньше минимосд. По смешной цене. 20$ + лм1881

по железу там все понятно 😃

Просто для AVR мне вот понятно как рисовать (хотя это и извращение редкостное), а вот как технологично рисовать на stm32 я не в курсе, stm ни разу в руках не держал. Или библиотечки какие готовые есть уже ? Простите за глупые вопросы.

Drinker:

тот девайс ничего не умеет рисовать - это платка с камнем стм32ф405 и всеми компонентами для его работы. Шьется через усб.

Я понимаю что она не сама рисует. Просто разрешение ограничено оперативкой и скоростью работы.

Drinker
X3_Shim:

Просто разрешение ограничено оперативкой и скоростью работы.

Разрешение ограничено не оперативкой - ее на 2 буфера более чем (белый и черный). По вертикали ограничение дает количество строк в кадре, а по горизонтали можно очень высокое разрешение сделать за счет частоты СПИ, но надо сохранять пропорции изображения. Мне приемлемо 384х288. Самое оно.

X3_Shim
Drinker:

Разрешение ограничено не оперативкой - ее на 2 буфера более чем (белый и черный). По вертикали ограничение дает количество строк в кадре, а по горизонтали можно очень высокое разрешение сделать за счет частоты СПИ, но надо сохранять пропорции изображения. Мне приемлемо 384х288. Самое оно.

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

alexeykozin
Drinker:

Если не охота уговаривать алексаснега, то я мог бы показать простое решение на стм32ф405 с лм1881. Без камеры или при пропадании сигнала, продолжает работать как генератор. Вот только с протоколом затык. Может кто знает мавлинк - поможет.


Вот на этой штучке за 20 баксов

мавлинк в проектах 3DR реализован в виде библиотечки , в принципе как использовать - это в открытом коде миним осд.
другое дело особенности прикрутки библиотек в другую среду разработки
поддерживаются под стм классы и идентичный ли там с++