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

Dikoy
AlexSneg:

Но я хочу жить со своей концепцией.

А я вам запрещаю? 😃 Просто я вижу ряд граблей, по которым прошёлся сам. Прислушаться к моим советам или нет - дело ваше.
Например приёмник отдельно от АП. Какой маршрут передачи приоритетней? 😉 На моих платах модем жёстко сидит на МК управления, а блоку навигации информация отдаётся по мере сил. То же с телеметрией назад. У вас же приёмник отнесён отдельным блоком. Это вам ещё аукнется 😉

AlexSneg:

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

CAN я использую для межплатной коммуникации. Сервы есно сидят на ШИМ выходах.
Посмотрите сколько там разных модификаций плат. Есть пиропилот, есть гиропилот, есть штук 8 разных модулей навигации. С разными характеристиками и ценой. И всё это я могу собирать как ПК, ибо они полностью совместимы. Рекомендую вам изначально закладывать такую концепцию. Ибо в процессе развития вы будете делать всё новые и новые платы, а старые будут оставаться не удел.
Я говорил про ШИМ входы - возможность управления ЛА штатным передатчиком. Во-1 это резервный канал связи, во-2 это упрощение для рада пользователей. И всё ценой N внешних прерываний. Даже атмеге не составляет труда обработать 6 прерываний (при этом оставляя 2/3 ресурса свободными).

AlexSneg:

Закидайте в AVR микроконтроллер обработку кучки I2C мемсов, OSD с двумя экранными буферами, GPS, расчет горизонта через фильтр кальмана на float типах, баро высотомер на честных float ах, процедуры стабилизации и навигации.

Всё это (кроме OSD, делать которую на МК само по себе извращение) я с успехом заталкивал в АВР. И калманы работали, и уж тем более “процедуры стабилизации и навигации” 😃
Что касается ОСД и датчиков, то Тим наглядно показал что это возможно в сраненькой атмеге 8. За что ему уважуха. Хоть я никогда не разделял его тяги к впихуемости невпихуемого и считаю его работу Сизифовым трудом. Моя ОСД, например, сделана на нормальной ПЛИС с нормальным видеобуфером и анализом изображения. Если я вижу, что фон светлый, я ставлю тени. Если фон тёмный, то могу подсветить цифры. И всё это чуть дороже извращения с атмегой (хотя смотря где делать). Зато никаких проблем с ресурсом и скоростью. Для ПЛИС развёртка камеры - это долгий и скучный процесс 😃
Что до float, то не понятно нафига. Вся математика навигации прекрасно ложится в целочисленку. Которая одинаково хорошо работает и на авр, и в стм8/32. Калман да, без плавучки запустить сложно. Но можно. Правда это будет повторение Тимовского подвига… 😃 Точности же работа во float не добавляет, а даже наоборот.

AlexSneg:

Если чего, то вместе посмеёмся, и поглумимся над STM, как оно слило AVRке.

Вы не уловили суть.

Drinker
AlexSneg:

Но возврат, это в большей степени программная фича.

Так это всё программные фичи. Или ты уже боготворишь кортексм4, типо сам посебе летает?
Проц и проц. Я лична тихо мирно перешол на него с м3.
Автор стопицотый раз хочу спросит - в чем новизна твой поделки? Чем она лучше того-же ардупилота?
Только не надо про стм. Для пользователя чем лучше?

Oliver
Dikoy:

Что касается ОСД и датчиков, то Тим наглядно показал что это возможно в сраненькой старенькой атмеге 8. За что ему уважуха.

А китайцы вон вообще в е-осд без синхроселектора обошлись. И в той же 8-ке вкрутили программный детектор синхры. И народ кушает. Ибо народу надо не только золото, а иногда надо даже и без блеска. ЛУТят, собирают, летают и хвалят китай, каким бы он китайским не был. О чем это я? Не, вовсе не о бесполезности проекта. Все нормально, динамичненько так, лихо, с задором. Следить интересно и, без шуток, местами очень положительно. Надо отдать должное автору, похвалить. Но не стоит стараться делать круто только ради круто. Так же как CAN ради CAN и флоат бародатчик ради флоат. В этом я поддержу других зрителей.

serj
Dikoy:

Всё это (кроме OSD, делать которую на МК само по себе извращение) я с успехом заталкивал в АВР. И калманы работали, и уж тем более “процедуры стабилизации и навигации” 😃

Что до float, то не понятно нафига. Вся математика навигации прекрасно ложится в целочисленку. Которая одинаково хорошо работает и на авр, и в стм8/32. Калман да, без плавучки запустить сложно. Но можно. Правда это будет повторение Тимовского подвига… 😃 Точности же работа во float не добавляет, а даже наоборот.
Вы не уловили суть.

