flybrain. передатчик + приемник + автопилот. powered by stm32
У меня стоит некоторый зазор достоверности вектора G. Если он по модулю вылезает за заданные рамки, достоверность его снижается при корректировке кватерниона, а достоверность мага нарастает. Соответственно, отсюда все результаты. Компас не калиброван + есть лаг по корректировке акселем в недостоверной зоне. Но расти ошибка будет только до пределов пока аксель совсем не исключается из цепочки корректировки. Ну собственно это мы и видим. До определенной ошибки оно растет, а дальше хоть уповорачивайся. Но в этот момент на передний план выходит компас и он должен показывать правильно.
У меня похожий алгоритм, только полной отсечки коррекции нет:
/* определяем длину дуги между G и ИНС */
qAcc.normalize();
float delta = inner_product(qIMU, qAcc);
if (abs(1 - AccMag) < 0.05f) {
q = (qIMU * (1.0f-omega))+(qAcc*delta*omega);
/* устраняем вырождение кватерниона */
if ((q.w!=0)||(q.x!=0)||(q.y!=0)||(q.z!=0)) qIMU = q;
}
точнее она будет при длине дуги равной Пи.
Алекс, а на видео какой из вариантов твоего АП: с подключением в обычному РС каналу или с твоим приемником-передатчиком!
Пока только мой передатчик и мой приемник. Сопрягалка сейчас как раз в процессе написания программы зависла. Изучаю PPM сигналы с приемника. Делаю так сказать даунгрейд.
Молодец, AlexSneg!
Значит так … я решил освоить МК STM32 и начал с STM32F103C6T6A. Планирую пока что собрать платку, помигать светодиодами, сделать свой энкодер, научиться читать данные с мемс гироскопа L3G4200D по SPI и I2C, сделать таймер (нужны часы реального времени), записывать получаемые данные с датчиков на SD карту, а далее квадролет и самолет … .
Пока что налепил такую схемку:
s48.radikal.ru/i119/1209/b0/7b404af4d88c.jpg
Питать буду от двух аккумуляторов типа АА (1.2 В каждый). Есть вопросы по поводу схемы:
- Правильно ли гироскопы подключил?
- Кусок схемы AlexSneg-а:
s57.radikal.ru/i157/1209/f8/d2e3e68e7646.jpg
1* - почему 4 выход гироскопа к земле подключен?
2* - конденсаторы С16 и С22 для чего? - Подскажите, пожалуйста, схемку для прошивки МК, чтобы через USB ПК можно было прошить.
Значит так … я решил освоить МК STM32 и начал
Молодой человек, вы случайно не ошиблись веткой? Сдесь тема по автопилоту flybrain, а не ликбез по основам цифровой электроники.
Или хоть бы в личку свои вопрсы задавали.
Значит так … я решил освоить МК STM32 и начал с STM32F103C6T6A.
А что так торкнуло на подвиги ратные? Может съел чего не того? 😲
- двух акков по 1,2В не хватит.
- я не понял зачем тебе 2 гироскопа? Думаешь два будет лучше чем один? Или у тебя двойное резервирование на случай выхода одного из строя?
- 4 выход насколько я помню то ли адрес I2C фиксирует, то ли в сам режим I2C переключает выходной интерфейс. Я точно не помню, посмотри в ДШ
- Можешь обойтись и без С16 и С22. Работать оно будет гарантированно, только криво. А ты вообще в курсе зачем блокировочные кондеры ставят?
- STM32F103C6T6A по usb прошить без танцев с бубнами не получится. Хочешь заниматься девелопингом под stm32, покупай jtag отладчик.
Судя по вопросам мне кажется пока рановато за паяльник, может еще хотя бы недельку ДШ разные поизучать? Мне кажется основы можно можно на специализированных форумах поизучать. И необязательно доставлять удовольствие всей аудитории моделистов. На худой конец можно в личку спросить.
Я, кстати, знаю одного продвинутого перца. Он в МК знает ну ващщще усе! Не хочу вслух называть его имени. Но в личку я тебе скажу к кому обратиться.😒😒😒
Manamet, лучше прикупите недорогую evaluation board (хотя бы STM32F4Discovery) Избавитесь от фантомных проблем связанных с пайкой и прошивкой.
Заодно прошивальщик других плат будет. ну и ессно прошивать этого “бобика” сможете через USB.
Подключать дополнительные внешние микрухи или модули можно через штырьковый разъем.
ответы на простые вопросы можно найти на http://easyelectronics.ru
Так, мне нужна помощь зала для прояснения 3-х вопросов.
- Расскажите мне или ткните где найти и прочитать про то, как на стандартных аппаратурах FS событие обнаружить на приемнике. А так же, как это будет обнаруживаться для варианта sumppm
- Сколько каналов ждать в sumppm сигнале? Сколько их там вообще может быть? Тайминги такие же, как для дискретных ppm, то есть 1-2мс или бывают клинические случаи несоблюдения стандартов?
- Полярность фронтов в сумппм отрицательная всегда или отдельные производители считают, что они ровнее других и работают по положительным фронтам?
Собственно, все это нужно для завершения деталей прошивки по модулю сопрягалке. Я тестирую со своим пультом e-sky 4ch. У него sumppm отдает 8 каналов отрицательными фронтами на тренерском разъеме. Но как бы хочется понять общую обстановку по этому делу.
--------------
В субботу довелось проверить полезность АП в реале. Хотел протестить до куда рфм22 пробивает. Залетел на 2км и тут сдох акк ноутбука. Изображение пропало. Врубил возврат домой и перекрестившись стал ждать. Через пару минут скай прилетел у хозяину. Я доволен. 😁
Неудачной получилась проверка аварийной посадки. Поднял самолет на 500 метров вверх и вырубил пульт. Оно сказало FS, прилетело и начало кружиться и спускаться. нарезало порядка 6 кругов (горизонт кстати не перекосило без компенсации центробежки, как некоторые предполагали). Затем я понял, что надо прекращать снижение, оказалось, что центр кружения находится над автодорогой оживленной. Ну косяк понятен, буду вводить процедуру корректирующую центр кружения ближе к точке дома, а не где попало возле дома. В чистом поле в принципе по-фиг, дальше 100 метров оно не улетит, но в моем случае 100м уже попало в нехорошую зону.
Нарыл еще косяк с алгоритмом передачи тангажа от процедуры “удержания курса” к процедуре “вираж”. После этого останется заняться компасом и сделать его таки tilt compensated. На этом можно будет сказать, что в первом приближении борьба с навигатором окончена. Останется только один косяк - отсутствие воздушной скорости. Как только дифф. датчик ко мне приедет, займемся и этим. Ну, а пока останется риск провала при неблагоприятном попутном ветре.
ФС- выход сигнала за границы откалиброванного диапазона. Обычно так.
Сумм ппм я встречал как негативный, так и позитивный. Эксперт помоему как то сделал так, чтш понимает оба варианта, определяет сам автоматически. Лучше делать так конечно.
Количество канал чем больше, тем лучше 😃.
Я сейчас вытащил 12 каналов по сумм ппм. Наверно оптимально. Но вдруг кто на копиях полетит по фпв! 😃 им маловато будет.
ФС- выход сигнала за границы откалиброванного диапазона
В каких пределах? 10мкс может поставить? На каком канале? заранее заданном?
А как тогда оно FS положение серв устанавливает, если выходит за границы допустимого диапазона? Кстати выходит в большую или меньшую сторону?
Я сейчас вытащил 12 каналов по сумм ппм.
Как так, 12 каналов не поместится в 20мс период. Или у меня опять пробел в знаниях?
На каком канале? заранее заданном?
Обычно используют канал газа. Это самое удобное, поскольку регулятор калибрует свой нуль при подаче напряжения.
В каких пределах? 10мкс может поставить? На каком канале? заранее заданном?
Нет, это как критерий брать нельзя. Случайные импульсы идут со старых FM приемников.
На современных - либо ничего , либо последнее что было, либо запомненное как файлсейф.
Потому файлсейф понимать только по запрограммированной длительности канала , который под это и отдали ( или изгаляться с каналом газа).
Сообщение от SkyWorker
ФС- выход сигнала за границы откалиброванного диапазона
В каких пределах? 10мкс может поставить? На каком канале? заранее заданном?
В пределах откалиброванного, 10 мкс перебор, каналы настраивать лучше всего.
А как тогда оно FS положение серв устанавливает, если выходит за границы допустимого диапазона? Кстати выходит в большую или меньшую сторону?
FS в приемнике это просто установка одного и нескольких каналов в заранее запрограммированные или последние принятые значения…
Сообщение от SkyWorker
Я сейчас вытащил 12 каналов по сумм ппм.
Как так, 12 каналов не поместится в 20мс период. Или у меня опять пробел в знаниях?
Там по хитрому бывает, у разных апп по разному! Где то тут прикольные осцилограммки были от baychi, но это на передатчик. На приемники не уверен как они появляются.
К примеру. запоминаем ФС на приемнике с положением каналом газа нижнюю границу 1мс(-100%). Это и будет значения для определения ФС на приемнике. Подымаем тримами или другими настройками аппаратуры, границу на 10%. Это будет нуль для регулятора, при включении.
К примеру. запоминаем ФС на приемнике с положением каналом газа нижнюю границу 1мс(-100%). Это и будет значения для определения ФС на приемнике. Подымаем тримами или другими настройками аппаратуры, границу на 10%. Это будет нуль для регулятора, при включении.
Или наоборот: триммером или субтриммером вгоняем канал газа до -120%, например, сохраняем это положение в настройках апы как фс, затем возвращаем триммеры в 0. Все. Теперь если по каналу газа сигнал уйдет в этой диапазон, приемник поймет, что случился фс и даст команды всем сервпм встать в заданное положение. Ну а в нашем случае, АП перехвптит управление.
триммером или субтриммером вгоняем канал газа до -120%
Не все аппаратуры позволяют тримировать газ ниже 0(-100%). Но суть такая же.
Хорошо, поставлю вопрос так.
Достаточно ли будет, если я внедрю такую настройку:
- Задается канал приемника на котором анализируется состояние
- Если там раньше что-то было, а теперь пусто, значит FS
- Если там уход из зоны калибровки крайних положений, либо вверх, либо вниз, но не более чем (скажем) 30%, и повторяется хотя бы более 10 импульсов подряд и далее, значит FS
- если выходим из пункта 2 или 3 (длина импульса нормализовалась), значит передатчик вернулся на связь
Это исчерпывающий вариант?
Cortex - не дорогой
Ну, тут, возможно, засада. В эмбеддинг сообществе давно ходят мысли о том, что STM искусственно занизила цену чипов, чтоб выйти на рынок, и рано или поздно отобьёт своё. С атмелом ведь так же было (и есть). Сначала м48 стОила 20 рублёв и народ наклепал на них 100500 поделок. Сейчас оно стОит уже дороже ф100, но деваться некуда - не переделывать же проекты.
Меньше проводов и модулей - проще установить
Когда там будет один модуль, тогда да 😃
Не нужны специальные приспособления для обслуживания - проще пользоваться
Когда там блюпуп будет, тогда да 😃
Мощнее контроллер и больше памяти для ПО - приятнее и безопаснее летать
А вот это вообще к делу не относится. Недавно ковырял САУ от МИ-8, там 2кб внешней ПЗУ и 51-й камень на 2,5 МГц. И ведь летает уже лет 40… Да и на атмегах туева хуча живых проектов поднималась.
Хотя, несомненно, согласен, что когда чип есть, с такими ресурсами, глупо им не пользоваться.
родилось оно не случайно, а из нежелания на тот момент разгребать четный-нечетный полукадр. А так же по причине неясности сколь еще я скушаю оперативки. Чисто программным апгрейдом я могу увеличить разрешение по горизонтали в 1,5 раза и в 2 раза по вертикали. Увеличение по горизонтали более чем в 1,5 раза возможно, но не перебор ли это?
Кроме того надо принять во внимание следующее, что развертка белого буфера и черного идет аппаратно и одновременно. То есть их нужно иметь всегда 2 выделенных.
Вот и минус использования DMA как модулятора… А можно использовать 2 бита кодирования цвета и получить 2 оттенка серого (не считая Ч/Б), при этом заняв 256*192*2 = 98304 бит ОЗУ. То есть 13 кБайт всего. SRAM микросхемка на 16 ножек бывает минимум на мегабайт. И 133 МГц тактовой.
Это я сейчас с гордостью упоминаю ПЛИС 😃
А можно 3 бита, и иметь аж 9 цветов.
ПС. Кстати, сейчас вышли кисликсы с аппаратным контроллером DDR. Народ в буржунии уже VGA контроллеры на них лепит и мультики крутит. Ибо DDR уже где-то 512 Мбайт на камешек получается. И частоты там до гигагерца…
Понятно, что нафиг такие скорости не нужны, но меньше не бывает 😃
Не понимаю я, от куда берётся достоверная информация о векторе G, если он длительное время смещён за счёт центростремительного ускорения,
Ну так гироскопы то работают. Их уход позволяет им верить 1-2 минуты. Про секунды вообще не вопрос. Значит, если гиры показывают угол 10 градусов, то по акселю можно судить про ускорение,зная куда направлен вектор Жо и его примерный модуль.
Опять же, зная модуль Жо можно делать выводы, действуют ли на самик сейчас иные ускорения или нет.
Нет, аксель отбросится, компас его задавит. Кроме того достаточно выпрямить модель и тут же аксель включится и снимет дельту по крену.
То есть вектор состояния задан только через углы? Без скоростей?
Когда там будет один модуль, тогда да
у меня он один и есть в моей конфигурации.
Когда там блюпуп будет
Usb шнурок дешевле. Зачем нам синий зуб? По кой ляс? Настройки какие передать, не разбирая самолет? Так я и так их через передатчик могу передать.
То есть 13 кБайт всего
А у меня сколько памяти по вашему занято? Больше что-ли?
Минусов так и не увидел. При желании оттенки серого легко можно было получить посадив на пару корпусов элементарной логики. тогда будет и 4 оттенка и 9 и сколько угодно. Только я, вот хоть застрелите, не понимаю зачем оттенки серого на осд. Я и сейчас могу, ничего не меняя в схемотехнике чисто программно организовать черный, серый, белый. Тока нафига?
Это я сейчас с гордостью упоминаю ПЛИС…
Ибо DDR уже где-то 512 Мбайт на камешек получается
Сергей, не обижайтесь, но мне кажется ( как бы выразиться)…эээ…, может вам продали некачественные сигареты в супермаркете?😉
Без скоростей?
Вектор угловых скоростей всегда учитывается. Он на микротаймингах считается приоритетным и достоверным. Выводы о достоверности вектора G делаются на основании его текущего модуля. Чем дальше он от единицы, тем меньше ему доверия.
Зачем нам синий зуб?
Конфигурировать с пацанского ифона! 😃
А у меня сколько памяти по вашему занято? Больше что-ли?
Вы не врубантос. Я говорю о внешней памяти к ПЛИС. SRAM на мегабайт очень дешёвая, и быстрая.
Кстати, я давно вам говорил, что можно зарядить в ПЛИС бесплатное м0 ядро и всю математику поднять на нём. Будет МЕГА быстро. И компактней ф4 от STM 😃
При желании оттенки серого легко можно было получить посадив на пару корпусов элементарной логики.
А зачем нам логика, когда есть ПЛИС? 😃
Я и сейчас могу, ничего не меняя в схемотехнике чисто программно организовать черный, серый, белый. Тока нафига?
А обратную связь по чвету/яркости картинки под точкой сможете?
Нет. А значит и оттенки серого вам не нужны.
может вам продали некачественные сигареты в супермаркете?
Обоснуйте.
Вектор угловых скоростей всегда учитывается.
Не всегда. Например, в схеме пиро/гиро калман работает только по углам и вектор состояния фильтра задан ТОЛЬКО через углы. Скорость учитывается уже после калмана.
Вообще, калмана можно записать в 100500 формах.
можно зарядить в ПЛИС бесплатное м0 ядро и всю математику поднять на нём. Будет МЕГА быстро.
М3 с branch prediction и 2 уровнями кеша на 2 циклоне вывозит максимум 50 мипс - это при цене сборки ПЛИС+конфигуряшка ок. 700р. Если добавить аппаратный флоат, то будет 16 мфлопс, мерял. Какой к лешему М0? Так, быстренькая атмега… Вот если на этой же расшивке потом ASIC сделать - тогда да, прирост производилки значительный, в разы. А так все на вентилях съедается.
Вообще, циклон 5 уже идет со встроенным двухъядерным ARM9, странно, к чему бы это? А цена 260+ енотов за проц.
Dikoy сделайте на ПЛИС, мы сравним, что лучше, дешевле и проще. Автор решил, что STM предпочтительнее и делает на этом контроллере, в рамках данного проекта менять что либо уже поздно, а значит все эти разговоры ни к чему не приведут. Лично я видел у немцев ОСД на ПЛИС штука прикольная, но не укладывается в причины, по которым автор затеял всё это. Очень дорогой, довольно сложно установить и настроить, особенно если ты далек от премудростей всяких электронных. Но, правда, неплохо летает и на экране рисует тоже мне понравилось как, вообщем все как у многих только дорого и сложно. Всё это имеет место быть как ниша топовых гаджетов для профессионалов, но если вы спросите китайцев в чём успех китайской эконмики, то они вам скажут, что людям в основном во всём мире хочется чего попроще и подешевле. Открыл коробку, приклеел на липучку, нажал одну кнопку “вкл/выкл” и всё, ну типа как автомат калашникова - нет прецизионной точности, зато просто, надёжно и эффективно… “дёшево и сердито” одним словом.