Создание собственной системы стабилизации
Я тут собрался потихоньку мигрировать на STM32 с целью иметь минимум 12 выходов на моторы и 2-3 на подвес и навигационную информацию обрабатывать с частотой 500-1000 Гц. Дальнейшая идея обработка изображения для обхода препятствий и т.д. Попутно сейчас начали возится с Глонасом, поскольку на GL8088 обещают точность 2 метра. Короче собрались приступить к рисованию платы под Глонас и заодно прилепить туда же MPU6000 и MS5611, но как то MPU6000 сложно добываются. Есть в США но отправляют в США, Канаду и Мексику. MPU9150 пока не видно. LSM330DL@ST можно купить на Терраэлектронике, что для нас немного дальше чем в США😒 но терпимо. А с учетом последней информации по LSM333 нахожусь в раздумьях куда двигаться.
MPU6000 я помучил на столе и получил по гироскопам при интегрировании уход <1 град в минуту, шумы акселерометра сравнительно большие (1g=4096 шум ±20 ), но быстродействие радует.
Первые подлеты с MPU6000 тоже понравились. и в сравнении с датчиками предыдущего поколения по моему впечатлению это лучше.
Сравнивалась ArduIMU V3 и APM2 с Crius MultiWii .
Поэтому очень интересует информация по датчикам STM/
опенсорсный и опенхардварный (с натяжкой) CHR-UM6-LT Orientation Sensor давно ждет своих владельцев
За 150$ - позолоченный наверное…
опенсорсный и опенхардварный (с натяжкой) CHR-UM6-LT Orientation Sensor давно ждет своих владельцев
Да вопрос даже не в цене, а в том что датчики получше появились, а у меня такое впечатление, что с хорошими датчиками можно меньше с механикой возится. Вибрации меньше влияют.
Тот же MultiPilot32 переходит сейчас на STM32F4, там и частота побольше и FPU имеется. Так что в новых разработках лучше сразу его использовать.
За 150$ - позолоченный наверное…
дык конкурентов-то нет, вот и творят чего хочут. ST когда еще выкатит свой вариант, да когда еще он до прилавков доберется…
с хорошими датчиками можно меньше с механикой возится. Вибрации меньше влияют.
с хорошими датчиками вибрации можно измерить и учесть их, а без этого влиять они все равно будут.
с другой стороны, древний Flymentor 3D на аналоговых гирах держит вертолет лучше, чем навороченные арду-мега-траляля-пилоты с самыми последними датчиками 😉
MultiPilot32 переходит сейчас на STM32F4, там и частота побольше и FPU имеется.
кстати, бесплатные компиляторы уже умеют задействовать FPU?
кстати, бесплатные компиляторы уже умеют задействовать FPU?
Ну вроде CodeSourcery ARM toolchain поддерживает FPU, тока я не в курсе, поддерживает ли F4
3.4.1. Enabling Hardware Floating Point
GCC provides three basic options for compiling floating-point code:
• Software floating point emulation, which is the default. In this case, the compiler implements
floating-point arithmetic by means of library calls.
• VFP hardware floating-point support using the soft-float ABI. This is selected by the
-mfloat-abi=softfp option. When you select this variant, the compiler generates VFP
floating-point instructions, but the resulting code uses the same call and return conventions as
code compiled with software floating point.
• VFP hardware floating-point support using the VFP ABI, which is the VFP variant of the Procedure
Call Standard for the ARM®Architecture (AAPCS). This ABI uses VFP registers to pass function
arguments and return values, resulting in faster floating-point code. To use this variant, compile
with -mfloat-abi=hard.
дык конкурентов-то нет, вот и творят чего хочут. ST когда еще выкатит свой вариант, да когда еще он до прилавков доберется…
Ну если там готовый софт, то да, может оно и стоит 150$ (хотя навряд ли).
LSM330DL@ST можно купить на Терраэлектронике, что для нас немного дальше чем в США😒 но терпимо.
да ладно?) я тут прал f103c8t6, тут же и светодиодные гирлянды и cp2102,кварцы планарные)LSM330DL едет новой почтой 1-3 дня
да ладно?) я тут прал f103c8t6, тут же и светодиодные гирлянды и cp2102,кварцы планарные)LSM330DL едет новой почтой 1-3 дня
Спасибо, это действительно лучше.
Ну вроде CodeSourcery ARM toolchain поддерживает FPU, тока я не в курсе, поддерживает ли F4
как я понял, ни фига не поддерживает, товарищ примерно так разъяснил:
CoeSourcery, к слову, можно считать погибшим, так как он был куплен, и те теперь везде суют свои шароваровые тулзы. Перспективы туманны.
Использовать CS можно, но он не поддерживает аппаратную плавающую точку. Потому вместо него используют самособранный порт тулчейна linaro. Я пару месяцев назад собирал windows MinGW версию с танцами с бубном, но получил нерабочий ld. С тех пор я этим вопросом не занимался до появления острой необходимости. Текущее состояние того порта я не знаю и даже ссылка на source где-то утрачена.
Дмитрий, а как мне правильно сделать слияние моей локальной ветки с другой веткой (это про CC), чтоб ненапортачить, а то смотрю есть такая sambas/mag_baro_testapp, но перейти нормально в неё немогу
serg@Pirat:~/OpenPilot$ git checkout sambas/mag_baro_testapp
error: Your local changes to the following files would be overwritten by checkout:
flight/CopterControl/Makefile
flight/Modules/Attitude/attitude.c
Please, commit your changes or stash them before you can switch branches.
Aborting
или мне просто переместить пока эти два файла?
запустился я на этой ветке, заброшена видать она давно, даже USB нет, так что несмог даже посмотреть что творится теперь…
спрятать свои патчи - git stash
слияние текущего состояния ветки с чем-то еще - git merge имя_ветки
восстановить свои патчи git stash apply
код для компаса можно стырить из Pololu (331 пост)
даже USB нет
GCS пересобирали? станция просто может не работать с несоответсвующими ветками.
да так в том то и дело что пересобрат, не у неё USB коннекта, сейчас попробую…
неполучилось -
serg@Pirat:~/OpenPilot$ git merge sambas/mag_baro_testapp
Auto-merging flight/CopterControl/Makefile
CONFLICT (content): Merge conflict in flight/CopterControl/Makefile
Auto-merging flight/CopterControl/System/coptercontrol.c
CONFLICT (content): Merge conflict in flight/CopterControl/System/coptercontrol.c
Auto-merging flight/CopterControl/System/inc/pios_config.h
CONFLICT (content): Merge conflict in flight/CopterControl/System/inc/pios_config.h
Auto-merging flight/CopterControl/System/pios_board.c
CONFLICT (content): Merge conflict in flight/CopterControl/System/pios_board.c
Auto-merging flight/PiOS/Boards/STM32103CB_CC_Rev1.h
CONFLICT (content): Merge conflict in flight/PiOS/Boards/STM32103CB_CC_Rev1.h
Auto-merging flight/PiOS/Common/pios_bmp085.c
CONFLICT (content): Merge conflict in flight/PiOS/Common/pios_bmp085.c
Auto-merging flight/PiOS/STM32F10x/pios_exti.c
CONFLICT (content): Merge conflict in flight/PiOS/STM32F10x/pios_exti.c
Auto-merging flight/PiOS/STM32F10x/pios_i2c.c
Automatic merge failed; fix conflicts and then commit the result.
может лучше зайти в ветку вытащить всё что нужно, а потом прикручивать к своей?
flight/CopterControl/Makefile - здесь я прописываю что хочу иметь в прошивке, а в станции?
ну вот же руководство к действию:
fix conflicts and then commit the result.
автоматически слияние проходит когда вы добавили/удалили строчку, иначе каждый конфликтный файлик ручками редактировать и оставлять только нужное.
кстати, а что вы собрались делать с этой веткой? она умеет моргать светодиодом по любой активности барометра или компаса. чтения и тем более записи цифр в дерево объектов там нет.
а в станции?
\ground\openpilotgcs\src\libs\libs.pro - библиотеки, можно отключить opmapcontrol, обязательно огромную glc_lib, sdlgamepad по вкусу
\ground\openpilotgcs\src\plugins\plugins.pro - плагины, соответственно комментируем OPMap, ModelView и GCS Control. до кучи можно Notifier, PipXtreme, HITLNEW
Дело в том, что у меня i2c никак неотображается в станции, хоть бы ошибку какую выдало…
Что-то я неправильно делаю в прошивке, шина i2с молчит , даже первичного опроса нет и с датчиками и без оных, на выходе висит питание и всё, может где ещё нужно включить кроме Makefile?
даже первичного опроса нет и с датчиками и без оных
разве это удивительно? в текущей прошивке есть только “драйвер” так сказать, опрос делаете вы сами. само там ничего не опрашивается.
Если включен модуль Altitude, оно же должно с барометром общаться?
А никаких признаков нет…
Если б оно сонара ненаходило, так опрос бы был…
ммм… для Altitude нужны дефайны USE_ALTITUDE, USE_I2C, и в GCS на закладке модулей надо включить этот самый модуль. в прошлом месяце оно вполне успешно работало, давление и температуру показывало (ссылку на видео не найду).
вы на своем барометре адреса на предмет совпадения с прошивкой CC смотрели?
нужны дефайны USE_ALTITUDE, USE_I2C
Я об этом думал, но вот найти их несмог, или я что-то другое искал, и со станцией глюк, может удалить станцию master оставить только свою…
надо для начала всё переустановить…
а чего их искать, можно прям в \flight\CopterControl\Makefile заменить NO на YES
69: USE_I2C ?= NO
70: USE_ALTITUDE ?= NO
можно при компиляции определить:
USE_I2C=YES USE_ALTITUDE=YES cs-make coptercontrol
это я сделал сразу, у меня ещё станция вываливается когда в настройки заходишь, ругается на SQL или mySQL, непомню, надо наверно заново всё поставить, я SDK второй раз (когда ось рухнула) не скачивал, а подсунул так, буду пробовать вечером…