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

rual
strizhmax:

Нужен таймер с 6ю PWM выходами, а таких 1 на весь проц. Это уже обсуждалось. Так что нужно будет 4ре проца.

Я 2 таймера насчитал.

strizhmax:

Даже не могу сказать почему они столько стоят.

Вот это и мешает широкому внедрению.

oleg70:

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

Нормально получается, расчеты датчиков в кватернион прямо на месте, остальное в жирной и тупой (103го хватит) многоножке.

oleg70:

У меня свободного SPI не получилось оставить…, передавал через USART уже готовые углы в градусах, всего восемь байт, если не “задирать” скорость (для надежности) то ~2 милиСек получается… в принципе нормально…
НО нарисовалась проблема с калибровкой магнитометра: - ему надо как то передавать команду в IMU “откалиброваться” а затем “нормальный режим”… короче не всЁ так просто с этой затеей +еще плата+ дополнительные провода (которые я очень не люблю), выигрыш отдельного IMU показался мне очень сомнительным (?)… в итоге пересадил датчик к основному процу и успокоился…

УАРТ не то, нужен синхронный скоростной интерфейс. Типа так

SergDoc:

У меня мысль процем иму посчитать всё сложить и дать прерывание на готовность данных, и забрать их процем полётника по SPI все скопом через ПДП…

По сути получишь данные прямо из ячеек памяти на основной плате.

SergDoc
djdron:

2 комплекта датчиков на разные “интерфейсные шины”

Imu поддерживает Usart, SPI, CAN, i2c в той же F4BY есть все эти интерфейсы наружу - проблемы не вижу…

rual:

Я 2 таймера насчитал.

дык нада лап побольше )))

rual

Вообще кончено с точки зрения программиста (калман-программиста;) ) два проца это хорошо, тяжкую ИНС в маленький, интерфейсы в большой. Но вот мне кажется для наших приложений и мозгов и надёжности одного проца хватает выше головы.

SergDoc:

за одно можно резервировать горячим резервированием… у меня раз тут компас сам по себе отвалился, хорошо не в полёте, а при тестах до этого коптер немного попинали, так что вообще удивительно, что мосх там цел остался…

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

SergDoc:

дык нада лап побольше )))

Это зачем?

SergDoc

тут тенденции именно к выносному imu - модно нынче (А2 например), а где смысл кучу проводов тянуть от просто-датчиков? нужен какой-то общий интерфейс - раз, можно посчитать сразу - два…

rual
SergDoc:

тут тенденции именно к выносному imu - модно нынче (А2 например)

Ну до А2 я никогда не дорасту… финансово ))))

SergDoc:

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

тут есть над чем подумать, но вот та же МПУшка-комбайн даст все датчики кроме барика по 6-проводам (это вместе с питанием), барик можно рядом с процом. Внешнему процу тоже надо 6 проводов, только плата будет больше и тяжелей (а основная будет такой же), и жрать лестричество проц будет.
Плюс получается только в программировании. ятд.

SergDoc

ты забыл про AIO и прочие поделки, которым можно подарить вторую жизнь, сгрузив всю “тяжелую” математику в IMU )))
вместе с питанием 8 - mosi, miso, clk, cs, int, +, -, а если ещё баро -9-й провод, и это “сырые” данные…
ты не переживай, мелкоплата с полным фаршем будет )))

rual
SergDoc:

ты забыл про AIO и прочие поделки, которым можно подарить вторую жизнь, сгрузив всю “тяжелую” математику в IMU )))

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

SergDoc:

вместе с питанием 8 - mosi, miso, clk, cs, int, +, -, а если ещё баро -9-й провод, и это “сырые” данные…

Да, про сигнал готовности я забыл, но где ты 8 насчитал? +5В (+3.3), 3 шт -SPI, + CS, +INT, земля: итого 7.

SergDoc:

ты не переживай, мелкоплата с полным фаршем будет )))

Да я не переживаю )) под мелкий надо простую плату с мелкими разъемами. Про многоплатный я так, фантазирую )

SergDoc
rual:

земля: итого 7

ну да))
с барометром 8, а если посмотреть на тот же А2, тогда can - 4…
так же можно и в одной коробке с полётником на супер-пуппер секретном подвесе из двухстороннего скотча, запакованную в мю-метал (достаточно люминия:) ) и с подогревом (постоянная температура - модуль Пелье)…
можно продолжать:). Чёт я уже нафантазировал))) но эти мысли у многих ходят - почему их не собрать в кучу?

rual:

Не вижу смысла тянуть их за хвост

зато знаешь их сколько ))) и использовать их как шимовыдаватель - светодиодоморгатель - самое то )))

oleg70
SergDoc:

тут тенденции именно к выносному imu - модно нынче

