MultiWii на самолете
теперь то его настраиваю, то самолет пытаюсь - запутываюсь уже
Я так же настраивал сначало бикслер с megapirat (AIOP), параллельно крыло с multiwii (AiOP), потом дошло дело снова до бикслера и уже забыл что и где настроил 😵 В итоге пока на крыле с вием остановился, буду летать пока не придут запчасти к миниквадрику. Кстати, вопрос про multiwii, если элероны подтримировать с пульта, это не отразится на автовозврате в дальнейшем?
Мультивий на базе 328, к нему осд прицепить и жпс какие есть варианты? кто в курсе?
GPS цепляется через переходник i2s-serial, а ОСД цепляется на серийный порт, через который и прошивается ардуинка, только необходимо выставить нужную под ОСД скорость порта
спасибо!
Возврат работает в таком виде?
пробовал ли кто осд Олега Siberian цеплять? жпс при этом так же через I2C ?
Построил нового вжика ( сделал легче тоньше старого ), жесткость конструкции упала .
теперь тряска самолета со стабилизацией стала начинаться совсем на маленьких скоростях !
Думаю из за чего и как решить .
такие мысли : 1. добавить жесткости
2. перенести плату стабилизации в правильное место !
сейчас плата стабилизации ближе к носу .
Измениться ли что то если ее в центр модели например перенести ?
Не зря же на коптерах посередине ставят платы, даже на “Н” образных
Физика подсказывает, что лучше если контроллер в центре - вибрации будут какие то по любому и чем дальше от центра тяжести, тем амплитуда колебаний датчика больше, а вибрации акселерометр не любит… Можно посмотреть значения акселерометра в гуе после включения мотора, если вибрации сильные - иногда там “зашкаливают” цифры… Понятно, что усредняются и прочая математика, но все равно лучше “тишина и покой” чтоб у датчиков были
Так что надо бороться с вибрацией в любом случае ; ну и плату ближе к центру
С “мягким” самолетам то же самое, если его изгибает, то чем дальше, тем амплитуда больше и соотв. контроллер сильнее чудит
Меня не влияние вибрации пока интересовало .
Вопрос в другом : где контроллер лучше видит наклоны самолета ?
имеет ли значение места установки в этом смысле ?
может быть нос модели допустим сильнее наклоняется , а ее центр имеет меньший угол ? вот этот момент для меня загадка
в носе модели веса не хватает , не хотелось бы вес контроллера дальше от носа убирать .
Но попробую , о результате отпишусь . А пока 2 дня погода не летная .
Теоретически, гироскоп и акселерометр лучше размещать в районе фокуса, магнетометр (при наличии) - в любом месте подальше ото всех проводов/батарей/электроники. Это, кстати, довод против использования шибко интегрированных плат на самолетах (на коптерах наиболее мешающая магнетометру силовая электроника часто размещается на лучах). Фактически, все датчики, расположенные на крыле на 1/2 размаха и 1/3 хорды (китайская плата GY-86) работают с достаточной степенью достоверности для корректного решения задачи определения пространственного положения планера.
Ну имхо что с вибрацией, что с наклоном суть в том, что чем дальше от центра, тем больше плече, а как известно если бы была точка опоры и плечо побольше, то кто то грозился и землю сдвинуть
Хотя математика это решает, читал, что в модных назах вроде как настройка даже есть - расстояние от ЦТ, и потом это обсчитывается/учитывается…
Здравствуйте.А какая на данный момент самая актуальная прошивка И2Ц ЖПС?
Здравствуйте.А какая на данный момент самая актуальная прошивка И2Ц ЖПС?
2.2 beta 1 r62
см. code.google.com/p/i2c-gps-nav/
Но этот проект автором заброшен, текущий код MultiWii (начиная с апдейта r1666) все вычисления производит на основной плате, с I2C-GPS тянутся только координаты, скорость, направление и количество спутников.
текущий код MultiWii (начиная с апдейта r1666)
Это специальный самолетный вариант? Вроде последний апдейт r1648…
Это специальный самолетный вариант? Вроде последний апдейт r1648…
Последний - r1685, на прошлой неделе закоммичен. А самолётный вариант от PatrikE есть только в виде архива в его ветке. Бардак страшный.
Спасибо за наводку))) Нашел все что надо.
кстате отпишу тут свои впечатления/сравнения: бикслер мой же летал последнее время с мультивием, летал очень здорово, из коробки настройки емнип - ровненько и плавненько; правда жпс так и не поставил на него
а в прошлые выходные поменял на ардупланер, летаю: “из коробки” опять же результат мне меньше нравится - то слишком вялый был, пиды покалибровал, стал слишком резвый теперь, надо еще понастраивать
правда с жпс испытал сегодня утром полеты по точкам - это конечно круто
но мультивий маладец 😉 я его на крыло новое переставлю, жпс с видео (даже места в крыле повырезал заранее под всю электронику) - и буду сравнивать, “кто круче”
Я добавил в multiwii.cpp
#if defined(FIXEDWING)
if ((rcData[THROTTLE] < MINCHECK) && (calibratingG == 0) && f.ACC_CALIBRATED) go_arm();
#endif
Добавил этот код. После загрузки контроллера мотор сразу армится и начинает крутиться. Как сделать что бы арм остался но мотор запускался по движению стика газа?
define motor_stop (или как-то так)?
а вообще я другой код использовал
// zv:
#if defined(AIRPLANE)
if ((rcData[THROTTLE] > MINCOMMAND) && !f.ARMED && f.OK_TO_ARM) {
go_arm();
}
#endif
в multiwii.cpp вставил в 830 строку
смысл в том, что после включения арм НЕ включен, можно в гуе настройки делать (некоторые настройки нельзя делать, когда армлен мотор)
а когда двигаем стик газа вверх 0 (и соблюдены все условия для арма) то арм включается
соблюсти “все условия для арма” имхо важно: к примеру если включен бародатчик и принудительно включить арм, то самолет может попытаться с ходу удерживать какую-то высоту (и пальцы порубить)
ИМХО, сама идея арминга-дизарминга для самолётов не нужна и даже вредна. А ну как сдуру задизармится на эшелоне? В своем мультвие вынес всю эту логику нафиг, заодно вместе с настройками стиками. Контроллер стартует в passthrough, переключение режимов будет только после явной такой команды с РУ, т.ч. пальцы не порубит. Конечно, не нужно запускать калибровку акселерометра в полёте 😃
Конечно, не нужно запускать калибровку акселерометра в полёте
А вот здесь поподробнее, это как?
Калибровка акселерометра в мультивие запускается только в незаармленном состоянии:
Protocol.cpp:
…
case MSP_ACC_CALIBRATION:
if(!f.ARMED) calibratingA=512;
headSerialReply(0);
break;
case MSP_MAG_CALIBRATION:
if(!f.ARMED) f.CALIBRATE_MAG = 1;
headSerialReply(0);
break;
…
В то же время:
MultiWii.cpp
…
if ( (f.ARMED) || ((!calibratingG) && (!calibratingA)) ) writeServos();
…
Соответственно, выкинув всю логику арминга, можно, теоретически, запустить калибровку в полёте, если использовать, например, радиомодем, а, запустив калибровку, полностью потерять управление (если второй фрагмент кода не переделать тоже).