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

SergDoc

Сделал платки контроллера (36Х36) и программатора, поскудновато получились переходные отверстия на платке контроллера, 0.7 не влезли пришлось делать 0.6, а так как сверлю электроотвёрткой, то расколбасило слегка, ну ладно - запаял проводки терпимо, мне ж с ним не в загс идти 😃 в понедельник буду доделывать, остаётся пока открытым вопрос с драйвером под LSM мой ноут со всей дребеденью пока в нирване (затопили тут меня слегка - сушится уже дней 10 никак собрать руки не доходят), а на чужом нехочется ничего лишнего ставить…

Sir_Alex

У меня тут идейка возникла…
Основная проблема Ардуин - нехватка мощности CPU для быстрого обсчета положения в пространстве. У многих людей имеются FreeIMU, AllInOne. Так вот, а не сделать ли махонькую платку с STM32 на бору, у которой вход I2C и выход i2C. Эту платку надо будет включить между существующими платами сенсоров и основными мозгами Ардуины (т.е. ничего практически не меняется).
Задача этой платки будет - быстро обсчитать координаты и выдать их в виде углов Эйлера или кватерионов.
Думаю не сложно будет допилить код Ардукоптера, что бы он брал готовые данные от такой платки. Это даст производительность STM32, за смешные деньги и функциональность ардукоптера 😃

SergDoc

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

У меня была мысль повесить атмегу168 как микшер моторов но как то несозрело…

Sir_Alex
SergDoc:

вопрос тогда, а зачем ардуина?

Потому что есть готовый код (под AVR) для полета по точкам и другие плюшки Ардукоптера. И самое главное, у многих есть связка Ардуина (2560 или 1280) + плата сенсоров и в данной ситуации их надо выкидывать и покупать все по новой на ARMе, вот я и хочу сэкономить людям денег. Такая платка будет стоить баксов 10 если не меньше.

SergDoc

Можно нарисовать, нужно что? 2 I2C, SPI, и UART на всякий случай, USB или на CP2102,за пару вечеров накалякаю, кто пробовать будет? 😃

Sir_Alex

Достаточно задействовать два канала i2c, и вывести UART для программирования. Возможно SWD для отладки. Короче, практически голый проц + кварц.
В принципе я и сам могу нарисовать в EAGLE, у тебя есть либа под STM32F103C8T6 ?

SergDoc
Sir_Alex:

у тебя есть либа под STM32F103C8T6

Здесь в архиве есть STM32F103CBT6 они одинаковые…

ой тю-тю щас залью

обзывается PROC

LBR.rar

SergDoc

SPI на всякий случай вывести стоит IMU разные бывают, и к арду лучше по SPI подключится

SergDoc

Платку собрал, залил в неё прошивку от naze 32 просто для проверки работоспособности и вот не знаю радоватся или огорчатся, что-то определилось как гироскоп 😵 следовательно нужно будет прибить гиру или же прямо его, драйвер, и переписать, а вот аксель у LSM330 уж очень больно похож на MMA8452 и этот самый MMA8452 у Таймкопа в прошивке есть 😃

HikeR
Sir_Alex:

а не сделать ли махонькую платку с STM32 на бору

попробуйте, может получится быстрее, чем STM разродится своим INEMO-M1

а еще лучше развести аналог CHR-UM6-LT Orientation Sensor, который раздают по 150 баксов

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

SergDoc
HikeR:

а еще лучше развести аналог CHR-UM6-LT Orientation Sensor, который раздают по 150 баксов

Я тут на картинках дырочки сосчитал - плата двухслойная и размеры 2.54 - 2.5 СМ можно и на кухне изготовить 😃

HikeR

только аксель поменять, а то он всего +/- 2g maximum measurable acceleration

SergDoc

Ага, только я шяс до пенсии буду драйвер рисовать и Sensorautodetect искать у Таймкопа 😃

igor_v_t
Sir_Alex:

У меня тут идейка возникла…
Основная проблема Ардуин - нехватка мощности CPU для быстрого обсчета положения в пространстве. У многих людей имеются FreeIMU, AllInOne. Так вот, а не сделать ли махонькую платку с STM32 на бору, у которой вход I2C и выход i2C. Эту платку надо будет включить между существующими платами сенсоров и основными мозгами Ардуины (т.е. ничего практически не меняется).
Задача этой платки будет - быстро обсчитать координаты и выдать их в виде углов Эйлера или кватерионов.
Думаю не сложно будет допилить код Ардукоптера, что бы он брал готовые данные от такой платки. Это даст производительность STM32, за смешные деньги и функциональность ардукоптера 😃

Так исходная предпосылка ИМХО не совсем точна. Расчет DCM матрицы занимает 3 мсек. Остальное время тратится на чтение датчиков. Если чисто полетать то производительности хватает. цикл 5 мсек и изредка 6 . Поэтому если датчики не работают на более высоких частотах не имеет смысла возится.

SergDoc

Вот кстати что у меня получилось:

SergDoc

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

Sir_Alex

О! Добро пожаловать в Naze32Pirates 😃
Собсно я с ардукоптером этим и занимаюсь. После выхода каждой прошивки, допиливаю их код под наши датчики. Хотя там сейчас все стало проще, т.к. драйвера для датчиков как бы отдельно стали, только Класс датчика меняешь в настройках и все 😃

SergDoc
HikeR:

а еще лучше развести аналог CHR-UM6-LT Orientation Sensor, который раздают по 150 баксов

Во придумал, коробочки от HK401, F103 и LSM333(три в одном которые), два интерфейса i2c и USART как раз с двух сторон по 4 провода влезет, главное чтоб в 103 i2c одна мастером вторая слейвом работали, светодиодик на питание, можно ещё 2 для чего-нибудь (это про коробочку) ну и переключатель BOOT 0 так же на коробочку чтоб не открывать при программировании 😃

Sir_Alex
SergDoc:

Во придумал, коробочки от HK401, F103 и LSM333(три в одном которые), два интерфейса i2c и USART как раз с двух сторон по 4 провода влезет, главное чтоб в 103 i2c одна мастером вторая слейвом работали, светодиодик на питание, можно ещё 2 для чего нибудь (это про коробочку) ну и переключатель BOOT 0 так же на коробочку чтоб не открывать при программировании

ИМХО, такой вариант нет смысла делать, будет такой же никому не нужный как и CHR-UM6-LT. Это уже практически полетный контроллер получится а их уже и так тьма.

igor_v_t:

Поэтому если датчики не работают на более высоких частотах не имеет смысла возится

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

SergDoc
Sir_Alex:

ИМХО, такой вариант нет смысла делать, будет такой же никому не нужный как и CHR-UM6-LT. Это уже практически полетный контроллер получится а их уже и так тьма.

Зато дёшево и сердито, а смысл такой же как между полётным контроллером и IMU STM-ку воткнуть 😃