MultiWii на самолете
у меня затык с окончательной деталью перед запуском - с этим *** армингом двигателя
по разным причинам хочу, чтобы двигатель сразу со старта был “армирован” - у меня мотор отключается в аппе тумблером и меня более чем устраивает
но что надо для этого сделать - хзвроде очевидный вариант - в гуи поставить “галочки” на arm для всех 3-х положений какого-нибудь AUX - а вот болт; работает один раз, после перезагрузки контроллера галки стоят, а арм не активен (не подсвечен зеленым), ну и мотор не работает естественно
Я добавил в multiwii.cpp
#if defined(FIXEDWING)
if ((rcData[THROTTLE] < MINCHECK) && (calibratingG == 0) && f.ACC_CALIBRATED) go_arm();
#endif
Надо читать про этот Ваш РРМ; это вообще применимо к любой аппе? К 9rx в частности?
Он не мой 😃 Смысл - передача нескольких каналов(чаще 8) через один провод. Аппа не важна, важно чтобы приёмник умел его отдавать.
if ((rcData[THROTTLE] < MINCHECK) && (calibratingG == 0) && f.ACC_CALIBRATED) go_arm();
2-е и 3-е условия и так проверяются в go_arm; а в каком месте вставлять? что-то у меня пока не получается 😦
2-е и 3-е условия и так проверяются в go_arm; а в каком месте вставлять? что-то у меня пока не получается 😦
Я ставил перед
//**** PITCH & ROLL & YAW PID ****
Я ставил перед
все, получилось вроде, тупил (ненавижу этот чисто сишный код с миллиардом дефайнов)
вчера наконец доделал прошивку - сделал как: после рестарта мотор дизармленный, так что работает настройка через гуй/блютуз; а если двинуть газ вверх (+у меня надо тумблер переключить, иначе двигай - не двигай, мотор не включится) - мотор армится
пара непоняток:
- со временем наростает какая-то погрешность “курсовая”: включаю, переключаю на angle или hor (самолет стоит на столе) - плоскости не меняют положения; но если пройдет какое-то время и переключится на стабилизацию - рулевые плоскости перемещаются
у меня V-микс на хвосте, так что так сразу не скажешь, какая и в какую сторону, вечером буду играться
но если тронуть руль направления и отпустить - рулевые плоскости становятся в нейтральное положение
включен или выключен компас - мне показалось, что разницы никакой; барометр отключен - самолет лежал на идеально горизонтальном столе (проверял пузырьком); откалибровал аккселерометр - после этого ведь самолет должен пытаться удерживать вот такое положение в полете? а он у меня в воздухе при включении стабилизации летит идеально ровно (видно визуально), НО слегка наклонив нос вниз 😦
удачный запуск (после нескольких неудачных) произошел уже когда начало резко темнеть, так что уже не разбирался, оставил “на потом” (всю неделю никаких вариантов выйти попускать, буду на кухне крыльями махать 😃 )
в субботу полетал, со стабилизацией, работает; сделал наконец какие-то выводы
со временем у меня нарастает погрешность, которая проявляется в том, что если через какое-то время после включения питания включить стабилизацию (неважно, angle или hor), то на хвосте (у меня V-хвост на самолете) одна плоскость приподнимается вверх, другая опускается вниз; на немного
эквивалентно рулению руддером (если кстати двинуть немного руль направления в любую сторону и вернуть назад - плоскости становятся в “нулевое” положение)
уверен более чем, что это именно то, что есть - контроллер пытается “подрулить” руддером, курс держит… а почему решает, что уходит с курса - потому что силовые провода действуют на компас
вот самолет
мотор - в хвосте толкающий, под (3) прячется контроллер и приемник, плюс-минус аккселерометр находится в цт самолета; (2) - это аккумулятор
силовые провода от акка идут к esc (5), мимо контроллера естественно
и ничего-то с этим не сделать 😦
Выложили бы прошивку попробывать.
Попробовать что?
Я взял 2.3 прошивку, только дописал кусок для v - хвоста и чуть изменил арминг… Могу и выложить, секретного ничего там
Могу и выложить, секретного ничего там
Если можно.
замотался-запамятовал, что обещал! исправляюсь
там в конфиге уже мои настройки, надо перепроверить - расходы у серв, где какая; какие-то коменты себе оставлял
с армом я выкрутился как - нельзя все время чтоб мотор был “заармлен” - тогда конфигуратор не конфигурит ничего
так что после рестарта контроллера мотор дизармлен, можно через гуи настраивать; а если дать газ (у меня тумблер надо для этого переключить) - то мотор армится раз и навсегда
так что и в поле настраивать с планшетом/ноутом можно, и проблемы с армингом вроде нет
пара непоняток: 1) со временем наростает какая-то погрешность “курсовая”: включаю, переключаю на angle или hor (самолет стоит на столе) - плоскости не меняют положения; но если пройдет какое-то время и переключится на стабилизацию - рулевые плоскости перемещаются у меня V-микс на хвосте, так что так сразу не скажешь, какая и в какую сторону, вечером буду играться но если тронуть руль направления и отпустить - рулевые плоскости становятся в нейтральное положение включен или выключен компас - мне показалось, что разницы никакой; барометр отключен
Столкнулся с той же проблемой увода хвоста в режиме стаба на multiwii 2.3. Нашел решение Yaw I = 0. Хвост перестал дрейфовать.
Вернулся ко мне через полтора месяца улетевший самолет, зимовал в лесу на дереве. Сейчас решил восстановить самолет и разобраться с новой версией прошивки RTH. Думаю возобновить полеты.
Александр, держите пжл в курсе про ваши наработки. Есть идея таки примостить вий на ская… Пока вот увлекся коптерами, летом планирую до самика добраться.
У меня прошивка 2.3, руль направления не дрейфует, но при включении любого стабилизированного режима полета резко начинает поворачивается и будет в этом положении пока я не разверну самолет в определенное положение, тогда он становится ровно, кто знает как с этим бороться?
не очень на самом деле понятно, что происходит - резко начинает поворачиваться что? РН?
может он при инициализации запоминает курс, а потом при переключении в стабилизацию пытается на этот курс повернуть?
тогда он становится ровно
и если после этого повернуть самолет? он пытается вернуться?
хз, у меня такого не было, так что гадать…
хотя вру, чего ж не было - вроде похоже сам писал же
включаю, переключаю на angle или hor (самолет стоит на столе) - плоскости не меняют положения; но если пройдет какое-то время и переключится на стабилизацию - рулевые плоскости перемещаются
так что может пиды на yaw покрутить, как советовали тут уже (I = 0)?
я еще грешил, что силовые провода на компас влияют и он курс пытается выровнять, но ход мысли уже не вспомню, давно (ну сравнительно, но выветрилось из головы) игрался
но при включении любого стабилизированного режима полета резко начинает поворачивается
а если при этом самолет не поворачиать, а руль направления туда-сюда слегка “дернуть” - не лечит его это?
если да - то точно мои симптомы
У меня прошивка 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;}