Создание собственной системы стабилизации

SergDoc

Чёта ржу над собой, хорошо хоть только букву Д пропустил, а если бы ещё и О😵 даа фраза бы получилась😁
букву Д и правда в клаве оказывается клинит 😦

oleg70

Ха, это оказывается COMport на компьютере глючит ! (во как)
Обратил внимание, что сбой происходит при передаче байтов =100(dec) и 200(dec) то бишь 11001100(bin) и 1100100(bin) и
вот этот меандр ему не нравится… Стал тупо слать в порт 100 а принимается 10 !! (чего только блин не бывает!)
Целый лист исписал в теме… людям голову заморочил…

SergDoc
oleg70:

Ха, это оказывается COMport на компьютере глючит !

может надо драйвер прямого доступа к портам?

да вернусь - почему у меня отказывался работать uart+dma, на f4 слишком быстро printf отрабатывал, как следствие переполнение буфера dma…

Razek
mahowik:

Чувак замутил авто пид тюнинг!

Ох чувствую требование к вибрация высокое чтоб работало хорошо.
Кстати код ауто пид тюнинга давно появился в прошивках для 3D принтеров, пиды подбирает, но долго выходит на стабильное состояние с подобранными пидами.

Razek

Прикольная кстати фича:

Uncrashability Mode:

Uncrashability attempts to make the aircraft uncrashable by taking over the controls when danger approaches.  It uses the barometer to determine altitude and optionally uses the gps to determine location.  The home location and altitude are set when uncrashability is activated, so it should be activated when the aircraft is at a safe altitude.  If the software anticipates that the altitude will go below the home altitude, it will automatically bring the aircraft to level, then apply throttle to get it back to the home level.  If it goes more than a pre-determined distance from the home location, it will take over the control of the aircraft until it gets back in bounds.

Саш а у тебя же что-то похожее есть только без ГПС?

RaJa:

Круто! пробовал уже кто-то на своем железе?

Стыдно признаться, но уже и нет из авр актуальных платок есть самопальные шелды под разные арудины с древними датчиками времен царя гороха. Хоть заказывай, какое-то второе дыхание у АВР открылось.

RaJa

Стыдно признаться, но уже и нет из авр актуальных платок есть самопальные шелды под разные арудины с древними датчиками времен царя гороха. Хоть заказывай, какое-то второе дыхание у АВР открылось.

Да если честно, не думаю, что большая разница между ITG3200 и MPU6050. Или у вас еще древнее?
У меня самого вообще только MicroWii на Atmega32U4 валяется. Ну и разные ардуины, к которым можно присобачить датчики.
Есть еще Crius AIOP v2 на тестировании.

SergDoc

Жара блин, отлетал две батарейки и студить - горячие 😦 с гирами беда какая-то - дёргаться даже в акро стал, возможно из-за той же жары плывут? (летал на самом сонцепёке, людей нет) пришлось задействовать и аксель и маг - пошло летать, а на гирах какойто дёрганый…

RaJa
SergDoc:

Жара блин, отлетал две батарейки и студить - горячие 😦 с гирами беда какая-то - дёргаться даже в акро стал, возможно из-за той же жары плывут? (летал на самом сонцепёке, людей нет) пришлось задействовать и аксель и маг - пошло летать, а на гирах какойто дёрганый…

Вряд ли из-за жары, у меня с MPU6050 в APM2.5 на самом солнцепеке летал больше получаса, никак не повлияло.

Razek

Да, у меня рассыпуха в виде ITG3200 и BMA180, реально они хуже мпушек.

Реально, кстати вам под AIOP эту прошивку залить самое то, плата прям в стоке поддерживается без бубна

#define CONTROL_BOARD_TYPE CONTROL_BOARD_MULTIWII_PRO_2

SergDoc

заряжаюсь, вечером ещё раз взлечу… ибо настройки те же, что и в прошлый раз…

mahowik
Razek:

Саш а у тебя же что-то похожее есть только без ГПС?

да… в дневнике подробности…

RaJa:

если честно, не думаю, что большая разница между ITG3200 и MPU6050

Razek:

у меня рассыпуха в виде ITG3200

из своего опыта… гиры примерно одинаковые… я год налетал на 3205 и не могу сказать 6050 прям лучше… а вот аксель в mpu-ке получше, это да…

Razek:

Реально, кстати вам под AIOP эту прошивку залить самое то, плата прям в стоке поддерживается без бубна

пока не добавили дефайн на АИОП… MULTIWII_PRO это не то, там bmp085… в прошиве пока нет драйвера под ms5611 github.com/bradquick/bradwii_arduino/…/baro.cpp но адаптировать не сложно думаю… день-пять и будет ))

SergDoc:

с гирами беда какая-то - дёргаться даже в акро стал, возможно из-за той же жары плывут? (летал на самом сонцепёке, людей нет) пришлось задействовать и аксель и маг - пошло летать, а на гирах какойто дёрганый…

может вибрации полезли… вруби фильтр на гиру в drv_mpu6000.c на 20hz

static uint8_t mpuLowPassFilter = MPU6000_LPF_20HZ;
Razek
mahowik:

пока не добавили дефайн на АИОП… MULTIWII_PRO это не то, там bmp085…

Точно глянул на кинге совсем другая платка оказывается

SergDoc:

возможно из-за той же жары плывут?

Ну это проверить то не проблема просто прогреть квадрик на солнышке а потом полететь

SergDoc

Неа, я пропы поменял, вибрации бы аксель душили, приподнял чуть P и D отлетал батарейку нормально, гиры да, поставил на 20Гц - ещё по мелкоплате на прошивке Таймкопа знаю - на 42-х дёргается, но это не вибрации это скорей из-за особенности рамы - 12-е пропы для неё великоваты (на трёхе тоже на 11-х лучше себя чувствовала), надо 11-е заказать, а то нету нормальных у меня… и похоже один мотор у меня 750-й, а не 700, как-то уж очень обмотка отличается от трёх остальных, попробую из старого, с битым колокольчиком собрать…

SergDoc

надо, добивать что-бы логи писала, либо телеметрию на комп, а то серьёзно как слепой котёнок блин… наверно логи в первую очередь - флешь - то у меня на плате есть…

RaJa
Razek:

Да, у меня рассыпуха в виде ITG3200 и BMA180, реально они хуже мпушек.

Реально, кстати вам под AIOP эту прошивку залить самое то, плата прям в стоке поддерживается без бубна

Ну как тут уже сказали, разница в гирах невелика, у меня тоже этих платок 10DOF штуки 2-3 лежит на ITG3200 ADXL345 и пр.
Жаль только плата не моя, она у меня на тестах, да и адаптировать под нее код надо.

SergDoc

Вспомнил, я же цикл поменял, вот всё и поплыло, естественно пришлось новые ПИД-ы подбирать:)

Думаю тут надо перестраивать всё, ибо на таком цикле (3500) для проца и для гироакселя по SPI как-то не совсем комфортно? (нечем заняться 😃 )

SergDoc

Заказал наконец-то верхние платы - посмотрим как китайцы справятся с фигурным выпиливанием 😃

так что пока буду заниматься любимой работой - нефиганеделанием, пока ну ни к чему душа не лежит, а на полетать просто уже есть что 😃

Чё-та я задумался, коптер стал более “нервным”, батарейки греть начал! ну и т.д. пропы? что те 12/4.5 что другие 12/4.5 (отбалансированы) всё-же видать время цикла так повлияло… надо поэкпериментировать… там где кино я ставил 1500, а вчера 3500…

rual
oleg70:

это оказывается COMport на компьютере глючит ! (во как)

Управление потоком отключите

SergDoc:

с гирами беда какая-то - дёргаться даже в акро стал

Если раскачка плавная, то делай меньше П и побольше Д. Если же дерганья “нервные”, то делай меньше Д, происходит резкое перерегулирование по угловой скорости, при твоих винтах большой Д = высокие нагрузки на моторы (причем зарежимные, с низким КПД ВМГ),с вытекающими последствиями. Кроме того, если ты увеличил цикл обсчёта, то соответственно dt дифф. части тоже увеличилось (если ПО ПИДа это учитывает) и её вес возрос. Короче пробуй меньший Д.

mahowik:

а вот аксель в mpu-ке получше, это да…

Дык в нём весь корень зла для автоматики!

SergDoc
rual:

Короче пробуй меньший Д.

ну так я и поступил, но с циклом надо повозиться… а правильнее наверно сделать как в арду, привязать цикл к прерываниям от MPU, ибо батарейки не с проста греться стали…

rual
SergDoc:

но с циклом надо повозиться…

вот ещё подумалось: длинный цикл - высокие “ступеньки” в регулировании, тоже источник дерготни.

SergDoc

это да, да и фильтры надо пересматривать, думаю надо время задать примерно 1200 - 1300, с учётом того, что гироаксель читается быстрее, да частота проца высока…
думаю будет пару свободных вечеров, тебе верхнюю плату с твоим gps нарисовать? как разъём на антенну обзывается?

rual
SergDoc:

думаю будет пару свободных вечеров, тебе верхнюю плату с твоим gps нарисовать?

если нет “творческого порыва”, то не надо, пока она не к спеху. Надоть сначала основу облетать, жду комплектухи, а пока подбиваю теоретическую базу (книжек вумных набрал), учу математику…

SergDoc:

как разъём на антенну обзывается?

не знаю, завтра уточню… а может кераму сразу на плату припаять?

SergDoc

для неё дырка на плате нужна, а значит сам модуль где-то снизу - не не выход, ну можно выкинуть MicroSD? либо “отодвинуть” питатели ближе к SPI на их место модуль, а на место модуля антенну, но думаю лучше выносную?

 currentTime = micros();
    if (mcfg.looptime == 0 || (int32_t)(currentTime - loopTime) >= 0) {
        loopTime = currentTime + mcfg.looptime;

        computeIMU();
        // Measure loop rate just afer reading the sensors
        currentTime = micros();
        cycleTime = (int32_t)(currentTime - previousTime);
        previousTime = currentTime;

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