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

SergDoc
DVE:

Уже год как продаются похожие платы на гудлаке

на гудлаке нет, есть PX4, Multipilot32 - под вопросом, ибо плата отдельно иму отдельно = бешеный ценник, что ещё похожее AeroQuad32 (не путать с AutoQuad - это отдельная история) ну и мифическая Revo от OP, отличие от гудлака в проце и MPU, по сей причине пока самому себе собрать (и на первое время адаптировать чей-то код) выходит дешевле примерно в два раза чем купить забугорную штучку в той-же комплектации…

SergDoc:

созданию собственного УНИВЕРСАЛЬНОГО контроллера для многомоторных систем, как пообещал знакомый программист не без исключения зачатков искуственного интеллекта (надеюсь).

а по поводу с чего всё начиналось: один человек мне пообещал опупенный алгоритм, а как только я начал делать что-то, утёк в кусты, вот и мучаюсь 😃 , а вообще все контроллеры на которых я летал и летаю сделаны мною собственноручно 😃

DVE

Я имею в виду цель в более глобальном плане:

  • сделать железо которого нет у других, например с картой памяти, Wifi, bluetooth, 800x600 экраном на борту и пр 😃
  • отладить более совершенные алгоритмы под существующее железо (типа того что делает Mahovik)
  • просто сделать плату и алгоритм под себя с целью повышения скилла

Если цель просто сделать клона с целью сэкономить, это выглядит странно т.к. как не крутись, у китайцев наверно дешевле выйдет…

Раз уж речь зашла о платах, хочется понять что это дает по сравнению с покупкой готовой, например PX4 (кроме прокачки скилла пайки, конечно 😃 )

SergDoc
DVE:

например PX4

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

oleg70:

Мне б от них отказаться, и освободить “ноги”…

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

rual
oleg70:

Вопрос к Александру (rual) как думаете, прерывания от гироскопа и акселя сильно необходимы? Мне б от них отказаться, и освободить “ноги”…

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

DVE:

например с картой памяти, Wifi, bluetooth, 800x600 экраном на борту и пр

карту памяти ещё понимаю, а остальное зачем:)?!

DVE:

отладить более совершенные алгоритмы под существующее железо (типа того что делает Mahovik)

не в обиду, но существующие железо мне не нравится (ну может кроме ПХ4, хотя к нему тоже есть вопросы). Пытался купить ПХ4 на ГЛБ по приемлемой цене, но продинамили… Посему из готового пользую Ф3Дискавери😁, для разработки самое оно, только и2ц аксель напрягает.

DVE:

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

плату я бы не делал, но первый пришлось ляпать самому,а вот проги пишу.

SergDoc
rual:

а остальное зачем?!

а чё телефон летающий получится - карман освободить 😃

rual:

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

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

Sir_Alex
SergDoc:

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

Ты про регистр готовности MPU? Я использовал в пирате, но отказался, т.к. и так понятно когда данные готовы (т.к. мы сами задаем частоту). А такая проверка - 150us коту под хвост 😃

Лично я вижу большой плюс этой темы: Тут реально можно что то спросить и получить ответ не у простых людей, а тех кто пишет и создает коптеры… Ну и что что все делают разные контроллеры, все равно в основном используются типовые решения 😃 Так что тема хорошая и спасибо Сергею, что поддерживает ее на плаву 😃

oleg70
rual:

только и2ц аксель напрягает.

Интересно, а есть ли приличные аналоговые датчики (гиры,аксели,магнитометры) ? Было б красиво - АЦП внутри STMа, и ничего не надо передавать с тормозами… “поэзия”…

SergDoc

Бяда, приличные значит дорогие и для них внутреннего АЦП маловато 😦 vis.asta использует, а для меня, например, это недостижимо дорого…

rual
SergDoc:

на выходных попробую вывести прерывание с акселя - посмотрю что выйдет… хотя смотрю у тебя на lsm тоже вектор некисло скачет даже в спокойном состоянии… а может её переделать совсем? а то уже страшная…

