MultiWii

mataor

оч легко сделать по подобию того что и так сейчас рабтает

andrei124
Flight_art:

Добрый день!
Возникла такая проблема при постройке квадрокоптера: после арминга регуляторы издают беспрерывную трель, а моторы колеблются, вращаясь примерно на 5 градусов по часовой стрелке и обратно(регуляторы, акселерометр, магнитометр калибровал). При подключении регуляторов напрямую к приёмнику моторы работают как надо.
Комплектация квадрокоптера такая:
контроллер MultiWii PRO с прошивкой MultiWii_2_3
регуляторы Turnigy TRUST 55A SBEC
моторы NTM Prop Drive Series 35-30 1100kv
аппа Turnigy 9X
Подскажите пожалуйста как такую проблему решить.

запуск с акк и компом?

Leon11t
mataor:

оч легко сделать по подобию того что и так сейчас рабтает

Если бы было так легко, я бы сюда не писал.
Короче не могу понять как из серийного порта записать данные в переменную, которая отвечает за сохранения в eeprom и при следующем старте доставания их оттуда?

ADF

Вопрос:
В прошивке 2.3 два варианта кода ПИД-регулирования. Первый (официальный) - деревянный и корявый: И-составляющая вообще неправильно считается (в силу побитового сдвига, срабатывает скачком - в реальных полетах это проявляется как взбрыкивание коптера). Второй вариант кода - вроде бы нацелен на исправление этой проблемы, но по умолчанию не держит горизонт (коптер как пилотажка - ровнять вручную).
Какие есть еще варианты кода, отвечающего за ПИД-регулирование? Сам пока не лезу, так как отладка очень попахивает битыми коптерами 😁

serenya

Mahowii, летит из каропки, правда платная.

ADF

Спасибо, гляну.
Но в конечном итоге хоче все-же самостоятельно код колупать, а не зависеть от чужого. 😃

Да и подозреваю, что есть более локальные и бесплатные решения для оригинального, бесплатного, мультивия.

Владимир#
ADF:

Да и подозреваю, что есть более локальные и бесплатные решения для оригинального, бесплатного, мультивия.

Так зайдите посмотрите дневники маховика. Там есть и бесплатная версия. Сравните, посмотрите в каком направлении он идет, да вообщем то он и не скрывает что где крутил. А так полетаете на бесплатной может и денег не жалко станет на платную. И про другой интересный проект написано.

kostya-tin
ADF:

в силу побитового сдвига, срабатывает скачком - в реальных полетах это проявляется как взбрыкивание коптера

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

mahowik
ADF:

И-составляющая вообще неправильно считается (в силу побитового сдвига, срабатывает скачком - в реальных полетах это проявляется как взбрыкивание коптера).

Все пральна там… пересчитайте, тест напишите с выводом в консоль, если сомневаетесь… главный разработчик вия фанат low level фишек… ошибается редко…

kostya-tin:

если вы об этом

совсем не о том…

ADF

…и денег не жалко станет на платную.

Мне не жалко $25; мне хочется свой код фармить - но в тоже время я стал слишком ленив и склонен копипастить чужое, чем сразу писать свое. 😇

Все пральна там…

Я сам большой фанат щелканья битами и цельночисленной математики, но конкретно в расчете ПИДов - не стоит экономить на спичках и есть смысл вообще с плавающей точкой все решать.

Конкретизируя насчет оригинального MW: интегральная составляющая там корявая и проявляется это вот как: завешиваем коптер на подушке и начинаем ему как-либо мешать: например косим не очень густую траву, вызывая продолжительную помеху для пространственной ориентации. И в какой-то момент коптер взбрыкивает газом, чтобы вырваться оттуда. Тоже порой происходит при удержании высоты по баро и “уплывании” коптера вниз. И все это как раз потому, что интегральный сигнал ошибки прежде, чем умножить на коэф. I, сначала двигают вправо на 7 бит. Т.е. пока восьмой бит интегратора не щелкнет - И-составляющей просто нет, а потом - она резко есть, что и проявляется в виде взбрыка. Спасибо, что хоть не переворачивается!

