MultiWii - обсуждаем и отлаживаем Alt Hold

Сергей_Вертолетов
alexmos:

А в криусе - не будет, это да, но за 40$ это было б уже альтруизмом

Сделали бы версию Crius MultiWii Pro, с датчиками по-лучше, и с супер-барометром, пользовалась бы спросом!

8 days later
mahowik

Подрубил сегодня сонар (прошивка r23). Держит хорошо +/-10…20см на высоте до 1.5.-2м. Если выше, начинает переходить на баро и тогда дергаться как параноик… Надо фиксить вибрации на акселе, т.к. в IMU аксель фильтрованный, а вычислении ускорения/скорости для “D” сырые raw данные с акселя.

Если кому интересно, вот изменения для сонара на mega1280 (совместимые с пиратом). Т.е. триггер на 9-й пин, эхо на 10-й:
config.h

#define SONAR_PING 9 // PIN that trigger measure
#define SONAR_READ 10 // PIN to read response pulse, 12 or 8

Sonar.pde

...
#if (SONAR_READ==10)
    #define SONAR_READ_MASK B00010000
#endif
...
#if defined(MEGA)
    // TODO: setup interrupt on MEGA
    PCICR |= 1; // PCINT activated for PORTB
    PCMSK0 = SONAR_READ_MASK; // sonar port B4 - d10 echo
#endif

НО работать будет только при использовании PPM SUM, т.к. сонар висит на том же прерывании (PCINT0_vect) что и в конфигурации для PROMINI. Если кто поможет перевесить на другое прерывание, ВЕЛКАМ! 😉

p.s. Не везет мне в последнее время с крашами. Раньше с 10м падал и лишь ломал пропы или лучи гнул не критично, а сегодня блинн на ровном месте, на высоте в пределах метра чет крутануло, сбросил газ и вписался в забор металлический … итог: минус 2 пропа, сломал ось, выломал ротор живьем… подшипник так и не нашел ((

alexmos
mahowik:

Подрубил сегодня сонар (прошивка r23). Держит хорошо +/-10…20см на высоте до 1.5.-2м. Если выше, начинает переходить на баро и тогда дергаться как параноик… Надо фиксить вибрации на акселе, т.к. в IMU аксель фильтрованный, а вычислении ускорения/скорости для “D” сырые raw данные с акселя.

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

mahowik:

НО работать будет только при использовании PPM SUM, т.к. сонар висит на том же прерывании (PCINT0_vect) что и в конфигурации для PROMINI. Если кто поможет перевесить на другое прерывание, ВЕЛКАМ!

На форуме мультивия вроде есть для меги решение. Я не стал копировать так как все равно потестить не смогу, меги нет. Но ты можешь попробовать.

mahowik
alexmos:

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

Я не сомневаюсь что работает 😉 Потому и говорю, что у меня скорее всего из-за вибраций на плате не правильно D считается, т.к. raw дата используется с акселя для этого…
У тебя, недавно прочитал, демпфер установлен, а у меня по старинке аксель на скотче висит, что для левел мода ок, но не для альт-холд… И как я раньше до этого не допер ))

alexmos:

На форуме мультивия вроде есть для меги решение. Я не стал копировать так как все равно потестить не смогу, меги нет. Но ты можешь попробовать.

www.multiwii.com/forum/viewtopic.php?f=7&t=1033&st…
Если ты про это, то пробовал. Та же проблема в итоге, т.к. тот же вектор прерывания там…

#define HCSR04_EchoPin_PCINT_vect    PCINT0_vect  // PCINT0-7 belog PCINT0_vect
alexmos
mahowik:

www.multiwii.com/forum/viewto...tart=80#p11815 Если ты про это, то пробовал. Та же проблема в итоге, т.к. тот же вектор прерывания там…

Да, про него. В меге вроде побольше прерываний, в том коде хорошо все в дефайны вынесено - можно попробовать там указать другой вектор… Только надо покурить датащиты и нати, что свободно.

А у тебя какой приемник? Ищу сейчас с 8-ю каналами и sum-ppm, есть такие?

Dimm168pin

c ppmsum frsky d4f сжег, он был 8 канальный, очень чувствителен к питанию, на трешке вообще не применительно т.к шум от сервы на дает даже армнуть т.к все каналы хаотично скачут

mahowik
alexmos:

можно попробовать там указать другой вектор… Только надо покурить датащиты и нати, что свободно.

в том и дело что просто вектор прерывания поменять недостаточно, а надо еще править регистры какие то и понимать что делаешь ))

alexmos:

А у тебя какой приемник? Ищу сейчас с 8-ю каналами и sum-ppm, есть такие?

у меня аппа турниги 9х с 8 канальным приемником лежит уже 3 месяца… все руки не доходять )) надо проверить мот там есть…
а вообще, если тебе банально не хватает тумблеров для активации режимов, то можно многопозиционник впихнуть и будет счастье ))

TimAU
mahowik:

А можно отвлеченный вопрос задать? Вы вот на multiwii форуме рекомендовали пиды для YAW 8.5-0.045, а D каким ставить надо? Я себе поставил YAW 8.5 - 0.045 - 0 и у меня слегка крутится против часовой стрелки, не знаю как победить…

skyrider
alexmos:

Моя прошивка как раз для CriusSE настроена, на ней и тестирую. Вообще по основным настройкам - выставляйте все так же, как и в обычной 1.8, 1.9. Если есть вопросы - то смотрите в стандартных руководствах как что настроить. Мои настройки в конце, там надо убрать OPTFLOW и настроить SONAR (фактически только его подключить надо и все оставить по умолчанию). И установить THROTTLE_HOVER на покаатели газа в момент отрыва, или закоментировать вообще этот блок.