Я хороших акселей пока не пользовал, были бы доступны демки МПУ6000 SPI можно было бы попробовать. Еще говорят у МПУ есть режим трансляции компаса из собственной и2ц во внутренние регистры - был бы отличный вариант совсем без и2ц.

oleg70:

Интересно, а есть ли приличные аналоговые датчики (гиры,аксели,магнитометры) ? Было б красиво - АЦП внутри STMа, и ничего не надо передавать с тормозами… “поэзия”…

Программно всё вообще отлично получается - все данные ПДП разложит в ОЗУ с максимально возможной скоростью.

SergDoc:

Бяда, приличные значит дорогие и для них внутреннего АЦП маловато vis.asta использует, а для меня, например, это недостижимо дорого…

12 бит АЦП должно хватить,надо спросить у Виктора крайний набор его датчиков, думаю не сильно дороже СПИайного МПУ.

SergDoc

у YS-X4 тоже внешний АЦП и у AutoQuad и Мультипилота есть два ИМУ различных на аналоговых датчиках, на всем известных IDG и ISZ и на дорогиж гирах и у всех внешний АЦП…

Sir_Alex
rual:

Еще говорят у МПУ есть режим трансляции компаса из собственной и2ц во внутренние регистры - был бы отличный вариант совсем без и2ц.

Есть в исходниках multiwii, можно подсмотреть, правда там и сам MPU работает через I2C…

SergDoc

Ковыряюсь в AeroQuad32 никак не могу понять, AeroQuad - ардуино, но 32 не могу разобраться, поддерживаемые платы f1 f4 DiscoveryF4 и FF - та которую Таймкоп в назе32 первой версии превратил, код довольно аккуратный, но блин под что? попробовать в само собранную среду на eclipse запихнуть ?

oleg70
rual:

все данные ПДП разложит в ОЗУ

Кстати… (сейчас подошел к датчикам) стоит ли мне связываться с ПДП ? По моему должно быстрее работать, т.к. отвлекать проц. совсем не придется (но опыта НЕТ и поэтому сомневаюсь… грабли, какие ?).
Т.е. прерывание от гиро " толкает" ПДП ? или SPI ?
Как выстроить алгоритм по Вашему?

Razek
SergDoc:

Ковыряюсь в AeroQuad32 никак не могу понять, AeroQuad - ардуино

Она кросплатформенная правда это кросплатформенность на дно их тянет

SergDoc
Razek:

Она кросплатформенная

ага, надо ардуино 1 и выше, maple ide в пролёте, а потом спрашивает - а где ваши STM?, а где бутлоадер в проце? а есть там только на ф103, ну и т.д. буду ковырять дальше…

Razek

Либы там маполвские переписанные под F407. Все идет в дистре исходников. Компилер CodeSourcery ARM EABI (2011.09-69) новый криво компилирует, бутлоадер, да смотря чем заливать прошивки собираешься, могу скинуть оригинальный бутлоадер. Да кстати все что не 407 и не ардуино 100% поддержки нет.

SergDoc

надо всё-таки под eclipse (ide с поддержкой мапловских библиотек) перетянуть - будет счастье…

Razek

Гробага будет скорей всего, надо эклипс настроить на CodeSourcery компилер

rual
oleg70:

Т.е. прерывание от гиро " толкает" ПДП ? или SPI ? Как выстроить алгоритм по Вашему?

Уменя так: готовность ДУС-вн.прерывание-запуск ПДП-прерывание окнчания ПДП-расчет ДУС

Razek:

правда это кросплатформенность на дно их тянет

Ну эт смотря как писать, ну и не скрешивать бульдога с носорогом (АВР и АРМ). У меня, допустим, достаточно 2 файла заменить для перехода между СТМами, и 3й файл если менять датчики.

Alexsis1109

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

oleg70
Alexsis1109:

и есть что-то подобное на захват

Захват у таймеров 1 и 3 , вход называется “input capture”