MultiWii
Если ардуина на выходе дает несинхрон то хоть запрограмируся с этими регулями…
Если гирик дает нули, должно быть синхронно. Достаточно чуть качнуть на полу квадрик(ну за шнур там дернуть), будет не синхронно, до новой калибровки гирика. Сегодня еще раз проверю как по факту, но на память так. А Throttle PID attenuation точно 0? с ним мой не кувыркался, но раскачивался если убавлять и добавлять газ. Если я правильно выкурил исходники… Это как бы множитель который увеличивает коэффициенты PID пропорциональна газу.
Хотя у меня все же вертолетный опыт есть, может я его “руками” ловил.
И Вы когда взлетаете правую ручку не дергаете? Если дергать - исправный и настроенный кувыркнется.
И Вы когда взлетаете правую ручку не дергаете?
Не это точно не трогаю за исключением когда пытаюсь компенсировать провал левого заднего двигателя но так летать не реально.
Если гирик дает нули, должно быть синхронно
В том то и дело что в проге стоят нули и никаких движений пока коптера не тронешь
до новой калибровки гирика.
Вот тут я наверно чет я пропустил.Аксель калибровал с этим разобрася все понятно,а вот гирик я так понял он автоматом после включения илиже гиру тоже нужно калибровать??
буду переставлять джаву. спасибо.
переустановка джавы не помогла.
если отключить ардуину, то конфигуратор думает секунд 20 и показывает свое окно. ком порта выбрать не дает разумеется.
если подключить ардуину, то конфигуратор так же думает секунд 20, потом на долю секунды прорисовывает свое окно а потом появляется серый прямоугольник.
кто-нибудь пользуется сабжем на ардуине mega 2560 uno? проблем нет? или например на 328 uno?
upd отключение аппаратного ускорения видеокарты помогло
Аксель калибровал с этим разобрася все понятно,а вот гирик я так понял он автоматом после включения илиже гиру тоже нужно калибровать??
Автоматом после включения, но квадрик можно не успеть ровно поставить.
www.multiwii.com/#Gyroscopes_calibration
Автоматом после включения, но квадрик можно не успеть ровно поставить.
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.
Может кто сможет пояснить про компас что в комплекте платки алл-ин-оне (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.
так у всех ?
С инглишом туговато а переводчик бред какойто несет,по нашему как это будет :
Пока гирик калибруется, на ардуимнке моргает светодиод.
в мультиви “Д” параметр другой… вот пожалуй 2 луШШых ссылки:
www.rcgroups.com/forums/showthread.php?t=1375728
www.rcgroups.com/forums/showp...postcount=7460
Вот кто бы адекватный перевел бы это на русский применительно к мультивии…
Не подскажите где в новой версии 1.9 указывать тип платы? А то на mini работает как то неуверенно, а на arduino mega1280 запускается но не видит датчиков =( Может пины другие? Цепляю в меге пин13 питание WMP, земля на GND, пульт 6,5,4,2, ну и SDA SCL
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ю вообще транжирство. Зато все можно собрать чуть меньше, чем за вечер. Проверял, работает 😃
Цитата Сообщение от 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 регуляторе, только чуть оптимизированный под конкретную задачу.
Бросил пока затею с мегой, теперь новая проблема, Регули пищат моторы дрыгаются на месте, на KK контроллере всё нормально работает, в чём дело?
с пульта отдельно через приёмник калибруется и работает
Опытным путём было выяснено что проблема в регулях, регули Turnigy Trust 45A. Подцепил ради интереса контроллеры турниги плюш 18А, с ними всё нормально работает, а с траст писк и дёрганье, при том что пищит чаще если газ на всю, если минимум реже. В чём дело?
попробуйте на апе газ ниже настроить
Я триммером убавлял газ всё равно, а вот если сделать минтротл ниже 1000, то при включении в полётный режим, моторы не пищат, пока тротл не станет выше 1000, потом как раньше. Пробовал калибровать отключая питание моторов во время полётного режима, потом включал их обратно при полном газе, несколько пытались калиброваться, но только на старой прошивке версии 1.7, на 1.9 вообще никакой реакции нету!
Перевести не переведу, но покурив код… Обычный там “Д”
мляяя… вот лень хотябы заснуть в гугл транслейт 😉 почитайте ветку… ни разу он не классик… я тут уже ни раз приводил ссылки на легкое-доступное чтиво про ПИД регули…
И что бы тряска коптера так не влияла, как известно “Д” капризное к вибрациям.
ну не путайте народ не разобравшись… к вибрациям чувствителен “И” параметр… т.к. это интегрирование… суммирование по другому… т.е. если суммировать шум/вибрации в цикле, это приводит к дрейфу системы в произвольном направлении…
В общем, на мой взгляд, код там как в классическом PID регуляторе, только чуть оптимизированный под конкретную задачу.
не совсем так:
- для акро мода это PID
- в случае левел мода это комплексный PI-PD
www.multiwii.com/forum/viewtopic.php?f=7&t=905&sta… -
pidcontrol.narod.ru - вот оч. понятная статейка про классик ПИД регуль
з.ы. “Д” параметром в мультиви можно регулировать скорость системы в целом… хотите плавности и мягкости, подымайте его до 40-50, но при этом он уменьшает влияние “П” параметра, потому его надо тоже увеличивать пропорционально… мои любимые ПИД-ы для акро 7…9-0.03-40
nsk-racer, на каком-то из форумов читал, что регули вообще желательно калибровать, подключив вход к приемнику напрямую. Я именно так и делаю.
но можно еще и через посредника в виде multiwii. Про такое тоже читал, но не пробовал
мляяя… вот лень хотябы заснуть в гугл транслейт почитайте ветку… ни разу он не классик… я тут уже ни раз приводил ссылки на легкое-доступное чтиво про ПИД регули…
Видел я эту ссылку. Родная библиотека PID от arduino такая же как и мултивии, к слову говоря, там D вычитается.
ну не путайте народ не разобравшись… к вибрациям чувствителен “И” параметр… т.к. это интегрирование… суммирование по другому…
Вообще-то наоборот 😃.
Вибрация суть гармоническое колебания и сумма за n-ное время даст 0. Но вибрация это плохо и на практике дрейф будет, т.к. интегрирование дискретное и ошибка накопиться.
А D это производная от скорости, там “случайные” значения угловой скорости очень не желательны. Т.к. вот воходные данные для D это угол наклона касательной к той синусоиде от гармонических колебаний. Т.е. в произвольный момент времяни D этот может иметь практически случайные значения.
з.ы. “Д” параметром в мультиви можно регулировать скорость системы в целом… хотите плавности и мягкости, подымайте его до 40-50
С моими пропами с ХС он этого не переживет. Если Д сделать больше 20 - его трясти начинает.
но при этом он уменьшает влияние “П” параметра, потому его надо тоже увеличивать пропорционально…
С этим согласен(полностью разобрался уже позже), с дугой стороны обратного я и не утверждал.
nsk-racer, на каком-то из форумов читал, что регули вообще желательно калибровать, подключив вход к приемнику напрямую. Я именно так и делаю.
но можно еще и через посредника в виде multiwii. Про такое тоже читал, но не пробовал
я пробовал калибровать споиощью приёмника, калибруется и работает, но подключаю потом их к ардуине и всё привет, пищание
я пробовал калибровать споиощью приёмника, калибруется и работает, но подключаю потом их к ардуине и всё привет, пищание
Из моей практики: У меня аппаратура 2,4Гц. Откалибровал 4 регулятора через приемник, подрубаю к ардуине все регуляторы пищат. Долго ломали головы с другом, несколько раз калибровал. Результат 0. Потом взяли аппаратуру 40мГц. Подрубил к приемнику, откалибровал, все заработало. В чем дело так и не понял.
я бы грешил на помехи по питанию. как питание включено? если ардуина “большая” то можно на неё питание прям с батареи (2s или 3s) подать, на круглый разъем. а приёмник попробовать запитать от ардуины.
надеюсь провода питания с драйверов не соединены между собой?