MultiWii

Dimm168pin
=alex#:

все это работает (спасибо за MultiWiiConf), вот только данные от датчиков, те, что на графике нулевые идут. А как мне определить, какой тип датчиков выбирать? У меня подключена платка из WMP четырьмя проводками. В текстах прошивки ардуины MultiWii_1_9_a1 много разных типов гироскопов, что выбрать? и остальные датчики, которых у меня нет - дефайны закоментировать?

itg3200\3205

toleg
Dimm168pin:

itg3200\3205

Неправда ваша

Если подключен только WMP ничего выбирать не нужно он выбран по умолчанию

SovGVD
Dimm168pin:

itg3200\3205

это если пиленый wmp с itg3205 - что в разы лучше чем просто wmp

Dimm168pin
toleg:

Неправда ваша

Если подключен только WMP ничего выбирать не нужно он выбран по умолчанию

тогда произошло чюдо, я летал на непиленом wmp с выбраным itg3200.
правда дорожки были перерезаны до чипа wmpшного.

SovGVD
Dimm168pin:

я летал на непиленом wmp с выбраным itg3200.

это как раз таки и есть пиленый

Dimm168pin:

дорожки были перерезаны до чипа wmp

проводки то идут не к wmp, а к itg3205

alexeykozin

у меня есть платка ardupilot imu v2 flat

по набору гироскопов и акселю соответствует одной из версий freeimu, но в отличие от онной уже имеет ардуину на борту (возможно сенсоры на других входах расположены)
прочитал на сайте мультиви что поддерживается подключать фрииму по шине
тоесть если взять одну ардуинку и залить в нее мультиви и подключить к этой плате получится мультиви мультироторный контроллер?
может кто уже пробовал?

SovGVD
Covax:

Глеб, а можешь убрать из прошивки мультивия микс моторов на Гексу, чтобы один мотор на ней действительно сделать поворачивающимся, дай мастеркласс в топике мультивия, а?

чисто теоретически в 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

аналогично для любой другой рамы

  1. копируем миксы для рамы и на моторах с вращением убираем yaw (нолик в PID (x,x,0)), возможно на всех это надо делать, как у трикоптера… да даже скорее всего надо убирать, так как вращаемся уже совсем по другому
  2. сервы берем от бикоптера
  3. в дефайнах количества моторов ставим сколько у нас моторов (4 на кдварик, 6 на гексу и т.д.)
  4. #if NUMBER_MOTOR > 3 - вот это тоже убрать надо попробовать =)

ЗЫ по мотивам вот этой рамы

www.youtube.com/watch?v=AWNvvCwMbrk

=alex#

спасибо за советы, удалось оживить, но похоже не судьба. Картинки вроде красивые в wiiConf получаются, а на реальном трикоптере совсем плохо. С одной стороны сильно хвостовой сервой колбасит, а двигателями (крен/тангаж) как-то невнятно. При этом реакция ручек (крен/тангаж) какой-то совсем медленный, чуть ли не с секундной задержкой, так и должно быть? (версия 1.9). И еще почему-то в любой момент wmp плата может перестать выдавать сигналы, т.е. гироскопы отключаются совсем - почему? плохая плата? В общем по сравнению с КК 5.5 как то совсем плохо.

Dimm168pin
SovGVD:

это как раз таки и есть пиленый

проводки то идут не к wmp, а к itg3205

ну тогда правда ваша,) был не прав

SovGVD

в продолжении темы поворота сервами

www.youtube.com/watch?v=EM4bpi4SBkI

судя по описанию yaw составляющая из миксов всех моторов и уходит только на сервы, вроде летает =) сложно сказать лучше или хуже

основная идея - берем бикоптер и доделываем его до квадрика, получается H рама, на одном из лучей которой моторы могут вращаться

igor_v_t
alexeykozin:

у меня есть платка ardupilot imu v2 flat

по набору гироскопов и акселю соответствует одной из версий freeimu, но в отличие от онной уже имеет ардуину на борту (возможно сенсоры на других входах расположены)
прочитал на сайте мультиви что поддерживается подключать фрииму по шине
тоесть если взять одну ардуинку и залить в нее мультиви и подключить к этой плате получится мультиви мультироторный контроллер?
может кто уже пробовал?

Пробовал , но только без второй платки и на следующей версии imu v3 rcopen.com/forum/f123/topic263186
Можно и МультиВии в платку залить, но посмотреть подключение датчиков и выходы на моторы откорректировать и радио переподключить-то есть новая программа, а вторую 328 вроде бы смыСла нет ставить.

alexeykozin

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

=alex#
=alex#:

…Картинки вроде красивые в wiiConf получаются, а на реальном трикоптере совсем плохо…

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

SovGVD
=alex#:

Посмотрел в MultiWiiConf,

а время цикла стабильное? или туда/сюда прыгает? если прыгает или еще хуже - в минус уходит, то пилите wmp или долго и упорно придется играть с настройками частоты и interleaving - и то фигня будет, wmp периодически любит повисать намертво и только передергивание питания спасает (что в полете не очень приятно)

omegapraim

Во развел себе мини мультивий на датчике 2 В 1 который мне предоставил soliada, конечно есть еще косяки в разводке, но все работает, скоро облетаю аксель LIS3DH, гира L3G4200D



=alex#
SovGVD:

а время цикла стабильное? или туда/сюда прыгает?

Это Cycle Time? немного прыгает постоянно 3000-3020, а раз в 2 секунды примерно 3200 проскакивает. А если wmp порезать, то влияние вибраций уменьшится? или дело не в них, то что сигналы на моторах и серве при включенных двигателях начинают прыгать?

SovGVD
=alex#:

А если wmp порезать, то влияние вибраций уменьшится?

то можно будет добавить дополнительный режим фильтрации вибраций на самой гире и избавиться от повисаний и глюков
в любом случае, если wmp с itg3205 - лучше выпилить (там на самом деле надо всего пару дорожек перепелить, в соотвествующей теме всё есть) - новые wmp так себе работают

igor_v_t
alexeykozin:

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

Я тоже недавно видел коптер именно на вашей плате, но не помню где. Может быть то же что и Вы. А если винты одного направления и выкошены, то это тоже самое, что разные. Единственное может реверс Yaw понадобится, или винты местами поменять.

SovGVD

а какие у multiwii дефолтные пиды в стандартной прошивке?
хочется поэксперементировать сегодня =)

leprud

Что лень животворящая делает-то 😃

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;

SovGVD

пока ждал ответа, забил и подлетнул в большой комнате (до этого только в мелкой тестил - где чуть влево-вправо и коптер теряет винт)
летает шикарно, почти аркадное управление, то ли потому что аккум повесил легкий (2.2 против 8), то ли пресловутые потоки воздуха… главное что исчез косяк при взлете, когда коптер сам по себе в разные стороны брыкался
и с кривой газа на аппе кажется угадал
ну в общем не буду пиды трогать, а буду ждать умельцев из соседней ветки про althold

кстатии косяк один всетаки остался - медленно снижается, бряк об пол и на полметра подскакивает