MultiWii на самолете

lotophagi

Возврат домой делается OpenLRSng – просто установить все настройки и нажать бинд на передатчике

Я не в курсе по поводу OpenLRSng, но неужели приемник может возвращать модель домой?
И зачем городить огород? Прошивка под MultiWii с RTH уже есть, испробована и со своей функцией полностью справляется.

Может, кому сгодится или кто добавит чего. Кому не нравится - читать не нужно.

Вот что могу добавить в целом для крыльев и самолетов:

  1. Есть известная проблема с gps по i2c со сбросом расстояния домой после 655 метров (www.rcgroups.com/forums/showpost.php?p=25545123&po…). Показания обнуляются, и приходиться считать количество сбросов и постоянно держать в голове во время полета.
    Тут описывается решение проблемы
    www.multiwii.com/forum/viewtopic.php?f=8&t=2817&p=…
    Или от сюда заливаем в конвертер модернизированную прошивку github.com/disq/i2c-gps-nav
    Надо раскомментировать строку в прошивке i2c-gps-nav:
    config.h
#define DISTANCE_TO_HOME_IN_METERS // WARNING! IF YOU DEFINE THIS YOU MUST MODIFY MULTIWII SOURCE!!!

…и закомментировать в прошивке Multiwii:
GPS.ino

//GPS_distanceToHome = GPS_distanceToHome / 100;      //register is in CM, we need in meter. max= 655 meters with this way
  1. Хорошо убирает вибрации на гирах эта функция:
    config.h
      /* GYRO_SMOOTHING. In case you cannot reduce vibrations _and_ _after_ you have tried the low pass filter options, you
         may try this gyro smoothing via averaging. Not suitable for multicopters!
         Good results for helicopter, airplanes and flying wings (foamies) with lots of vibrations.*/
      #define GYRO_SMOOTHING {20, 20, 3}    // (*) separate averaging ranges for roll, pitch, yaw

Есть еще особенности по настройкам модернизированной самолетной прошивки с RTH, но про них расскажу отдельно, если кому интересно.

varvar
lotophagi:

Я не в курсе по поводу OpenLRSng, но неужели приемник может возвращать модель домой? И зачем городить огород? Прошивка под MultiWii с RTH уже есть, испробована и со своей функцией полностью справляется.

Она и используется, приемник только говорит, что пора домой, когда сигнал потерян 😃

lotophagi:

Есть еще особенности по настройкам модернизированной самолетной прошивки с RTH, но про них расскажу отдельно, если кому интересно.

Да что уж, рассказывайте 😃

lotophagi

Правим в config.h:

  • важно раскомментировать
#define DONT_RESET_HOME_AT_ARM 
  • переключение режимов я повесил на D8, т.к. на D12 висит серва (или правим код)
#define RCAUXPIN8
  • желательно сервы оттриммировать здесь а не в передатчике
#define SERVO_OFFSET     {  0,   0,   0,  0,   0,   0,  0,   0 }

В гуи теперь надо настроить полетные режимы. Я поставил на трех-позиционный тумблер HORIZON+BARO, ANGLE и PASSTHRU. На второй двух-позиционный повесил GPS_HOME и ARM (среднее положение и крайнее, см. картинку)

На Failsafe приемника надо настроить уровень газа и включение режимов HORIZON и GPS HOME

FW_Nav_130322 прошивка для MultiWii www.ex.ua/load/83808740 (Выставляем свою плату, датчики и магнитное склонение)
i2c-gps-nav www.ex.ua/load/83809003
MinimOSD www.ex.ua/load/83814772

Видео полета

youtu.be/z6f4gh8O_gc

На 3:57, 4:40, 5:30, 7:48 видно как проскакивают FS и связь отрубается, самолет разворачивается домой

19 days later
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. самолет лежал на идеально горизонтальном столе (проверял пузырьком); откалибровал аккселерометр - после этого ведь самолет должен пытаться удерживать вот такое положение в полете? а он у меня в воздухе при включении стабилизации летит идеально ровно (видно визуально), НО слегка наклонив нос вниз 😦

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