MultiWii

Probelzaelo
omegapraim:

Да дистилировка по любому, если она все так защищает то кз по любому бы в розетке случилось бы или просто не было бы контакта с дрелью и дрель бы не крутилась… в общем ерунда все это.

Обычная вода, просто ни кто не показал что будет бЕз этой обработки. Я так понимаю разницы ни какой. воза не настолько хороший проводник чтобы произошло КЗ. или перестали работать электроприборы типа дрели… Ни каких чудес, я вам скажу. Кстати, ни кто не задумывался откуда в воде появилось облако белесой мути? так это всем известные газы водород+кислород, выделяющиеся при расщеплении воды под действием электричества. Опыт нужно сказать ни разу не безопасен. потому и в диэлектрических перчатках проводится, кто не заметил. А коллектроные моторы в воде работают вполне не плохо, в том числе с большим превышением напряжения, благодатя хорошему теплоотводу. Главное их просушивать после использования, иначе ржавеют и досвиданья…

Для желающих, на Ютрубе очень много роликов с погружением коллекторников…

RA4ASN

Извиняюсь, что не совсем по теме вопрос, но был ли у кого-нибудь успешный опыт применения multiwii как fbl системы на вертолете? В разделе вертолетной электроники сходу найти не удалось.

omegapraim

и не найдете, код есть, но никто не тестил, я уже давно хочу но все никак руки не доходят.

puh21

повторю вопрос. как инвертировать YAW в прошивке… при внешнем воздействии контроллер выдаёт сигналл который по вектору совпадает с воздействием и докручивает коптер в ту же сторону. в прошивке нащёл инверт только по PITCH…

moscow
puh21:

повторю вопрос. как инвертировать YAW в прошивке… при внешнем воздействии контроллер выдаёт сигналл который по вектору совпадает с воздействием и докручивает коптер в ту же сторону. в прошивке нащёл инверт только по PITCH…

Кирилл, на Ваш вопрос ответить не могу, но хотел заметить, что если моторы подключены верно, направление их вращения совпадает с нарисованным на картинке в мультиковском GUI, то с высокой вероятностью Вам не понадобится инвертировать YAW.

omegapraim

puh21 вы бы хотя бы схему написали чтоль (три, квадро, гексо), даже если писали уточните, искать ваш вопрос никто не будет, если не ответили дублировать не надо. Вам не серву надо инвертировать, а ось датчика гироскопа по YAW это все делается в прошивке config.h. Все написано уже 1000 раз.

/* individual sensor orientation */
//#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = Y; accADC[PITCH] = -X; accADC[YAW] = Z;}
//#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW] = Z;}
//#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}

SovGVD
puh21:

как инвертировать YAW в прошивке…

вообще этого делать не надо, скорее всего винты не так установлены или еще какая пакость, но в config.h есть вот такая штука
//#define YAW_DIRECTION -1 // if you want to reverse the yaw correction direction
использовал её давно для гексы, в какой то из прошивок коптер крутило по кругу при взлете

krant

Как показали лётные испытания, летать мы пока не можем 😁

Сабж, на полном газу квадр качает из стороны в сторону, но взлетать он упорно не желает, при том винты вращаются с разными скоростями, таскать по полу в право в лево вперёд назад - могу без каких-либо проблем, но взлетать не желает. В руках вертел, сопротивление отклонениям есть, но лететь мы не хотим. Куда копать ?
PID стандратные , если дело в них, то какие реомендованные ?

// #define ESC_CALIB_CANNOT_FLY // uncomment to activate
С этой строчкой тоже игрался.

p.s. та же база на ХК контроллере летатала на ура…

DVE

Проверьте макс.газ на моторы какие значения посылаются, чудес не бывает, если даже не переворачивается, возможно мощности не хватает. Перекалибруйте регуляторы, чтобы максимум газа соответствовал максимуму в multiwii.

На стандартных пидах multiwii летит без проблем, дело точно не в них.

krant
DVE:

Проверьте макс.газ на моторы какие значения посылаются, чудес не бывает, если даже не переворачивается, возможно мощности не хватает. Перекалибруйте регуляторы, чтобы максимум газа соответствовал максимуму в multiwii.

На стандартных пидах multiwii летит без проблем, дело точно не в них.

откалибровал датчики в конфигураторе а не в ГУИ, стало вроде бы получше, сейчас инвертирую YAW, а то его закручивает и попробую снова
меня вот больше разный шим больше волнует который посылается на ESC
p.s. Мне инверсия не помогла, закручивать стало нааамного сильнее 😃 , мне надо просто пиды подкрутить, чем займусь сейчас, но после калибровки мы полетели, волчком правда 😃

Тем кому надо инверсию сделать по одной из осей.

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

Лезем в def.h

затем в дефайнах ищем вашу плату:

  #define GYRO_ORIENTATION(X, Y, Z){gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = -Z;}
  #undef INTERNAL_I2C_PULLUPS
#endif