Сергей, рад вас увидеть снова здесь!

Мы с вами принадлежим к “предыдущему поколению” , для которого программирование еще не превратилось в ремесло, увы.

Тогда, 6-7лет назад ресурсная база была скудна и подходы “оптимального программирования” вырабатывались автоматически.
В 2005г у меня первая версия автопилота с ИНС весила всего 12кб, на атмеге32. При этом функционал был богаче чем сейчас у большинства коммерческих АП. За 4 года проект оброс огромным количеством сервиса , что подняло объем до 32 кб и мега исчерпала себя, была переведена на стм 32.

Сейчас ресурсы вычисления развиваются чем потребности, даже с учетом неоптимального программирования. У такого подхода есть и плюсы - разработка существенно ускорилась, и минусы - пользователю не надо разбираться, КАК ИМЕННО работают некоторые модули. Через несколько лет уже будет сложно понять, как работает та или иная функция периферийной библиотеки например, т.к исходники неинтересны… И некоторые баги, изначально сидевшие в системе и не мешавшие другим пользователям - очень сложно будет обнаруживать.

AlexSneg
Dikoy:

Какой маршрут передачи приоритетней?

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

Приемник отдельно от АП существует как временное компромисное решение. В идеале я иду к решению объединения приемника и АП в одном МК.

Dikoy:

Посмотрите сколько там разных модификаций плат.

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

Dikoy:

Моя ОСД, например, сделана на нормальной ПЛИС с нормальным видеобуфером и анализом изображения.

У меня нормальный видеобуфер, если вы еще не заметили. Какая разница с точки зрения финального результата развертку ПЛИС делает или DMA микроконтроллера? Только у себя я имею существенный запас по софтовой гибкости. Я могу сделать новую прошивку МК и поменять разрешение экрана. Вы же будете вынуждены переписывать прошивку ПЛИС каждый раз + перешивать свой микроконтроллер. Кроме того ПЛИС это +1 кристалл на плате. Я не хочу иметь еще одну микросхему и гемороить ее прошивкой конечного пользователя, если у меня есть аппаратный ресурс STM для элегантного решения проблемы развертки зачем мне мучить пользователя ПЛИСами, если я могу тихо и мирно решить все софтово?

Dikoy:

Если я вижу, что фон светлый, я ставлю тени

Я думал о такой аппаратной штуке, тем более, что решение несложное. Потом отказался сознательно. Мне место на плате дороже этой феньки. Не нужна она по большому счету.

Dikoy:

Я говорил про ШИМ входы - возможность управления ЛА штатным передатчиком.

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

Dikoy:

Что до float, то не понятно нафига

Я тоже не понимал пока не сравнил вычисление баровысоты в BMP085 на целых числах и во во флоатах. Здесь ведь не только скорость но и накопительная точность и плотность кода важна.

И зачем использовать int если float для M4 это нативный тип данных?

Dikoy:

Вся математика навигации прекрасно ложится в целочисленку

Хорошая навигация - это следствие хорошего искусственного горизонта. Качественный искусственный горизонт на MEMS датчиках без вычислительной мощности в плавучке вы не получите никогда.
Кстати почему тогда не сделали все на , КР580ВМ80А ?

Dikoy:

Точности же работа во float не добавляет, а даже наоборот

Вот здесь я действительно не понял. Можете пояснить на конкретных примерах чтобы я уловил обобщение?
Вычислите мне в целых числах ln(8.456321 * 10e18 / 0.88941) ???

Dikoy:

Вы не уловили суть.

Уловил я все. Но остаюсь при своем мнении. Даже если мне нужно будет помигать светодиодом, я все равно поставлю STM потому что, АТМега128 стоит 250руб, а STM32F100RBT6 стоит 130 руб, вот и вся суть. Есть аргументы против этого?

serj:

Мы с вами принадлежим к “предыдущему поколению”

Я начинал с Радио-86рк. Писал все на асме и считал, что ничего лучше в жизни не бывает. Однако ж нет смысла кататься на ВАЗ2101 если есть BMW, хотя по большому счету и то и то способно перевозить задницу из точки А а точку Б.
Про ремесло утверждение спорное, да есть области в программировании, который изъездили вдоль и поперек. Однако ж сколько вы можете найти здесь человек на этом форуме способных например написать простенький драйвер для PCI железки под винду?

Drinker
AlexSneg:

простенький драйвер для PCI железки под винду?

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

AlexSneg:

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

че ты рассказываешь? на атмеге прекрасно получалось.

AlexSneg:

Какая разница с точки зрения финального результата

Когда у тебя сбойнет твой встроенный осд, самолету - пипец, таккак все повиснет.