PS: конечно все еще раз просмотрю и перепроверю (сам то я не компьютер - имею право ошибаться 😃) но помимо этого есть еще ряд недовольств мультивием и желание это исправить. В MahoWii, при всем уважении, судя по описанию тоже далеко не весь функционал есть, который был бы интересен лично мне. Так что ковырять код придется и так и эдак, вопрос лишь отправной точки. Надо еще мегапирата посмотреть и брад.

JonnyQuest

товарищи, вот патч для регулировки PIDов и прочих параметров регулятором с пульта, который забинджен на какой либо AUX канал. патч возможно грязноват, снимал на скорую руку еще и под виндой. Изначальный код не мой, написан был под 2.2. Я переписал в формате 2.3 поправил имена переменных и так далее.
Из кода можно понять как происходит запись и чтение значений в ЕЕПРОМ - Это в ответ предыдущим форумчанам.
Если есть какие-то ошибки или недочеты не пинайте, давайте допишем вместе. Конструктив я считаю полезный, мне как человеку собравшему первый квадр, очень не хватало такой возможности.
Протестировал с квадром на столе, изменял параметры, видел изменения в ГУИ.

multiwiiPID_POD.rar

Владимир#

А может ли мультивий в полете сам дисармится? Вчера в полете выключились моторы, вот теперь не знаю на что думать. Реги прошиты симонк, там вроде отсечек нет. В квартире висел до полного разряда батареи т.е. когда при полном газе уже не набирал высоту. Единственно альт-холд в квартире не включал. Может с альт-холдом так просадило что плата в перезагрузку ушла? Батарея конечно подсаженная была но не критично.

STRIMSS
Владимир#:

А может ли мультивий в полете сам дисармится?

Не знаю как в других multiwii, а в маховие дисарм не проходит при включенном том же альт холде

Владимир#
STRIMSS:

Не знаю как в других multiwii, а в маховие дисарм не проходит при включенном том же альт холде

Это то да. Я имел ввиду от каких нибудь сторонних факторов, например переворот.

ADF

По мере накопления дальнейшего опыта, начинаю меньше бздеть на ПИД-алгоритм штатного мультивия, но больше - на сам мультивий! Сегодня два раза при взлете инициализировался так, будто горизонт завален: один раз по тангажу, второй раз по крену. При перетыкании питания - горизонт был в норме. Странность на станности.

JonnyQuest
ADF:

По мере накопления дальнейшего опыта, начи
наю меньше бздеть на ПИД-алгоритм штатного мультивия, но больше - на сам мультивий! Сегодня два раза при взлете инициализировался так, будто горизонт завален: один раз по тангажу, второй раз по крену. При перетыкании питания - горизонт был в норме. Странность на станности.

Я в таких случаях запускаю рекалибровку асселя с пульта.

mahowik
ADF:

По мере накопления дальнейшего опыта, начинаю меньше бздеть на ПИД-алгоритм штатного мультивия, но больше - на сам мультивий! Сегодня два раза при взлете инициализировался так, будто горизонт завален: один раз по тангажу, второй раз по крену. При перетыкании питания - горизонт был в норме. Странность на станности.

при подаче питания нужно несколько сек. не дергать коптер, т.к. идет калибровка гирррр. и если гиры не в нуле после калибровки, то интегратор в ИМУ в момент начнет копить ошибку с частотой примерно 300гц, что и выползет завалом горизонта. аксель конечно тут помогает, т.к. по нему идет корректировка, но это не спасет от завала горизонта т.к. в итоге в комплиментарном фильтре будет найден баланс между накоплением ошибки и корректировкой…

Ну а проще врубить дефайн GYROCALIBRATIONFAILSAFE и забыть 😃

/* Gyrocalibration will be repeated if copter is moving during calibration. */
    //#define GYROCALIBRATIONFAILSAFE

вообще если читаете код или хотябы на инглише, то проще прочитать комменты в config.h и многие вопросы отпадут…

JonnyQuest:

Я в таких случаях запускаю рекалибровку асселя с пульта.

аксель не причем и калибруется один раз ровно в горизонт + иногда вишными тримами (шаг 0.2 град.) с пульта можно подкорректировать…

Ratverg

