MultiWii

omegapraim

Я Александр про те баги которые наивному глазу юзера не видно, а если их невидно и все летает хорошо то значить их и нет)))))

Leon11t

Репост из дневника Маховика, ибо там никто не отвечает.
Доброго время суток. Появилась одна проблемка, на которую я не обращал внимания, до того момента как поставил на коптер камеру. Вот видео отзнятое несколько часов назад.

Скрин пидов.

Как слишно из видео, моторы дребезжат, коптер потряхивает. Прошивка МахоВии 3.1 На стандартных пидах та же фыгня. . Пропи балансированы. Плата АИН, стоит на резиновых демпферах их СД-Рома. На графиках на максимальном газу до отрыва от земли особых вибраций не наблюдается и дребезжаний коптера тоже.


Вот что разкоментил
#define KILL_VIBRO
#define KILL_SMALL_OSCILLATIONS
#define ITG3200_LPF_20HZ
#define MPU6050_LPF_20HZ

Подскажите что не так. Куда крутить ПИДы?

Raptor_SK
dnuos:

можно все беки паралельно

Если ВЕС-и линейные - то да, а если импульсные - оставить только один.

dnuos

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

omegapraim

Я юзаю внешний бек на 5А раньше юзал 1н рег все остальные отрубал. Суть в том что вероятность есть что сгорит но честно ни разу за все время обитания здесь не видел что бы кто то пожаловался что сгорело именно из-за этого. Но я перестраховщик)))) Лучше так чем отскребать потом остатки)))))

mataor
Leon11t:

Подскажите что не так

Leon11t:

Плата АИН, стоит на резиновых демпферах их СД-Рома.

повесить на скотч или вообще жестко закрепить

Leon11t
mataor:

повесить на скотч или вообще жестко закрепить

Ок, попробую сделать подвес по жоще. А как же остальная вибрация, станет же вибрировать на плату еще больше? Ща почитаю про вибророзвязку. Спасибо за ответ.

mataor

маховий ПРЕДНАЗНАЧЕН на жесткую установку… правда он не отменяет балансировку моторов и пропеллеров - это должен делать каждый для большего ресурса моторов и более долгого полета

serenya
Leon11t:

Репост из дневника Маховика

Может слишком мягкая виброразвязка? Попробуйте жестко поставить на нейлоновые стойки например.
p.s. извините, забыл обновить страницу, а тут оказывается уже ответили.

fleshget

Помогите разобраться с мультивием, я уже с ног валюся 😃

Мультивий SE 2.0, двигателя, гиры и акселя откалибровал (правда когда запускаю калибровку двигателей, то в конце “заливки” все моторы включаются на секунду-другую, а потом выключаются).

В общем проблема следующая: квадрик крутится по YAW и ниче не могу с этим сделать. (по часовой стрелке, если смотреть сверху на лопасти). Пробовал затримить влево на 110 единиц (стало в GUI код по YAW показывать 1390) - и все равно крутится!

То что смог определить: когда начинаю рукой квадрик вращать против вращения - то ощущается как бы продиводействие небольшое, по крайней мере звук изменения оборотов слышен. А когда рукой пытаюсь провернуть по вращению - ничего не слышу и не ощущаю…

Пробовал отключить ANGLE, то же самое - крутится по часовой стрелке.

Две недели назад мне демонстрировали работоспособность контроллера - все было отлично! А я вот собрал - крутится 😦

Что посоветуете??

Прилагаю конфиг мультивия. Было падение, луч один согнулся, может еще чего там отвалилось…

Горизонт держит отлично (не наклониш рукой). Аппаратура FlySky, шестиканальная, “центра” держит хорошо (1500 плюс-минус 6)

Taatarenkoff
fleshget:

Помогите разобраться с мультивием, я уже с ног валюся 😃
В общем проблема следующая: квадрик крутится по YAW и ниче не могу с этим сделать. (по часовой стрелке, если смотреть сверху на лопасти).

Проверяйте выкосы моторов после падения. 100% один мотор завален на бок вот и крутит. Сам так попался)

