MultiWii на самолете

Flutter

Парни, требуется консультация.
Сделал связку Crius AIO и Remzibi OSD. Зашит допиленный под ремзиби мультивий 2.2 в режиме airplane. Криус запитан от внешнего ВЕСа, подключены ВТ, ЖПС МТК-3329, приемник FrSky D4R-II по PPMSum. Arming движка выведен через AUX1. Все работает, в ГУИ ползунки бегают, диапазоны изменения 1000- 2000, subtrim`ы выставлены на 1500, ремзиби правильно накладывает цифирьки в AmCap. Вопрос: Почему не работают сервы при подключении к D2, D5, D6, D7 (перенесен с D37). М.б. что-нибудь забыл раскомментить?

Config.h

#define AIRPLANE
#define CRIUS_AIO_PRO_V1
закомментил //#define ALLOW_ARM_DISARM_VIA_TX_YAW
#define SERIAL_SUM_PPM ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11
#define PPM_ON_THROTTLE
#define GYRO_SMOOTHING {20, 20, 3}
#define GPS_SERIAL 2
#define MTK_BINARY19
#define INIT_MTK_GPS
#define MAG_DECLINIATION 9.63f
#define OSD_REMZIBI_SERIAL 1
#define RX_RSSI_PIN A3
#define MOTOR_STOP

def.h
изменения для переноса сервы 1 элерона с 37 пина на 7-й

#define SERVO_4_PINMODE pinMode (37, OUTPUT); pinMode (7, OUTPUT);
#define SERVO_4_PIN_HIGH PORTC |= 1<<0;PORTH |= 1<<4;
#define SERVO_4_PIN_LOW PORTC &= ~(1<<0);PORTH &= ~(1<<4);

Попутно еще вопросик, если раскомментить
#define USE_THROTTLESERVO // For use of standard 50Hz servo on throttle
то выхода на ESC вообще не будет, т.е. это сделано для ДВС?

Вот картинки ГУИ

Flutter

Разобрался. Вот, чтобы другие не наступали на те же грабли.
Оказывается, на трехпиновый ряд разъемов (D2 и т.д.) питание с самой платы вообще не подается, а попадает обычно с ESC, и выходы для серв оказываются не запитаны, пока не подключишь сигнальный провод от ESC на D3.
А я, как прилежный пионер, подключал по очереди сначала серву (естественно не работает), потом ее вытащил и воткнул ESC (мотор работает). Короче, тупанул😍
Выплыл баг платы. Если эл. движка вообще нет, а есть, скажем, бензиныч, то как подать питание на сервы - вопрос, или бросать соплю с +5в платы на трехрядные пины или возить для этого на борту отдельный ВЕС:(

29 days later
flygreen

Добрался наконец до своего ЛК. Хочу к нему мультивий на криус SE колхозить. Пока для стабилизации, в дольнейшем если попрет под ГПС и возврат.

А, как у вас успехи с мультивием на самолетах ? Есть какие новости в плане настроек ?

lotophagi

Multiwii с настройками по дефолту прекрасно летает на самолете.
Вышла новая прошивка с возвратом, но я ее не тестировал, не на чем. Самолет мой улетел. Отказал мотор после того, как отрубилось управление, и самолет унесло ветром хвостом вперед. Последние координаты по видеоканалу я видел на расстоянии 7-8км и 500м высоты от места взлета. Это максимум, что пробил 200мВт передатчик на 5.8Г. Найти самолет не удалось.

21 days later
Flutter

В декабре подключил Remzibi и на этом успокоился. А на днях попытался настроить Вия, и оказалось, что работают не все сервы. Подробнее тут. Буду рад любой помощи.

8 days later
fat_hamster

это мне удачно ссылку дали 😃

вчера наконец кроме размышлений заставил себя что-то сделать - а именно подключил контроллер от коптера к самолету. Контроллер Crius SE v2, самолет - пушер с V- хвостом

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

я туплю, но не могу найти в коде (2.3 мультивии), где инвертировать сервы?! для элеронов инвертировал в гуе одну машинку, но то не дело, если перешью со сбросом eeprom и забуду про донастроить
для хвоста вообще пока хардкодом микс сделал

с одной стороны, делаю себе, хардкоды - не страшно; кроме того, там же есть деф MY_PRIVATE_MIXING, можно свой код в отдельный файлик, тогда и проблем с обновлением исходников никаких
а с другой - “абидно, слушай”… все цитируют строчку для раскомментирования реверса серв, но ее в коде нет (правда мне лень было исходники 2.2 посмотреть, может поменялось что-то в коде)

кажется мне я вчера зря поленился и не посмотрел, что вот это в 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

(у меня есть оправдание конечно - спать хотелось)
FORCE_SERVO_RATES наверно надо раскоментить и править; из комента правда непонятно, какие 0, какие 1, если там число до 100, наверное просто “-” добавлять для реверса

fat_hamster

у меня затык с окончательной деталью перед запуском - с этим *** армингом двигателя

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

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

lotophagi

Вий, с включенным армингом, при подаче питания, залипает. Он стартовать должен с выключенным армом.

fat_hamster
lotophagi:

Вий, с включенным армингом, при подаче питания, залипает. Он стартовать должен с выключенным армом.

инфа 100%? 😉
ибо печаль тогда 😦 у меня закончились порты ввода на контроллере - похоже я сжег D8 случайно, так что на aux повесить не получиться…

schs
fat_hamster:

у меня закончились порты ввода на контроллере

Завести по PPM?

fat_hamster

Вот тут я немного туплю 😃
Надо читать про этот Ваш РРМ; это вообще применимо к любой аппе? К 9rx в частности?

gena_g
fat_hamster:

у меня затык с окончательной деталью перед запуском - с этим *** армингом двигателя

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

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

Я добавил в multiwii.cpp

#if defined(FIXEDWING)
if ((rcData[THROTTLE] < MINCHECK) && (calibratingG == 0) && f.ACC_CALIBRATED) go_arm();
#endif

schs
fat_hamster:

Надо читать про этот Ваш РРМ; это вообще применимо к любой аппе? К 9rx в частности?

Он не мой 😃 Смысл - передача нескольких каналов(чаще 8) через один провод. Аппа не важна, важно чтобы приёмник умел его отдавать.

fat_hamster
gena_g:

if ((rcData[THROTTLE] < MINCHECK) && (calibratingG == 0) && f.ACC_CALIBRATED) go_arm();

2-е и 3-е условия и так проверяются в go_arm; а в каком месте вставлять? что-то у меня пока не получается 😦

gena_g
fat_hamster:

2-е и 3-е условия и так проверяются в go_arm; а в каком месте вставлять? что-то у меня пока не получается 😦

Я ставил перед
//**** PITCH & ROLL & YAW PID ****

fat_hamster
gena_g:

Я ставил перед

все, получилось вроде, тупил (ненавижу этот чисто сишный код с миллиардом дефайнов)

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 - хвоста и чуть изменил арминг… Могу и выложить, секретного ничего там