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

SergDoc

Получил данные с акселерометра, полностью совместим с LIS302 только по схеме включения (моей) адрес устройства не 1D а 1С воюю дальше…

SergDoc

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

Если кто-нибудь скинет прошивку от MYNAME к Мультивию с аналоговыми гирами для ознакомления - буду очень благодарен…

Панкратов_Сергей
SergDoc:

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

Этот исход с самого начала ветки всем ясен был - и про программера стороннего и про то что Вий. Удивительно - что до Вас только дошло.

killmouse
SergDoc:

Если кто-нибудь скинет прошивку от MYNAME к Мультивию с аналоговыми гирами для ознакомления - буду очень благодарен…

Если не найдете до вторника прошивку, пишите в Лс, у меня на работе лежит одна версия, скину.

SergDoc
Панкратов_Сергей:

Этот исход с самого начала ветки всем ясен был - и про программера стороннего и про то что Вий. Удивительно - что до Вас только дошло.

А мне на данный момент деватся некуда, и так далеко зашол, буду продолжать один…

tusik
SergDoc:

Если кто-нибудь скинет прошивку от MYNAME

Могу скинуть на почту. Какой адрес?

SergDoc

И так немного математики, если неправ поправте: Данные с гироскопов преобразую в углы для этого есть значения чувствительности (датащет), далее снимаю проекции ускорения на оси акселерометра и зная угол могу расчитать вектор ускорения? до меня никак не доходит пока как это организовать но буду пробовать…

RW9UAO

можно еще проще. смотрим на акселерометры когда угловая скорость с гироскопа = 0. таких моментов немного, но они есть =) с помощью арктангенса вычисляем угол отклонения. а по гироскопам рулим через пародию на ПИД. одним из параметров для регулятора будет отклонение от вертикали. на самолете такой метод работает. на квадрике надо полетать, поснимать логи и посмотреть. у меня двухосевой инклинометр от AD показывал довольно достоверно даже при наличии угловой скорости на модели типа летающее крыло (плосколет F-22).

SergDoc

Я вот как себе на данный момент представляю:
1 - опрашиваем гироскопы
2 - читаем аксель
3 - с “какой-то магией Калмана” высчитываем точные вектора
4 - с помощью ПИДов (регулируем PWM) даём обратные вектора для гашения отклонений
5 - Скрещиваем пальцы на ногах “руки то заняты” смотрим как аппарат рухнет и идём разрабатывать новую теорию
Эх бало бы так всё просто ан нет ручки то кривенькие так что это надолго:)

SergDoc

Чёт совсем запутался Aref=1650mV тобиш делим на 1023 получаем 0.62mV/дел. какого же болта ржавого мне гироскопы выдают 367, 364, 357 нулевые показания при примерно 1100mV на выходе? то что они разные фиг с ними -почему маленькие то такие?

Пардон кренка здохла:)

SergDoc

И так, пока проблемы две:
Таймеры заняты шимами - опрос гир и акселя придётся проводить поллингом;
Акселерометр - прыгает( 0-255) скорей всего попадаю на перезапись

SergDoc

Дошло наконец, 0 = 255 данные акселерометра представляются так положительное ускорение от 0 до 255 а отрицательное от 255 до 0, или наоборот ещё толком не понял щас проблема, как это представить да ещё без ошибок ибо одинаковые значения и в плюсе и в минусе могут быть, для примера Z= 55 в горизонтальном лежачем положении (ускорение свободного падения) переворачиваем плату получаем 200 - резко дёргаем вверх (низом к верху) получаем опять 55 - ну и в какую сторону летим блин…

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

или пока сделать например 128 - 0 отрицательное 0 - 126 -положительное а как же, большие ускорения

смотреть в гироскоп какой угол? а если гира в 0 - смещение по оси без крена или неуспел гироскоп уже не показывает угловую скорость?

вроде понял в мультивийной прошивке - I2C Accelerometer ADXL345 также работает только адресация регистров другая буду пробовать…

ivereninov

С гироскопов снимаем угловую скорость, пересчитываем по формуле omega=U*gain+bias , интегрируем для получения угла. Трехосевой акселерометр позволяет определять положение с точностью до поворота вокруг вектора .Кладем на горизонтальную поверхность , по оси Z Датчик должен мерить g, по остальным нули.По степени вхождения g в оси x y можно определить крен и тангаж при отсутствии линейных ускорений.

SergDoc
ivereninov:

С гироскопов снимаем угловую скорость, пересчитываем по формуле omega=U*gain+bias , интегрируем для получения угла. Трехосевой акселерометр позволяет определять положение с точностью до поворота вокруг вектора .Кладем на горизонтальную поверхность , по оси Z Датчик должен мерить g, по остальным нули.По степени вхождения g в оси x y можно определить крен и тангаж при отсутствии линейных ускорений

Как работает гироскоп и акселерометр я знаю, проблема в другом - программирование (я в этом не силён), акселерометр выдаёт byte - восмиразрядное беззнаковое число максимум 255 при этом он его выдаёт в дополнительном коде тобиш от 0 до +177 и от -1 до -178 я же вижу числа от 0 до +255 сейчас решаю проблему как это считать…

ivereninov

А переменная в которую пишется результат точно signed?

Просто в Вашем сообщение противоречие.

SergDoc:

беззнаковое число максимум 255 при этом он его выдаёт в дополнительном коде тобиш от 0 до +177 и от -1 до -178 я же вижу числа от 0 до +255 сейчас решаю проблему как это считать…

То есть акселерометр должен отдавать знаковое, а Вы получаете беззнаковое?

SergDoc
ivereninov:

То есть акселерометр должен отдавать знаковое, а Вы получаете беззнаковое?

а как правильно обозвать? sbyte оно не понимает.

в бинарном виде так и есть он выдаёт знаковое

SergDoc

Блин ещё вчера вечером перекопал все а туда даже не глянул, спасибо!!!

И цифирки правильные побежали:)😃😃