AlexSneg
Drinker:

че ты рассказываешь? на атмеге прекрасно получалось.

Пруфлинк на проект, будьте добры. А тебя то собственно что на STM понесло, если на мегах все классно работало?

Drinker:

таккак все повиснет

Вот вроде бы ты делаешь что-то на STM, а мыслишь как программер под АВР.
Будь уже последователен и расскажи нам, что делает STM когда КОП неверный в конвеер приходит или кварц накрывается медным тазом и что по этому же поводу сделает любимый AVR.

Drinker
AlexSneg:

А тебя то собственно что на STM понесло,

А мне собственно фиолетово стм или авр.
Почему стм - не могла решить одну задачку аврка, вот и заюзал стм.

Я пытаюсь донести мысль, что не стоит городить огород стм ради стм.

Результаты необходимые в контексте этого форума можно получить и на авр и на стм.

Про бмп085, ты хвалишся, что в флоат считаешь. Читал я эту статью. Да хоть в даблах делай - механика датчика не позволяет получить с него точнее ± 1м. Покажи видео испытаний датчика (двигай его вверх-вниз и снимай показания хоть целые хоть флоат).
Это я к тому, что не надо на конкретный проц молится. Я понимаю радость, что удалось его запустить, ну и что?

AlexSneg:

расскажи нам, что делает STM когда КОП неверный в конвеер приходит или кварц накрывается медным тазом и что по этому же поводу сделает любимый AVR.

Мне плевать что будет. Я знаю, как летают на грамотных алгоритмах и авр и стм.

На днях ветку создам в теме фпв. Гарантирую - ты офигеешь.
Но писать про программисткие заморочки не стану. Тут некий новый ФУНКЦИОНАЛ будет описан.

И естественно мозг на твоём кумире - 32ф405рг

AlexSneg
Drinker:

На днях ветку создам в теме фпв. Гарантирую - ты офигеешь.

Жду ветки… Пойду запасаться чипсами.

PAF
Drinker:

На днях ветку создам в теме фпв. Гарантирую - ты офигеешь.

В смысле от слова “фига”?! “Фигушки”?! …фигушки! Я плотоядная!!!.. (из мультика про Вовку в тридевятом царстве.) Такое выражение сродни известному - Увы! Иначе говоря пришел конец иллюзиям! Как бы говорящий дает понять, что с него ничего не нужно ждать!
А как же… ? Ну неужто -хвалился, хвалился… да на бок завалился?! В смысле не вышел из крена? Да-а… так тоже бывает…😦 Взял ручку на себя покруче…, вроде во-от свеча! А эта свеча-то 😦 из аптеки! И вставляется она в другое известное место при известных болезнях того места. Нет! Не может быть! Drinker опытный пилот! Подождем еще.

AlexSneg

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

Вот вопрос такой. 1,5ватта как я теперь точно понял, было ошибкой. Реально надо максимум 500мВт. Оно конечно и передачик гасит, и все провода в самолете накрывает существенным фоном. Нет оно, конечно работает в пределах квартиры, но фиг знает как там в поле будет. Пока в пределах квартиры, я фиксирую потерю RSSI уровня -10dB. Но даже не это меня беспокоит. Вот эти 1,5 ватта лезут в видео сигнал композитный. То есть, конечно с фронтами там реальный расколбас. Как народ защищает этот сигнал от наводок излучения передающей антенны? OSD конечно не срывает, но подергивания всей картинки есть от этого. Выключаю передатчик - видео стоит мертво. То есть явно надо что-то делать в перспективе. Пока не понял что. Народ как вы с этим боретесь?

Ладно, пойду список компонентов готовить, как обещал

Drinker
PAF:

В смысле от слова “фига”?! “Фигушки”?! …фигушки! Я плотоядная!!!..

С Вами я не разговаривал.

AlexSneg:

OSD конечно не срывает, но подергивания всей картинки есть от этого. Выключаю передатчик - видео стоит мертво.

Алекс, это первая ласточка из того, о чем я тебе говорил в самых первых постах. (про совмещение осд с остальным).
Сделай осд на отдельном камне м4 и мозг отдельно.

baychi
AlexSneg:

Народ как вы с этим боретесь?

  1. Самое эфективное - максимальное разнесение в пространстве.
  2. Ферритовые ВЧ муфту или колечко на кабель к передатчику видео, как можно ближе к передатчику. Если рядом с видео проходят хвосты серв, на все их кабели перед АП также ферритовую муфту (общую) или кольцо (это никогда не помешает).
  3. Экранирование АП. Но это самый сложный и малоэффективный метод.
Drinker
AlexSneg:

Оно конечно и передачик гасит

Алекс, какая частота видео?

AlexSneg:

RFM22 433 MHz

Эта?

Передатчик РУ я и мел ввиду 433
А видео?

AlexSneg
Drinker:

это первая ласточка из того, о чем я тебе говорил в самых первых постах

При чем здесь совмещение. На горизонт влияния нет. Есть прием ВЧ-видео хвостами от камеры до платы и до видеопередатчика. Эта наводка искажает фронты синхры. Отдельно OSD или нет, но провод все равно будет, и этот провод будет принимать от 1,5ватного передатчика. Провод длиной 10-20 см рядом с 1,5 ватами на 900Мгц это звиздец. Моя единственная опция - попытаться уменьшить влияние, но убрать совсем скорее всего не получится. Либо попытаться таки оживить 200 мВт на 5,8ГГц модули, они лежат у меня в коробочке, но им питание и breakout нужен.

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

В любом случае возлетать можно и в текущем варианте, но конечно надо шаманить с компоновкой.

Drinker:

Алекс, какая частота видео?

900МГц видео передатчик.
Гасит я имел ввиду, что приемник РУ 433МГц теряет -10dB в RSSI по сравнению с вариантом погашеного видео. То есть, хотя оно почти в 2 раза выше, но тем не менее потеря в динамическом диапазоне есть. Здесь либо фильтр надеть на видео перед излучающей атненной, либо брать видео еще выше, либо уменьшать мощность.

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

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

Drinker
AlexSneg:

При чем здесь совмещение. На горизонт влияния нет.

Причем тут горизонт? Горизонт давно отработан сообществом. А вот сетап - дело посложнее.

AlexSneg:

200 мВт на 5,8ГГц модули

И на какое расстояние летать с ними?

AlexSneg
Drinker:

А вот сетап - дело посложнее.

Я и не спорю, что сетап важен. Я лишь говорю о том, что не вижу зависимости между разделением ОСД и горизонта и правильным сетапом.

Drinker:

И на какое расстояние летать с ними?

Некоторые на 15 км умудряются 😉

Мне сейчас хотя бы и пару км достаточно, я хочу наконец видеть поведение горизонта в стрессовых ситуациях, чтобы окончательно снять все сомнения. Моя проблема - это отсутствие места в самолете. Но если оно у меня в таком варианте умудрится заработать, то в нормальном FPV самолете и подавно будет работать без проблем.

AlexSneg

Вот архив с платой, схемой, списком компонентов. Отдельно указал, где можно купить.
есть темные места с некоторыми номиналами резисторов на модуле согласования. Их номиналы будут после того, как я резистивные делители подберу на реальной плате. Возможно так же некоторые номиналы электролитов будут двигаться вверх или вниз. Пилить на 4 части по обозначенной линии. Нижние две платы - это модуль + АП, слева верх - это датчик тока. Если кому надо, я отдельно дам схему и список деталей. Он до 30 Ампер. Справа вверх - это мой будущий приемник, оно вам скорее всего не надо на данном этапе. Можете оставить до лучших времен. Тема приемника и передатчика, будет продолжена после автопилота.

Если АП + модуль планируется держать вместе, то реально их можно не разделять. Разъемы разведены так, чтобы просто перемычки бросить параллельные.

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

посмотрел сейчас на элитане цены
stm32f405rgt6 - 350 руб
atmega1281-16au - 387 руб
😃
Я конечно давно с мегой не работал и знал, что там все плохо. Но но чтоб на столько!?

flyingbrain-1.1_plus_module-1.0.zip

ViktorDoma

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

Маловато будет 😦

Или я не нашел ?

Выходных тоже как то не густо, но если не жадничать - хватит.

Датчик тока - как показала практика, все же нуна на 50А.

Может стоит заменить или сделать на выбор.

Какие предполагаются внешние модули ЖЭПЭСЭ ?
1, 5, 10 Гц ?
Какой стандарт будет поддерживаться ?

Dikoy
Oliver:

А китайцы вон вообще в е-осд без синхроселектора обошлись. И в той же 8-ке вкрутили программный детектор синхры.

Ну, тут выбор - дёшево или качественно. И опять же, STM8+ПЛИС по цене процентов на 20 выше того же на м8. Так что не вижу причин паники. При том, что ПЛИС позволяет на голову выше возможностей.

Oliver:

Так же как CAN ради CAN

Что вы все до кана домотались? Какой ещё интерфейс предложите для межплатной коммуникации, если специально для этого сделанный не люб?

Oliver
Dikoy:

Что вы все до кана домотались?

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

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

Алекс, относительно схем. Если стремитесь все собрать на одной платке- чем продиктован такой зоопарк с напряжениями? Как минимум все-таки LDOшки с обвязкой худо-бедно, но место занимают?