MultiWii
Проверьте макс.газ на моторы какие значения посылаются, чудес не бывает, если даже не переворачивается, возможно мощности не хватает. Перекалибруйте регуляторы, чтобы максимум газа соответствовал максимуму в 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. в ГУИ не советую, лично у меня джигурда после ГУИ одна.
этот шум вибрация моторов…
Я тут где-то прочитал что мультвии не любит чтобы его тримировали, это правда? Или всё-таки дисбаланс можно скомпенсировать пультом ?
дисбаланс можно скомпенсировать пультом
Э, дисбаланс чего? Если акселерометр нормально откалиброван, то он в горизонте всегда и будет… Хоть внешний груз вешай, я уже не раз подобное видео показывал
с чего же тогда квадр в бок перетягивает
Оттриммируйте акселерометр, все в порядке будет.
Может кому пригодиться
- MultiWii 2.2 Stick Configuration (v0-577215664) mode 2: скачать.
Инверсию знака делать надо по всем датчикам, по скольку компенсация происходит по данным со всёх трёх датчиков.
Не пишите бред, даже не понимая как это работает лезете туда куда лезть не надо, а потом еще и советы раздаете… 😉
На пред. странице давал ссылки, как настроить оси если нет в списке контроллера нужного и необходимо адаптировать знаки под свой контроллер…
p.s. Под AIOP контроллер оси все на месте… тут на форуме десятки человек летают и только вам надо оси подправить…
как раз вот эти движениями стиками у меня и не работают, пришлось арминг выводить на доп триггер пульта
почитайте вы факи в конце концов! вам уже и ссылки давали… нет, надо свой путь джедая пройти 😃
расходы аппы настройте на 1000…2000 и будет счастье… если возможности установить такие расходы нет, то можно подправить/сжать:
#define MINCHECK 1100
#define MAXCHECK 1900
Не пишите бред, даже не понимая как это работает лезете туда куда лезть не надо, а потом еще и
залез в код, внатуре куйню написал, оси разворота xxx_direction правятся если на этот раз все правильно понял. Моча в голову ударила что квадр вращаться начал , когда все три подправил, когда по одной такого жффекта не было, за возврат гироскопы отвечают, так что буду в следующий раз проверять больше прежде чем по клаве стучать.
P.s. Факи я читал, у прайма на сайте вон до серединки только, я расходы по его сайту делал и про арм тоже там де где то вычитал, остального я не знаю вот и тереблю форумцев по пере сил
100 раз писали уже - если команды стиками не работают, увеличьте расходы аппаратуры, у Вас диапазон сигнала с аппы не дотягивает до “краев” вот арм и не срабатывает.
Прочитайте хоть последние страниц 20 темы что ли, чтобы велосипеды не изобретать.
Если конечно плата исправна, Multiwii сам по себе прост как валенок в настройке, там накосячить-то практически негде.
В коде все просто, типа такого:
#define MINCHECK 1100
#define MAXCHECK 1900
...
if ( (rcData[YAW] > MAXCHECK ) && rcData[PITCH] < MAXCHECK && !f.ARMED)
{
f.ARMED = 1; headFreeModeHold = heading;
}
Т.е. пока диапазон с аппы не будет больше 1900, арма не будет.
В предачу к новости omegapraim еще одна новость. Автор мобильного приложения Multiwii EZ-GUI, добился подключения 3DR -трансивера на прямую в mini-usb розьем телефона. Тоесть 3DR радио втикается на прямую в юсб телефона.Здесь сообжения от автора про достижения Раньше все работало так как описал omegapraim через блютус.
скрутил сегодня кабелек для usb host-а к китайскому девайсу Hyundai A7HD… Работает! правда не стабильно периодически вылетая… думаю допилят… суппер!
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;}
прошу прощения за вновь поднятую тему. НО! возможно когонть убережёт. по выше описанному методу, если выбрана готовая конфигурация платы. возникает коллизия и полёт по акселерометру приводит к крашу. если выбирать готовую конфигурацию платы, например “FREEIMUv043” нужно править оси в файле def.h искать вот такие строчки
#if defined(FREEIMUv043) || defined(MICROWII)
#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
#endif
спасибо за внимание.
P.S. Коллизия приводит к тому что горизонт плывёт, в GUI это хорошо прослеживается к стати.
Вопрос к так сказать МультиВи гуру)) Как настраивается датчик тока? Т.е к какому пину и как подключать понятно.Интересует что надо подправить в прошивке для корректного отображения значений?
Чесно говоря не понимаю что и как надо рассчитывать по приведенной в описании формуле.
Не работают движки!
Если ESC подрубить напрямую в приемник - все четыре работают…
Имею вот такое чудо: www.hobbyking.com/hobbyking/…/uh_viewItem.asp?idPr…
Загрузил в него MultiWii_2_2 (выставив #define QUADX, и раскомментировав строки #define FREEIMUv043 и #define A32U4ALLPINS, плату указывал Leonardo, в общем делал так, как сказано в этой инструкции dl.dropbox.com/u/4742212/32U4.pdf)
Двигателя, опять же, по инструкции, выставил по схеме:
6 левый передний
10 правый передний
5 левый задний
9 правый задний
Вот с приемником я сделал немного не по инструкции, т.к газ почему-то в отладочной программе отображался как AUX
В результате имеем это (ручка газа внизу):
Или это (газ на полную):
Акселерометр калибровал, магнитометр калибровал.
При включении всего этого чуда движки пищат до-ре-ми, потом через некоторое время издают долгий писк.
Но, заставить мультивии крутить двигателя так и не вышло.
В чём может быть проблема?
Если нужны фотки или видео - скажите что сфоткать, или что именно на видео снять
Не работают движки!
Да вы издеваетесь 😃 Прочтите хотя бы пару последних страниц этой темы, или всего на пару сообщений выше гляньте - у вас пульт не настроен, нужно триммировать и расширять лимиты.
Да вы издеваетесь Прочтите хотя бы пару последних страниц этой темы, или всего на пару сообщений выше гляньте - у вас пульт не настроен, нужно триммировать и расширять лимиты.
Дело в том что я значения
#define MINCHECK 1170
#define MAXCHECK 1850
вот такие поставил, что бы мой пульт “доставал”, т.к нет провода что бы пульт настроить
#define MINCHECK 1150
У вас газ в минимуме больше этого значения
опустил так, что бы в диапазон вписывалось
1145 много нужно хотя бы 1050
1145 много нужно хотя бы 1050
Тогда пульт “доставать” не будет 😃
Но ради теста поставил 1050, а газ повесил на верхний левый VR(😎, у него диапазон 1005 - 2025, но все-равно движки заставить крутится никак не могу 😦