Несомненно, есть в этой тенденции свои плюсы, например легкая заменяемость на более совершенную модель, да и сточки зрения домашнего изготовления, всегда легче отлаживать и доводить “до ума” модульные поделки…
(а то - не понравилось что то в одной части - переделывать всё заново…), к тому же такие модули вообще могут изобретать разные люди, надо только о ЕДИНОМ протоколе обмена договориться…
К минусам отнесу именно необходимость создания ЭТОГО двустороннего протокола обмена, что несколько усложняет общую задачу…

SergDoc

народ тут вот что по 9250

Auxiliary master I
2
C bus for reading data from external sensors (e.g. pressure sensor)

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

MPU9250_EXT_SENS_DATA_00        0x49
MPU9250_EXT_SENS_DATA_01        0x4A
MPU9250_EXT_SENS_DATA_02        0x4B
MPU9250_EXT_SENS_DATA_03        0x4C
MPU9250_EXT_SENS_DATA_04        0x4D
MPU9250_EXT_SENS_DATA_05        0x4E
MPU9250_EXT_SENS_DATA_06        0x4F
MPU9250_EXT_SENS_DATA_07        0x50
MPU9250_EXT_SENS_DATA_08        0x51
MPU9250_EXT_SENS_DATA_09        0x52
MPU9250_EXT_SENS_DATA_10        0x53
MPU9250_EXT_SENS_DATA_11        0x54
MPU9250_EXT_SENS_DATA_12        0x55
MPU9250_EXT_SENS_DATA_13        0x56
MPU9250_EXT_SENS_DATA_14        0x57
MPU9250_EXT_SENS_DATA_15        0x58
MPU9250_EXT_SENS_DATA_16        0x59
MPU9250_EXT_SENS_DATA_17        0x5A
MPU9250_EXT_SENS_DATA_18        0x5B
MPU9250_EXT_SENS_DATA_19        0x5C
MPU9250_EXT_SENS_DATA_20        0x5D
MPU9250_EXT_SENS_DATA_21        0x5E
MPU9250_EXT_SENS_DATA_22        0x5F
MPU9250_EXT_SENS_DATA_23        0x60

короче всё придумано до нас 😦
SmartIMU
STM32F401 - 48 лап, FPU, амнистия, ранняя пенсия, харчи халявные…
MPU9250 - SPI
MS5611 - SPI

github.com/Hom-Wang/SmartIMU

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

CAN - нет…

oleg70
SergDoc:

bus for reading data from external sensors (e.g. pressure sensor)

Не пойму, а зачем ему “внутри себя” данные с баро ??

SergDoc:

короче всё придумано до нас

Ну да… а там за кадром, на ладошке - еще блок питания, разъемы, приемник, и получится те же … (😃)

SergDoc

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

alexeykozin

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

я то думал как это люди, настроенные на одну волну с любимым человеком могут понять когда у другого чтото случется.
наверное есть какой встроенный гарвитационный приемник в могзу будучи настроенным на “волну” родного человека все чувствует на расстоянии…

это я так, поржать от скуки…

strizhmax
rual:

Я 2 таймера насчитал.

При 64 ногах. А мы 48 рассматривали. Все равно 2 ставить.

oleg70
SergDoc:

ну что быть первым экспериментатором?

Обязательно! (но я тоже не нашел инфы на DMP MPU6000, похоже - или это коммерческая тайна, или - он тупо не работает)

SergDoc
alexeykozin:

это я так, поржать от скуки…

да ладно - нет никакой ложки)))

alexeykozin:

и вот она гравитационная картинка вселенной а не шум акселя.

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

alexeykozin
SergDoc:

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

а!!! зацепило!
это уже слишком много, думал все пропустят мимо ушей
😃)

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

SergDoc

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

rual
alexeykozin:

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

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

SergDoc:

Почитал - поковырялся, через регистры не катит

Как не катит? Она от 6000й отличается?

SergDoc

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

rual
SergDoc:

короче надо делать и смотреть - прокатит собирать, не прокатит вешать барометр параллельно на spi…

Стоп! Я что то мысль потерял… Ты хочешь привязать MS5611 к МПУшке напрямую?
Это точно не выйдет, МПУшка не поддерживает сложные алгоритмы считывания И2Ц, компас она отлично читает. Но МСка должна отрабатывать цикл запуск/считывание по внешним командам, МПУшка сильно тупа и неспособна поддерживать серии команд/чтений (((

strizhmax:

При 64 ногах. А мы 48 рассматривали. Все равно 2 ставить.

Точно, получается 2 корпуса на 4 движка, + БЕК +монитор питания + можно подумать над сервовыходами и мигалками, всё в КАНе.

Вот собственно двухплатная конструкция для мелких.