MultiWii

VitaliyRU
kedrikov:

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

Без обратной связи(т.е. коптер не летит) в столбиках газа в проге может быть что угодно. Могу посмотреть что на моем, в таких условиях, показывает.
Чудес то не бывает.

#ifdef QUADX
    motor[0] = rcCommand[THROTTLE] - axisPID[ROLL] + axisPID[PITCH] - YAW_DIRECTION * axisPID[YAW]; //REAR_R
    motor[1] = rcCommand[THROTTLE] - axisPID[ROLL] - axisPID[PITCH] + YAW_DIRECTION * axisPID[YAW]; //FRONT_R
    motor[2] = rcCommand[THROTTLE] + axisPID[ROLL] + axisPID[PITCH] + YAW_DIRECTION * axisPID[YAW]; //REAR_L
    motor[3] = rcCommand[THROTTLE] + axisPID[ROLL] - axisPID[PITCH] - YAW_DIRECTION * axisPID[YAW]; //FRONT_L

Вот это идет на моторы и передается в прогу, если коптер не подвижен и гирик не дрейфует, 3 кранийх слагаемых будут равны нулю.

kedrikov:

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

Я перед первым полетом, запараллелил все регули и подключил напрямую к приемнику. Убедившись в полной синхронности работы всех регулей и моторов(ну и главное включил в настройках “торомоз” на всех регулях) спокойно стал взлетать.

woddy

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

devv
woddy:

достаточно ли для проверки адруины и платы с датчиками?

да.
выбираем ком порт. Зеленеют комп порт и кнопки Старт и Стоп
Ждем 5 сек и жмем “Старт”

kedrikov
VitaliyRU:

Могу посмотреть что на моем, в таких условиях, показывает.

Если не трудно с отключенной стабилизацией только гиры.Квадр ровненько на полу.

VitaliyRU:

Вот это идет на моторы и передается в прогу, если коптер не подвижен и гирик не дрейфует, 3 кранийх слагаемых будут равны нулю.

Гирик судя по проге даже не шевелится стоит как вкопанный по нулям все три оськи.

VitaliyRU:

Я перед первым полетом, запараллелил все регули и подключил напрямую к приемнику. Убедившись в полной синхронности работы всех регулей и моторов(ну и главное включил в настройках “торомоз” на всех регулях) спокойно стал взлетать.

Попробую я так сделать.Свои я по очереди настраивал.Но кажется мне это не причем.Если ардуина на выходе дает несинхрон то хоть запрограмируся с этими регулями…

woddy
devv:

выбираем ком порт. Зеленеют комп порт и кнопки Старт и Стоп Ждем 5 сек и жмем “Старт”

у меня нет старт или стоп. окно = просто серый прямоугольник 😃 буду переставлять джаву. спасибо.

devv

Ставлю коптера на пол. Акум не подключен. Только Ардуина от УСБ и приемник.
Гиры по нолям. Но если АСС не ноли то столбики движков будут подниматься не равномерно
после CALIB_ACC столбики поднимаются равномерно

VitaliyRU
kedrikov:

Если ардуина на выходе дает несинхрон то хоть запрограмируся с этими регулями…

Если гирик дает нули, должно быть синхронно. Достаточно чуть качнуть на полу квадрик(ну за шнур там дернуть), будет не синхронно, до новой калибровки гирика. Сегодня еще раз проверю как по факту, но на память так. А Throttle PID attenuation точно 0? с ним мой не кувыркался, но раскачивался если убавлять и добавлять газ. Если я правильно выкурил исходники… Это как бы множитель который увеличивает коэффициенты PID пропорциональна газу.
Хотя у меня все же вертолетный опыт есть, может я его “руками” ловил.
И Вы когда взлетаете правую ручку не дергаете? Если дергать - исправный и настроенный кувыркнется.

kedrikov
VitaliyRU:

И Вы когда взлетаете правую ручку не дергаете?

Не это точно не трогаю за исключением когда пытаюсь компенсировать провал левого заднего двигателя но так летать не реально.

VitaliyRU:

Если гирик дает нули, должно быть синхронно

В том то и дело что в проге стоят нули и никаких движений пока коптера не тронешь

VitaliyRU:

до новой калибровки гирика.

Вот тут я наверно чет я пропустил.Аксель калибровал с этим разобрася все понятно,а вот гирик я так понял он автоматом после включения илиже гиру тоже нужно калибровать??

woddy
woddy:

буду переставлять джаву. спасибо.

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

кто-нибудь пользуется сабжем на ардуине mega 2560 uno? проблем нет? или например на 328 uno?