Блин, хоббикинг подвёл с доставкой, пропала посылка в которой OSD и пищалка, с концами. А квадрик уже собран 😃
Пока настраивал - посадил в ноль аккум, на одной банке до 1,5V 😦
Так жить нельзя, надо срочно какой-нибудь мониторинг напруги делать. Для начала, хотя бы чтобы светодиод загорался, когда напряжение падает.

Попробовал поподключать - ничего не вышло у меня. Толком не понял куда подключать сам светодиод в NanoWii
Мониторинг LiPo подключил как нарисовано в мануале.
Помогите плиз 😦

mikush

наконец то пришел акум, два месяца в пути был.
Квадр таки взлетел, но сам полет длился недолго (( rcopen.com/blogs/203417/19089
При взлете квадрик понесло назад и вправо, с перепугу выкрутил джойстик и в итоге неудачное приземление, не могу понять почему его потянуло ? Я думал что так как у меня сигнал в цифре, то триммирование ненужно. Выходил ошибался ? в программе настройки PITCH,ROLL по 1500, это получается не гарантия того что квадр будет висеть неподвижно ?
Подскажите как реагируют значения PITCH и ROLL в программе MultiWiiConf ? допустим крен(ROLL ) вправо это 1000, влево 2000. тангаж(PITCH) вперед 1000 назад 2000?

serenya
Ratverg:

Для начала, хотя бы чтобы светодиод загорался, когда напряжение падает.

Если не ошибаюсь то никакого светодиода не предусмотрено в стандартной прошивке, зато предусмотренна пищалка, которая будет пищать при снижении напруги. Правда она же пищит и во многих других случаях, и я в большинстве случаев не понимаю по какому поводу.

mikush:

При взлете квадрик понесло назад и

Аксель калибровали? Реги калибровали? Как с вибрациями?

p.s. полетник прям олл инклюзив)

Ratverg
serenya:

Если не ошибаюсь то никакого светодиода не предусмотрено в стандартной прошивке, зато предусмотренна пищалка, которая будет пищать при снижении напруги.

а куда подключать пищалку?

mikush
serenya:

Аксель калибровали? Реги калибровали? Как с вибрациями?

все откалибровано было, вибрация тоже в норме через две резинки от сидюка. Получается при 1500 PITCH и ROLL должен взлетать без заносов, а триммирование на пульте это как раз что бы выставить эти 1500?

ADF
mahowik:

при подаче питания нужно несколько сек. не дергать коптер, т.к. идет калибровка гирррр. и если гиры не в нуле после калибровки, то интегратор в ИМУ в момент начнет копить оши…

Да, такое подозрение было, возможно я даже слегка пнул 😈 коптер в момент инициализации.

Большое спасибо за наводку!

mahowik:

вообще если читаете код или хотябы на инглише, то проще прочитать комменты в config.h и…

С английским проблем нет, есть проблемы с объемом информации, которая за раз в голову просто не лезет. Приходится осваивать код и его фичи поэтапно, крэш за крэшем 😁

kostya-tin
mikush:

Получается при 1500 PITCH и ROLL должен взлетать без заносов, а триммирование на пульте это как раз что бы выставить эти 1500?

да, сигнал с приемника мозг должне принимать 1500 в центральных положениях, сам коптер должен в горизонтали быть откалиброван. и еще советую посмотреть в сторону правельной ориентиции датчиков. я на самодельном мозге из ардуинки про мини и MPU6050 пока не настроил правельную ориентацию датчиков, то коптер при взлете крутило и норавило перевернуть

serenya
Ratverg:

а куда подключать пищалку?

Вообще по стандарту вот

Но думаю не составит труда переназначить например на D11.
В def.h в секции atmega32u4 (Promicro) ищем

 #if defined(D8BUZZER)
    #define BUZZERPIN_PINMODE          DDRB |= (1<<4);
    #if defined PILOTLAMP
      #define    PL_PIN_ON            PORTB |= 1<<4;
      #define    PL_PIN_OFF           PORTB &= ~(1<<4);
    #else
      #define BUZZERPIN_ON               PORTB |= 1<<4;
      #define BUZZERPIN_OFF              PORTB &= ~(1<<4);
    #endif

Меняем 4 на 7, должно получиться. Мой контроллер улетел, проверить не могу.

p.s. и включить в конфиге #define BUZZER