MultiWii
как поменять 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 гр.
Подключаю к плате на меге 2560 к контакту Rx.
судя по документации подключать нужно к контакту Тх
судя по документации подключать нужно к контакту Тх
И это тоже пробывал 😃
ADXL345 по идее все ок. Там +/-8g и резолюшн хороший на этот диаппазон
хотелось бы немножко об акселерометрах поговорить. Как я понял из темы multiwii форума, проблемы с уплыванием связаны с тем, что происходит насыщение выхода акселя под воздействием ВЧ вибраций. Чтобы от этого избавиться, надо увеличивать диапазон полной шкалы (или виброизолировать датчики), т.е, к примеру, если раньше +/- FS достигалась при значениях +/- 1g (FS - полная шкала), то теперь при +|- 8(16) g, но при этом появляется проблема - падает разрешающая способность и как следствие возрастает ошибка определения угла, так?
Данные какой битности использует multiwii для своих расчетов? Где-то мелькала цифра 10 бит. Глянул даташит к adxl345 и bma180. У них 10 и 14 бит, соответственно. Собсно такой вопрос как владельца bma180 - у нас имеется дополнительные 4 бита, т.е. не ухудшая разрешающей способности по отношению к bma020 (10бит) мы можем поднять диапазон измерения Ж до 16 раз. Верно? Если да, то, к примеру, почему бы не сделать +/- FS = +/- 8g? Насколько понял, значение Acc_Z при таких настройках почти у всех уже перестает проседать. Получилось бы более или менее универсальное решение. Поправьте, если вдруг где не прав.
Но это были рассуждения. А теперь главное - как это сделать? - Править регистры, но надо знать что и как править. Никто не сталкивался с уже готовыми кусками кода? Если нет, то придется изучать даташит. О результатах напишу )
хотелось бы немножко об акселерометрах поговорить. Как я понял из темы multiwii форума, проблемы с уплыванием связаны с тем, что происходит насыщение выхода акселя под воздействием ВЧ вибраций. Чтобы от этого избавиться, надо увеличивать диапазон полной шкалы (или виброизолировать датчики), т.е, к примеру, если раньше +/- FS достигалась при значениях +/- 1g (FS - полная шкала), то теперь при +|- 8(16) g, но при этом появляется проблема - падает разрешающая способность и как следствие возрастает ошибка определения угла, так?
дa
Данные какой битности использует multiwii для своих расчетов? Где-то мелькала цифра 10 бит.
Можно хоть 1 бит в теории! 😃 Т.е. мультивии исползует acc_1g переменную для того чеб знать сколько единиц на 1г…
а если по делу: эмпирически для того чеб держать уверенно угол, в идеале достаточно разрешения в 5 единиц на один градус. (90*5=450) + если вы посмотрите на ACC трим, то там как раз калибровка в 0.2 градуса на один шаг-трим.
Более 512 для acc_1g брать не стоит т.к. может быть переполнение… но если хотите больше надо чекать код и менять 16-битные переменные на 32-битные, но это опять же может ударить по перфомансу… т.е. золотая середина уже там 😉
Глянул даташит к adxl345 и bma180. У них 10 и 14 бит, соответственно. Собсно такой вопрос как владельца bma180 - у нас имеется дополнительные 4 бита, т.е. не ухудшая разрешающей способности по отношению к bma020 (10бит) мы можем поднять диапазон измерения Ж до 16 раз. Верно? Если да, то, к примеру, почему бы не сделать +/- FS = +/- 8g? Насколько понял, значение Acc_Z при таких настройках почти у всех уже перестает проседать. Получилось бы более или менее универсальное решение. Поправьте, если вдруг где не прав.
все верно, сам пока не понял почему для bma180 до сих пор не подняли разрешение… вроде как на буржуйском сайте кто-то шаманил, поищите…
www.multiwii.com/forum/viewtopic.php?f=8&t=849&sta…
либо не теряйте времени и сделайте по даташиту и закиньте на два форума… если у вас конечно же проблемы с вибрациями… если нет, летайте лучше! 😃 Я так и не научился толком летать 😃
а вот с bma020 уже сложнее, разрешение падает до 64 при диаппазоне +/-8г… по совету ziss_dm применил оверсамплинг с флоат фильтром (поднимает разрешение), далее увеличил вес гиры в ИМУ, т.е. на коротких промежтках времени ИМУ считает угол в основном по гире + оверсамплинг с флоат фильтром (2-3гц) акселя на тех же коротких промежутках дает более точные значения углов… получилось отлично! надо видива выложить, а то все на словах… 😃
Но это были рассуждения. А теперь главное - как это сделать? - Править регистры, но надо знать что и как править. Никто не сталкивался с уже готовыми кусками кода? Если нет, то придется изучать даташит. О результатах напишу )
для bma020
#if defined(BMA020)
void ACC_init(){
i2c_writeReg(0x70,0x15,0x80);
uint8_t control = i2c_readReg(0x70, 0x14);
control = control & 0xE0;
//control = control | (0x00 << 3); //Range 2G 00
//control = control | (0x01 << 3); //Range 4G 01
control = control | (0x02 << 3); //Range 8G 02
control = control | 0x00; //Bandwidth 25 Hz 000
i2c_writeReg(0x70,0x14,control);
acc_1G = 63;
}
#define DELIMITER 64
void ACC_getADC(){
TWBR = ((16000000L / 400000L) - 16) / 2;
i2c_getSixRawADC(0x70,0x02);
ACC_ORIENTATION( ((rawADC[1]<<8) | rawADC[0])/DELIMITER ,
((rawADC[3]<<8) | rawADC[2])/DELIMITER ,
((rawADC[5]<<8) | rawADC[4])/DELIMITER );
ACC_Common();
}
#endif
если хотите оверсамплинг применить то нужно Bandwidth на 190hz выставить
записал вии на ардуину328, на ней дисарм заработал, но один мотор всё таки быстрее остальных, ещё из проблем, коптер не летает! На полном газе он пытается подняться, прыгает, но тут же глохнет, на секунд 5 всё таки взлетал и рулился как положено, но потом опять заглох! Что это может быть??
Движки эти:
Turnigy D2836/11 750KV Бесколлекторный электро двигатель
Характеристика :
Батарея: 2-3 банки / 7,4 ~ 11,1 вольт
Обороты : 750kv
Максимальный ток: 14А
Ток холостого хода: 0.8A
Максимальная мощность: 210 Вт
Внутреннее сопротивление: 0,160 Ом
Вес: 71 г (включая разъемы)
Диаметр вала: 4мм
Размеры: 28x36 мм
Рекомендуемый пропеллеры : 7.4в - 12x6 , 11.1в - 9x6
Макс тяга: 800 гр.
Регули плюш 18А
на дт-750 всё летало прекрасно, просто один развалился и я решил купить другие моторы взамен. Как мне кажется, что пропадает питание на моторах почему то, почему? Контроллер не выключается, питается от регулей.
позже скину видео этих чудес
На полном газе он пытается подняться, прыгает, но тут же глохнет, на секунд 5 всё таки взлетал и рулился как положено, но потом опять заглох! Что это может быть??
Было абсолютно такое поведение на Х-коптере, грешил на аккумулятор. Но когда зарядил, поведение в точности повторилось. Оказалось обрыв одного из проводов в обмотке одного из движков из-за вибрации. Как результат очень малая тяга одной из СУ.
При взлете полетный стабилизатор понимает, что горизонт уходит и глушит работу остальных движков, дабы выровняться. Проверьте тягу всех СУ по отдельности и скорее всего причина быстро найдется.
Народ кто разобрался с этим блютузом goodluckbuy.com/serial-bluetooth-rf-transceiver-mo… . Опишите как его законектить без особых головников.
Тошиба блюточ прога у меня работать не захотела на компе,правил инишки по инструкции forum.allnokia.ru/viewtopic.php?p=2486847 блютуз вроде как заработал но конекта нет. Юзаю Блюсоил .Конектица комп к модулю но после нажатия старт в мультивии ,данные не идут.Посылается несколько пакетов с компа на модуль (видно в свойствах соединения) и все висит. Со скоростью игрался без результатов.
rx/tx правильно подключены?
Arduino — BT
GND — GND
5V ---- VСС
RX ---- TX
Tx ---- RX
Нужно обязательно поменять скорость модуля на 115200, править инишки не надо, и прога Тошиба блюточ не нужна , достаточно зактнуть rxtxSerial.dll с заменой в папку MultiWii\MultiWiiConf\application.windows
rcopen.com/forum/f123/topic221574/3543
Нужно обязательно поменять скорость модуля на 115200, править инишки не надо, и прога Тошиба блюточ не нужна , достаточно зактнуть rxtxSerial.dll с заменой в папку MultiWii\MultiWiiConf\application.windows
rcopen.com/forum/f123/topic221574/3543
Эти посты я тоже читал.Менял dll-ку но результата нетюСкорость менял через диспетчер устройст на нужном ком порте…буду мучить дальше 😃
Скорость нужно менять не через диспетчер устройств на нужном ком порте, а с помощью софта непосредственно на модуле ВТ который будет стоять на плате MultiWii, я менял прогой sscom32E как описано здесь rcopen.com/forum/f123/topic221574/2482
Блин а я так понял что ком порт.Будем пробывать…
УРААААА!!! Заработало!!! На USB адаптере в связке с програмой BlueSoleit так и не захотело работать.А вот на ноуте HP встроеный модуль Bradcom с родным софтом все ок ,естественно после смены скорости в настройках модуля Блюточ на 115200.
Осталось одно каким-то образом подрубить дисплей www.ebay.com/itm/…/230706362193 с рабочей скоростью 19200 бод на Tx3 на случай если в поле без компа поеду. Нужно както дописать скет. Думаю можно дисплей подключать и в паралель с модулем блюточ на Tx0 тогда нужно в скетче поставить скорость 19200 для дисплея.Но так как я в програмировании полный дуб ,хелп ми плиз…
PS Немогу найти даташит на этот дисплей AF10216A может както можно сменить на нем скорость…
Осталось одно каким-то образом подрубить дисплей www.ebay.com/itm/1602-LCD-Dis...item35b72bb751 с рабочей скоростью 19200 бод на Tx3 на случай если в поле без компа поеду. Нужно както дописать скет. Думаю можно дисплей подключать и в паралель с модулем блюточ на Tx0 тогда нужно в скетче поставить скорость 19200 для дисплея.Но так как я в програмировании полный дуб ,хелп ми плиз…
- я когда подрубал айфон использовал LCD_TEXTSTAR + поубирал в коде специфические для LCD_TEXTSTAR переносы…
t.e. попробуйте раскомментитъ #define LCD_TEXTSTAR и выставить #define SERIAL_COM_SPEED 19200
как управлять переносами и курсором есть по вашей ссылке на ебай… т.е. по идее можно допилитъ
- посмотрел код еще раз… по идее можно так попробовать
заменить
// 1000000 / 9600 = 104 microseconds at 9600 baud.
// we set it below to take some margin with the running interrupts
#define BITDELAY 102
на это
// 1000000 / 19200 = 52 microseconds at 19200 baud.
// we set it below to take some margin with the running interrupts
#define BITDELAY 50
на это
Код:
// 1000000 / 19200 = 52 microseconds at 19200 baud.
// we set it below to take some margin with the running interrupts
#define BITDELAY 50
Заменил это .На дисплее появились символы но както все беспорядочно,только некоторые целые слова прописанные в коде высвечиваются,а вот цифры по мере изменения настройки с пульта бегают по всему экрану.
nu znachit skorost’ porta verno ustanovili… sistemnie simvoli nado pravit’ znacca…
poprobuyte 1-i variant s LCD_TEXTSTAR… s iPhone prokatilo 😉
Владельцам платки Allinone -думаю будет интересно. Сегодня переставлял мозги на новый коптер и обновлял прошивку на 1.9, так вот пока игрался со снятой платкой - весь мозг сломал. Гира то рабоает, то нет (какой то мусор прет с нее)! Вернул на 1.8 - та же фигня, т.е. не в прошивке дело. Притом на старом коптере отлично летало. В итоге нашел откуда корни растут - гира меняет адрес от наводок. Пока стояла удачно, их не было. ОБЯЗАТЕЛЬНО надо запаивать две перемычки:
ОБЯЗАТЕЛЬНО надо запаивать две перемычки:
Дык об этом уже давно говорилось 😃 но повторение мать…
гира меняет адрес от наводок. Пока стояла удачно, их не было. ОБЯЗАТЕЛЬНО надо запаивать две перемычки:
Помнится я долго выносил мозк себе и на форуме по этому вопросу 😃
Всех с наступающим!
nu znachit skorost’ porta verno ustanovili… sistemnie simvoli nado pravit’ znacca…
poprobuyte 1-i variant s LCD_TEXTSTAR… s iPhone prokatilo
Чесно говоря немного непонятно что нужно сделать
#define LCD_TEXTSTAR она изначально раскоментирована в скетче.
Ту очередная головная боль у меня 😃 Нужно на RX3 TX3 илиже на TX1 RX1 повесить блюточ дабы не занимать Rx0 TX0 для подключения дисплея и usb шнурка.В паралель с блютузом работать не хочет мешает он шнурку…
Как это сделать??,
Как это сделать??,
Надо смотреть… а пока ВСЕХ С НОВЫМ ГОДОМ!!! СВЕРШЕНИЙ И УСПЕХОВ ВО ВСЕМ!!! А ТАКЖЕ ЧЕБ ЛЕТАЛО И НЕ ПАДАЛО!!! 😃
Есть вопрос к пользователям МультиВи на Ардуине Мега. Для чего нужны -LEDPIN_SWITCH и STABLEPIN?
LEDPIN_SWITCH
включает, выключает светодиод (d13 помоему), по второму не встречал такого)