Нужна помощь по AeroQuad

sandeve

Поведение конечно абсолютно не адекватное. Вы говорите, что сигналы на моторы идут пропорциональные по всем моторам, но на видео полный расколбас сразу. Как установлен шилд, демпферы есть?

Попробуйте так и скажите что изменится:

  • Yaw PID (P=150, I=3, D=0)
  • Heading hold отключите, если включен

Проверяйте в стаб-моде.

Все остальные настройки оставьте по дефолту. У вас судя по длине луча (около 28) и весу должны нормально работать деф. настройки.

И еще, когда софт заливали дефайны правильно указали?

TheGreatDom

Вот поведение с Yaw PID (P=150, I=3, D=0)

Сигналы на моторы почти пропорциональные, не должен вроде так крутиться.

Залил в него новую прошивку AeroQuad_v2.5_Beta1. Изменений никаких. Yaw PID по ощущениям никак не влияет.

sandeve

Картинка из конфига, имхо, идеальная. Если это с работающими моторами, то просто лучше не бывает. На середине газа почти прямые линии - класс. Значит от моторов нет дребезга, уже хорошо.
Ну что остается проверить?

  • поясните по шилду, он все-таки есть? ну и проверить, конечно, не перепутали ли подключение каналов!
  • уменьшите пиды
    roll accel (2; 0.3)
    pitch accel (2; 0.3)
    roll rate (50; -300)
    pitch rate (50; -300)
    yaw(50; 2; 0)
    ну и включите Heading hold, пид (3; 0.1; 0)

И дефайны ваши покажите, что установлено.

Еще вот что, мега ваша перевенутая белым кругом смотрит на фронт (должна, если с шилдом работает). И у вас она точно по лучу, значит у вас + конфиг. Но когда вы roll даете влево, очень похоже что отрабатывают и Right и Rear мотор. Проверьте у вас д.б. define plusConfig

TheGreatDom

Картинка конфигуратора с выключенными моторами, показывает просто сигналы на контроллеры. Завтра сделаем с работающими движками и будем пробовать запускать с предложными пидами.

Самого шилда нету, датчики соединены на макетной плате.

В прошивке стоит плюс.

sandeve
TheGreatDom:

Картинка конфигуратора с выключенными моторами, показывает просто сигналы на контроллеры. Завтра сделаем с работающими движками и будем пробовать запускать с предложными пидами.

Самого шилда нету, датчики соединены на макетной плате.

В прошивке стоит плюс.

Понятно)
Зря вы дефайны не выкладываете, так можно долго гадать.

Если у вас есть 5843, ну его на фиг пока, закройте HeadingMagHold и FlightAngleMARG, определите только FlightAngleARG.

Сейчас, пока не полетите, только эти оставьте:
#define AeroQuadMega_v2
#define plusConfig
#define FlightAngleARG

TheGreatDom

оставили только это
#define AeroQuadMega_v2
#define plusConfig
#define FlightAngleARG

включенные моторы с пропеллерами:

команды вправо-влево:

поставили такие пиды:

sandeve:

roll accel (2; 0.3)
pitch accel (2; 0.3)
roll rate (50; -300)
pitch rate (50; -300)
yaw(50; 2; 0)

команды вправо-влево (влево крутится, вправо не крутится вообще):

слегка увеличенный газ, вертолет крутится влево:

sandeve

У вас каналы перепутаны (тут надо прикинуть, может просто оси перепутали!)
При повороте налево:

  • front и rear обороты растут
  • left и right падают
    Это и для икса и для плюса. У вас на графике где вы пишете влево - растут обороты right и left (зеленый и голубой график). Это не верно! При правильных соединениях при повороте влево расти должны front и rear (синий и красный график).

TheGreatDom

Может быть просто на картинке перепутали подписи:)
Жаль не получится пока это проверить, где нибудь через недельку руки дойдут. Спасибо что пытаетесь помочь!

