MultiWii на самолете

fat_hamster

не очень на самом деле понятно, что происходит - резко начинает поворачиваться что? РН?

может он при инициализации запоминает курс, а потом при переключении в стабилизацию пытается на этот курс повернуть?

andreeww:

тогда он становится ровно

и если после этого повернуть самолет? он пытается вернуться?

хз, у меня такого не было, так что гадать…

хотя вру, чего ж не было - вроде похоже сам писал же

включаю, переключаю на angle или hor (самолет стоит на столе) - плоскости не меняют положения; но если пройдет какое-то время и переключится на стабилизацию - рулевые плоскости перемещаются

так что может пиды на yaw покрутить, как советовали тут уже (I = 0)?

я еще грешил, что силовые провода на компас влияют и он курс пытается выровнять, но ход мысли уже не вспомню, давно (ну сравнительно, но выветрилось из головы) игрался

но при включении любого стабилизированного режима полета резко начинает поворачивается

а если при этом самолет не поворачиать, а руль направления туда-сюда слегка “дернуть” - не лечит его это?
если да - то точно мои симптомы

lotophagi
andreeww:

У меня прошивка 2.3, руль направления не дрейфует, но при включении любого стабилизированного режима полета резко начинает поворачивается и будет в этом положении пока я не разверну самолет в определенное положение, тогда он становится ровно, кто знает как с этим бороться?

Это и есть дрейф. Руль уплывает и смотрит в сторону пока стик не дернешь или, как у вас, не повернешь самолет в определенное положение. Нюансы у каждого свои, там скорость поворота, но проблема идентична. Говорят, что проблема есть не у всех и зависит от гироскопов на плате. Лечится изменением значения Yaw I в “0.00”

andreeww

Большое спасибо за советы, помимо РН у меня еще неадекватно вели себя элероны. Проблему удалось решить путем закомментирования строки #define GYRO_SMOOTHING {20, 20, 3} Сейчас у меня все двигается нормально. Еще разобрался где в версии 2.3 регулировка реверсов серв, они оказались не в config.h а в программе графической оболочке.

lotophagi
andreeww:

Еще разобрался где в версии 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 в папке гуи), то можно эти значения вбить в код.

andreeww

Прошу прощения за предыдущий пост, дело оказалось не в строке #define GYRO_SMOOTHING {20, 20, 3}. а в том, что я когда в GUI настраивал реверсы нажал на кнопку GOLIVE, после нажатия на эту кнопку, все заработало.

DEADMAZDIE

Лично мне очень странно, что в 2.3 не перенесли кусок кода из 2.2, в котором можно было реверсировать сервы для крыла по нужным осям. Мне вот, допустим, сейчас надо реверсировать только по одной оси, а если я меняю значения #define FORCE_SERVO_RATES, то инверт по обоим осям происходит, через гуи то же самое…

lotophagi
DEADMAZDIE:

Мне вот, допустим, сейчас надо реверсировать только по одной оси, а если я меняю значения #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;}
DEADMAZDIE

В том то и дело. Плата Crius Lite, на Хоббикинге в доках прямо скрин с куском кода есть, как правильно выставить, на РцТаймере ребята вообще методом тыка установили, что надо выставлять плату GY_521. Оба способа работают, и после них в гуи приборы отображают наклоны верно. Поэтому в 2.3 приходилось выставлять ориентацию датчиков так, чтобы элевоны отрабатывали правильно, телеметрия мне всё равно не нужна, просто стабилизации достаточно. Но сегодня перфекционизм взял верх, и первый полёт на 2.2 был. Пришлось, правда пиды почти в ноль убить, а то полёт походил на плавание брассом поначалу.
В 2.3 привлекает дефайн, отменяющий арминг только в горизонтальном положении.

25 days later
djlobzik

Подскажите что подкрутить чтобы двигатель запускался с 0, а то у меня начинает крутиться только с 60%

lotophagi

