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

Sir_Alex

Я тут предложил производителю плат CRIUS AIOP подумать о перспективах и начать работу над ARM32 версией его платки. Мне кажется это реальный шанс собрать все наши наработки и сделать промышленный контроллер, ну а софт каждый сможет свой пилить под нее. На данный момент можно будет портировать прошивку Таймкопа и в скором времени появится ArduCopter под PX4 которую так же без вопросов можно будет портировать.
Что скажете?

Я предполагаю: STM32 F4, Датчики MPU6000 + MS5611 подключенные по SPI и использующие прерывания (для чтения готовых данных). Флеш память для параметров и логирования (SD карты вроде как могут глючить в полете, значит не имеет смысла их использовать). Использование аппаратных PWM генераторов для выходов на моторы/сервы и использование ICP(в терминах ATMEGA, как называется на F4 я пока не смотрел) для входных линий. Обязательно наличие JTAG разъема (SWD например) для отладки.

SergDoc

Я сейчас добился чего-то более-менее вменяемого, ещё пару вечеров и… в общем нижняя платка с датчиками и процем получается 52Х52 и креплениями 45Х45 - разрулил заразу 😃 осталось марафет навести…
что есть:
STM32F407VET6
MPU6000
HMC5883
MS5611
8 входов
8 + 4 выходы
3 UART ( один выведен на верхнюю плату для GPS MT332)
свободный SPI (скорей всего под MicroCD - будет на верхней плате и отдельно пару свободных лап под выбор других устройств)
6 светодиодов (2 из них индикация питаний цыфра/аналог)
разъём под сонар
USB (совместим с мапл)
4 свободных порта АЦП и 4 GPIO
А как это всё влезло? да очень просто - проц на стороне пайки (снизу) остальное сверху( дырок, то есть переходных отверстий под процем и другими МС нет) - дополнительно не будет геморроя с распайкой разъёмов - все дорожки идут снизу к ним 😃

а да, расположение датчиков как в APM…

Sir_Alex:
  • MS5611

там нет лап для прерываний, и чтение довольно редко (ну по сравнению с ДУС) - я оставил его на I2C…

Если кто поможет в покупке STM32F405(407)VGT6 (у меня VET6) буду очень признателен…

Sir_Alex:

Флеш память для параметров и логирования (SD карты вроде как могут глючить в полете, значит не имеет смысла их использовать).

а кто мешает сделать платку которая влазит вместо MicroSD и на ней флешка, я на крайняк так планировал, если вдруг Рево портануть захочется 😃

P.S. для отладки оставил PA13 (SWDAT) и PA14 (SWCLK) под ST-linc

Sir_Alex
SergDoc:

а кто мешает сделать платку которая влазит вместо MicroSD и на ней флешка, я на крайняк так планировал, если вдруг Рево портануть захочется

Проблема как раз в разъеме, а не самое флехе. Но возможно с F4 не будет особых проблем, даже если запись на флешку подвиснет.

rual
mahowik:

залил ваш hex + питон гуи запустил отсюда, предварительно указав в MinIMU-9-test.py номер stm vitrual com port-а … стоят вектора как вкопанные, т.е. не бегут данные наверное…

Наверное, а синий “самолётик” углы показывает? Дело в том, что у меня несколько питоновских демок, там видимо самая старая, поновее здесь, а самую новую выложу вечером ( по моему времени) из дома.
А работу демки можно посмотреть в терминале (гипер под винь) или Putty, буквы латинские маленькие:
c- калибровка ДУС, в течении секунды плата должна быть в покое, считаем дрейф осей ДУСа;
a- углы по акселю, если плату дергать будут дрожжать;
s- данные акселя;
d-данные ДУСа;
g-углы по комплексированным данным;
e-углы + вектора.
В питоне проверяем букву

# Check your COM port and baud rate
ser = serial.Serial(port='COM5',baudrate=115200, timeout=1)
tmode = "e"

MinIMU-9-test.rar

SergDoc

Предвидя вопрос - схема будет позже, не потому что жаба, а можно сказать уже суеверие, как только выложу новый вариан, так что-нибудь пойдёт не так, а переделывать уже задолбался, сделаю “примерку” (на бумажке распечатаю и детальки положу - дабы багов не было при изготовлении) тогда уже выкину полный комплект…

rual
Sir_Alex:

