MultiWii

leprud

Система стабилизации многороторных систем (на момент написания данного текста возможно управление трикоптером, “+” и “Х” квадкоптером, а также Y6 и HEX6 конфигураций). Также возможно использование как стапилизированного подвеса камеры) с открытым кодом, изначально основанная на ArduinoProMini 5V 16MHz, и использующая датчики (гироскопы и акселерометры), расположенные на аксессуарах игровой приставки Wii: WiiMotionPlus (WMP) и опционально - Nunchak (NK).
Алгоритмы стабилизации используют PID (ПИД) регулятор, совмещенный с фильтром Калмана.

Получила свою популярность за счет своей дешевизны (дешевле т.н. “безмозглых” , использующих 4 готовых модельных гироскопа), а также простоты сборки, обусловленной модульностью конструкции с широко распространенными и дешевыми модулями: Arduino (15-25$), WMP (7-25$), NK (4-15$). Смена прошивки также не требует специального оборудования и навыка работы со специализированным программным обеспечением.

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

Официальный сайт

Основная ветка обсуждения на rcgroups
Build log от kinderkram
Основные настройки в подробностях
HOWTO

В этих обсуждениях есть ВСЯ необходимая для понимания и повторения информация, рассмотрены разные проблемы и методы их решения. Не ленитесь пользоваться поиском!

Физические схемы подключения элементарны и не представляют сложностей для повторения.

Подключение Arduino и WMP

Подключение опционального NK к WMP

Схема подключения в трикоптере

“X” Квадкоптер

“+” Квадкоптер

Для простоты подключения элементов, существуют различные вспомогательные платы.

Из готовых следует отметить плату от мастера пилотажа Warthox

Также существует большое количество плат не доступных коммерчески, но доступных бесплатно в виде разводки и картинок. Их список также доступен по ссылкам, указанным выше.

Covax

Ну наконецто 😃
От себя добавлю: покупка клонов WM+ и нунчак лотерея еще та, закупайтесь в проверенных местах, а для этого придется всетаки перелопатить все указанные ссылки хотя бы поиском.

Кстати, ссылка на репозиторий всех версий кода для multiwii.

Из доступных к заказу в РФ ищите carduino nano, freeduino с USB интерфейсом. Из-за границы seeeduino. Желательно сразу на Атмеге 328 и выше!

funtik26

Леонид спасибо за тему и подробный фак.
от меня метод настройки ПИДов
выставляем экспоненты, расходы, так чтобы моторы запускались
начинаем настройки PID
изначально все по нулям.
начинам увеличивать Р до момента появления осциляций. я настраивал держа в руке на весу. иногда для принудительного возникновения осциляций нужно с хорошей амплитудой и резко наклонять коптер. далее настраиваем I и D , Увеличиваем но без явного фанатизма. советую проверять на предмет возникновения осциляций. если при резких кренах коптер начинает прыгать и моторы обрубаются- уменьшить P.
если у вас есть нунчак, причиной осциляций может быть сильно завышенное автовыравнивание. советую так же начинать с минимума.
если в комнате коптер летает хорошо а на улице дергается- уменьшать либо чувствительность либо автовыравнивание.
хорошей “аэродинамической трубой” для выявления дерганий у меня служит пылесос. включаем его и летаем выходящим из него воздухом

Панкратов_Сергей
Covax:

лотерея еще та, закупайтесь в проверенных местах

Нет гарантий. Сегодня в этом месте одни платы, завтра другие…
У меня плата - вообще не рассматриваемая на 560 страницах форума . Но работает …

funtik26:

от меня метод настройки ПИДов

Что сделали? А были против…

funtik26

сильно против WII? был против в начальной стадии постройки коптеров. потом подрос повзрослел понял что надо расти дальше. кстати безмозглый вариант мне нравился больше

leprud

MWC (MultiWiiController) с настройками только по P каналу PID регулятора абсолютно точно повторяет поведение безмозглого варианта…
Единственно что, MEMS датчики (стоящие в WMP) значительно чувствительнее к вибрациям, чем пьезо-датчики в обычных гироскопах, поэтому требуют виброизоляции и виброразвяки.

Панкратов_Сергей

Чуть дополню:
Для плат ArduinoProMini 5V 16MHz и некоторых других, не имеющих на борту USB-адаптера, нужен еще USB-Serial adapter www.sparkfun.com/commerce/product_info.php?product… .
Для последних версий прошивок 1.5 и 1.6 можно применять и 168-ю атмегу, при условии отключения в программе настройки через ЛСД дисплей. Более ранние прошивки не проверял.

jon_bear

rcopen.com/forum/f123/topic156768/1774

Панкратов_Сергей:

Перемычку для работы нунчака на плате WMP поставил? На моей плате 1 с 3 контактом.

Спасибо Сергей!! Слона то я и не заметил 😃

Пошел курить форум дальше, на тему:
Почему уровни акселерометра на разной высоте в окне просмотра,
Нормально ли что cycle time в районе 6000 независимо от скорости I2C…

Covax

Вот хороший магазинчик на ebay по ардуинам платкам и аксессуарам к ней.
shop.ebay.com/ge-th2009/m.html

jon_bear:

Почему уровни акселерометра на разной высоте в окне просмотра,
Нормально ли что cycle time в районе 6000 независимо от скорости I2C…

