MultiWii на самолете
У меня прошивка 2.3, руль направления не дрейфует, но при включении любого стабилизированного режима полета резко начинает поворачивается и будет в этом положении пока я не разверну самолет в определенное положение, тогда он становится ровно, кто знает как с этим бороться?
Это и есть дрейф. Руль уплывает и смотрит в сторону пока стик не дернешь или, как у вас, не повернешь самолет в определенное положение. Нюансы у каждого свои, там скорость поворота, но проблема идентична. Говорят, что проблема есть не у всех и зависит от гироскопов на плате. Лечится изменением значения Yaw I в “0.00”
Большое спасибо за советы, помимо РН у меня еще неадекватно вели себя элероны. Проблему удалось решить путем закомментирования строки #define GYRO_SMOOTHING {20, 20, 3} Сейчас у меня все двигается нормально. Еще разобрался где в версии 2.3 регулировка реверсов серв, они оказались не в config.h а в программе графической оболочке.
Еще разобрался где в версии 2.3 регулировка реверсов серв, они оказались не в config.h а в программе графической оболочке.
За расходы и реверс серв отвечает блок кода в config.h
/* if you want to preset min/middle/max values for servos right after flashing, because of limited physical
* room for servo travel, then you must enable and set all three following options */
#define SERVO_MIN {1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020}
#define SERVO_MAX {2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000}
#define SERVO_MID {1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500} // (*)
#define FORCE_SERVO_RATES {30,30,100,100,100,100,100,100} // 0 = normal, 1= reverse
Я так и не понял с реверсированием, но если выставить в гуи правильные реверсы, а потом сохранить в файл (Servos.txt в папке гуи), то можно эти значения вбить в код.
Лично мне очень странно, что в 2.3 не перенесли кусок кода из 2.2, в котором можно было реверсировать сервы для крыла по нужным осям. Мне вот, допустим, сейчас надо реверсировать только по одной оси, а если я меняю значения #define FORCE_SERVO_RATES, то инверт по обоим осям происходит, через гуи то же самое…
Мне вот, допустим, сейчас надо реверсировать только по одной оси, а если я меняю значения #define FORCE_SERVO_RATES, то инверт по обоим осям происходит, через гуи то же самое…
Возможно надо правильно выставить ориентацию датчиков
#define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = -X; imu.gyroADC[PITCH] = -Y; imu.gyroADC[YAW] = -Z;}
#define FORCE_ACC_ORIENTATION(Y, X, Z) {imu.accADC[ROLL] = -X; imu.accADC[PITCH] = Y; imu.accADC[YAW] = Z;}
#define FORCE_MAG_ORIENTATION(X, Y, Z) {imu.magADC[ROLL] = Y; imu.magADC[PITCH] = -X; imu.magADC[YAW] = -Z;}
В том то и дело. Плата Crius Lite, на Хоббикинге в доках прямо скрин с куском кода есть, как правильно выставить, на РцТаймере ребята вообще методом тыка установили, что надо выставлять плату GY_521. Оба способа работают, и после них в гуи приборы отображают наклоны верно. Поэтому в 2.3 приходилось выставлять ориентацию датчиков так, чтобы элевоны отрабатывали правильно, телеметрия мне всё равно не нужна, просто стабилизации достаточно. Но сегодня перфекционизм взял верх, и первый полёт на 2.2 был. Пришлось, правда пиды почти в ноль убить, а то полёт походил на плавание брассом поначалу.
В 2.3 привлекает дефайн, отменяющий арминг только в горизонтальном положении.
Подскажите что подкрутить чтобы двигатель запускался с 0, а то у меня начинает крутиться только с 60%
Для начала откалибровать регулятор напрямую от приемника. А потом, если регулятор подключен через Multiwii, попробовать поиграться с minthrottle (#define MINTHROTTLE)
Если в MultiWiiWinGU смотреть Thr min-1013 max-2034 а двигатель запускается на 1570.
Регуль калибровал, с minthrottle игрался - не помогает, было 1050, уменьшал до 800, хотя где то читал надо на 50 больше минимума.
Напрямую от регуля работает. Где еще глянуть 😃?
upd: Сейчас потестил с другим регулятором, заведома исправным - снял с коптера, ситуация один в один.
Похоже где то в софте накосячил. Не хочется напрямую к приемнику подключать.
Ну вот гуе же показывает, что плюс/минус передается в регуль правильная цифра - значит должно работать
Калибровали регуль - как, cannot_fly дефайном? Мне кажется только это и помогало обычно
Сейчас откалибровал cannot_fly дефайном, не помогло.
Прошивка 2.3, плата Pro Mini Module Atmega328 5V 16MHZ + MPU-6050
Странно это
А в конфиге что менялось? Если взять чистый конфиг, поменять только тип “самолет”… Настройки еепрома еще сбросить, я в конфиге делал резет-врайт, чтобы реверсы - настройки серв сбросить
А гуй показывает значения для мотора - канала передатчика или уже то, что в esc идет?
Прошивку для самолета нужно брать не стандартную для коптера, а специально переделанную от PatrikM. В этой прошивке дописан конфиг чтобы работал GPS, включение двигателей на 0 оборотов. Для версии 2.3 лежит она тут code.google.com/p/multiwii/…/FW_Nav_1140402.zip
для закачки нужно кликнуть View raw file
С прошивкой PatrikM на столе все работает замечательно, осталось потестить в поле.
Спасибо!
Прошивку для самолета нужно брать не стандартную для коптера, а специально переделанную
ну не то чтоб совсем правда Ваша
я использовал “стоковую” 😃 и ничего, самолет летал; выключение двигателей тоже “в стоке”, дефайн motors_stop или как-то так останавливает моторы, если газ в минимуме
но прошивка патрика нужна (…blogspot.se/…/multiwii-gps-airplane.html), если хочется RTH фукцию - там да, допилена часть, связанная с жпс и возвратом домой
но с проблемой запуска мотора это никак не пересекается, “я гарантирую это” (С)
я в сбт пытался переделать крыло с 2-мя моторами, в такой себе бикоптер; было интересно как опыт, но успеха увы не получилось
но у меня один из моторчиков отказывался “заводится”, пока не сделал калибровку через прошивку (раньше, когда часто снимал моторы с коптера, а потом ставил назад, то же самое, каждый раз надо было перекалибровать)
djlobzik Вы же “до конца” все проделываете? раскоментить дефайн, залить в контроллер, подключить питание (именно силовой акк), оно там что-то подумает, писнет, убираем дефайн, заливаем прошивку взад…
просто уточняю, ну мало ли, что-то забылось…
С прошивкой PatrikM на столе все работает замечательно
о, круто… а я тут понаписывал
но понаписывал, что сам проверял; интересно все же, в чем дело было
осталось потестить в поле.
мои испытания в сбт “в поле” закончились в овраге… хз, в чем причина, в руках вроде все правильно отклонялось, а полетел - полная фигня… надо что-то “тюнить”, или пид-ы, или мой микс для V-хвоста
Странно это
А в конфиге что менялось? Если взять чистый конфиг
Попробую, самому интересно, в теории все должно работать а на практике два потерянных вечера.
Зато теперь в MultiWii более менее ориентируюсь 😃
а на практике два потерянных вечера.
Зато теперь в MultiWii более менее ориентируюсь
кстати вот не потерянные вечера 😉
пока разбирешся - хоть понимать начинаешь, что да как
успехов с испытаниями
С прошивкой PatrikM на столе все работает замечательно, осталось потестить в поле.
Спасибо!
В полете будет еще лучше, главное правильно выставить реверсы, как это делается, я писал несколькими постами раньше. На дрейф рулевых поверхностей на столе не обращайте внимание, это так нужно. Просто автопилот не видит отклика самолета лежащего на столе, а в воздухе все будет как нужно. У меня планер 2.3м размах с классическим хвостовым оперением, на стоковых пидах летает отлично. Только в сильный ветер при возврате домой против вера под острыми углами самолет не очень устойчив по курсу. Это очень сложная задача по вычислению курса в зависимости от скорости полета и бокового дрейфа за ветром. Самолет возвращается но делает это зигзагами
Я уже опробовал последнюю прошивку Патрика 1140402. Пока немного тестировал. Могу сказать, что возврат работает. Порадовал набор высоты, который можно задать из гуи, и радиус кругов. GPS Hold пока не понял, но самолет должен накручивать круги в том месте, где активирована функция. У меня возникли проблемы с GPS модулем, и не получилось активно протестировать прошивку.
Читаю, читаю, но так толком и не понял куда подключать сервы и ESC в плату AIOP v2?