upd отключение аппаратного ускорения видеокарты помогло

VitaliyRU
kedrikov:

Аксель калибровал с этим разобрася все понятно,а вот гирик я так понял он автоматом после включения илиже гиру тоже нужно калибровать??

Автоматом после включения, но квадрик можно не успеть ровно поставить.
www.multiwii.com/#Gyroscopes_calibration

kedrikov
VitaliyRU:

Автоматом после включения, но квадрик можно не успеть ровно поставить.
www.multiwii.com/#Gyroscopes_calibration

С инглишом туговато а переводчик бред какойто несет,по нашему как это будет 😃 :

Gyroscopes calibration

To calibrate the neutral of gyroscope sensors, you must tilt the yaw stick left, tilt the pitch stick back while having the throttle stick in minimal position.
The multicopter should not move during this stage. However its inclination has no influence.
The status LED will blink to confirm this step.

Accelerometers trim

With the help of your roll and pitch stick you could now trim the ACC mode.
You must first put the throttle stick in maximal position. (obviously with motors disarmed)
full PITCH forward/backward and full ROLL left/right (2 axis possibilities) will trim the level mode according to the neutral angle you want to change.
The status LED will blink to confirm each ticks.

devv

Может кто сможет пояснить про компас что в комплекте платки алл-ин-оне (HMC5883L Triple Axis Magnetometer) ???

Залил в Ардуинку версию 1.9.
Выбрад #define ALLINONE
ориентация в блоке #if defined(ALLINONE) такая:
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}

Но все равно в конфе полная фигня. Компас поворачивается совсем не так как я кручу по часовой и против коптер на полу.
Поставил коптер ровно. на рисунке стрелка в N, HEAD около 0.
Поворачиваю коптер на 90гр по часовой стрелке, стрелка развернулась на 180 гр и показывает S, HEAD уже -174
поворачиваю коптер еще на 90 гр по часовой, стрелка между W и S. HEAD показывает -128
поворачиваю коптер еще на 90 гр по часовой, стрелка зашла за W, HEAD показывает -74
доворачиваю коптер до 1 оборота. Стрелка в N, Head около 0.

так у всех ?

VitaliyRU
kedrikov:

С инглишом туговато а переводчик бред какойто несет,по нашему как это будет :


Пока гирик калибруется, на ардуимнке моргает светодиод.

nsk-racer

Не подскажите где в новой версии 1.9 указывать тип платы? А то на mini работает как то неуверенно, а на arduino mega1280 запускается но не видит датчиков =( Может пины другие? Цепляю в меге пин13 питание WMP, земля на GND, пульт 6,5,4,2, ну и SDA SCL

tda2030

nsk-racer, кусочек кода из def.h

#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__)
#define PROMINI
#endif
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
#define MEGA
#endif

если все правильно понимаю, то тип платы определяется исходя из установленного контроллера. Эмм, подозреваю, что тип контроллера передается IDE.
В самой Ардуине задается в Tools -> Board.
думаю, что ничего страшного не будет, если самостоятельно зададите тип Вашей платы. У меня самопальная promini, все работает ок )

что до датчиков, тут ничего не могу подсказать. Про себя - чтоб корректно работало, собрал преобразователь уровней 5В (ардуина) -> 3.3В (датчики). Проблем с определением не возникало.

А теперь мои вопросы.

исходные данные. Плата promini на Atmega 328p. Конфугурация пепелаца - трикоптер. Радио - 6 канальное ХоббиКинг. Датчики - ITG3205 и bma180 по i2c.
Моторы dt750, регули Mystery 20A blue series (brake - off, timign setup - (22-30)deg, soft start-up - start acceleration, switch freq - 16kHz)

прошивка 1.9

вопросы:
1) не могу заставить работать 6-й канал. 5 задействованы, пашут правильно.
физически 6-й подключен к D12 (до этого была свободна). Правки в коде