27 days later
wlad

Мужики нужна помощь.

Сам не программист, но прогу arduino скачал, прогу для aeroquad (v2.4.2 она вроде на сегодняшний день стабильная) тоже скачал, конфигуратор AeroQuadConfigurator_v2.7.1 скачал.

Сделал аналог arduino nano v3.0 (atmega328, 16mhz) в инете видел что на минимальной конфигурации на ней летали.

Прогу aeroquad.pde откомпилил предварительно закомментировав под минимальную конфигурацию (выбрал пока для пробы #define AeroQuad_v1 // Arduino 2009 with AeroQuad Shield v1.7 and below, ну и выключил датчики давления, компас и т.п) и пытался залить в пустой проц.
Фузы выставил на проце правильно, но в терминале конфигуратора не видится платка… блин. (прога получилась по сообщению ардуино 26.5 кб (хекс на диске 75кб))

Схема мозгов правильная 100%, ft232rl (работает) настроена на com7 (в конфигураторе видится, но к плате не подключается).

Перед этим делал как было положено:
Протравил и собрал платку на atmega328, подключил ft232rl, прошил в мегу bootloader (с официального сайта ардуино), выставил фузы на 16мгц и отсечку на 2.7В, выставил фузы на ботлоадер, всё видится в проге ардуино ну и попробовал залить пробную прогу (мигалка светодиодом). Всё залилось, upload прошёл успешно через ft232rl, а когда повторно попробовал залить - не заливается (ошибка). Я начал менять комбинацию lock bits для запрета стирания прогой ардуино (скетчем) ботлоадера. (в инете есть статьи). Попробовал залить пробный скетч - залилось, но ошибка верификации, попробовал залить аэроквад - залилось, опять же с ошибкой верификации… ну и не видится прога в терминале конфигуратора… ё моё… задолбался уже.

Ещё сделал так - скомпилил ардуиной прогу аэроквада и в папке темп в винде нашёл свой hex и залил его в чистый проц атмега 328 (фузы на кварц 16мгц, лок биты по умолчанию) - всё равно не коннектится в конфигураторе… ft232 видимо не опознаётся и просится ботлоадер туда…

Чё я не так делаю?..

p.s Пока требуется минимальная версия для проб на основе atmega328 (arduino nano v3.0) + датчики (аксель + гиро типа ITG500 ISZ500)

Ещё вопрос, если пока подключать проц без датчиков - ft232 работать ведь должна? Прога конфигуратор всё равно должна определить что к ней atmega328 приконнектилась?

Ещё вопрос конкретно по ардуино - кто делал сам, как выставить lock bits в программе Code Vision avr?

В текстовом файле в ардуиновском архиве даны настройки фузов:
##############################################################

atmega328.name=Arduino Duemilanove or Nano w/ ATmega328

atmega328.upload.protocol=stk500
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600

atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F

atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino

##############################################################

С фузами разобрался - есть калькуляторы фузов из бинарного в нормальный вид - где в принципе видно какие галочки куда ставить и конкретно для Arduino nano v3.0 ставить

Bootrst = 0
Bootsz0=0
Bootsz1=0
Bodlevel1=0 , что типа значит что загрузка с ботлоадера и отсечка 2.7В

Далее надо выставить lock bits, чтобы “скетчи” ардуино не стирали ботлоадер, но тут я сразу не понял как…
надо сделать
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F

а калькуляторов перевода этих значений в инете не нашёл, потому как в кодевижене и пони проге ставить надо галочками:
bootlock bit 0 (4 варианта 11 / 10/ 01 /00) и bootlock bit 1 (4 варианта 11 / 10/ 01 /00)

Я на всякий случай скачал прогу программатора под avrdude SinaProg1.7.5.10 b и в ней через STK-200 перепрошил проц и выставил уже в виде бинарных значений, но блин опять скетч заливается, но верификацию не проходит, или херится ботлоадер… отсюда видимо не работает или не определяется ft232 в программе конфигуратора…

Вообщем кто понял что я спрашиваю просьба помочь, а так если всё пойдёт как надо попробую МК немецкий подключить к атмеге 328 (датчики ADXRS610 и аксель LIS344), если опыты пройдут успешно отпишусь.

p.s Можете кто-нить считать lock bits с помощью понипрога хотя бы… а то я пол ночи сидел угадывал, ну и фузы на всякий случай и прислать картинку или на форуме выложить, это для платы Arduino nano v3.0 или любой на атмеге 328 с любым кварцем.

wlad

С аэроквадом разобрались, оказалось что в оригинальном архиве с программой конфигуратором стояла скорость 111111 вместо 115200, это не заметил, первый раз ещё. Казалось бы вроде не сильно отличимо, но не работало… Ещё не сразу удалось скомпилить программу, так как не все датчики имелись в наличии и хотелось опробовать те что были (с этим вопросом помогли). И теперь касательно самой ардуины, никакой ботлоадер не нужен, достаточно скомпилить прогу в ардуине и найти хекс, а точнее путь к нему - путь к хексу активен по умолчанию в папке windows - temp где создаётся временная папка build_xxxxxx.tmp Потом любым программатором хекс заливаем в проц, а проц общается с компом через FT232. Вообщем всё. Потренируюсь на I2c датчиках и попробую переделать МК2.0, подключить ADXRS610 и LIS344.

wlad

Вообщем касательно простой переделки МК2.0 на аероквадовский софт - это есть тут: code.google.com/p/…/Jijuja_Project но там есть ряд факторов из-за которых этот вариант не очень устраивает, особенно в плане дальнейшей модернизации.

К форумчанам собственно вопрос:

имеем ардуино 022 (последний с официального сайта), имеем весь набор последнего аэроквадовского софта по ссылке: code.google.com/p/aeroquad/downloads/list

Более менее в компиляции разобрался, как скомпилировать под конкретную комбинацию шилда / проца и варианта датчиков тоже, но:

интересует поведение софта в конфигураторе 2.7, особенно отклонение датчиков (гир и акселя) вперёд / назад / влево / вправо и переворот на 180 градусов. Почему то в сети встречаются варианты с разной полярностью оси Z акселя, почему так?

Откуда узнать какие должны быть максимальные отклонения осей акселя? Какой должен быть уровень у гироскопов в окне сенсоров на графиках?

У меня пока не получается переделать корректно ITG500 в ADXRS610 и акселя от версии 1 в LIS344, вроде уровень вогнал (перед этим много видео посмотрел в инете про конфигуратор, и заметил что максимум акселя = 9.8 (, т.е ускорение свободного падения вверх и вниз от нуля), но когда проверяю по авиагоризонту, он у меня довольно сильно плывёт, градусов 10 в минуту - это бред, должен находиться как вкопанный…

Ещё кто переделывал под свои комбинации аналоговых датчиков как считали коэффициент accelScaleFactor? Есть ли какая нибудь закономерность в его подсчёте, а то я под конец просто тупо цифру подбирал чтобы при повороте на 90 градусов = 9.8 по графику?

Тупо скопировать часть кода от мультипилота не получилось, у них углы по другому считаются, в новом софте аэроквада те способы не поддерживаются уже.

Задача пока просто сводится к применению на атмеге 328 датчиков ADXRS610 и акселя LIS344 вместо варианта на ITG500 и последний аэроквадовский софт (точнее, который вроде как стабильный на сегодняшний день 2.4.2)

Covax

Железо MK на аэроквадовский софт переводите?)
Почему на аэроквадовский, а не ардукоптеровский? Вроде пираты к ардукоптеру уже научились разные датчики цеплять, чтобы ктото аэроквад ломал пока не слышал такого…

wlad

Так вроде как “заготовка” схожа… хотя спорить не буду, в подробности ардукоптера не всматривался, итак мозги кипят… 😃 Чисто переделать меня не особо интересует, так как уже переделывали ( мультипилот), но мне там кое какие моменты не понравились и мало информации с кем посоветоваться… а я не программист. Просто как писал Виктор (Vis) тут rcopen.com/forum/f123/topic243065/60 про I2c, вот и я согласен с ним… тем более уже по ноге получил винтом сильно, почти зашивать пришлось… глубоко резануло. На улице много раз шина подвисала при резких полётах, т.е ускорениях/торможениях, боролся с ней: провода укорачивал, переделывал силовые платы, кондёры добавлял, более менее получилось, но нет у меня к нему доверия, особенно после того как на человека чуть не упал из-за подвисона шины (10 полётов успешных было и тут на тебе…). Сам хочу теперь перейти на что-нить другое, пока потренируюсь на аэрокваде, а дальше видно будет.

Covax

Есть же платка для MK предотвращающая зависание шины…

wlad

Это LTC4304, но желательно чтобы вообще не висло… протокол I2c кривой у немцев, это подтвердит любой спец, кто в их софте копался…
А платка это тоже не выход - Vis свои аппараты специально испытывает на предельных в плане наводок режимах, провода длинные, всё торчит, как припаял при отладке… и т.п и специально длительные полёты проводит…

а у меня наоборот выходит, максимум экранировки, чистое питание, фьюзы bod в процах на 2.7В, минимальное расстояние от портов I2c регуляторов к портам I2c полётной платы. Ровная рама, новые двигатели, пропы более менее сбалансированные… и всё равно рано или поздно упадёт сам… 😦

После последней аварии повредило батарею 4S 6000мА, скоро скопытится. Руки не кривые у меня, аппаратуры для тестов две Спектрум с родным приёмником/сателиттом и клоном от оранж. А также Хайтек Эклипс с конвертором с аиркама на атмеге 644. Правда у конвертера глюк обнаружился, руку подносишь к корпусу атмеги и в МК туле сигнал приёмника падает почти до нуля. Вылечил подтяжкой резисторов, т. е все порты на землю посадил через 47К. И в фальгу замотал через изолятор, вроде глюков больше не наблюдалось.

И ещё LTC4304 не спасёт на квадрике… так что там она бесполезна, в лучшем случае выживет гекса с малой нагрузкой, а вот Y6 раскручивается сильно, что может и стабильность потерять.

wlad
wlad:

К форумчанам собственно вопрос:

имеем ардуино 022 (последний с официального сайта), имеем весь набор последнего аэроквадовского софта по ссылке: code.google.com/p/aeroquad/downloads/list

Более менее в компиляции разобрался, как скомпилировать под конкретную комбинацию шилда / проца и варианта датчиков тоже, но:

интересует поведение софта в конфигураторе 2.7, особенно отклонение датчиков (гир и акселя) вперёд / назад / влево / вправо и переворот на 180 градусов. Почему то в сети встречаются варианты с разной полярностью оси Z акселя, почему так?

Откуда узнать какие должны быть максимальные отклонения осей акселя? Какой должен быть уровень у гироскопов в окне сенсоров на графиках?

У меня пока не получается переделать корректно ITG500 в ADXRS610 и акселя от версии 1 в LIS344, вроде уровень вогнал (перед этим много видео посмотрел в инете про конфигуратор, и заметил что максимум акселя = 9.8 (, т.е ускорение свободного падения вверх и вниз от нуля), но когда проверяю по авиагоризонту, он у меня довольно сильно плывёт, градусов 10 в минуту - это бред, должен находиться как вкопанный…

С одним моментом разобрался, сглупил маленько, забыл раздефайнить “угол”… пока выбрал:
#define FlightAngleARG // Use this if you do not have a magnetometer installed

У меня как раз магнетометр пока не установлен…
Вообщем горизонт стоит как вкопанный, осталось с accelScaleFactor разобраться, ну и с масштабом гиры… тоже надо знать до какого уровня по графику должна реагировать гира…

wlad

benamur, профиль на ютубе benapilot ваш? Город совпадает… к вам есть несколько вопросов. Можете в кратце описать самый первый взлёт. Я так понял у вас вариант на атмеге 1280 с аналоговыми датчиками или ошибаюсь?

Я сейчас подгоняю adxrs610 в паре с Lis344 взамен конфигурации на ITG500 / ISZ500 и пока несколько моментов не понятны… Какой у вас размах отклонений значений акселя в конфигураторе? (до 9.8?) Какой максимальный всплеск на гироскопах?

И ещё важный момент, пробовали ли вы отклонять аппарат держа в руках, и при этом чуть чуть двигая стик Pitch / Roll?

У меня пока странный баг, и видимо он связан с алгоритмом вычисления угла… я выбрал пока ARG, вечером попробую другой вариант… Сам баг выглядит так: когда держу в руках, газ к примеру 30%, аппарат адекватно отрабатывает повороты и наклоны. Начинаю типа им управлять, двигая стик к примеру тангажа и он в исходное состояние не возвращается (режим stable включён), аппарат типа просит его переместить на какое то расстояние после чего стабилизируется… Мне примерно программист объяснил про логику работы этого режима ARG, что пока при таких тестах отключить интегральную составляющую… но всё равно интересно как-то. Немец МК очень адекватно работает как держа в руках, так и в полёте. Пробовал вчера оторвать аппарат дома, воздушную подушку вроде прошёл, и даже висит, но страшно пока, что ему взбредёт в голову.
benamur расскажите пожалуйста вкратце, какие параметры угла у вашего аппарата, а то тяжело собирать информацию… казалось бы много проектов с аэроквадом перекрываются, но читаешь иной раз и много различий…
Спасибо.

benamur

Да, ATmega1280, IXZ500 dual axis gyro, 5 DOF IMU, Shield v1.7
Нормально вел себя (avto) именно на прошивке AeroQuad_v1.7.1 последующие мне показались странными, да были завалы и он не выравнивался долго игрался с pid но нормального полета так как на 1.7.1 не добился.
Размах отклонений значений акселя в конфигураторе не могу сказать не помню прошился на v2.4.2 проверить и настроить времени нет.
Раньше в v2.4.1 FlightAngleARG выбрано, остальное закрыто.
Но все равно тупил. Летит, держится на автомате, выравнивается, дерну за стик все труба стабильный режим накрылся. Настрою дома, в руках отлично себя ведет выхожу на улицу вкл и такое впечатления что не настраивал 😦 при взлете валился на бок и не выравнивался)
На форуме квада промелькнула инфа что действительно более менее летательная v1.7.1
Более поздние нормально не работают ( так как I2C на это упор).
Думаю сделать обновления купить Sheld 2.1 и новые датчики, на ютубе летают прекрасно.
Прости если не смог помочь.

wlad

Да не, очень даже помогли, посмотрю как время будет прошивку 1.7.1, ради интереса, а так попробую ещё с пидами поиграться, алгоритм настройки более менее ясен. Начну с акро, просто для акро надо знать какое отклонение у гир по максимуму, ADXRS610 от ITG500 не сильно отличается по выходу, я пока сделал выход = половине опорника. Опорник AD780 = 3В стабильно. Размах отклонений показаний вроде на вид похож… а потом попробую стабл режим.

wlad

Какие параметры откликов на стики порекомендуете? Я так понял в конфигураторе это меняется (как на картинке)

Пробовал подлёты над диваном, уже получилось зависнуть, но пугает алгоритм ARG, если это он конечно…

Ещё на вид резкий отклик на стики, напряжно… экспоненты добавил на передатчике до 60% по Pitch / roll/ yaw