Создание собственной системы стабилизации
Посмотрел Maple Mini - классная штука, давно хотел во всяких поделках использовать STM, но разводить вручную плату совершенно лень. С такой платой все гораздо удобнее.
Только не очень понял, как там обстоит с отладкой?
PS: 34$ на спаркфане, дорого, взял на ебее на пробу за 24$, сойдет для тестов.
Только не очень понял, как там обстоит с отладкой?
Думаю с отладкой там такая же шляпа как и у Ардуины на АТМЕГА… т.е. никакой
P.S. Ну разве что через println 😃
А не поделитесь соображениями насчет принципа стабилизации по видеокартинке, я тоже хочу попробовать поработать в этом направлении.
У меня есть кое какие мысли по отслеживанию перемещения пикселов, но интересует Ваше мнение (если не секрет).
Как бы Вы реализовали сей алгоритм…?
Собственно идея была сделать точную (±10…20 см) автоматическую посадку в точке старта по маркеру, но дальше идеи пока не пошло.
с отладкой в классичeском понимании у маплe дeйствитeльно никак. Но на практикe при отсутствии нeобходимости низкоуровнeвого программирования в принципe принт достаточeн.
Но на практикe при отсутствии нeобходимости низкоуровнeвого программирования в принципe принт достаточeн.
Несколько вопросов:
- Как использовать передачу данных с датчиков через ПДП?
- Как получить прерывания о готовности данных у датчика?
- Как вообще организовать работу в параллельных процессах?
Это всё конечно не нужно для работы супер петли, ну тогда мы получим АПМ и МультиВий.
По третьему пункту наверняка есть смысл RTOS пользовать…
трeтий пункт - я freertos использую и тeпeрь ужe от нee нe откажусь
второй пункт - на любую ногу обработчик прeрывания вeшаeм в в путь
пeрвый пункт - пдп это что?
ПДП - прямой доступ к памяти. Пересылка данных между памятью и периферией без участия процессора.
пeрвый пункт - пдп это что?
Если по русски то DMA 😃
дма я для спи дeлал когда с осд
игрался
трeтий пункт - я freertos использую и тeпeрь ужe от нee нe откажусь
На мапле?
второй пункт - на любую ногу обработчик прeрывания вeшаeм в в путь
это родной метод мапла ?
Вчера-сегодня доделывал ППМ, вход-ШИМ выход Ф3, без нормальной отладки перифирии очень доставляет… Хотел седня полетать, но уже лень… мож до конца недели проверю…
attachinterrupt и всe дeла
а фриртос и на маплe и на ф4 использую. доволeн в общeм
ппм вход на стм прощe чeм на арду дeлаeтся как в прочeм и шим выход чeго там отлаживать?
А в чем прикол использовать Ф3 серию? Датчики все цифровые и 24 битный АЦП нам нафиг не нужен. Уж лучше Ф4.
а фриртос и на маплe и на ф4 использую. доволeн в общeм
РТОС в мапловском ИДЕ портировали?
ппм вход на стм прощe чeм на арду дeлаeтся как в прочeм и шим выход чeго там отлаживать?
Подключение входов\выходов альтернативных функция к порту у Ф3 существенно отличается от Ф1 (у Ф4 не знаю, не знаком).
А в чем прикол использовать Ф3 серию? Датчики все цифровые и 24 битный АЦП нам нафиг не нужен. Уж лучше Ф4.
Прикол в Ф3Дисковери которая очень дешева и все датчики кроме баро и ГПС на борту.
freertos идeт в составe мапловского идe, для ф4 использую coocox и порт с сайта фриртос
OpenPilot уже походу пoртанули на STM32F3DISCOVERY
приехала платка… сделал как по инструкции… в гуях наклоны отрабатывает как надо! 😉
Сделал полную ИНС на Ф3, всё как люблю, т.е.:
залил ваш hex + питон гуи запустил отсюда, предварительно указав в MinIMU-9-test.py номер stm vitrual com port-а … стоят вектора как вкопанные, т.е. не бегут данные наверное…
приехала платка… сделал как по инструкции… в гуях наклоны отрабатывает как надо!
бутлоадер надо менять на опенпилотовский? на сколько вижу - надо,
Choose the bl_disocoveryf4.bin or bl_disocoveryf3.bin from the release archive
в таком случае второе
залил ваш hex + питон гуи запустил отсюда, предварительно указав в MinIMU-9-test.py номер stm vitrual com port-а … стоят вектора как вкопанные, т.е. не бегут данные наверное…
может и не запустится?
вот только, если честно, я так и не разобрался - этот бутлоадер вторичный или всё-таки заменяет родной? у меня остался F103 (выпаяный) с крайней прошивкой CC и платка недоделаная под CC3D (свёрла кончились и немного испохабил) если кому надо отдам…
платка такая -
Я тут предложил производителю плат CRIUS AIOP подумать о перспективах и начать работу над ARM32 версией его платки. Мне кажется это реальный шанс собрать все наши наработки и сделать промышленный контроллер, ну а софт каждый сможет свой пилить под нее. На данный момент можно будет портировать прошивку Таймкопа и в скором времени появится ArduCopter под PX4 которую так же без вопросов можно будет портировать.
Что скажете?
Я предполагаю: STM32 F4, Датчики MPU6000 + MS5611 подключенные по SPI и использующие прерывания (для чтения готовых данных). Флеш память для параметров и логирования (SD карты вроде как могут глючить в полете, значит не имеет смысла их использовать). Использование аппаратных PWM генераторов для выходов на моторы/сервы и использование ICP(в терминах ATMEGA, как называется на F4 я пока не смотрел) для входных линий. Обязательно наличие JTAG разъема (SWD например) для отладки.
Я сейчас добился чего-то более-менее вменяемого, ещё пару вечеров и… в общем нижняя платка с датчиками и процем получается 52Х52 и креплениями 45Х45 - разрулил заразу 😃 осталось марафет навести…
что есть:
STM32F407VET6
MPU6000
HMC5883
MS5611
8 входов
8 + 4 выходы
3 UART ( один выведен на верхнюю плату для GPS MT332)
свободный SPI (скорей всего под MicroCD - будет на верхней плате и отдельно пару свободных лап под выбор других устройств)
6 светодиодов (2 из них индикация питаний цыфра/аналог)
разъём под сонар
USB (совместим с мапл)
4 свободных порта АЦП и 4 GPIO
А как это всё влезло? да очень просто - проц на стороне пайки (снизу) остальное сверху( дырок, то есть переходных отверстий под процем и другими МС нет) - дополнительно не будет геморроя с распайкой разъёмов - все дорожки идут снизу к ним 😃
а да, расположение датчиков как в APM…
- MS5611
там нет лап для прерываний, и чтение довольно редко (ну по сравнению с ДУС) - я оставил его на I2C…
Если кто поможет в покупке STM32F405(407)VGT6 (у меня VET6) буду очень признателен…
Флеш память для параметров и логирования (SD карты вроде как могут глючить в полете, значит не имеет смысла их использовать).
а кто мешает сделать платку которая влазит вместо MicroSD и на ней флешка, я на крайняк так планировал, если вдруг Рево портануть захочется 😃
P.S. для отладки оставил PA13 (SWDAT) и PA14 (SWCLK) под ST-linc
а кто мешает сделать платку которая влазит вместо MicroSD и на ней флешка, я на крайняк так планировал, если вдруг Рево портануть захочется
Проблема как раз в разъеме, а не самое флехе. Но возможно с F4 не будет особых проблем, даже если запись на флешку подвиснет.
залил ваш 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"