Создание собственной системы стабилизации
Я уже готов пересмотреть своё отношение к и2ц на борту.))) Если у Ф4 такой же, то смело можно делать на и2ц.
Да вун Мегапират работает со всеми датчиками по I2C и ничо, справляется…
где посмотреть про этот контроллер и сами планы, анонсы от арду?
Понятия не имею, сам в исходниках свежих нашел драйвера HAL под эту плату…
Тут надо посчитать передаваемые битики, если 30%-ный запас будет, то вполне нормально.
Кста, отчитаюсь.
Сделал полную ИНС на Ф3, всё как люблю, т.е.:
-передача данных в ПДП (SPI) и перывании для И2Ц;
-получение данных по запросу самих датчиков через линии готовности данных;
-частоты получения данных 380 Гц-ДУС, 50 Гц - аксель и компас;
-время отработки одного отсчета: ДУС -1200\1400 мкСек, Аксель - 2100\2500 мкСек.
И2Ц интерфейс Ф3 произвёл на меня огромное впечатление. Почти весь конечный автомат протокола перефирия выполняяет САМА!!!
Я уже готов пересмотреть своё отношение к и2ц на борту.))) Если у Ф4 такой же, то смело можно делать на и2ц.
Вот что-то интересное. Мегапират обновляет данные с частотой 100 Гц. На своей прошивке я получил почти 200 Гц но без сеовиса. Один цикл из 30 до 6,5 милисек. При этом чтение MS5611 (100 Гц) и HMC5883 (10 Гц) занимает около 2 милисек , чтение MPU6000 по SPI полный обсчет DCM-матрицы около 3 милисек на 2560. Чтение приемника тоже времени требует до 2 милисек. Остальное практически времени не занимает.
Переходя на более мощный процессор хотелось бы читать датчики чаще, но учитывая скорость И2С если все датчики повесить на нее это достигнуть не удастся. Зачем тогда переходить? Ну только для того чтобы познакомиться с ним?
Была у меня идея двинуться в сторону обработки видео для целей стабилизации, но необходимость зарабатывать что-то на жизнь не позволила. (Времени не хватило на все)
Пару лет назад задавал эти вопросы в том числе при обсуждении Оупенпилота. Но все закончилось как обычно - повздорили и разбежались.
Оупенпилот потихоньку загнулся, Ardu & MultiWii продолжают активно жить. Поэтому выбрав для себя эти два проекта вижу, что не ошибся.
Летая на коптере убедился, что в при управлении человеком результаты получше и была идея с ПИД регулятора перейти на нелинейное управление, но тоже времени не хватило.
За прошедшее время в алгоритмы, использованные в Ardu & MultiWii вник дотошно. Датчики исследовал тоже подробно. В принципе для меня нетрудно реализовать любой алгоритм обработки и вставить его в тот же Арду. Но нужны идеи.
Переходя на более мощный процессор хотелось бы читать датчики чаще, но учитывая скорость И2С если все датчики повесить на нее это достигнуть не удастся. Зачем тогда переходить? Ну только для того чтобы познакомиться с ним?
А есть ли смысл читать датчики быстрее? Все наверное видели как летают последние версии Арду, а ведь частоту опроса они не поднимали, все дело в управляющих алгоритмах. А вон Александр(mahowik) вообще всех порвал своей реализацией АльтХолда по акселю… и то же дело не в датчиках 😃
А есть ли смысл читать датчики быстрее? Все наверное видели как летают последние версии Арду, а ведь частоту опроса они не поднимали, все дело в управляющих алгоритмах. А вон Александр(mahowik) вообще всех порвал своей реализацией АльтХолда по акселю… и то же дело не в датчиках 😃
Да есть . Читая MS5611 с частотой 100 Гц получил результат практически тот же что и с сонаром. (Не в обиду Александру, проделавшему большую работу с ВМР085)
обижаться не буду, т.к. все не так 😉
получилось как раз таки со связкой mpu6050 + ms5611, а потом уже коэф. подобрал и для bmp085, но все равно для bmp085 точность ограничена точностью по паспорту +/-1метр
далее сколько я просидел в графиках барометра (как ms5611 так и bmp085), там реальная задержка/лаги самих показаний сенсора, и частота опроса тут не поможет, а спасает только скорость сенсора (только аксель!)… и если на одном баро, то пиды будут как сопли еле-еле, а если выше, то дерготня… и демо с толкалками и резким остановом на одном баро ну ни как!
с сонаром таже фигня, без акселя толком ничего не держит, т.к. теже задержки/лаги…
п.с. сегодня хорошо так подрюкался с предсказанием высоты по акселю и получил результат практически как у арду 2.9RC1 на видива ниже…
в код арду пока не подсматривал 😃
но блин тут уже двойное интегрирование и коррекция через кф… иногда интегратор выходил из стабилизации…
Сделал полную ИНС на Ф3, всё как люблю
а сорсы и гуи можете выложить?
и тут же повторю вопрос… посоветуйте среду разработки под stm32… полезные тулы там всякие и т.д.
обижаться не буду, т.к. все не так 😉
получилось как раз таки со связкой mpu6050 + ms5611, а потом уже коэф. подобрал и для bmp085, но все равно для bmp085 точность ограничена точностью по паспорту +/-1метрдалее сколько я просидел в графиках барометра (как ms5611 так и bmp085), там реальная задержка/лаги самих показаний сенсора, и частота опроса тут не поможет, а спасает только скорость сенсора (только аксель!)… и если на одном баро, то пиды будут как сопли еле-еле, а если выше, то дерготня… и демо с толкалками и резким остановом на одном баро ну ни как!
с сонаром таже фигня, без акселя толком ничего не держит, т.к. теже задержки/лаги…п.с. сегодня хорошо так подрюкался с предсказанием высоты по акселю и получил результат практически как у арду 2.9RC1 на видива ниже…
но блин тут уже двойное интегрирование и коррекция через кф… иногда интегратор выходил из стабилизации…
а сорсы и гуи можете выложить?
и тут же повторю вопрос… посоветуйте среду разработки под stm32… полезные тулы там всякие и т.д.
Читая ms5611 с частотой 100 Гц и усредняя по 10 измерениям я получаю маленький шум и актуальные данные и поэтому никто не дергается, то же с сонаром , но использую дорогой сонар МВ1200 на котором пропусков нет. Конечно использование акселя это правильно, но для хорошего результата сначала лучше хорошие датчики. То же самое я писал год тому. Мимоходом посмотрел последнюю версию Арду - так акселерометр там используют. (z-damping !)
По STM изначально выберите среду разработки. Как по мне IAR предпочтительнее, но может быть и Keil и бесплатные.
а сорсы и гуи можете выложить?
Сорсы полного ПО выкладывать не планирую, если смогу аккуратно подрезать уже привязанную свою “специфику”, то чистый ИНС выложу.
гуи как такового нет, в “большом” ПО есть лазейка в Вийский гуи, а так обычная терминалка putty + демо-отображалка (красный/синний “самолётики”).
и тут же повторю вопрос… посоветуйте среду разработки под stm32… полезные тулы там всякие и т.д.
пишу в кейле 460, или Эклипс+ГЦЦ. Под последнее проект пока не собирал, не знаю как там с отладкой Ф3 ( наверное никак), а про кейл уже писал, что перифирию F3 отлаживать нет возможности…
и тут же повторю вопрос… посоветуйте среду разработки под stm32… полезные тулы там всякие и т.д.
Я все это шаманство командной строки так и не осилил - поставил CooCox IDE, она бесплатная, все что надо есть (сделано на базе Eclipse), и работает “из коробки”.
поставил CooCox IDE, она бесплатная, все что надо есть (сделано на базе Eclipse), и работает “из коробки”.
У меня один вопрос: перифирию Ф3 отлаживает?
Встроенный отладчик на плате discovery есть, можно ли ставить точки останова в обработчиках прерываний, пока не разбирался.
coocox рулит. А есть тут любители maple? В программировании та же ардуина, только на стм32
ребята сейчас maple II делают на ф4 точно бомба будет.
Была у меня идея двинуться в сторону обработки видео для целей стабилизации, но необходимость зарабатывать что-то на жизнь не позволила. (Времени не хватило на все)
.
А не поделитесь соображениями насчет принципа стабилизации по видеокартинке, я тоже хочу попробовать поработать в этом направлении.
У меня есть кое какие мысли по отслеживанию перемещения пикселов, но интересует Ваше мнение (если не секрет).
Как бы Вы реализовали сей алгоритм…?
А есть тут любители maple?
Там бутлоадер заменять надо, если не ошибаюсь…
А не поделитесь соображениями насчет принципа стабилизации по видеокартинке, я тоже хочу попробовать поработать в этом направлении.
У меня есть кое какие мысли по отслеживанию перемещения пикселов, но интересует Ваше мнение (если не секрет).
Как бы Вы реализовали сей алгоритм…?
Супер конечно…
Но я бы всеж начал с чего то попроще типа отслеживания перемещений по картинке (как в оптической “мыши”)
Там бутлоадер заменять надо, если не ошибаюсь…
Пардон, а зачем?
они свой собственный бутлоадер используют, да даже посмотреть - инициализация USB идёт через порт PD4 а не через PA9 как в родном бутлоадере, хотя он скорей всего вторичный, ещё не пробовал…
Хотя есть подозрения о неких фоновых процессах внутри, вроде проц 72мгц, а мбед 96мгц быстрее в 6 раз выполняет один и тот же код. Но все же именно на мапле мини был сделан стаб у которого 250гц цикл включая гира аксель маг баро гпс. Над этим екф.
Посмотри в сторону мбед - очень рекомендую. Займешся не низкоуровневым программированием, а именно системой стабилизации-автопилотом
Датчики внутри “домика”, все прижато поролоном, для баро самое то
И вот продукт эволюции - дом на стм32ф405
Дринкер стайл так сказать - дом и крутилки. Зато с отверточкой без ноутбука за пару минут в поле все до идеала тюненгуется.
У меня есть маленькая мапл, немного возился с ней. Что не понравилось: ардуинское иде, тормозит и глючит; пробовал подключить к ней компас по и2ц стандартными ардуинскими методами - не получилось, возможно “не умею готовить”, либо это как раз о том что низкоуровневое программирование никуда не денешь.
Зато с отверточкой без ноутбука
Ноут и не нужен, есть телефон с голубым зубом.
Алeксандр, у маплe вирe нeту надо и2ц.х юзать. на сцайтe подробно описано. вообщe проблeм нeту
Посмотрел Maple Mini - классная штука, давно хотел во всяких поделках использовать STM, но разводить вручную плату совершенно лень. С такой платой все гораздо удобнее.
Только не очень понял, как там обстоит с отладкой?
PS: 34$ на спаркфане, дорого, взял на ебее на пробу за 24$, сойдет для тестов.