MultiWii 328P настройка
Автор не несет никакой ответственности за ваши действия или поломки, полученные в процессе использования материаллов с данного сайта.
Подготовка платы
Прежде чем что-то собирать нам нужно проверить то, что прислали нам братья Китайцы.
Рассмотрим пример программирования и подготовки платы.
Не стоит надеяться, что китайци залили в нашу плату нормальную прошивку. Тот, кто хочет перейти сразу к подключению платы к компьютеру, может потом не задавать вопрос: А почему у меня не работоет то или то?
Итак для подключения платы нам потребуется:
1. Кабель micro usb
2. Компьютер.
Втыкаем кабель в microUSB разъем платы, другой конец в компьютер и ждем установки драйверов. С портом microUSB на плате осторожнее т.к. он легко ломается поэтому я рекомендую укрепить его термоклеем. Если из платы не пошел волшебный дым (на котором работает вся электроника) и началась установка драйверов, то все отлично сидим и радуемся. Если пошел, то не повезло...
После того как драйвера на плату поставятся идем: Мой компьютер> свойства> диспетчер задач и смотрим порт на который установилась плата.
Когда плата настроилась и мы увидили желаемый порт качаем компилятор Arduino для своей ОС linux32 linux64 win32 win64 arduino-1.0.4-win arduino-1.0.5-win.
Скачанный архив распаковываем в корень диска С и запускаем. В открышшемся окне видим:
Далее идем сверять номер порта в программе и тип платы.
Идем Сервис>последовательный порт и выбираем тот порт, который у нас указан в диспетчере задач (например порт COM 3).
Далее идем Сервис > плата и выбираем тип платы, который нужен нам. Для тех у кого плата на контроллере atmega 2560 выбираем (1), те у кого плата на контроллере atmega 328p (2). На каком контроллере ваша плата можно узнать из характеристик платы указанных на сайте где вы ее покупали или прочитать на самой микросхеме.
После всех манипуляций приступаем к работе непосредственно с платой.
В окне Arduino выбираем: Файл>примеры >EEPROM>clear eeprom. И в открывшемся окне жмем кнопку записи в память (обведена красным).
Выполнение данной программы обнулит память микросхемы после чего в нее можно будет закачать нужную нам прошивку. Нужно это для того что-бы избавить себя от ненужных глюков при перезаписывании старой прошивки на новую. Рекомендуется делать если записываете разные версии прошивок.
На этом подготовка платы к загрузке в нее прошивки закончена. Если у вас все получилось поздравляю вас!!!!
Загрузка и настройка
Ну вот мы и дошли до самой главной части до загрузки кода в плату управления.
Итак начнем.
Загружаем последнюю прошивку (http://code.google.com/p/multiwii/downloads/list) и распаковываем ее на рабочий стол. Сейчас не нужно городить огород и качать сборки прошивок от разных умных людей. Они все рабочиии, но пока вы не понимаете азов и не знаете как что настраивается лучше не лезть, иначе получите ненужные баги. Итак распаковываем папку с прошивкой на рабочий стол (переименовывать ничего нельзя). Заходим в папку и открываем файл MultiWii_2_3 c помощью ардуино. появится окно компилятора с основными вкладками проекта.
Нам нужно перейти на вкладку config.h и мы начнем шаг за шагом настраивать свою плату.
Первое что нам нужно сделать это выбрать тип аппарата на котором мы будем летать и под который будем настраивать прошивку.
Делается это путем раскоментирования строк.
Далее нам нужно выбрать какой сигнал будет подаваться на регуляторы при активации платы, это нужно чтобы задать минимальные обороты для двигателей при включении нашего аппарата. Ставить 0 и меньше 1000 нельзя. Для каждого типа регуляторов подбирается свои значения. (подбираются практическим путем) моторы должны стартовать и крутиться с такой скоростью чтобы получились холостые обороты и коптер не взлетал.
Скорость I2C шины (в ней подключены датчики) - #define I2C_SPEED, обычно достаточно оставить стандартное значение.
Если вы используете 3.3 сенсоры - закоментируйте (добавив/оставив // перед строкой) строку #define INTERNAL_I2C_PULLUPS, если 5в, то раскоментируйте.
Ниже, в разделах I2C gyroscope, I2C accelerometer, I2C barometer, I2C magnetometer, ADC accelerometer расскоментируйте используемые вами датчики. Если вы испольуете готовую плату с датчиками, например AllInOne или FFIMU, то выберите соответствующую плату из списка выше (при этом обязательно оставить закоментированными строки про отдельные датчики).
К сожалению не все платыдобавлены в прошивку, т.к. братья китайцы делают их быстрее чем авторы прошивки успевают добавлять их. Так что если не нашли свою платку, просто раскоментируйте все находящиеся на ней датчики (посмотреть в описании платы).
Ориентация датчиков
Если ваши отдельные датчики ориентированы не верно или вам так удобнее, то порядок и направление осей можно поменять в конце файла, раскоментировав нужные строки.
Ориентацию сенсоров можно посмотреть в даташитах к датчикам для этого пользуемся поиском. Выглядит это примерно так:
/* individual sensor orientation */
//#define ACC_ORIENTATION(X, Y, Z) accADC[ROLL] = Y; accADC[PITCH] = -X; accADC[YAW] = Z;
//#define GYRO_ORIENTATION(X, Y, Z) gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW] = Z;
//#define MAG_ORIENTATION(X, Y, Z) magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;
Если плата которую вы сделали (купили) построена на датчиках ITG3200 или MPU6050 нужно подобрать фильтры для уменьшения влияния вибраций от двигателей на гироскоп. В случае с MPU6050 еще и на акселерометр т.к. это датчик 2 в 1.
Фильтр подбирается эксперементальным путем, но при первом запуске совершенно не важно но рекомендуется от 20 до 98 Гц.
/*********************/
/*** Gyro filters ***/
/*******************/
/*** Lowpass filter for some gyros ***/
/* ITG3200 & ITG3205 Low pass filter setting. In case you cannot eliminate all vibrations to the Gyro, you can try
to decrease the LPF frequency, only one step per try. As soon as twitching gone, stick with that setting.
It will not help on feedback wobbles, so change only when copter is randomly twiching and all dampening and
balancing options ran out. Uncomment only one option!
IMPORTANT! Change low pass filter setting changes PID behaviour, so retune your PID's after changing LPF.*/
//#define ITG3200_LPF_256HZ // This is the default setting, no need to uncomment, just for reference
//#define ITG3200_LPF_188HZ
//#define ITG3200_LPF_98HZ
#define ITG3200_LPF_42HZ
//#define ITG3200_LPF_20HZ
//#define ITG3200_LPF_10HZ // Use this only in extreme cases, rather change motors and/or props
/* MPU6050 Low pass filter setting. In case you cannot eliminate all vibrations to the Gyro, you can try
to decrease the LPF frequency, only one step per try. As soon as twitching gone, stick with that setting.
It will not help on feedback wobbles, so change only when copter is randomly twiching and all dampening and
balancing options ran out. Uncomment only one option!
IMPORTANT! Change low pass filter setting changes PID behaviour, so retune your PID's after changing LPF.*/
//#define MPU6050_LPF_256HZ // This is the default setting, no need to uncomment, just for reference
//#define MPU6050_LPF_188HZ
//#define MPU6050_LPF_98HZ
#define MPU6050_LPF_42HZ
//#define MPU6050_LPF_20HZ
//#define MPU6050_LPF_10HZ
//#define MPU6050_LPF_5HZ // Use this only in extreme cases, rather change motors and/or props
Все основные функции для платы мы настроили можно компилировать прошивку и записывать ее в плату для этого сначала сохраняемся Файл > сохранить потом нажимаем на кнопку выделенную красным сначала 1 (для проверки ошибок и компиляции) потом 2 (для записи прошивки в микросхему).
При записи плата должна мигать одной или несколькими лампочками (смотря какую плату используете). Есть маленькая хитрость, для тех кто использует переходник FTDI. Некоторые переходники не делают авто ресет платы перед прошивкой, а без этого прошивка не запишется и компилятор выдаст ошибку.
Хитрость: После того как нажали кнопку под номером (2), начинаем нажимать кнопку ресет на плате пару раз в секунду (надо наловчиться). Нажимаем до тех пор, пока FTDI не мигнет огонечками один раз. После этого сразу перестаем нажимать и ждем, если все получилось и запись пошла ликуем))), если нет не расстраиваемся, пробуем снова.
Настройка через GUI (ПО)
Качаем ПО здесь MultiWii_2_3 можно взять здесь.
Итак у нас все получилось и залился код Multiwii 2.3 далее в папке проекта есть папка MultiWiiConf_2_3 > application.windows32 > MultiWiiConf_2_3.exe
У нас откроется окно GUI.
Процедура настройки
1. Подключите Arduino к ПК
2. Запустить GUI и выберите COM-порт соотвествующий вашей плате Arduino (тот же что выбирался при загрузке ПО в контроллер).
3. Подождите несколько секунд, пока ПО будет запущено. (мигание светодиода)
4. Когда светодиод погаснет, нажмите кнопку START и посмотрите на график (должны появится значения).
5. Перед редактированием параметров, нажмите READ.
6. Для сохранения параметров нажмите WRITE.
7. Для изменения чиловых параметров - нажмите на поле мышкой и двигайте вверх/вниз или влево/вправо(не помню).
Стандартные значения могут быть сброшены если залить старую версию ПО, а затем новую.
Описание параметров
RC rate и RC expo
RC rate: задает чувствительность мультикоптера на PITCH и ROLL стики. Если вы чувствуете что ваш коптер слишком резвый, уменьшите это значение. А если хотите увеличить реакцию на стики, увеличьте этот параметр.
RC expo: задает плавность зоны возле центра стиков PITCH и ROLL. Значение меняется от 0 (без экспоненты) до 1.
Если вы не понимаете эти значения, то рекомендую прочитать документацию к вашей аппе (аппаратуре управления), часто эти функции уже встроены.
Лучше использовать multiwii вариант так как точность будет выше.
P и I Level
Указывает влияние акселерометра в режиме стабилизации. Если коптер не стабилен после активации - уменьшите значение P.
PITCH/ROLL/YAW ПИД и rate
Для очень стабильного коптера, PID значения должны быть высокими. Но если вы захотите делать что-то акробатическое с этими значениями, мультикоптера начнет сильно дрожать/раскачиваться. решение - уменьшить PID, в ущерб стабильности системы.
Поэтому чтобы переключаться между двумя настройками PID, теперь есть 2 опции в GUI чтобы определить способ уменьшения PID, в зависимости от ROLL/PITCH/YAW отклонений стиков.
Два поля для ввода справа устанавливают скорость уменьшения нормальных значений PID (который используется на нейтральных позициях ROLL/PITCH/YAW) в отношении отклонений стиков ROLL/STICK/YAW. На самом деле только P и D параметры подвержены этому преобразованию. Цель этого параметры не увеличить стабильность, а сделать коптер более маневренным. 0 = минимальное значение (для FPV или новичков); 0.4 = простенький акро; 0.7 = быстрый акро; 1 = мгновенный акро. Если вам не понятно, то оставьте это значение стандартным (0).
THROTTLE rate
Значение скорости уменьшения номинальных значений PID (которые используются при нейтральных положениях ROLL/PITCH) в отношении стика Throttle (газ). Цель этого значения - получить больше стабильности в ситуации использования больших значений газа, чем нужно во время подъемов. Как правило дело в быстром смещении (стиков?). Если вам не понятно, то оставьте это значение стандартным (0).
Как активировать функции MultiWii
В зависимости от вашей конфигурации, вы можете легко менять функции MultiWii, используя 2 переключателя на вашей аппе на каналах 5 (AUX1) и (AUX2).
LEVEL - выравнивание в горизонт (требует наличия акселерометра)
BARO - дает возможность удерживать высоту (требуется барометр)
MAG - позволяет удерживать курс (требует магнитометр(компас))
CAMSTAB: если включено, PITCH и ROLL сервы следуют за отклонением коптера, позволяя держать подвес камеры в требуемом положении.
CAMSTRIG: если активировано, серва переходит между минимальным и максимальным значением с нужность скоростью (например для нажатия кнопки фотографирования).
Чтобы активировать эти функции, вы должны нажать на серый блок, чтобы он стал белым в нужном положении переключателей на требуемом канале.
Если вы хотите чтобы опции были включены всегда - нужно отметить все квадратики белыми (так же полезно если у вас нет или заняты AUX1 AUX2 каналы)
Определение подключенных сенсоров и их использование
Левая колонка показывает подключенные сенсоры. Правая колонка - активированные в данный момент опции.
Калибровка датчиков
Для калибровки акселерометра, выставите коптер параллельно горизонту и нажмите кнопку CALIB_ACC, GUI ненадолго подвиснет или странно поведут себя графики, после этого убедитесь что оси ROLL и PITCH параллельны.
Для калибровки магнитометра (компаса), нажмите на кнопку CALIB_MAG и вращайте коптер по всем осям или поочередно ставьте коптер на ребра в течении 30 секунд
Теория настройки ПИД
взято тут, а оригинал тут
Пропорционально-Интегрально-Дифференциальный метод
Когда ориентация мультикоптера меняется по любой из осей pitch/roll/yaw (тангаж-крен-рыскание), гироскопы показывают угловое отклонение мультикоптера от начальной позиции.
Контроллер мультикоптера сохраняет информацию об исходном положении и при помощи программного ПИД-регулятора управляет моторами для того, чтобы вернуть мультикоптер в это исходное положение. Этого добиваются, используя информацию об измеренном угловом отклонении, фиксируя изменение параметров с течением времени и предсказывая следующую позицию. Эта информация используется контроллером, чтобы, управляя моторами, вернуть мультикоптер в положение равновесия.
Р – это основополагающая часть ПИД-регулятора которая является залогом хороших летных характеристик.
Базовая настройка ПИД – на земле
1. установите рекомендованные по умолчанию значения коэффициентов ПИД-регулятора;
2. крепко и осторожно удерживайте мультикоптер в воздухе (ухватитесь за раму руками так, чтобы предотвратить возможные свободные вращения вокруг любой из осей коптера, берегите руки и лицо – прим. перев.);
3. постепенно прибавляйте газ, стараясь найти точку висения. Вы почувствуете уменьшение веса коптера;
4. попробуйте наклонить вниз коптер вдоль направления каждой из осей моторов. Вы должны почувствовать реакцию, направленную на компенсирование вашего давления вдоль оси (вы давите вниз, ПИД регулятор увеличивает обороты двигателя, пытаясь поднять этот край, тем самым противодействуя вашему усилию – прим. перев.);
5. увеличивайте значение коэффициента Р до тех пор, пока не ощутите, что довольно сложно противостоять реакции коптера. Без стабилизации вы почувствуете, что ПИД позволяет вам двигаться через некоторое время. Так и должно быть;
6. дальше начинайте раскачивать мультикоптер, увеличивайте Р до тех пор, когда начнутся осцилляции и затем немного уменьшите. Повторите для yaw оси;
Теперь ваши установки должны годиться для дальнейшей настройки в воздухе
Знакомство с воздействием P, I и D на характеристики.
Р - это величина корректирующей силы, приложенной для того, чтобы вернуть мультикоптер в его начальное положение. Эта величина пропорциональна совокупному отклонению от изначальной позиции минус любое командное воздействие на изменение направления с пульта управления.
Более высокое значение Р создаст более мощное усилие по сопротивлению любой попытке изменить положение коптера. Однако если значение Р слишком велико, то при возврате в исходное положение возникает перерегулирование и, следовательно, требуется противоположная сила, чтобы компенсировать новое отклонение. Это порождает эффект раскачки до тех пор, пока наконец не будет достигнута стабильность или, в худшем случае, коптер может стать полностью неуправляемым.
Увеличение значения Р:
приводит к большей устойчивости /стабильности до тех пор, пока слишком большое значение Р не приведет к осцилляциям и потере контроля над коптером (потере управления). Вы заметите очень большую силу воздействия, противодействующую любому изменению положения коптера.
Уменьшение значения Р:
приведет к дрейфу в управлении. Если Р слишком мал, коптер становится очень нестабильным. Коптер будет меньше сопротивляться любым попыткам изменить его положение.
Акро (полеты на пилотаж) полеты требуют чуть более высоких Р, аккуратные и плавные полеты – чуть более низкого Р
I – это период времени, в течение которого записываются и усредняются угловые отклонения.
Величина силы, прикладываемой для возврата в исходное положение, увеличивается, если с течением времени угловое отклонение сохраняется, пока не будет достигнута максимальная величина усилия.
Более высокое I способствует улучшению курсовой устойчивости.
Увеличение значения I:
улучшит способность удерживать начальное положение и уменьшит дрейф, но так же увеличит задержку возврата в начальное положение. Также уменьшает влияние Р.
Уменьшение значения I:
Улучшит реакцию на изменения, но увеличит дрейф и уменьшит способность удерживать положение. Так же увеличивает влияние Р.
Акро режим: требует немного меньших значений I
Аккуратное плавное руление: требуются немного большие значения I
D – это скорость, с которой мультикоптер вернется в его начальное положение. Высокие D (т.к. D имеет отрицательное значение – это означает меньшее число, т.е. более близкое к нулю) означают, что мультикоптер вернется в первоначальное положение очень быстро.
Увеличение значения D: (помните, это значит МЕНЬШЕЕ число, т.к. значение отрицательное)
увеличивает скорость, с которой все отклонения будут скомпенсированы. Это означает так же увеличение вероятности появления перерегулирования и осцилляций. Так же увеличивается эффект от изменения Р (влияние Р-компоненты)
Уменьшение D: (помните, это значит БОЛЬШОЕ число, т.к. это отрицательно значение, т.е. дальше от нуля)
уменьшает колебания при возврате в начальное положение. Возврат в начальное положение происходит медленнее. И так же уменьшает эффект от изменения Р.
Акро режим: увеличьте D (помните – меньшее число, т.е. ближе к нулю)
Аккуратные плавные полеты: уменьшите D (это означает большее число, т.е. дальше от нуля)
Вообще одно простое правило помогает расставить точки над D: чем ближе значение D к нулю, тем быстрее выравнивание коптера. Чем дальше от D от нуля, тем меньше значение D и, следовательно, медленнее возврат в начальную позицию.
Продвинутая настройка – практическая реализация
Для акро полетов:
1. увеличивайте значение Р до появления осцилляций, затем немного уменьшите;
2. изменяйте значение I до тех пор, пока дрейф по время зависания не станет недопустимым, затем слегка увеличьте;
3. увеличьте значение D (помните, меньшее значение – ближе к нулю) до тех пор, пока стабилизация после резких движений органами управления не будет приводить к недопустимой раскачке.
После этого можно немного уменьшить Р.
Стабильные полеты (RC, AP, FPV):
1. увеличивайте значение Р до появления осцилляций, затем немного уменьшите;
2. измените I пока коррекция после отклонения не станет недопустимо слабой, затем увеличьте немного;
3. уменьшите D (дальше от нуля) до тех пор, до тех пор, пока стабилизация после резких движений органами управления не станет слишком медленной. Затем увеличьте D немного (помните – меньшее значение);
После этого можно немного уменьшить Р.
Вы должны выбрать компромисс между оптимальными настройками стабильного зависания и вашим обычным стилем полета.
Знание оптимальных настроек ПИД для конфигурации, похожей на вашу, может помочь вам быстрее настроить свой мультикоптер, но имейте ввиду, что не бывает двух одинаковых коптеров, т.к. следующие пункты будут непременно вносить влияние в фактические значения коэффициентов ПИД, а это:
рама - вес/размер/материал/жесткость;
двигатели – мощность/крутящий момент;
расположение двигателей и расстояние между ними;
контроллеры двигателей и передатчик – кривые мощности;
винты – диаметр/шаг/материал;
БАЛАНСИРОВКА
конечно, навыки пилота.
Запуск
Подразумевается что вы уже установили JAVA, Arudino IDE работает (рекомендуется использовать версию 0022), прошивка залита, запущен конфигуратор и он работает (после выбора порта и нажатии кнопки START график ожил и отобразился тип вашего коптера). Так же, если указано что требуется расскомментировать (убрать // перед строкой) или закомментировать (добавит // перед строкой), то эти действия выполняются в файле config.h (если не указан другой файл).
Калибровка аппаратуры управления
После успешного соединения программы конфигуратора с вашим коптером, справа сверху вы увидите голубые полоски, показывающие каналы вашего пульта, подвигайте стиками, чтобы убедится что все работает верно (ручка газа меняет значение throttle и т.д.).
Установите стики вашего пульта в центральное положение (включая газ и крутилки, если они используются для переключения режимов), значения во всех полосках должно быть близкое к 1500 (допускается небольшое подрагивание, которое следует убрать, раскоментировав в коде строку #define DEADBAND 5 и увеличив значение с 5, например до 10), если это не так - оттримируйте ваш пульт.
Теперь отклоняйте стики до максимума и минимума, значения должны находится в пределах 1000...2000, если это не так - настройте ваш пульт согласно инструкции к нему.
На всякий случай проверьте что по центру у вас 1500.
Помните что полоски должны двигаться в соответствии с движениями стиков, т.е. если вы поднимаете ручку газа вверх, то и полоска должна идти вверх (аналогично для других каналов), если это не так - сделайте реверс каналов вашего пульта.
Немного о безопасности
Когда проводите эксперименты или предварительные испытания - снимайте пропеллеры, во избежании случайных увечий, так же крайне не рекомендуется подключать одновременно аккумулятор и USB кабель от компьютера.
Использование стиков для управления коптером
Перед подключением батареи убедитесь что ручка газа в минимальном положении.
Запуск моторов
Запуск моторов для трикоптера
Остановка моторов
Остановка моторов для трикоптера
калибровка гироскопа (сперва отключите двигатели)
калибровка акселерометра (сперва отключите двигатели)
калибровка магнитометра(компаса) (сперва отключите двигатели)
триммирование акселерометра (сперва отключите двигатели)
Вот вроде и все если все корректно работает можно начинать собирать коптер!!!
Поздравляю!!!
Просмотров: 13149
|