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

msv

Очень долго подбирал слова, как высказать свое отношение к этому проекту?.. Главный критерий- ни в коем случае не обидеть ТС своими соображениями…

Drinker:

Ну как сказать…

Лучший вариант!.. 😃
Искренне желаю ТС успехов! Но пока отписываюсь от темы…

project_Ikar
msv:

Искренне желаю ТС успехов!

Присоеденяюсь! Главное, чтоб не остановился на полпути, потому что, будет казаться, что уже “все”, а это, только - полпути…

AlexSneg
Drinker:

Этот проект думаю еще пара лет ждет до первого реального полета

Ты в меня не веришь просто. Обещаю, в первой версии все будет работать, летать, стабилизировать, возвращать на базу и иметь OSD информацию на экране телевизора в срок до 1 июля. Выполнение полетного задания по координатам пока не обещаю, эта фишка запланирована на самый конец работ.

Drinker:

Ибо пока идет разбирательство с радиолюбительскими штуками…

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

Drinker:

Если конечно тупо не сп@#ить с готового проекта.

Пока удается обойтись без копирования чужого кода. Чужой код я использую для изучения принципов решения аналогичных задач, а не для того, чтобы от туда что-то сп@#ить. Запретить мне изучать чужой опыт никто не может.

project_Ikar:

Тот самый Тимофей

А кто это, о ком речь?

SkyWorker
AlexSneg:

Ты в меня не веришь просто. Обещаю, в первой версии все будет работать, летать, стабилизировать, возвращать на базу и иметь OSD информацию на экране телевизора в срок до 1 июля. Выполнение полетного задания по координатам пока не обещаю, эта фишка запланирована на самый конец работ.

Я в тебя верю. Записывай меня в первые тестеры.

AlexSneg:

А кто это, о ком речь?

Смаллтим

AlexSneg
SkyWorker:

Записывай меня в первые тестеры

Только во вторые, первый (местный ) уже давно в очереди стоит. и уже даже самолет свой под мои тесты приготовил. Будем тестить на двух еропланах изначально: мой и его.

А тебе, если у тебя серьёзные намерения, советую озадачиться покупкой STMf405RGT6 или 407RGT6 ибо я не верю, что манна небесная от ST долго будет сыпаться нам на голову по 250-300 руб. Как только их маркетинг решит, что замануха сработала, ценники будут по 600 - 1000руб за кристалл.

SkyWorker:

Смаллтим

Ага, ну теперь понятно.

Drinker
AlexSneg:

Ты в меня не веришь просто.

Верю. Но я реалист. И это всё уже проходил. И по времени примерно ориентируюсь.

AlexSneg:

для изучения принципов решения аналогичных задач

Это и есть сп@#$ть.

А вот если что-то будет оригинальное - то это, да.

Дми-III-й
Drinker:

сп@#$ть

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

AlexSneg
Drinker:

Это и есть сп@#$ть

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

Drinker:

оригинальное

Согласись, тут тоже должна быть определенная мера разумного.

Drinker:

Но я реалист

Постараюсь не оправдать твои надежды 😃

Дми-III-й:

а когда исходники и формулы открыты

Я бы еще добавил: “…когда прямым текстом разрешают и предлагают пользоваться кодом и модифицировать его как угодно в своих собственных благих целях, и при этом не просят за это ничего кроме СПАСИБО…”

PAF

А весь форум за вами обоими… 😎 😃
С надеждой и пожеланием успеха… кхм… вот за всех-то наверно поторопился сказать?

Drinker