/* possibility to use PIN8 or PIN12 as the AUX2 RC input
it deactivates in this case the POWER PIN (pin 12) or the BUZZER PIN (pin 8)

раскомментировал #define RCAUXPIN12

  • в def.h поправил с
    #define AUX2PIN 0 // optional PIN 8 or PIN 12
    на
    #define AUX2PIN 12 // optional PIN 8 or PIN 12

вроде все. Однако в гуи значение на AUX2 = 900 и не меняется. Пробовал на 12 пин подавать данные с других каналов приемника. Никакой реакции. И обратно - 6й канал вместо, к примеру, 5го. 6й физически работает

2). по поводу использования опции trust acc_z. Эмм, смотрю тут на форуме народ чувствительность акселя в данном направлении меняет и полосу пропускания фильтра. И это все для bma020. Никто ничего не пробовал подобного делать с bma180? Просто пока не вникал какие флаги и в какие значения надо выставлять. Надеюсь, можт кто подскажет, если же нет, будем сами курить. И вообще, насколько сильно сказывается включение использования acc_z на поведение коптера? Оно того стоит? 😃

3 со включенным стабмод коптер плывет назад и вправо. До сих пор не могу понять почему. Чтобы избежать дальнейших вопросов:

  • регуляторы на максимальный газ откалиброваны;
  • аксель и гиро откалиброваны;
  • включение питания на максимально возможной горизонтальной поверхности. Задержка калибровки гиры - 2 сек;
  • значения стиков Pitch и Roll совсем рядом с 1500. Прыгают немного, но это аппа виновата;
  • триммирование акселя сильно не помогает, хотя делаю по 15-20 “щелчков” для каждого направления завала
  • вибрации на датчиках в режиме 2/3 от полного газа заметны, но не фатальны;
  • расположение датчиков правильное. Отклонения кривых совпадают, изображение виртуальной модельки повторяет перемещения реальной. Ничего никуда не плывет со временем.

нипонятна почему так. на 1.7 подобного не замечал. Вечером скрин ПИДов выложу )

upd: ах да, тут кто-то еще serial LCDшками интересовался. Глянул на спаркфане - дороговато будет и ждать надо. У меня уже была LCDшка. Стало быть надо платку было сваять serial -> parallel. Если глянуть в ардуиновскую IDE, то там в примерах (Examples -> LiquidCrystal -> SerialDisplay фактически уже есть код для этого преобразователя. Облом в том, что он отображает только одну строчку. Прямо сейчас не могу вспомнить, но дописал буквально пару строчек кода, чтобы LCDшка заработал корректно. Если интересно, попытаюсь найти. Собсно сам код занимает 3кбайта + загрузчик. Так ш на atmega8 пойдет только так, если, конечно, вы не считаете, что для таких нужд использовать мегу8ю вообще транжирство. Зато все можно собрать чуть меньше, чем за вечер. Проверял, работает 😃

VitaliyRU
DemidSPb:

Цитата Сообщение от mahowik Посмотреть сообщение в мультиви “Д” параметр другой… вот пожалуй 2 луШШых ссылки: www.rcgroups.com/forums/showthread.php?t=1375728 www.rcgroups.com/forums/showp...postcount=7460 Вот кто бы адекватный перевел бы это на русский применительно к мультивии…

Перевести не переведу, но покурив код… Обычный там “Д”. Отрицательный был в бородатых версиях типа 1.3 и т.п.
Еще одна особенность. В вии при расчете дифференциальной составляющей(а эта составляющая размерности углового ускорения)учитывается ускорение не за один шаг цикла а усредненное за 3 шага. КМК это сделано по 2 причинам… Хотя зачем на самом деле, я естественно без понятия 😃)
что бы не было деления на переменную(увесистая вещь для проца, да и получится черти что, все расчеты то целочисленные), а усердняя за несколько шагов длительность шага цикла(Cycle time в GUI) можно принять const = деление не нужно. Это будет тоже ускорение, но в безразмерной величине.
И что бы тряска коптера так не влияла, как известно “Д” капризное к вибрациям.
В общем, на мой взгляд, код там как в классическом PID регуляторе, только чуть оптимизированный под конкретную задачу.

nsk-racer

Бросил пока затею с мегой, теперь новая проблема, Регули пищат моторы дрыгаются на месте, на KK контроллере всё нормально работает, в чём дело?

с пульта отдельно через приёмник калибруется и работает

nsk-racer

Опытным путём было выяснено что проблема в регулях, регули Turnigy Trust 45A. Подцепил ради интереса контроллеры турниги плюш 18А, с ними всё нормально работает, а с траст писк и дёрганье, при том что пищит чаще если газ на всю, если минимум реже. В чём дело?

sulaex

попробуйте на апе газ ниже настроить

nsk-racer

Я триммером убавлял газ всё равно, а вот если сделать минтротл ниже 1000, то при включении в полётный режим, моторы не пищат, пока тротл не станет выше 1000, потом как раньше. Пробовал калибровать отключая питание моторов во время полётного режима, потом включал их обратно при полном газе, несколько пытались калиброваться, но только на старой прошивке версии 1.7, на 1.9 вообще никакой реакции нету!