Первичная настройка MultiWii
Решил написать небольшой мануал по настройке мультивия, себе на память и начинающим на подмогу.
Мануал планирую потихоньку редактировать, вспоминая и находя нужные куски текста в большой куче форума.
Нусь… начнем потиххоньку:
1. Настройка ориентации сенсоров.
Для начала необходимо определится, какие сенсоры у вас на плате.
Если это готовая плата - смотрим на описание платы, практически все дефайны уже есть в def.h, остается только раскомментировать нужную в config.h.
Если это отдельная плата с датчиками, и ее нет в списке - то раскомментируем необходимые датчики чуть ниже выбора готовых плат.
Далее компилим прошивку и заливаем ее в аппарат.
Теперь необходимо проверить правильность ориентации, для этого располагаем платку предполагаемым передом от себя и начинаем крутить:
а) при наклоне вправо должен увеличиватся угол ROLL по акселю и положительный скачок ROLL по гироскопу, Z ось акселя и компаса должны уменьшатся.
б) при наклоне вперед - аналогично по PITCH, Z ось акселя и компаса должны уменьшатся.
в) при наклонах влево и назад - значения должны быть минусовые, Z ось акселя и компаса должны уменьшатся.
г) при подъеме вверх (с норм скоростью) должен увеличиваться Z акселя, при переворачивании - менять знак
д) при повороте вправо должен быть скачок по гироскопу оси Z в положительную сторону
е) в горизонте Z ось акселя и компаса должны быть положительными
П.С.: По данным гироскопа вы увидите вначале скачок в одну, а потом в противоположную сторону - это нормально, так как вы вначале поворачиваете, а потом тормозите плату.
Источник: How_should_be_the_sensor_axis_directions
также для правильной настройки компаса вы должны указать параметр MAG_DECLINIATION (в config.h в разделе настроек ЖПС)
Для этого идем на magnetic-declination.com, находим свое местоположение, щелкаем на карту и запоминает, например у меня это Magnetic declination: 8° 41’ EAST
После чего получаем нужную нам цифру: 8+41/60 = 8,6833f.
Если все соответствует - значит с определением осей все в порядке.
В противном случае запоминаем, по какой оси у нас были другие показания, и меняем направления либо в def.h (для вашей платы), либо в config.h для версии 2.2
/* enforce your individual sensor orientation - even overrides board specific defaults */
//#define FORCE_ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = Y; accADC[PITCH] = -X; accADC[YAW] = Z;}
//#define FORCE_GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW] = Z;}
//#define FORCE_MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}
2. Арм/дизарм и подключение приемника
Важная часть настройки для начинающих.
Во первых, определяем, поддерживает ли приемник PPM SUM (для подключения одним 3-х жильным кабелем) или нет.
Далее идем в config.h, и если у нас приемник, поддерживающий PPM SUM на одном из каналов (для прошитого телеметрийного приемника FrSky это 1-й канал при замыкании сигнальных контактов 3 и 4-го контакта) то раскомментируем строчку:
#define SERIAL_SUM_PPM ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Robe/Hitec/Futaba
После чего заливаем любую прошивку к аппарату с подключенным приемником.
Далее запускаем конфигуратор, соеденяемся и двигая стики убеждаемся в правильности настройки каналов.
Также при этом можно сразу оттриммировать значения каналов для ROLL, PITCH и YAW на центральное положение 1500 (это делается триммерами на пульте)
После этого, двигая стик газа, запоминаем минимальное и максимальное положение (например 1047 и 1980), и повторяем такую же процедуру и для остальных стиков (для примера R P Y 1137/1884 1054/1987 1097/1920).
После этого, принимаем для текущего примера газа мин значение 1100 и макс значение 1900 (1950), а для остальных стиков при текущем примере мин 1150 и макс 1850 (необходим запас как минимум примерно в 50)
Значения для газа заносим в файле config.h в поля:
#define MINTHROTTLE 1100
#define MAXTHROTTLE 1900
а значение #define MINCOMMAND на 50 меньше MINTHROTTLE
Значения остальных стиков (вычисленное) заносим в файле MultiWii.ino в строчках
// ******************
// rc functions
// ******************
#define MINCHECK 1150
#define MAXCHECK 1850
После данной настройки заливаем нашу прошивку в аппарат.
Арм/дизарм после данной настройки, а также все остальные комбинации стиков делаются без проблем.
Также не забываем в config.h раскомментировать
/******************************** ARM/DISARM *********************************/
/* optionally disable stick combinations to arm/disarm the motors.
* In most cases one of the two options to arm/disarm via TX stick is sufficient */
#define ALLOW_ARM_DISARM_VIA_TX_YAW
//#define ALLOW_ARM_DISARM_VIA_TX_ROLL
После этого:
АРМ: Газ вниз и YAW вправо
ДИЗАРМ: Газ вниз и YAW влево
при необходимости можно изменить строчку, при этом будет то же самое, только вместо YAW будет стик ROLL
3. Настройка акро ПИД
Это основная настройка для вия, от нее можно сказать пляшут и остальные настройки.
Очень желателен еще один человек, которому необходимо как минимум показать как делать арм/дизарм и где канал газа и как его двигать…
Для начала, заливаем нужную прошивку на готовый аппарат (про виброразвязку и балансировку тут не буду говорить), оставляем включенным только АКРО, идем в центр зала/на улицу, берем аппарат снизу в руки, делаем арм и даем газу до примерной точки взлета (аппарат начинает терять вес).
Вначале следует обратить внимание на то, есть ли осцилляции (самопроизвольная вибрация/раскачка), если ее нету, то пробуем резкими движениями менять положения коптера, наклоняя вперед/назад, влево/вправо, при этом вы должны ощутить сопротивление изменению положения (хотя при слабых ПИД-ах иногда бывает практически не заметно).
Если сопротивление слабое, либо достаточно сильное(но есть желание отстроить по максимуму), то идем к компьютеру и повышаем P на 0,1-0,5 (с каждым последующим разом уменьшаем шаг изменения) и повторяем процедуру до появления осцилляций, после чего уменьшаем P на ~20% от его текущего значения вниз.
По желанию можно продолжить дальнейшую отстройку параметров D и I
что и за что отвечает - добавлю позже…