MultiWii

SovGVD

ура, multiwii внезапно полетел у меня о_0 но вот только в акро, в стабе даже взлететь не могу - запускаю моторы, чуть газу и он брыкается пока тупо не переворачивается… а в акро взлетает как по рельсам, настройки никакие не трогал (только гиру загрубил #define ITG3200_LPF_20HZ)
пока управляемость оценить сложно - полетная зона 1.5 на 2 метра, при размахе коптера почти 80см (с винтами) =) но взлетает шикарно
датчики: пиленый wmp, т.е. itg3205 + adxl345, 2 мотора вообще не вибрируют, 1 мотор немного и 1 жутковато - видно как луч гуляет, взлетный вес 860г

Covax

Level I убавь до 0.030 в стаб моде и P убавь до 3.0

SovGVD

вроде лучше стало, даже взлететь удалось, но всеравно брыкается при взлете
видео взлета в acro и stab режимах

буду искать больше места - в комнате чуть взлет и уже куда-то врезаюсь =)

sulaex
SovGVD:

в комнате чуть взлет и уже куда-то врезаюсь =)

Глеб, виброгашение продумайте по лучше, будет летать отменно.
А в руке его клонит в одну сторону или в разные примерно на 50% газа? соответственно вопрос по стаб моде…

зы если в одну сторону, то модуляция (потребуется больше гасить вибрацию), если в разные, то ПИДы настраивать

Covax

И попробуй придушить аппу, rc rate поставь наполовину (0.5 кажется), может в этом дело)

nsk-racer

Получил моторы, всё собрал) Вылезло 2 проблемы) Один мотор больше всех крутится, один хуже всех) По программе тоже самое, даже если регули не подключены. 2 проблема, сначала глушился, потом перестал) Заводится и молотит, не выключается на дисарм) в чём проблемы? Раньше всё было хорошо) Только пирата записывал на эту ардуину, но щас уже пробовал шить раза 3) Пофигу)

mahowik
SovGVD:

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

главная проблема стаб. мода это вибрации. Решить можно 2-мя способами: механикой и математикой… я упрямый и люблю второе потому победил вибрации без механики, а коптер мой очень таки вибро… 😃

Уже известная проблема цифровых акселей это перенасыщение (вибрациями в нашем случае). В двух словах если амплитуда вибраций больше выбранного диаппазона акселя, то спектр вибраций урезается и потом уж фильтры не помогут…
www.multiwii.com/forum/viewtopic.php?f=8&t=849&sta…
Потому нужно величивать диаппазон. С ADXL345 по идее все ок. Там +/-8g и резолюшн хороший на этот диаппазон.
Потому проверь следующее:

  1. раскомменти
#define TRUSTED_ACCZ
  1. прижми коптер к полу и плавно увеличивая газ проверь не просядает ли Z ось. Если на месте во всем диаппазоне, то суппер гут. В принципе она не должна просядать в рабочем диаппазоне газа (в моем конфиге это 45-70%… и проваливаться начинает при при 80% с bma020 +/-8g). Если просядает в рабочем диаппазоне то смотри даташит можно ли еще увеличить диаппазон акселя, к примеру на +/-16g (ток незабудь изменить делители в ACC_getADC() и acc_1G). Если уж вибрации диаппазонами акселя не победить, то закоменти #define TRUSTED_ACCZ…

  2. увеличь GYR_CMPF_FACTOR до 340.0f - 350.0f
    IMU тогда больше смотрит на гиру чем на аксель

  3. из всех перепробавваных LPF фильтров лучшие результаты дал флоатовый:
    найди

      accTemp[axis] = (accTemp[axis] - (accTemp[axis] >>4)) + accADC[axis];
      accSmooth[axis] = accTemp[axis]>>4;

и замени на

        static float accTempF[3];
....
        #define lfpFactor 0.987f
        //lfpFactor = 0.9f + constrain(rcData[AUX2]-1000, 0, 990)/10000.0f; // k=0..0.99
        accTempF[axis] = accTempF[axis]*lfpFactor + accADC[axis]*(1.0f - lfpFactor);
        accSmooth[axis] = accTempF[axis];
  • в комплиментарном фильтре используй это же флоатовое значение
    найди
EstG.A[axis] = (EstG.A[axis] * GYR_CMPF_FACTOR + acc) * INV_GYR_CMPF_FACTOR;

замени на

EstG.A[axis] = (EstG.A[axis] * GYR_CMPF_FACTOR + accTempF[axis]) * INV_GYR_CMPF_FACTOR;
  1. фильтр на гиру подыми хотябы до ITG3200_LPF_42HZ лучше до ITG3200_LPF_98HZ

  2. если аппа бюджетная с НК выставь #define DEADBAND 30

  • для этой аппы будет полезна примочка throttle expo… высоту легко держать и летать проще… поищи поиском тут

