MultiWii
Задержка калибровки
Спасибо,ИМХО очень полезная функция.Лично меня напрягала калибровка с пульта,включить не не “встряхнуть”,особенно при микро размере коптера,очень сложно.
Не очень важная доработка но я думаю что полезно: более точная калибровка нуля гироскопа. Сейчас в коде ноль округляется до целых. Так как данные гироскопа интегррируются, даже небольшая ошибка накапливается. Лучше окрулять до десятых, тем самым слегка повышается точность и уменьшается дрифт.
Попробовал.Признаться не заметил ни какой разницы в поведении,видимо размерность тоже имеет свое значение.
А можно сделать и задерджку, по моему так удобнее.
согласен… предложите чтобы включили в прошивку и по желанию можно было отключить/включить
Но если вы внимательно посмотрите код, вы увидите что я также не ввожу плавающую запятую, лишь уменьшаю делитель на 10 в одном месте и увеличиваю на 10 в другом. Тем самым сохраняю десятые доли и это работает (проверял на графиках).
виноват… все верно, только вот судя по коментам в коде у гиры диаппазон +/- 8192, т.е. дадут ли тут десятые что либо? если практическая польза есть то можно и до сотых тогда посчитать, т.е.
Sensors.pde, GYRO_Common():
...
if (calibratingG == 1) {
gyroZero[axis]=g[axis]/4;
...
for (axis = 0; axis < 3; axis++) {
gyroADC[axis] = (int32_t)(gyroADC[axis] * 100 - gyroZero[axis])/100; ...
только gyroZero сделать 32 бита
Согласен, мой вариант надо немного сконфигурировать. Опять же посмотрите на добавку кода в config.h, там я предлагаю померять показания отрыва от земли и выставить центр экспоненты в эту точку (параметр THROTTLE_HOVER). Но результат стоит того. И кстати, если у вас есть подстройка кривой в самом пульте, вам также придется сначалаа померять точку отрыва, чтобы правильно нарисовать кривую.
изучу и отпишусь обязаточно! кстать если выставить точку отрыва в центр экспоненты, этож получится что “плавная” часть газа будет только на снижение, а увеличение газа как раз “резкое” по экспоненте (т.е. на подъем)… Я же себе представлял, что точка отрыва должна быть примерно в первой трети экспоненты для того чтобы его проще было держать в соостоянии висения (равновесия т.е.). Поясните тут пожалуйста. Хотя тут же начал думать что так и надо 😃 т.е. уменьшение газа плавное для снижения, увеличение газа как раз резкое чтобы “подхватывать” при снижении проще было… или все не так? 😃
Если хороший гиро, то можно посоветовать уменьшить вклад акселерометра в нахождение вектора ориентации. Попробуйте увеличить параметр в IMU.pde
Но надо смотреть по гафикам, насколько сильно уплывают показания гироскопа без акселерометра (для проверки поставьте GYR_CMPF_FACTOR 10000.0f).
буду пробовать, но не раньше чем через неделю-две…
только вот судя по коментам в коде у гиры диаппазон +/- 8192
Это максимальные значения при довольно сильных угловых скоростях (кстати занженные в MultiWii, изначально гира выдает почти что полные int16). В нормальной работе гира выдает данные недалеко от нуля. И мы прбавляем каждый раз измеренный средний ноль. И если там сидит ошибка к примеру 0.5, она быстро накапливается при интегрировании. Но это опять же силно зависит от гиры, на моей одна ось попадает в ноль точно, а вот вторая убегает быстро с округленным нулем. После ввода десятых становится стабильной как и первая. Вводить сотые смысла нет, ноль не на столько стабилен и там уже шум больше чем сотые.
Была мысль убрать деление на 4, чтобы ещё повысить точность, но тогда надо пересматривать всю арифметику на предмет переполнений, и мержиться с SVN будет сложно.
этож получится что “плавная” часть газа будет только на снижение, а увеличение газа как раз “резкое” по экспоненте (т.е. на подъем)
Нет, и на подъем и на снижение будут плавные части. Хотя и говорится про одну экспоненту, на самом деле их две (как и на ручки наклонов), соединенных в своей нулевой точке. С такой кривой мы быстро выбираем нерабочие участок до отрыва, затем плавно идет в районе отрыва и далше, и потом быстро растет до максимального газа.
И кстати посморите на второй параметр SHIFT_HOVER. Если у вас отрыв идет на 2/3 газа, то есть возможность сместить его в 1/3 и больший диапазон использовать для полета.
Вот и мне пришли 2 платки ALLINONE, в конверте была вложена распиновка только для одной платы, а вот для этой 5V c GPS небыло… может кто подскажет распиновку или как её подключить?..
Cкан от 3.3V. на 5 вольтовой поменяны местами RX и TX.
Небольшая инфа, списался с производителем этих плат… Он сказал что 3,3V платы можно питать от 5V на плате есть стабилизатор.
Олег, большое спасибо!
Киньте пожалуйста в меня скриптами, чтоб каждый датчик отдельно проверить на плате ALLINONE…
Друзья, а что это за платка и какие датчики на ней стоят, кто знает?
Она же крупно
чтоб каждый датчик отдельно проверить на плате ALLINONE
можно просто для arduino под каждый датчик скачать библиотеку отдельную. там и тестовые скетчи есть. я так проверял когда плата пришла, но библиотеки на домашнем компе только есть. но гуглом ищется быстро
Дмитрий! Большое спасибо за помощь! Списывались по скайпу…
какие датчики на ней стоят
слевой стороны стоит микруха гироскопа ITG3200 (или аналогичных), полностью совпадает с даташитом
справа стоит датчик очень похожий на BMA180
ЗЫ кстати, очень интересный вариант платки мультивия квадро с пятью каналами, ничего лишнего, процессор, датчики, питание датчиков на 3.3 вольта, наверное не дорого стоит? где такое можно приобрести?
Друзья, а что это за платка и какие датчики на ней стоят, кто знает?
100% Хэнд-Мэйд.Кто-то просто развел и изготовил себе и вероятно еще и друзьям перепало.
Подскажите у меня nunchuck включен или нет. Если нет, не подскажите как его включить? Начинаю поднимать коптер, он переворачивается. Калибровки все сделал.
Включен то включен, но на графике не видно ничего. Потряси, если нет графиков относящихся к акселю, значит не работает аксель.
Включен то включен, но на графике не видно ничего. Потряси, если нет графиков относящихся к акселю, значит не работает аксель.
Всплески есть. Забрал сегодня OpenPilot, пока откладываю wii.
Здравствуйте,вопрос к Гуру кодонаписания. Есть необходимость поменять местами пин D3 c D8 (вывода PD3 и PB0 на 328 Меге).
Мои ковыряния в коде результата не принесли,подозреваю что надо править во многих местах.
Буду признателен за информацию по этому вопросу.
На днях получил запчасти к своему мультикоптеру…
Собственно основное - РУ на 9-8 каналов (ну не хватает мне 5.5 на старой! Ни пуск-стоп приделать, ни что-либо ещё!) и 5 штук мотор-контроллер…
Сейчас думаю над апгрейдом, ради которого и затевалось: увеличить грузоподъёмность числом моторов, благо МультиВий до окто- дошёл…
Собственно варианты:
- 4+4, или квадро-8
- Гекс
- Окто “классический”
Плюсы-минусы:
- Почти без переделок, но стрёмно запускать…
2-3. Раму придётся делать с нуля. Зато винты торчат вверх и садиться может почти на брюхо.
Собственно нужен совет с точки зрения живучести аппаратов разных схем.
В идеале, наверное, схема квадро-8, но хитрая, когда верхние и нижние моторы питаются от разных акков и щелчком пульта можно переключить схему между “4-верх - 4+4 - 4-низ” - тогда, по идее, при отказе части моторов аппарат хоть как-то можно посадить, а не просто уронить…
Здравствуйте,вопрос к Гуру кодонаписания. Есть необходимость поменять местами пин D3 c D8 (вывода PD3 и PB0 на 328 Меге).
Мои ковыряния в коде результата не принесли,подозреваю что надо править во многих местах.
Буду признателен за информацию по этому вопросу.
Не уверен, это моторные пины?
Попробуй в def.h
#define MOTOR_ORDER 3,5,6,2,7,8,9,10
Поменять местами 3 и 8
(проша 1.8)
А, да, учти - там эта строчка почти два раза - для Мега и Мини, причём мини идёт раньше и там всего 6 чисел.
Друзья, подскажите в чем может быть проблема - с прошивкой 1.7 все более менее работает, как только заливаю 1.8 p2 отключается itg3200 😃.
В гуи молчит, и по ощущениям тоже не работает… платка которую Covax на фото выше постил.
как только заливаю 1.8 p2 отключается itg3200
Смотря что за платка. У меня помогла смена адреса 0x80 на 0x82 датчика на I2C шине (в 1.7 также менял ручками)
Попробуй в def.h
#define MOTOR_ORDER 3,5,6,2,7,8,9,10
Поменять местами 3 и 8
(проша 1.8)
А, да, учти - там эта строчка почти два раза - для Мега и Мини, причём мини идёт раньше и там всего 6 чисел.
Немного не то имелось ввиду. Хотел поменять местами BUZZERPIN (8, OUTPUT) PORTB с PIN (3,OUTPUT) PORTD.
Вроде все поменял,т.е PORTD и PORTB,последнюю циферку в таких скобках &= ~(1<<3);чтобы соответствовало.Компилируется,зашивается,но не работает.Есть подозрения,что где-то надо еще подправить.
Платка allinone пока прижилась на пирате. А руки чешутся… 😃
На маленьком коптере стояла плата с гириками от wii. Поставил аксель adxl335 rcopen.com/forum/f123/topic246336/2
Квадрик стал очень резким. Думаю, что надо загрубить гиры. Найти это в прошивке 1.8 не могу.
А может не в этом причина?