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

oleg70
rual:

Vpyton нужно переставить

Все перепробовал… не ра бо та ет. (точно похоже что видео виснет).
Вообще говоря странное дело, тема всяких ИМУ уже столько лет существует, а такого рода софта под винду (адекватного) практически нет (или я не нашел), все из каких то клочков и палок, аж под 3DMax плагин встречал, видать очень сложно знающему программеру сделать такой код…

mataor

Хм… как вполне реальный вариант - поиграйся с разными версиями драйверов для видеокарты + опенгл обновить. У меня сходная проблема была с прогой калибровки фрииму на моем раб.компе

SergDoc
oleg70:

а такого рода софта под винду

пингвиндовс рулит - так не для стёба…

oleg70

Вывод видео Питона настроил, но он хочет большего… теперь поток данных с порта зависает,
ser.readline() тупить начала (похоже не находит конец строки) а по тайм-ауту работает только при частоте данных с платы ~ 1Гц… Фигня просто какая то (в Питоне я вообще не разбираюсь) главное дело месяца два назад все работало на том же железе, а тут черт дернул “снести” питон и поставить заново…
Есть спецы по Python ???
Что ser.readline() считает за “END of LINE” ???
Новая рама ждет мозгов:)

SergDoc

Не с питоном ещё не баловался…
фотка моего кракозябра 😃

RaJa

коллеги, а не поделитесь ссылочкой на FreeIMU для STM32F103 или F4?
У меня под рукой есть пара сенсорных платок с L3G4200D, HMC5883L, BMP085 и ADXL345. Насчет датчиков поновее думаю пока, стоит ли искать и платить за платку с MPU6000 или достаточно взять GY-86 с популярным MPU6050. C одной стороны I2C ругают, с другой - особых проблем с ней у меня не было.

SergDoc

у меня в коде остались драйвера и автодетект, можно смело брать прошивку и в дискавери ф4 заливать и подключать датчики (правда BMP085 и MPU6050 работать не будут) для 6050 всё в коде с MPU6000 заменить на 6050, а для BMP - подправить драйвер MS5611 (автодетект)… а для 103-го baseflight - там всё работает…

RaJa
SergDoc:

у меня в коде остались драйвера и автодетект, можно смело брать прошивку и в дискавери ф4 заливать и подключать датчики (правда BMP085 и MPU6050 работать не будут) для 6050 всё в коде с MPU6000 заменить на 6050, а для BMP - подправить драйвер MS5611 (автодетект)… а для 103-го baseflight - там всё работает…

Отлично, спасибо, Сергей. Попробую разобраться. А что насчет MPU6050 скажете - сойдет или стоит брать MPU6000? реальная разница на практике есть или только гипотетически разница в том, что SPI быстрее и меньше вероятность подвисания шины или коллизий?

oleg70
RaJa:

а не поделитесь ссылочкой

Я брал здесь:x-io.co.uk/open-source-imu-and-ahrs-algorithms/
, (чисто алгоритм ориентации), на выходе четыре кватерниона (q0-q1), добавите в коде
ROLL_plane = atan2(2 * q1 * q2 - 2 * q0 * q3, 2 * q0*q0 + 2 * q1 * q1 - 1)*TooGRD;
TANG_plane = atan(kx / sqrt(ky*ky + kz*kz))*TooGRD;
KREN_plane = atan(ky / sqrt(kx*kx + kz*kz))*TooGRD;
и получите углы в градусах, работать будет на любом железе (ну почти:))

RaJa
oleg70:

Я брал здесь:x-io.co.uk/open-source-imu-and-ahrs-algorithms/
, (чисто алгоритм ориентации), на выходе четыре кватерниона (q0-q1), добавите в коде
ROLL_plane = atan2(2 * q1 * q2 - 2 * q0 * q3, 2 * q0*q0 + 2 * q1 * q1 - 1)*TooGRD;
TANG_plane = atan(kx / sqrt(ky*ky + kz*kz))*TooGRD;
KREN_plane = atan(ky / sqrt(kx*kx + kz*kz))*TooGRD;
и получите углы в градусах, работать будет на любом железе (ну почти:))

ссылочка не работает.

SergDoc
RaJa:

А что насчет MPU6050 скажете - сойдет или стоит брать MPU6000?

ну я хотел SPI по этому у меня и 6000, а по самим датчикам одинаковые…
если режим лени ближайшее время отключится, нарисую мелкоплату (чёт хочется маленькое что-нибуь) на 6050 - будет (потому что кто-то, не буду пальцем показывать:), мне их аж две штуки подарил и два проца rgt6 - надо же с ними что-то делать)

oleg70

Разобрался таки с Python, (и не зря потратил время) смотрю данные по осям LSM303 на графике в реальном времени, кручу медленно плату и вижу что при определенных углах наклона кривая графика начинает сильно скакать (типа самовозбуда), такое явление наблюдается как у акселя так и у магнитометра(!), “играл” с усилением и прочими настройками - эффект все равно присутствует…
Это “нормально” для LSM ???

rual
oleg70:

Это “нормально” для LSM ???

Для магнитометра не нормально.

oleg70
rual:

не нормально

Вот, плавно поворачиваю от 0 до 90 градусов, на графике видны два “выброса” помимо нормального шума…
У магнитометра аналогично… (а еще удивляемся почему аппарат колбасит…)

oleg70
SergDoc:

а с питанием что?

Питание проверено, выброс явно присутствует в небольшом диапазоне углов в начале и конце полной шкалы…(данные “сырые” без какой либо обработки).
Если это мягко говоря “особенность” LSM, то придется как то программно избавляться от нее…
На положении 3D объекта в питоне аксель как то сглаживается (видимо FreeImu) а вот магнетометр крутит платформу на 90 градусов при определенных углах…

rual
oleg70:

Вот, плавно поворачиваю от 0 до 90 градусов, на графике видны два “выброса” помимо нормального шума…

Это без математики? Может там чего?

SergDoc

Нет, сомнения берут, либо всё-таки питание, либо какие-то ёмкости у ЛСМ-ки, ну и на хуой конец - траблы по чтению?

oleg70
rual:

без математики?

Только преобразование двух 8-ми битных регистров с датчика в один 16-битный (код проверенный, вряд ли на него можно грешить…)

Емкости, как вариант буду отрабатывать…, а по чтению пробовал и 100 и 400 Кгц (I2C) - одинаково…