MultiWii
как бы не потерять это всё
давно собираюсь такие моменты-фиксы-воркэрраунды в дневник записывать… видимо пора 😃
видимо пора
rcwiki.ru для этого сделал кто-то из форумчан
за веткой не слежут, поэтому вопрос про OSD назреk - никто никакой OSD не цеплял? например от Syberian с мегапирата (который на hobbyking e-osd сделан)?
код от мегапирата довольно простой, только вот хз как быть с serial портом, на обычной ардуинки он один - варианты: переключение режимов порта через аппу или сотфверный serial
Народ помогите подружить дисплей www.ebay.com/itm/…/230706362193 с мультивии 1.9
Подключаю к плате на меге 2560 к контакту Rx.Включаю питание на дисплее тестовая картинка на 2 секунды появляется ,потом слэш слева вверху.Активирую режим дисплея,слэш пропадает и немного притухает яркость дисплея.На этом все 😦
Народ помогите подружить дисплей
Купленный экран на 19200 бод, а в multiwii стандартом идет 9600…
Купленный экран на 19200 бод, а в multiwii стандартом идет 9600…
Сменить скорость в коде мультивии? Что поправить в коде?
Что поправить в коде?
думаю тут - #define SERIAL_COM_SPEED 115200
Точно Не тут!!! Смотреть раздел про LCD!!!
Точно Не тут!!! Смотреть раздел про LCD!!!
Смотрел ,но что-то напоминающее скорость только это
/ 1000000 / 9600 = 104 microseconds at 9600 baud.
как поменять 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-ку но результата нетюСкорость менял через диспетчер устройст на нужном ком порте…буду мучить дальше 😃