MultiWii на самолете

fat_hamster

вчера наконец доделал прошивку - сделал как: после рестарта мотор дизармленный, так что работает настройка через гуй/блютуз; а если двинуть газ вверх (+у меня надо тумблер переключить, иначе двигай - не двигай, мотор не включится) - мотор армится

пара непоняток:

  1. со временем наростает какая-то погрешность “курсовая”: включаю, переключаю на angle или hor (самолет стоит на столе) - плоскости не меняют положения; но если пройдет какое-то время и переключится на стабилизацию - рулевые плоскости перемещаются
    у меня V-микс на хвосте, так что так сразу не скажешь, какая и в какую сторону, вечером буду играться
    но если тронуть руль направления и отпустить - рулевые плоскости становятся в нейтральное положение
    включен или выключен компас - мне показалось, что разницы никакой; барометр отключен
  2. самолет лежал на идеально горизонтальном столе (проверял пузырьком); откалибровал аккселерометр - после этого ведь самолет должен пытаться удерживать вот такое положение в полете? а он у меня в воздухе при включении стабилизации летит идеально ровно (видно визуально), НО слегка наклонив нос вниз 😦

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

13 days later
fat_hamster

в субботу полетал, со стабилизацией, работает; сделал наконец какие-то выводы

со временем у меня нарастает погрешность, которая проявляется в том, что если через какое-то время после включения питания включить стабилизацию (неважно, angle или hor), то на хвосте (у меня V-хвост на самолете) одна плоскость приподнимается вверх, другая опускается вниз; на немного

эквивалентно рулению руддером (если кстати двинуть немного руль направления в любую сторону и вернуть назад - плоскости становятся в “нулевое” положение)

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

вот самолет

мотор - в хвосте толкающий, под (3) прячется контроллер и приемник, плюс-минус аккселерометр находится в цт самолета; (2) - это аккумулятор

силовые провода от акка идут к esc (5), мимо контроллера естественно

и ничего-то с этим не сделать 😦

1 month later
mbgr

Выложили бы прошивку попробывать.

fat_hamster

Попробовать что?
Я взял 2.3 прошивку, только дописал кусок для v - хвоста и чуть изменил арминг… Могу и выложить, секретного ничего там

mbgr
fat_hamster:

Могу и выложить, секретного ничего там

Если можно.

fat_hamster

замотался-запамятовал, что обещал! исправляюсь

mw2.3-airplane.zip

там в конфиге уже мои настройки, надо перепроверить - расходы у серв, где какая; какие-то коменты себе оставлял

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

так что и в поле настраивать с планшетом/ноутом можно, и проблемы с армингом вроде нет

7 days later
lotophagi
fat_hamster:

пара непоняток: 1) со временем наростает какая-то погрешность “курсовая”: включаю, переключаю на angle или hor (самолет стоит на столе) - плоскости не меняют положения; но если пройдет какое-то время и переключится на стабилизацию - рулевые плоскости перемещаются у меня V-микс на хвосте, так что так сразу не скажешь, какая и в какую сторону, вечером буду играться но если тронуть руль направления и отпустить - рулевые плоскости становятся в нейтральное положение включен или выключен компас - мне показалось, что разницы никакой; барометр отключен

Столкнулся с той же проблемой увода хвоста в режиме стаба на multiwii 2.3. Нашел решение Yaw I = 0. Хвост перестал дрейфовать.

Вернулся ко мне через полтора месяца улетевший самолет, зимовал в лесу на дереве. Сейчас решил восстановить самолет и разобраться с новой версией прошивки RTH. Думаю возобновить полеты.

flygreen

Александр, держите пжл в курсе про ваши наработки. Есть идея таки примостить вий на ская… Пока вот увлекся коптерами, летом планирую до самика добраться.

andreeww

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

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 дефайном? Мне кажется только это и помогало обычно