MultiWii
все это работает (спасибо за MultiWiiConf), вот только данные от датчиков, те, что на графике нулевые идут. А как мне определить, какой тип датчиков выбирать? У меня подключена платка из WMP четырьмя проводками. В текстах прошивки ардуины MultiWii_1_9_a1 много разных типов гироскопов, что выбрать? и остальные датчики, которых у меня нет - дефайны закоментировать?
itg3200\3205
itg3200\3205
Неправда ваша
Если подключен только WMP ничего выбирать не нужно он выбран по умолчанию
itg3200\3205
это если пиленый wmp с itg3205 - что в разы лучше чем просто wmp
я летал на непиленом wmp с выбраным itg3200.
это как раз таки и есть пиленый
дорожки были перерезаны до чипа wmp
проводки то идут не к wmp, а к itg3205
у меня есть платка ardupilot imu v2 flat
по набору гироскопов и акселю соответствует одной из версий freeimu, но в отличие от онной уже имеет ардуину на борту (возможно сенсоры на других входах расположены)
прочитал на сайте мультиви что поддерживается подключать фрииму по шине
тоесть если взять одну ардуинку и залить в нее мультиви и подключить к этой плате получится мультиви мультироторный контроллер?
может кто уже пробовал?
Глеб, а можешь убрать из прошивки мультивия микс моторов на Гексу, чтобы один мотор на ней действительно сделать поворачивающимся, дай мастеркласс в топике мультивия, а?
чисто теоретически в Output.pde
для варианта квартирка с 2мя поворачивающимися моторами
#elif defined(BI)
#define NUMBER_MOTOR 4 // добавим моторчиков
#ifdef BI // делаем из BI квадрик с вращающимися моторами
motor[0] = PIDMIX(-1,+1, 0); //REAR_R - убираем yaw отсюда
motor[1] = PIDMIX(-1,-1,+1); //FRONT_R
motor[2] = PIDMIX(+1,+1,0); //REAR_L - тоже yaw убираем
motor[3] = PIDMIX(+1,-1,-1); //FRONT_L
servo[0] = constrain(1500 + YAW_DIRECTION * (axisPID[YAW]), 1020, 2000); //LEFT
servo[1] = constrain(1500 + YAW_DIRECTION * ( - axisPID[YAW]), 1020, 2000); //RIGHT - вот хз тут минус или не тут, смотря как сервы стоят
#endif
аналогично для любой другой рамы
- копируем миксы для рамы и на моторах с вращением убираем yaw (нолик в PID (x,x,0)), возможно на всех это надо делать, как у трикоптера… да даже скорее всего надо убирать, так как вращаемся уже совсем по другому
- сервы берем от бикоптера
- в дефайнах количества моторов ставим сколько у нас моторов (4 на кдварик, 6 на гексу и т.д.)
- #if NUMBER_MOTOR > 3 - вот это тоже убрать надо попробовать =)
ЗЫ по мотивам вот этой рамы
спасибо за советы, удалось оживить, но похоже не судьба. Картинки вроде красивые в wiiConf получаются, а на реальном трикоптере совсем плохо. С одной стороны сильно хвостовой сервой колбасит, а двигателями (крен/тангаж) как-то невнятно. При этом реакция ручек (крен/тангаж) какой-то совсем медленный, чуть ли не с секундной задержкой, так и должно быть? (версия 1.9). И еще почему-то в любой момент wmp плата может перестать выдавать сигналы, т.е. гироскопы отключаются совсем - почему? плохая плата? В общем по сравнению с КК 5.5 как то совсем плохо.
это как раз таки и есть пиленый
проводки то идут не к wmp, а к itg3205
ну тогда правда ваша,) был не прав
в продолжении темы поворота сервами
www.youtube.com/watch?v=EM4bpi4SBkI
судя по описанию yaw составляющая из миксов всех моторов и уходит только на сервы, вроде летает =) сложно сказать лучше или хуже
основная идея - берем бикоптер и доделываем его до квадрика, получается H рама, на одном из лучей которой моторы могут вращаться
у меня есть платка ardupilot imu v2 flat
по набору гироскопов и акселю соответствует одной из версий freeimu, но в отличие от онной уже имеет ардуину на борту (возможно сенсоры на других входах расположены)
прочитал на сайте мультиви что поддерживается подключать фрииму по шине
тоесть если взять одну ардуинку и залить в нее мультиви и подключить к этой плате получится мультиви мультироторный контроллер?
может кто уже пробовал?
Пробовал , но только без второй платки и на следующей версии imu v3 rcopen.com/forum/f123/topic263186
Можно и МультиВии в платку залить, но посмотреть подключение датчиков и выходы на моторы откорректировать и радио переподключить-то есть новая программа, а вторую 328 вроде бы смыСла нет ставить.
благодарю за ответ и ссылку.
я подумывал о том чтобы сделать из первой ардуины эмулятор подключенных цифровых датчиков по цифровой шине а вторая ардуина чистый мультиви, но наверное ваш путь прямее.
до этого я встречал прошивку квадрика на этой иму но она была заточена под роторы вращающиеся в одном направлении а вращение парировано наклоном лучей, что ныне неактуально
…Картинки вроде красивые в wiiConf получаются, а на реальном трикоптере совсем плохо…
Посмотрел в MultiWiiConf, как ведут себя сигналы при включенных моторах, оказалось, что все там кувырком, видимо от вибраций.
Посмотрел в MultiWiiConf,
а время цикла стабильное? или туда/сюда прыгает? если прыгает или еще хуже - в минус уходит, то пилите wmp или долго и упорно придется играть с настройками частоты и interleaving - и то фигня будет, wmp периодически любит повисать намертво и только передергивание питания спасает (что в полете не очень приятно)
Во развел себе мини мультивий на датчике 2 В 1 который мне предоставил soliada, конечно есть еще косяки в разводке, но все работает, скоро облетаю аксель LIS3DH, гира L3G4200D
а время цикла стабильное? или туда/сюда прыгает?
Это Cycle Time? немного прыгает постоянно 3000-3020, а раз в 2 секунды примерно 3200 проскакивает. А если wmp порезать, то влияние вибраций уменьшится? или дело не в них, то что сигналы на моторах и серве при включенных двигателях начинают прыгать?
А если wmp порезать, то влияние вибраций уменьшится?
то можно будет добавить дополнительный режим фильтрации вибраций на самой гире и избавиться от повисаний и глюков
в любом случае, если wmp с itg3205 - лучше выпилить (там на самом деле надо всего пару дорожек перепелить, в соотвествующей теме всё есть) - новые wmp так себе работают
благодарю за ответ и ссылку.
я подумывал о том чтобы сделать из первой ардуины эмулятор подключенных цифровых датчиков по цифровой шине а вторая ардуина чистый мультиви, но наверное ваш путь прямее.
до этого я встречал прошивку квадрика на этой иму но она была заточена под роторы вращающиеся в одном направлении а вращение парировано наклоном лучей, что ныне неактуально
Я тоже недавно видел коптер именно на вашей плате, но не помню где. Может быть то же что и Вы. А если винты одного направления и выкошены, то это тоже самое, что разные. Единственное может реверс Yaw понадобится, или винты местами поменять.
а какие у multiwii дефолтные пиды в стандартной прошивке?
хочется поэксперементировать сегодня =)
Что лень животворящая делает-то 😃
void checkFirstTime() {
uint8_t test_val; eeprom_read_block((void*)&test_val, (void*)(0), sizeof(test_val));
if (test_val == checkNewConf) return;
P8[ROLL] = 40; I8[ROLL] = 30; D8[ROLL] = 23;
P8[PITCH] = 40; I8[PITCH] = 30; D8[PITCH] = 23;
P8[YAW] = 85; I8[YAW] = 0; D8[YAW] = 0;
P8[PIDALT] = 47; I8[PIDALT] = 0; D8[PIDALT] = 30;
P8[PIDGPS] = 10; I8[PIDGPS] = 0; D8[PIDGPS] = 0;
P8[PIDVEL] = 0; I8[PIDVEL] = 0; D8[PIDVEL] = 0;
P8[PIDLEVEL] = 90; I8[PIDLEVEL] = 45; D8[PIDLEVEL] = 100;
P8[PIDMAG] = 40;
rcRate8 = 45; // = 0.9 in GUI
rcExpo8 = 65;
rollPitchRate = 0;
yawRate = 0;
dynThrPID = 0;
for(uint8_t i=0;i<CHECKBOXITEMS;i++) {activate1[i] = 0;activate2[i] = 0;}
accTrim[0] = 0; accTrim[1] = 0;
powerTrigger1 = 0;
пока ждал ответа, забил и подлетнул в большой комнате (до этого только в мелкой тестил - где чуть влево-вправо и коптер теряет винт)
летает шикарно, почти аркадное управление, то ли потому что аккум повесил легкий (2.2 против 8), то ли пресловутые потоки воздуха… главное что исчез косяк при взлете, когда коптер сам по себе в разные стороны брыкался
и с кривой газа на аппе кажется угадал
ну в общем не буду пиды трогать, а буду ждать умельцев из соседней ветки про althold
кстатии косяк один всетаки остался - медленно снижается, бряк об пол и на полметра подскакивает