Сегодня отлетал два пака на r18, по сонару все просто супер, оба полета на высоте ~1метр (газ не трогал вообще!), выше подлетнуть и попробовать барометр не смог т.к. лил дождик и летал под деревьями.
Респект Алексей!

alexmos
mahowik:

у меня аппа турниги 9х с 8 канальным приемником лежит уже 3 месяца… все руки не доходять )) надо проверить мот там есть… а вообще, если тебе банально не хватает тумблеров для активации режимов, то можно многопозиционник впихнуть и будет счастье ))

Не понял, это как? Сейчас у меня передатчик от ХК - там две крутилки. Воткнуть туда переключатель-крутилку и навешать резюков? Но тогди и в прошивке надо копаться, да и ГУИ на три позиции на каждом Aux рассчитан.

TimAU:

А можно отвлеченный вопрос задать? Вы вот на multiwii форуме рекомендовали пиды для YAW 8.5-0.045, а D каким ставить надо? Я себе поставил YAW 8.5 - 0.045 - 0 и у меня слегка крутится против часовой стрелки, не знаю как победить…

D ставьте ноль, с него толку никакого. У меня тоже крутится на одной раме с квадратными лучами, где ось тяги моторов выставляется сложно… 😦 На самом деле это плохо, можно конечно ещё увеличить YAW P, I, поставить побольше Mag P но это плохо скажется на общей управляемости, и на моторах, и на расходе аккумов. Так что самое правильное решение - выставлять моторы, чтобы даже с небольшим YAW не крутилось. (Вот на втором квадре у меня лучи - трубки, и моторы там легко настраиваются, и проблемы такой нет.)

skyrider:

Сегодня отлетал два пака на r18, по сонару все просто супер, оба полета на высоте ~1метр (газ не трогал вообще!), выше подлетнуть и попробовать барометр не смог т.к. лил дождик и летал под деревьями. Респект Алексей!

Приятно слышать что работает 😃

mahowik
alexmos:

Не понял, это как? Сейчас у меня передатчик от ХК - там две крутилки. Воткнуть туда переключатель-крутилку и навешать резюков? Но тогди и в прошивке надо копаться, да и ГУИ на три позиции на каждом Aux рассчитан.

ну если прошивку не править, то можно как мин 3-х позиционники поставить, тогда как мин 4 режима на вкл./выкл. можно будет настроить…

skyrider

Алексей, как r23 в сравнении с r18, сонар и баро так же стабильно работают?
Только настроил на квадрике r18, собрал гексу с подвесом, залил r18, затем попробовал 1_9_а2 от mahowik, оказывается HEX6X и SERVO_TILT не работают вместе в прошивках ниже 2.0 , придется переходить на нее.

alexmos

Да, r23 вполне рабочая, я летаю на двух квадриках с ней.

Mihbay

Ребят пожалуйста если есть у кого наработки под сонар sr04 под прошивку 2.0. выкинете пожалуйста, либо прошивку, либо код с описание куда его вставить и к каким портам подсоединить, и это все потеряет смысл если это будет не под криус se, многие будут благодарны. А то мозги есть и сонар есть а все бессмысленно, а в 1.9 нет хедфри, а я как видео оператор постоянно ей пользуюсь

alexmos
Mihbay:

Ребят пожалуйста если есть у кого наработки под сонар sr04 под прошивку 2.0. выкинете пожалуйста, либо прошивку, либо код с описание

Михаил, прошивка и код есть выше в ссылках. Работает на криусе и с HC-SR04 и основана на 2.0. Не понял, чего вам не хватат 😉

Mihbay
alexmos:

Михаил, прошивка и код есть выше в ссылках. Работает на криусе и с HC-SR04 и основана на 2.0. Не понял, чего вам не хватат 😉

Ребят вы меня ради бога простите, может это тот сайт где на английском, я просто совсем не понимаю инглиш. Помогите, может у кого уже есть в сборе прошива, просто скиньте.

alex_f73
Mihbay:

Ребят вы меня ради бога простите, может это тот сайт где на английском, я просто совсем не понимаю инглиш. Помогите, может у кого уже есть в сборе прошива, просто скиньте.

Вот тут:
code.google.com/p/multiwii-alexmos/…/list

skyrider

Алексей, в r23 пиды ставить те же что в r18?

alexmos
skyrider:

Алексей, в r23 пиды ставить те же что в r18?

Честно говоря не помню уже. Я там по мелочи подкручивал алгоритм, так что можно поставить страые пиды, но запустить осторожно (быть готовым выключить alt hold) и подобрать заново. Но то что на скриншоте - вполне нормально для первого старта.

9 days later
gorbln

Алексей, а можно прояснить относительно 6-точечной калибровки акселя?
Калибрую аксель таким образом: Первый раз - в нормальном положении. Значения по Х и У устанавливаются в 0, по Z - 256.
Далее переворачиваю плату, жму калибровать - опять то же самое (изначально цыфирка была -300, устанавливается в 256). Теперь, когда я переворачиваю плату обратно в нормальное положение - значения акселя становится около 600-700. Остальные оси калибруются без эксцессов - сначала ничего не происходит, после калибровки в противоположном положении значения по осям в экстремальных положениях принимают значения -256 и 256.
Таким образом, откалибровать коптер по 6 точкам не получается ну никак. максимум по 5. Что мне посмотреть, куда копнуть?

alexmos

Хм, а что за аксель? По идее, при первой (классической) калибровке по Z -255, а по осталным осям (в том числе и перевернутой), даже без точной калибровки 255 ± 5-10, не больше. А у вас при переворачивании аж 300 вылазит. Очень похоже, что ACC_1G в коде для акселя неверно выставлен. Он может быть разный и определяется платой (или дефайнами в конфиге)