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

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-ку воткнуть 😃

Sir_Alex
SergDoc:

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

Неееет! Смысл моего предложения, задействовать существующие датчики. Ну зачем мне платить за еще одни, если у меня и так валяются AllInOne и FreeIMU?

Ну или как вариант, сделать полетный контроллер без датчиков. Т.е. Naza32 только без датчиков. В данном случае можно было бы адаптировать AfroFlight32 под существующие датчики.

SergDoc

Каждый шаг на пути усложнения в электронике – это новый шанс сделать ее хуже, то есть производить то, что ухудшает конечное качество (С) nadelectronics.ru

igor_v_t
Sir_Alex:

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

Я летаю на своей программе на базе ArducopterNG и матрица в каждом цикле полностью считается за 3 мсек. А в Арду навешали кучу сервиса и поэтому не успевают. У меня один из 10-30 циклов 6 мсек, остальные пять. Баро читается с частотой 100 Гц