Я тут предложил производителю плат CRIUS AIOP подумать о перспективах и начать работу над ARM32 версией его платки.

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

leprud
Sir_Alex:

Я тут предложил производителю плат CRIUS AIOP подумать о перспективах

OSD на SPI это конечно прикольно, но может тогда сразу туда max7456/lm1881 пихнуть, чтобы разгрузить процессор от, как минимум, выделения начала видеостроки? Сильно не удорожит/усложнит, а перспектив еще побольше…
И опять хочу dcmi выведенный отдельно для optflow целей

PS вот f4 я ковырял немного, вроде все понял, но вот lpc старшие на бумаге поинтереснее выглядят - хотя бы методом залития новой прошивки…

rual
leprud:

OSD на SPI это конечно прикольно,

Об ОСД речь вроде нешла?

SergDoc:

свободный SPI (скорей всего под MicroCD

Сергей писал про память на СД карте.
Вообще в самолётной ветке rcopen.com/forum/f90/topic263662 автор спокойно поженил ОСД и автопилот на одном проце.

Alexey_1811

С осд на lm1881 придется очень часто в прерывание залетать.
Наверное чуток накладно будет.

rual
Alexey_1811:

С осд на lm1881 придется очень часто в прерывание залетать. Наверное чуток накладно будет.

ДЛя подкачки видеобуфера? интерфейс у неё какой?

Alexey_1811
rual:

ДЛя подкачки видеобуфера? интерфейс у неё какой?

Она выдает только синхроимпульсы. Буфера нету.

Sir_Alex
rual:

ДЛя подкачки видеобуфера? интерфейс у неё какой?

Эта микруха всего лишь детектирует синхро сигнал в видеопотоке (начало каждой линии)

SergDoc
leprud:

И опять хочу dcmi выведенный отдельно для optflow целей

Для DCMI много лапок надо, да ещё по разным сторонам проца 😦 так что, ну никак, только отдельный модуль на 407 (в 405 DCMI нет) и по SPI с основным зацепить…

Razek
leprud:

OSD на SPI это конечно прикольно, но может тогда сразу туда max7456/lm1881 пихнуть, чтобы разгрузить процессор

Разгрузить… эту работу он и не заметит =))

Кстати по поводу Сдшек есть у кого вменяемые либы для работы по протоколу SDIO?

SergDoc

В мультипилоте последние версии по нему работают…
я так же от него отказался в пользу 8-го таймера…

mahowik
rual:

Наверное, а синий “самолётик” углы показывает? Дело в том, что у меня несколько питоновских демок, там видимо самая старая, поновее здесь, а самую новую выложу вечером ( по моему времени) из дома.

перед работой, на скорую руку, с гуем из этого поста, запустилось… вечером (по нашему времени 😃) поиграюсь подробнее… выкладывайте новый гуй! 😉

SergDoc:

Предвидя вопрос - схема будет позже, не потому что жаба, а можно сказать уже суеверие, как только выложу новый вариан, так что-нибудь пойдёт не так, а переделывать уже задолбался, сделаю “примерку” (на бумажке распечатаю и детальки положу - дабы багов не было при изготовлении) тогда уже выкину полный комплект…

на хабре както читал про “виртурилку”… там электронщик тож самое писал, как только похвастаем, так сразу баги и откат прогресса 😃
habrahabr.ru/company/virt2real/blog/156491/
virt2real.ru

SergDoc
Razek:

А какие причины были?

+2 выхода, легче развести плату, ну и вместо неё можно что-нибудь другое повесить…

rual
Sir_Alex:

Эта микруха всего лишь детектирует синхро сигнал в видеопотоке (начало каждой линии)

Уже забыл, сколькотам строк? 200-300? ну 500, ерунда все это. У меня с такой частотой гира обсчитывается.

mahowik:

выкладывайте новый гуй!

пжалста, хоть эта и не гуй) просто индикатор.
Ну и ещё исходники ИНС. Правда там вроде как косяк ещё остался в функциях millis() и micros(), иногда затыкается вывод в терминал,но сути это не меняет

MinIMU-9-test.rarRusINS10F3-ins.rar

mahowik

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

А сорсы под какую среду? Coocox гад не саппортит ф3, а только ф4…

SergDoc

Картинку первую покажу, только что домучал 😃

mahowik:

А сорсы под какую среду?

Кеил