uwrtey

Можно попробовать включить самолетный режим,яв в этом случае будет третьей осью.

Я включил самолетный режим.
Но к сожалению получил не то что хотел.

Я хочу получить пропорциональное отклонение сервоприводов при отклонении платы от горизонта… ( чем сильнее плата отклонена от горизонта, тем больше угол отклонения сервопривода )

А в итоге я получил отклонение сервопривода с возвратом на исходную позицию.
Угол отклонения зависит от ускорения, с которым плата меняет свою ориентацию.

Как исправить ситуацию?

*******************************

mataor, Ты не нашел свою версию прошивки ?

mataor
uwrtey:

Ты не нашел свою версию прошивки ?

к сожалению не откопал… мож и удалил - с появлением БК она стала ненужной)))

но на самом деле там больше всего напичкано в разные режимы… сама стабилизация там практически исходная, чуток подправлена ток…
могу скинуть код тож под подвес но другого человека yadi.sk/d/7ZSKB0pRCFejq

uwrtey

Спасибо и на этом. А как это одним архивом качнуть?

uwrtey

Я хочу получить пропорциональное отклонение сервоприводов при отклонении платы от горизонта…

С этим я разобрался. Все это включается в ГУИ. Теперь сервоприводы отклоняются пропорционально с тангажем и креном.
Но вот с “курсом” то же самое я проделать не могу.
Кто подскажет “как быть”?

mataor

с курсом ток ручками… по гире как в БК не получится, а по компасу творит страшные вещи…

uwrtey

В смысле “только ручками” ?
Я че-то недопонял…
В смысле мультивий не подойдет? И придется прошивку самому переписывать?

romeo84

Всех приветствую!

Если кто разбирался, подскажите плз., каким где в коде в прошивке берутся данные с приёмника и где просчитанные данные выходят непосредственно к регулятором двигателей? Основная идея, считать AUX3 со свободной ножки.

Пробовал искать сам, но упираюсь в непонятки:

по идее, массив со считанными значениями формируется вот так вот

      rcData[ROLL] = Servo_Buffer[0];
      rcData[PITCH] = Servo_Buffer[1];
      rcData[THROTTLE] = Servo_Buffer[2];
      rcData[YAW] = Servo_Buffer[3];
      rcData[AUX1] = Servo_Buffer[4];
      rcData[AUX2] = Servo_Buffer[5];
      rcData[AUX3] = Servo_Buffer[6];
      rcData[AUX4] = Servo_Buffer[7]; 

Массив Servo_Buffer хитроумным способом считается так

temp_int = (256*RF_Rx_Buffer[1+(2*i)]) + RF_Rx_Buffer[2+(2*i)];
        if ((temp_int>1500) && (temp_int<4500)) Servo_Buffer[i] = temp_int/2;

Копаем глубже, temp_int идёт отсюда

temp_int = (256*RF_Rx_Buffer[1+(2*i)]) + RF_Rx_Buffer[2+(2*i)];

А RF_Rx_Buffer берём так

send_read_address(0x7f); // Что за адрес это такой?
    for(i = 0; i<17; i++) {//read all buffer
      RF_Rx_Buffer[i] = read_8bit_data();
    }   

Теперь тупик… Вот процедура чтения 8 бит данных с моими комментами

uint8_t read_8bit_data(void) {
  uint8_t Result, i;

  SCK_off; // PORTC &= 0xFB зачем-ть в порт С пихаем 1111 1011
  Result=0;
  for(i=0;i<8;i++) {                    //read fifo data byte
    Result=Result<<1;
    SCK_on;
    NOP();
    if(SDO_1) { // (PINC & 0x01) == 0x01 проверяем на первой ножке порта С логическую единичку...?? Как этим мы читаем PWM сигнал определённого канала, загадка!
      Result|=1;
    }
    SCK_off;
    NOP();
  }
  return(Result);
}  

Так где ж тут мы задаём с какой ножки микросхемы читать данные?? Можете “разжевать” эту функцию?

Если кто раскапывал это, поделитесь плиз, буду очень благодарен!