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

SergDoc
mahowik:

хехе… сейчас загадим Сергею темку!

Я думал это ты не спишь 😃 , у меня получается т.к. я с ноутом выгнан на кухню, то в обед, ну и вечером после 8-ми поковыряться, ну а просто потрещать можно и на работе 😃

Razek:

Странно что тогда такой квест получился

наверно как-то можно библиотеки скомпилить автоматически, но я ещё толком не разобрался как делать makefile…
проекту нужны скомпилированые библиотеки libcs3_stm32_high_density.a, libcs4_stm32_high_density.a и Libmaple.a которых в проекте не было… ну это и к лучшему ибо libmaple.a мне точно под свою плату переделывать…

rual
mahowik:

Так что жить AVR-ке еще долго

Ну это да! Живее всех живых! 😁 Вию ещё долго на АВРе телепаться.
А я 1.5 года назад, когда решил заняться автопилотом, пересилил себя и полез в СТМ32. Хоть это и затянуло получение результата, но получил опыт и “утоптанную поляну” для продолжения разработок.
Чем лучше СТМ:

  1. Быстрее.
  2. Удобней в разработке ПО (“толстая” встроеная арифметика, работа с длиными данными).
  3. На пару голов выше перифирия (ПДП, векторные прерывания и т.п.).
  4. Доступные и удобные средства разработки (платы Discovery, JTAG).
  5. Дешевле АВР.
mahowik:

по ценам, если с доставкой и налогами, то примерно в 2 раза дороже выходит…

Мне 3 платы Ф3 обошлись с доставкой (а она дорогая, транспортной компанией) от официалов в РФ в 2000 руб (~$60).

mahowik:

Серьезно, вопрос всем, где вы берете время? есть возможность прямо на работе ковыряться?

У меня времени на работе больше, чем дома:), с утра пока всех развезёшь, вечером соберёшь . Потому и брал дисковери, что можно иметь несколько макетов для разработки: 1-летает, 2-для разработки дома, 3-для разработки на работе.

Razek
mahowik:

серьезно, вопрос всем, где вы берете время?

Времени мало очень, а то что есть съедает какая-то мелочевка, то подвес пилить то раму восстанавливать то глюки от куда-то сыпятся, давеча потратил 2 вечера на поиски глюка с датчиком тока, хотел добится от него прецизионности, он все врал безбожно, в итоге оказалось что опорное напряжение у него 5.6 вольт а не 5, а его гнал регуль у которого в обвязке висел резистор на 204 когда по расчетам должно было быть 240.

Вообще это ты поделись тайными знаниями где ты время находишь на релизы собственных бранчей вия =)

oleg70

Подскажите, кто знает, зачем у STM несколько питающих (VDD) и “земляных” ног, c каждой стороны ?
На AVR-e делал запитку с любых удобных, но не уверен что прав… Не могу нигде найти инфу по этому поводу.
(плату почти развел, а тут затык…)

SergDoc

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

Razek
oleg70:

STM несколько питающих (VDD) и “земляных” ног, c каждой стороны

Да и на каждую пару желательно вешать кондеи

mahowik
rual:

Вию ещё долго на АВРе телепаться.

так и будет… хотя если учесть, сколько клонов вокруг (в том числе и на стм32), то вий уже давно переехал 😃
кстати, ради ознакомления, (опять 😃) советую посмотреть на проект от ziss_dm (от вия там давно ничего не осталось, еали кого пугает сам вий 😃)… там HAL реализован для AfroFlight32, STM32f3Discovery и ардуинки

rual:

Чем лучше СТМ:

читал пару обзорных статей по стм32… тут споров нет…

rual:

Мне 3 платы Ф3 обошлись с доставкой

тоже самое по сути… что то более 20 енотов за штуку вышло…

rual:

У меня времени на работе больше, чем дома

иногда так же, но начальник за спиной сидит и каждый раз когда открываю Notepad++, пописать че нить, то на стреме постоянно ))

rual:

1-летает

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

Razek:

Вообще это ты поделись тайными знаниями где ты время находишь на релизы собственных бранчей вия =)

вот на них пока все время и уходит, как “урванное” рабочее, так и свободное домашнее + еще дебильный саппорт дофига времени тянет… а по сути от “монетизации” хобби одни убытки получились, как моральные, так и материальные… писал в RC1 ветке как-то…

mahowik
DVE:

отладка и заливка одним кликом, IDE удобная, все гораздо приятнее получается

чет я уже потерялся во всех этих IDE… 😃
У кого работает/настроен полноценный дебаггер под stm32f3discovery/stm32f4discovery? т.е. под какую IDE и какой бубен для этого надо? 😃

rual
mahowik:

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