[quote=PAF;3214087]А весь форум за вам[/quoteДа
Да нормально всё. А вот чё там в роскосмасе. Я вот глонас прикручиваю. А тут на тебе - глава в больнице, у зама литсо разбито, а прессекретарь… Опасносте?

rual
AlexSneg:

Берем TIM8, оно у меня на схеме уже имеет вход, на который video sync уже заведен. Настраиваем его в мастер режим one-pulse mode. Далее берем TIM2. У него есть 4-й канал (pin30), замыкаем его с SPI2_SCK (pin 29). Они рядом, это просто перемычку на плате посадить.

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

AlexSneg:

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

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

AlexSneg:

Блин, у меня у же свербит, до дома не дотерплю, хочу уже попробовать

Каков результат?

насчет сп@#$ть , например, я перед собой не ставлю задачи написать оригинальный код, задача в другом написать “правильный” код, без костылей и понятный мне самому. Если лучше того что есть я написать не смогу, то возьму его с чисто эстетическими доработками.

насчет АВР/АРМ: есть смысл уйти от приближенных вычислений тригонометрии и перейти на плавучку, т.е. получить точность, плавность, адекватность, плюс оставить пространство, над кодом навигатора и стабилизатора, для какой либо логической надстройки (облет припятствий, алгоритмы миссий и т.п.).

Drinker
rual:

есть смысл уйти от приближенных вычислений тригонометрии

Где приближенная?

serj
rual:

насчет АВР/АРМ: есть смысл уйти от приближенных вычислений тригонометрии и перейти на плавучку, т.е. получить точность, плавность, адекватность,

предлагается double (64 бита? ) сразу быстродействие падает на порядок примерно по сравнению с целочисленными вычислениями. ( на M3)
а повышенной точности в шумах не видно… 😃

AlexSneg
rual:

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

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

rual:

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

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

Более того, в продолжение этой темы. Поскольку удачно совпало, что каналы у TIM8 и TIM3 сидят на одном пине видео синхры, то вот я сейчас вижу, что можно организовать не просто ПОЧТИ аппаратно все, а реально 100% аппаратно, если еще +2 таймера задействовать. Один чтобы аппаратно отсчитывать время прихода кадрового импульса и автоматом его детектить через период задержки сэмплирования, а еще таймер, чтобы отступить сверху экрана. То есть будет постоянно всего 4 таймера + 1 прерывание раз в 20 мс это дело обслуживать полностью аппаратно без участи кода. Но здесь есть опасность кривизны и неустойчивости самого видео сигнала от камеры. Короче, уже будем такими оптимизациями заниматься сильно потом.

rual:

Каков результат?

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

rual:

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

У меня в коде все во float, мне нет никакого смысла, костыли из int’ов городить. У меня вычисления в int’ах работают с той же скоростью, что во float. Так что все и так уже плавно и адекватно 😃 Код сейчас занимает компиленый около 48Кб, а сделано уже не мало: основной скелет проекта по классам, классы общения с датчиками (гира, аксель, компас, баро) на аппаратном уровне, классы постоянного опроса датчиков, Классы под таймеры для реал-тайм временных меток и отсечек, опроса датчиков, USB device драйвер (уже полностью функционален), консоль командная, алгоритм 3D горизонта и положения в пространстве на кватернионах + EKF, сейчас OSD на подходе. Флешка у меня 1Мб, так что пространства под любые дальнейшие апгрейды и извращения просто до фига. При этом я по загрузке даже близко к 50 % не подобрался.

rual
serj:

предлагается double (64 бита? )

Зачем, достаточно плавучки обычной точности.

AlexSneg:

Не, ты не до конца прочувствовал.

Дествительно не допонял! Да, красиво получается, одно прирывание по концу кадра на преключение на начало видеобуфера. Ещё один момент не понял, как кадровый таймер АППАРАТНО разрешит работу строчного?

AlexSneg:

а сделано уже не мало:

молодца! за полтора месяца , быстрый ты однако. Я с ноября 11го только гироскопы сделал на макете, еще не решен вопрос с коррекцией по акселю и компасу.

AlexSneg
rual:

как кадровый таймер АППАРАТНО разрешит работу строчного?

Надо подумать, вероятно таки оставить еще одно прерывание по окончанию паузы после начала кадра и в нем разрешить tim8 слушать синхру
Ну будет 2 прерывания в течение 20мс.

Drinker

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

project_Ikar
Drinker:

есть фатальная засада при совмещении осд и всего остального в одном камне

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

Drinker
project_Ikar:

ARM должен спарвиться, походу…

Дело не в производительности.