ах да и ПИД-ы:
roll/pitch: 6.0-0.035-40…45
yaw: 8.0-0.045
level: 7.0-0.015

rcrate: 0.52…0.56

SovGVD

как бы не потерять это всё - теперь в следующий раз попробую полетать уже после НГ

mahowik
SovGVD:

как бы не потерять это всё

давно собираюсь такие моменты-фиксы-воркэрраунды в дневник записывать… видимо пора 😃

SovGVD
mahowik:

видимо пора

rcwiki.ru для этого сделал кто-то из форумчан

SovGVD

за веткой не слежут, поэтому вопрос про OSD назреk - никто никакой OSD не цеплял? например от Syberian с мегапирата (который на hobbyking e-osd сделан)?

код от мегапирата довольно простой, только вот хз как быть с serial портом, на обычной ардуинки он один - варианты: переключение режимов порта через аппу или сотфверный serial

kedrikov

Народ помогите подружить дисплей www.ebay.com/itm/…/230706362193 с мультивии 1.9

Подключаю к плате на меге 2560 к контакту Rx.Включаю питание на дисплее тестовая картинка на 2 секунды появляется ,потом слэш слева вверху.Активирую режим дисплея,слэш пропадает и немного притухает яркость дисплея.На этом все 😦

leprud
kedrikov:

Народ помогите подружить дисплей

Купленный экран на 19200 бод, а в multiwii стандартом идет 9600…

kedrikov
leprud:

Купленный экран на 19200 бод, а в multiwii стандартом идет 9600…

Сменить скорость в коде мультивии? Что поправить в коде?

devv
kedrikov:

Что поправить в коде?

думаю тут - #define SERIAL_COM_SPEED 115200

Covax

Точно Не тут!!! Смотреть раздел про LCD!!!

kedrikov
Covax:

Точно Не тут!!! Смотреть раздел про LCD!!!

Смотрел ,но что-то напоминающее скорость только это
/ 1000000 / 9600 = 104 microseconds at 9600 baud.

devv

как поменять 2 оси у гиры ?
из датчиков только не пиленный MP (3205)

меняю в sensors в самом верху:
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
на
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = X; gyroADC[YAW] = Z;}
заливаю. запускаю конфиг, так же (смотрю на цифры в Gyro roll и Gyro pitch) .

Нашел в config внизу, раскомментировал строчку:
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = X; gyroADC[YAW] = Z;}
не помогает.

Когда пользовал “все в одном” то просто находил в def.h #if defined(ALLINONE) и понимал что всё там (адреса и ориентация)

А простой MP не могу развернуть на 90 гр.

sulaex
kedrikov:

Подключаю к плате на меге 2560 к контакту Rx.

судя по документации подключать нужно к контакту Тх

kedrikov
sulaex:

судя по документации подключать нужно к контакту Тх

И это тоже пробывал 😃

tda2030
mahowik:

ADXL345 по идее все ок. Там +/-8g и резолюшн хороший на этот диаппазон

хотелось бы немножко об акселерометрах поговорить. Как я понял из темы multiwii форума, проблемы с уплыванием связаны с тем, что происходит насыщение выхода акселя под воздействием ВЧ вибраций. Чтобы от этого избавиться, надо увеличивать диапазон полной шкалы (или виброизолировать датчики), т.е, к примеру, если раньше +/- FS достигалась при значениях +/- 1g (FS - полная шкала), то теперь при +|- 8(16) g, но при этом появляется проблема - падает разрешающая способность и как следствие возрастает ошибка определения угла, так?
Данные какой битности использует multiwii для своих расчетов? Где-то мелькала цифра 10 бит. Глянул даташит к adxl345 и bma180. У них 10 и 14 бит, соответственно. Собсно такой вопрос как владельца bma180 - у нас имеется дополнительные 4 бита, т.е. не ухудшая разрешающей способности по отношению к bma020 (10бит) мы можем поднять диапазон измерения Ж до 16 раз. Верно? Если да, то, к примеру, почему бы не сделать +/- FS = +/- 8g? Насколько понял, значение Acc_Z при таких настройках почти у всех уже перестает проседать. Получилось бы более или менее универсальное решение. Поправьте, если вдруг где не прав.
Но это были рассуждения. А теперь главное - как это сделать? - Править регистры, но надо знать что и как править. Никто не сталкивался с уже готовыми кусками кода? Если нет, то придется изучать даташит. О результатах напишу )