ACC_PITCH, ACC_ROLL должны быть по нулям, ACC_Z в районе 200
6000 нормально, можно понизить на свой страх и риск выставив частоту 400khz и снизить задержку interleaving_delay с 3000 до 2000 или даже 1000.

Texnik

Питание WMP & Nunchak - 5 вольт? А ардуины легко делать и самому.

leprud

А вот AlexInParis мне ответил, что cycle time выше 4500 - это плохо.
Мне помог переход на питание 3.3В со стандартных 5В.

Volver

Подскажите кто знает, такого ардуино нано будет достаточно для WMP + BMA020?

Covax
leprud:

А вот AlexInParis мне ответил, что cycle time выше 4500 - это плохо.
Мне помог переход на питание 3.3В со стандартных 5В.

Тоесть просто перешел и цикл уменьшился ничего не меняя в скетче? У меня такой фокус прошел только уменьшив INTERLEAVING_DELAY до 1200. Сейчас у меня цикл 2300 с копейками при частоте 400khz и 3.3v. Когда сильно трясу платку то цикл разово может поднятся до 3700 .

Volver:

Подскажите кто знает, такого ардуино нано будет достаточно для WMP + BMA020?

Алил, конечно подойдет, только за теже деньги можно купить Кардуино Нано 328, уже в Москве, с возможностью замены если что. Парни находятся в районе Шуваловского, можно договорится о самовывозе и не платить за доставку.

leprud
Covax:

Тоесть просто перешел и цикл уменьшился ничего не меняя в скетче?

Практически да.

Панкратов_Сергей
jon_bear:

Почему уровни акселерометра на разной высоте в окне просмотра,
Нормально ли что cycle time в районе 6000 независимо от скорости I2C…

Видимо приемник не подключали… После процедуры обнуления-нормализации - придет в норму.
От скорости I2C практически не зависит.
Цикл с акселлерометром около 6000. Без оного - около 3000

Covax
leprud:

Практически да.

Всмысле практически, были еще какието доработки? )) А версия скетча какая?

Панкратов_Сергей
leprud:

Практически да.

С 12- пина ушли?
Т.е уменьшили время цикла все же снижением питания или уходом от принудительных сбросов нунчака?

Covax
Панкратов_Сергей:

С 12- пина ушли?
Т.е уменьшили время цикла все же снижением питания или уходом от принудительных сбросов нунчака?

нунчак и wm+ прохо работают под 5v, поэтому если есть возможность перейти на 3.3v переходите, у меня ни разу не зависла система на этом напряжении.

leprud

Изначально это было 1.5, поигрался с таймингами, действительно ушел с 12 пина на 3.3В постоянного питания.
Что именно повлияло - сказать не берусь, да и разбираться-тестировать не хочется. Работает - и фиг с ним: “летать надо, а не думать, как оно летает”

Volver
Covax:

Цитата Сообщение от Volver Посмотреть сообщение Подскажите кто знает, такого ардуино нано будет достаточно для WMP + BMA020? Алил, конечно подойдет, только за теже деньги можно купить Кардуино Нано 328, уже в Москве, с возможностью замены если что. Парни находятся в районе Шуваловского, можно договорится о самовывозе и не платить за доставку.

Спасибо, в Москве удобнее )) просто в названии той ардуины увидел v3.0 и подумал, что питание ровно 3 вольт, сейчас уже почитал описания и все стало на свои места ))))

Панкратов_Сергей

Уйти с 12-го пина не есть хорошо. Об этом AlexInParis писал.
Т.е получается что может быть причина в нестабильной работе от 5 вольт. И ардуинка сбрасывала нунчак по 12 пину. Хотя там и не 5, а чуть выше
4-х. Но в этом случае правильно бы было погасить напряжение просто одним-двумя диодами.
Попробовать нужно.

Covax
leprud:

Работает - и фиг с ним: “летать надо, а не думать, как оно летает”

Не узнаю Леонида 😃 Сейчас так же летаете на 1.5 или на 1.6 перешли?

Уйти с 12-го пина не есть хорошо. Об этом AlexInParis писал… В этом случае правильно бы было погасить напряжение просто одним-двумя диодами.

так и делают, но на 3.3v вероятность фриза ничтожна, да и делают на pro mini где нет 3.3v и писал Алекс про питание 5V 😉

leprud
Covax:

Не узнаю Леонида

Тут я больше о теории распинаться не буду, хватит, довысказывался

Панкратов_Сергей

Через пару часиков попробую диодами. Если не даст меньшее время цикла, значит дело не в понижении напряжения, а в банальном отключении сбросов нунчака.
И еще… Если б нестабильность работы от 5-ти вольт давала увеличение цикла, то у всех бы он был разный.
Но читая форум - у всех он в районе 6000 мкс.
Так что думаю что дело не в этом. Нужно смотреть программу. Возможно в ней принудительный сброс в каждом цикле нунчака.
А насколько я помню - его перезапуск отнимает где-то 18 мс.

Covax

Сергей, с interleaving_delay в скетче поиграйтесь, и найдите для себя наиболее оптимальное значение. Я жду не дождусь платку с bma020, интересно сколько с ней будет время цикла, ведь wm+ и bma020 будут работать параллельно.

//gyro+nunchuk: we must wait for a quite high delay betwwen 2 reads to get both WM+ and Nunchuk data. It works with 3ms
//gyro only: the delay to read 2 consecutive values can be reduced to only 0.65ms