Для начала откалибровать регулятор напрямую от приемника. А потом, если регулятор подключен через Multiwii, попробовать поиграться с minthrottle (#define MINTHROTTLE)

djlobzik

Если в MultiWiiWinGU смотреть Thr min-1013 max-2034 а двигатель запускается на 1570.
Регуль калибровал, с minthrottle игрался - не помогает, было 1050, уменьшал до 800, хотя где то читал надо на 50 больше минимума.
Напрямую от регуля работает. Где еще глянуть 😃?

upd: Сейчас потестил с другим регулятором, заведома исправным - снял с коптера, ситуация один в один.
Похоже где то в софте накосячил. Не хочется напрямую к приемнику подключать.

fat_hamster

Ну вот гуе же показывает, что плюс/минус передается в регуль правильная цифра - значит должно работать

Калибровали регуль - как, cannot_fly дефайном? Мне кажется только это и помогало обычно

djlobzik

Сейчас откалибровал cannot_fly дефайном, не помогло.
Прошивка 2.3, плата Pro Mini Module Atmega328 5V 16MHZ + MPU-6050

fat_hamster

Странно это
А в конфиге что менялось? Если взять чистый конфиг, поменять только тип “самолет”… Настройки еепрома еще сбросить, я в конфиге делал резет-врайт, чтобы реверсы - настройки серв сбросить

А гуй показывает значения для мотора - канала передатчика или уже то, что в esc идет?

andreeww

Прошивку для самолета нужно брать не стандартную для коптера, а специально переделанную от PatrikM. В этой прошивке дописан конфиг чтобы работал GPS, включение двигателей на 0 оборотов. Для версии 2.3 лежит она тут code.google.com/p/multiwii/…/FW_Nav_1140402.zip

для закачки нужно кликнуть View raw file

djlobzik

С прошивкой PatrikM на столе все работает замечательно, осталось потестить в поле.
Спасибо!

fat_hamster
andreeww:

Прошивку для самолета нужно брать не стандартную для коптера, а специально переделанную

ну не то чтоб совсем правда Ваша
я использовал “стоковую” 😃 и ничего, самолет летал; выключение двигателей тоже “в стоке”, дефайн motors_stop или как-то так останавливает моторы, если газ в минимуме

но прошивка патрика нужна (…blogspot.se/…/multiwii-gps-airplane.html), если хочется RTH фукцию - там да, допилена часть, связанная с жпс и возвратом домой

но с проблемой запуска мотора это никак не пересекается, “я гарантирую это” (С)
я в сбт пытался переделать крыло с 2-мя моторами, в такой себе бикоптер; было интересно как опыт, но успеха увы не получилось

но у меня один из моторчиков отказывался “заводится”, пока не сделал калибровку через прошивку (раньше, когда часто снимал моторы с коптера, а потом ставил назад, то же самое, каждый раз надо было перекалибровать)

djlobzik Вы же “до конца” все проделываете? раскоментить дефайн, залить в контроллер, подключить питание (именно силовой акк), оно там что-то подумает, писнет, убираем дефайн, заливаем прошивку взад…
просто уточняю, ну мало ли, что-то забылось…

djlobzik:

С прошивкой PatrikM на столе все работает замечательно

о, круто… а я тут понаписывал

но понаписывал, что сам проверял; интересно все же, в чем дело было

djlobzik:

осталось потестить в поле.

мои испытания в сбт “в поле” закончились в овраге… хз, в чем причина, в руках вроде все правильно отклонялось, а полетел - полная фигня… надо что-то “тюнить”, или пид-ы, или мой микс для V-хвоста

djlobzik
fat_hamster:

Странно это
А в конфиге что менялось? Если взять чистый конфиг

Попробую, самому интересно, в теории все должно работать а на практике два потерянных вечера.
Зато теперь в MultiWii более менее ориентируюсь 😃

fat_hamster
djlobzik:

а на практике два потерянных вечера.
Зато теперь в MultiWii более менее ориентируюсь

кстати вот не потерянные вечера 😉
пока разбирешся - хоть понимать начинаешь, что да как

успехов с испытаниями

andreeww
djlobzik:

С прошивкой PatrikM на столе все работает замечательно, осталось потестить в поле.
Спасибо!

В полете будет еще лучше, главное правильно выставить реверсы, как это делается, я писал несколькими постами раньше. На дрейф рулевых поверхностей на столе не обращайте внимание, это так нужно. Просто автопилот не видит отклика самолета лежащего на столе, а в воздухе все будет как нужно. У меня планер 2.3м размах с классическим хвостовым оперением, на стоковых пидах летает отлично. Только в сильный ветер при возврате домой против вера под острыми углами самолет не очень устойчив по курсу. Это очень сложная задача по вычислению курса в зависимости от скорости полета и бокового дрейфа за ветром. Самолет возвращается но делает это зигзагами

lotophagi

Я уже опробовал последнюю прошивку Патрика 1140402. Пока немного тестировал. Могу сказать, что возврат работает. Порадовал набор высоты, который можно задать из гуи, и радиус кругов. GPS Hold пока не понял, но самолет должен накручивать круги в том месте, где активирована функция. У меня возникли проблемы с GPS модулем, и не получилось активно протестировать прошивку.