#if defined(CRIUS_AIO_PRO_V1) 
  #define MPU6050
  #define HMC5883
  #define MS561101BA
  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  -Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = Z;}

  #define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050
  #undef INTERNAL_I2C_PULLUPS
  #define I2C_SPEED 400000L         //400kHz fast mode
  //servo pins on AIO board is at pins 44,45,46, then release pins 33,34,35 for other usage
  //eg. pin 33 on AIO can be used for LEDFLASHER output
  #define SERVO_1_PINMODE            pinMode(44,OUTPUT);        // TILT_PITCH
  #define SERVO_1_PIN_HIGH           PORTL |= 1<<5;
  #define SERVO_1_PIN_LOW            PORTL &= ~(1<<5);
  #define SERVO_2_PINMODE            pinMode(45,OUTPUT);        // TILT_ROLL
  #define SERVO_2_PIN_HIGH           PORTL |= 1<<4;
  #define SERVO_2_PIN_LOW            PORTL &= ~(1<<4);
  #define SERVO_3_PINMODE            pinMode(46,OUTPUT);        // CAM TRIG
  #define SERVO_3_PIN_HIGH           PORTL |= 1<<3;
  #define SERVO_3_PIN_LOW            PORTL &= ~(1<<3);
  #define SERVO_4_PINMODE            pinMode(11,OUTPUT);        // SERVO4 , use hardware PWM
  #define SERVO_5_PINMODE            pinMode(12,OUTPUT);        // SERVO5 , use hardware PWM
#endif

#if defined(LADYBIRD)
  #define MPU6050
  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}

в моём случае это #if defined(CRIUS_AIO_PRO_V1)
находим блок кода внутри это дефа:

  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  -Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = Z;}

и собственно по отклонениям делаем инврсию ставив перед X (или Y, Z) минус, или убирая его.
Для того чтобы сделать инверсию компенсационной силы по оси YAW (рысканье), сделать надо следующим образом:

  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = -Z;}

Инверсию знака делать надо по всем датчикам, по скольку компенсация происходит по данным со всёх трёх датчиков.

После компилировани и загрузки кода, необходимо откалибровать датчики в MultiWIIConf. в ГУИ не советую, лично у меня джигурда после ГУИ одна.

krant

Я тут где-то прочитал что мультвии не любит чтобы его тримировали, это правда? Или всё-таки дисбаланс можно скомпенсировать пультом ?

leprud
krant:

дисбаланс можно скомпенсировать пультом

Э, дисбаланс чего? Если акселерометр нормально откалиброван, то он в горизонте всегда и будет… Хоть внешний груз вешай, я уже не раз подобное видео показывал

krant

с чего же тогда квадр в бок перетягивает

leprud

Оттриммируйте акселерометр, все в порядке будет.

krant
leprud:

Оттриммируйте акселерометр, все в порядке будет.

как раз вот эти движениями стиками у меня и не работают, пришлось арминг выводить на доп триггер пульта 😦

mahowik
krant:

Инверсию знака делать надо по всем датчикам, по скольку компенсация происходит по данным со всёх трёх датчиков.

Не пишите бред, даже не понимая как это работает лезете туда куда лезть не надо, а потом еще и советы раздаете… 😉

На пред. странице давал ссылки, как настроить оси если нет в списке контроллера нужного и необходимо адаптировать знаки под свой контроллер…

p.s. Под AIOP контроллер оси все на месте… тут на форуме десятки человек летают и только вам надо оси подправить…

krant:

как раз вот эти движениями стиками у меня и не работают, пришлось арминг выводить на доп триггер пульта

почитайте вы факи в конце концов! вам уже и ссылки давали… нет, надо свой путь джедая пройти 😃

расходы аппы настройте на 1000…2000 и будет счастье… если возможности установить такие расходы нет, то можно подправить/сжать:

#define MINCHECK 1100
#define MAXCHECK 1900
krant
mahowik:

Не пишите бред, даже не понимая как это работает лезете туда куда лезть не надо, а потом еще и

залез в код, внатуре куйню написал, оси разворота xxx_direction правятся если на этот раз все правильно понял. Моча в голову ударила что квадр вращаться начал , когда все три подправил, когда по одной такого жффекта не было, за возврат гироскопы отвечают, так что буду в следующий раз проверять больше прежде чем по клаве стучать.

P.s. Факи я читал, у прайма на сайте вон до серединки только, я расходы по его сайту делал и про арм тоже там де где то вычитал, остального я не знаю вот и тереблю форумцев по пере сил

DVE

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

Прочитайте хоть последние страниц 20 темы что ли, чтобы велосипеды не изобретать.
Если конечно плата исправна, Multiwii сам по себе прост как валенок в настройке, там накосячить-то практически негде.

В коде все просто, типа такого:

#define MINCHECK 1100
#define MAXCHECK 1900
...

if ( (rcData[YAW] > MAXCHECK ) && rcData[PITCH] < MAXCHECK && !f.ARMED)
{
 f.ARMED = 1; 	  headFreeModeHold = heading;
}

Т.е. пока диапазон с аппы не будет больше 1900, арма не будет.

mahowik
Leon11t:

В предачу к новости omegapraim еще одна новость. Автор мобильного приложения Multiwii EZ-GUI, добился подключения 3DR -трансивера на прямую в mini-usb розьем телефона. Тоесть 3DR радио втикается на прямую в юсб телефона.Здесь сообжения от автора про достижения Раньше все работало так как описал omegapraim через блютус.

скрутил сегодня кабелек для usb host-а к китайскому девайсу Hyundai A7HD… Работает! правда не стабильно периодически вылетая… думаю допилят… суппер!

www.multiwii.com/forum/viewtopic.php?f=8&t=2034&p=…