Создание собственной системы стабилизации
В размышлениях (пока на улице дождь и ветер) склоняюсь всеж к варианту с SD, было бы удобно с нее загружать не только настройки параметров но и сам режим работы платы (самолет/коптер и т.д.), заодно при таком варианте сама flash контроллера не будет изнашиваться (предел то есть всеж…), надо видимо дождаться “музы” и освоить как положено какой нибудь FatFS, сделать загрузчик… по моему неплохо (?).
Не надо ничего изучать.www.sparkfun.com/products/9530
Можно написать в Builder c++, пишется просто и быстро из компонент , куча примеров в инете. Большую GUI на нем не очень удобно писать, а всякие мелкие проги для отладки самое то.
Я бы советовал или Qt или C#.
Во-первых, сама разработка быстрее, во-вторых, нет проблем с работой под новыми ОС.
Builder системы выше ХР не очень любит. Могут быть проблемы.
Тем более что C# и Java очень похожи, потом не будет больших проблем сделать GUI для Android.
Я бы советовал или Qt или C#
Это все, насколько я понимаю, “объектно ориентированное” (инкапсуляция, полиморфизм, наследование 😃) ?
Это все, насколько я понимаю, “объектно ориентированное” (инкапсуляция, полиморфизм, наследование 😃) ?
По желанию, как писать будете.
На С++ ведь можно писать как на простом С с некоторыми оговорками.
С C# конечно посложнее будет в этом плане, но простой и понятный код писать тоже можно вполне, если вас пугает “инкапсуляция, полиморфизм, наследование”
Вроде уже едут ко мне BMX055, в связи с этим попутно задумался: как сделать автокалибровку магнитометра непосредственно в поле ? по аналогии с Fantom - где достаточно его в руках покрутить и он как бы “калибруется на месте”.
Интересно в “народных” проектах есть подобные алгоритмы ?? там ведь матрицу коррекции надо находить, задача непростая…
берете кусок кода из мультивия и калибруете по 3 осям…
более расширенный вариант в FreeIMU
матрицу коррекции надо находить, задача непростая…
для Soft Iron калибровки достаточно найти минимаксы по осям и посчитать вектор коррекции как среднее.
а вот для Hard Iron без матана не обойтись. последняя открытая версия от CH Robotics пока еще доступна, в десктопном приложении собираются сырые данные с магнитометра, обрабатываются и выдается готовая матрица. ознакомится можно тут:
sourceforge.net/p/chrinterface/code/…/Form1.h , строка 2462 (ф-ия buttonComputeCalibration_Click).
для прямого портирования на С/C++ можно заюзать библиотеки TNT/JAMA. правда, хоть убей не помню где лежит PDF, в котором на пальцах расписан использованный алгоритм, там намного проще и понятнее, чем в коде. когда-то игрался с этим делом, практически любые специально испорченные “сфероиды” (сжатые, сдвинутые, рандомно зашумленные) приводит к почти идеальной сфере (то есть рассчитывает нужную матрицу).
но вот как это дело запихнуть в МК я хз, разве что если имеется много памяти и ресурсов. хотя эта процедура нужна однократно, можно ее и выгрузить после использования.
p.s.
вспомнилось только www.freescale.com/ecompass
после обязательной регистрации можно нажать на “ECOMPASS_SW: New eCompass Software Version 3” и получить исходники реализации от Freescale плюс тучу документов. сырые данные от компаса от фирмы-производителя датчика не зависят ;)
У меня всё-таки “не вынесла душа поэта…” заказал себе 2 mpu9250… ru.aliexpress.com/item/…/1867340864.html
тезка… можно немного поленюсь - можешь дать строчки инициализации для мпу6000 с конфигурированием выхода прерывания по готовности (сейчас на новой платке обе стоят - и 6050 по и2с и 6000 по СПИ)
порт как обычно - мультивий
У меня в гит лежит драйвер - но лапу прерывания я помоему вырезал из кода ибо не использовал посмотри тут github.com/SergDoc/…/drv_mpu6000.c
и ещё - я там чёт мучался с сигнатурой чёт не шла - прописал вручную…
для вия тебе прерывание всёравно ненадо - чтение датчиков в петле… а так как петля у тебя ~3000 то данные всегда с датчика будут новые…
впринципе - новые данные - прерывание - читаем mpu, но это всё на килогерце если не ошибаюсь…
мож ненадо, а мож и пригодится - как будет свобдное время планирую поиграться с ними обоими
строки 432-433…
ага, уже давно нашел… пасиб…
сча командировка в ХМАО на недельку (г.Нягань)… как раз время свободное будет по вечерам
сверху доп платка - мпу6000,под ней - баро, справа - мпу6050, снизу - компас, сверху справа - импульсник на 5в, РГБ светик WS2812b, лм1881 для ОСД
на нижней части - проц + ОСД на 328-й. ста на 3.3 и полевик на 2 силовых канала
мычка МГТФ-ом - чтобы шить 328-ю через основной проц
сча командировка в ХМАО на недельку (г.Нягань)… как раз время свободное будет по вечерам
к rual в гости заедь 😃
к сожалению такого не получится - времени мало
кстати вот текущий вариант:
Серьезная плата, моя давняя мечта: “все в одном”, только у меня + GPS но -OSD…
заказал себе 2 mpu9250…
Вот интересно будет потом сравнить с BMX055… Внутренности у них принципиально отличаются, будет ли какая разница на практике (?)
в связи с этим попутно задумался: как сделать автокалибровку магнитометра непосредственно в поле ?
А до этого у тебя как было? Не в “поле” это как? “НеВПоле” вектор может быть сильно измененным.
Интересно в “народных” проектах есть подобные алгоритмы ??
У меня есть, хотя проект личный.
сча командировка в ХМАО на недельку (г.Нягань)… как раз время свободное будет по вечерам
к rual в гости заедь
к сожалению такого не получится - времени мало
Жаль… правда я тоже в отпуск в пятницу уезжаю… mataor, если что, пиши личку… может где пересечемся
правда я тоже в отпуск в пятницу уезжаю
Блин, я тебе всё никак посыль не отправлю - быт заел 😦 доберусь как до пошты…
А до этого у тебя как было?
А до этого я просто сначала смотрел на сырые данные и тупо добавлял поправки к осям,
но это все ессно “в одном месте на столе” и один раз… (может поэтому толком не работало и компас мне сразу как то не понравился)
Жаль… правда я тоже в отпуск в пятницу уезжаю… mataor, если что, пиши личку… может где пересечемся
собственно я то уже на месте, но вот дальше нягани наврятли куда смогу съездить