Да показать особо нечего, переделал корректор ИНС как у Тома Пикке, code.google.com/p/…/ahrs_simple_quaternion.c
неплохой алгоритм, вся математика алгебраически оптимизирована, можешь на АВР попробовать. Нужно подбирать коэффициенты. Счас горизонт лучше, но из-за наличия интегральной составляющей присутствует медленная раскачка.
Видио с отскоком от стен не делал, на работе в узком коридоре (когда все датчики “держаться” за стены) пролетел нормально, но снять было некому, пульт отпустить боялся:) а дома коридор широкий, после “отскока” от одной стены успевает разогнаться и не успевает затормозить у другой, поцарапал стены, поругался с женой:) Сделал вывод что нужен датчик скорости для граничения оной в межстенном пространстве. Гдето видел OpticFlow за 50 баксов и не могу вспонить где:( Вобщем кризис, пока голова не работает, работаю руками -собрал леталку для улицы, теперь у меня две штуки на Ф3. Буду ГПС прикручивать, нашел математику нужно проверять.

Geniok
mahowik:

серьезно, вопрос всем, где вы берете время? есть возможность прямо на работе ковыряться? (хехе… сейчас загадим Сергею темку! 😈)

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

DVE
mahowik:

У кого работает/настроен полноценный дебаггер под stm32f3discovery/stm32f4discovery? т.е. под какую IDE и какой бубен для этого надо? 😃

Coocox работает с f4 из коробки, ничего допиливать не надо. С f3 не пробовал.

Geniok
oleg70:

Подскажите, кто знает, зачем у STM несколько питающих (VDD) и “земляных” ног, c каждой стороны ?
На AVR-e делал запитку с любых удобных, но не уверен что прав… Не могу нигде найти инфу по этому поводу.
(плату почти развел, а тут затык…)

Есть небольшая статья по этому поводу вот тут: easyelectronics.ru/podklyuchenie-mikrokontrollera-…

Там правда АВР, но сути особо не меняет.

mahowik:

чет я уже потерялся во всех этих IDE… 😃
У кого работает/настроен полноценный дебаггер под stm32f3discovery/stm32f4discovery? т.е. под какую IDE и какой бубен для этого надо? 😃

Нравится IAR в этом плане. Как писалка кода не очень, в основном использую или Notepad++ или VisualStudio+VisualAssist. Зато как отладчик полностью устраивает.

Все работает из коробки, новый проект создается за 2-3 минуты.

Просьба будт ко всем, может у кого завалялась библиотека для мат вычислений на АРМ? Что-то типа arm_math.h , arm_math.c
Желательно для камня Ф4, но если для других есть, отказываться не буду…

Заранее спасибо!

SergDoc
Geniok:

Что-то типа arm_math.h , arm_math.c
Желательно для камня Ф4, но если для других есть, отказываться не буду…

у меня только wirish_math из maple выдрано…
в библиотеках CMSIS точно есть arm_math.h если что тоже есть…

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

arm_math.rar

mahowik
Geniok:

Просьба будт ко всем, может у кого завалялась библиотека для мат вычислений на АРМ? Что-то типа arm_math.h , arm_math.c
Желательно для камня Ф4, но если для других есть, отказываться не буду…

в этом архивчике с экзамплами www.st.com/web/en/catalog/tools/PF257904

или вот code.google.com/p/mwc-ng/source/…/arm_math.h

RaJa
mahowik:

чет я уже потерялся во всех этих IDE… 😃
У кого работает/настроен полноценный дебаггер под stm32f3discovery/stm32f4discovery? т.е. под какую IDE и какой бубен для этого надо? 😃

У меня вроде все работает по CooCox. Дебаггеров парочка - встроенный ST-LinkV2 и CooLinkEx

mahowik
RaJa:

У меня вроде все работает по CooCox

stm32f3discovery или stm32f4discovery?
CooCox поддерживает f4 из коробки (уже подтвердили выше)… если у вас получилось с stm32f3discovery, то расскажите плз. как… у меня не пашет…

Geniok
SergDoc:

у меня только wirish_math из maple выдрано…
в библиотеках CMSIS точно есть arm_math.h если что тоже есть…

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

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

SergDoc
Geniok:

в прерывании просто ставим флаг, что новые данные пришли.

войти в прерывание (потратить такты) изменить бит, выйти из прерывания (потратить такты)?

Geniok:

Если я падаю, то не хотел бы терять управление стиками.

это я утрировано сказал…

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

Geniok
SergDoc:

войти в прерывание (потратить такты) изменить бит, выйти из прерывания (потратить такты)?

это я утрировано сказал…

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

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

Razek
rual:

нашел математику нужно проверять.

А поделитесь ссылкой на математику?

SergDoc

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

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