Создание собственной системы стабилизации
И так путём экспериментов и выдирания микросхем добился связи с ПК зря на ресет кнопочку не сделал на SPI рфзъёме есть всё и ресет и корпус подцеплю туда… Теперь буду пробоватьпрошивками баловатся…
на максе 232 поменять выводы 11-14 12-13
Получил данные с акселерометра, полностью совместим с LIS302 только по схеме включения (моей) адрес устройства не 1D а 1С воюю дальше…
Пока получается только программатор и осциллограф, надеюсь в мультивийной ветке не обидятся - сверну пока в их сторону, а то получается от кука ушёл, так как не знал, что получается, а теперь думаю прошивку подогнать под вийную (временно) что-бы собственный обработчик не писать - мне довольно это сложно, а мой программер от меня ушол в другую сторону (шагающий робот) долго от него толку ещё не добьюсь, хотя и ему инерциальная система нужна, вроде, буду своими силами змагатся пока, на данном этапе просто получаю осцилограммы с гироскопов и акселерометра, довольно приемлимые для обсчёта, так что не всё так страшно, но чувствую затянется это дело…
Если кто-нибудь скинет прошивку от MYNAME к Мультивию с аналоговыми гирами для ознакомления - буду очень благодарен…
Пока получается только программатор и осциллограф, надеюсь в мультивийной ветке не обидятся - сверну пока в их сторону, а то получается от кука ушёл, так как не знал, что получается, а теперь думаю прошивку подогнать под вийную (временно) что-бы собственный обработчик не писать - мне довольно это сложно, а мой программер от меня ушол в другую сторону (шагающий робот) долго от него толку ещё не добьюсь, хотя и ему инерциальная система нужна, вроде, буду своими силами змагатся пока, на данном этапе просто получаю осцилограммы с гироскопов и акселерометра, довольно приемлимые для обсчёта, так что не всё так страшно, но чувствую затянется это дело…
Этот исход с самого начала ветки всем ясен был - и про программера стороннего и про то что Вий. Удивительно - что до Вас только дошло.
Если кто-нибудь скинет прошивку от MYNAME к Мультивию с аналоговыми гирами для ознакомления - буду очень благодарен…
Если не найдете до вторника прошивку, пишите в Лс, у меня на работе лежит одна версия, скину.
Этот исход с самого начала ветки всем ясен был - и про программера стороннего и про то что Вий. Удивительно - что до Вас только дошло.
А мне на данный момент деватся некуда, и так далеко зашол, буду продолжать один…
Если кто-нибудь скинет прошивку от MYNAME
Могу скинуть на почту. Какой адрес?
И так немного математики, если неправ поправте: Данные с гироскопов преобразую в углы для этого есть значения чувствительности (датащет), далее снимаю проекции ускорения на оси акселерометра и зная угол могу расчитать вектор ускорения? до меня никак не доходит пока как это организовать но буду пробовать…
простенькая статейка про датчики, проекции и всякие недокальманы habrahabr.ru/blogs/augmented_reality/118192/
можно еще проще. смотрим на акселерометры когда угловая скорость с гироскопа = 0. таких моментов немного, но они есть =) с помощью арктангенса вычисляем угол отклонения. а по гироскопам рулим через пародию на ПИД. одним из параметров для регулятора будет отклонение от вертикали. на самолете такой метод работает. на квадрике надо полетать, поснимать логи и посмотреть. у меня двухосевой инклинометр от AD показывал довольно достоверно даже при наличии угловой скорости на модели типа летающее крыло (плосколет F-22).
С днём победы 😃 !!!
Я вот как себе на данный момент представляю:
1 - опрашиваем гироскопы
2 - читаем аксель
3 - с “какой-то магией Калмана” высчитываем точные вектора
4 - с помощью ПИДов (регулируем PWM) даём обратные вектора для гашения отклонений
5 - Скрещиваем пальцы на ногах “руки то заняты” смотрим как аппарат рухнет и идём разрабатывать новую теорию
Эх бало бы так всё просто ан нет ручки то кривенькие так что это надолго:)
Чёт совсем запутался Aref=1650mV тобиш делим на 1023 получаем 0.62mV/дел. какого же болта ржавого мне гироскопы выдают 367, 364, 357 нулевые показания при примерно 1100mV на выходе? то что они разные фиг с ними -почему маленькие то такие?
Пардон кренка здохла:)
И так, пока проблемы две:
Таймеры заняты шимами - опрос гир и акселя придётся проводить поллингом;
Акселерометр - прыгает( 0-255) скорей всего попадаю на перезапись
Дошло наконец, 0 = 255 данные акселерометра представляются так положительное ускорение от 0 до 255 а отрицательное от 255 до 0, или наоборот ещё толком не понял щас проблема, как это представить да ещё без ошибок ибо одинаковые значения и в плюсе и в минусе могут быть, для примера Z= 55 в горизонтальном лежачем положении (ускорение свободного падения) переворачиваем плату получаем 200 - резко дёргаем вверх (низом к верху) получаем опять 55 - ну и в какую сторону летим блин…
У кого-нибудь мысли по данному поводу есть может тупо числовой ряд вписать и определять каждое значение или с какойто последовательностью работать
или пока сделать например 128 - 0 отрицательное 0 - 126 -положительное а как же, большие ускорения
смотреть в гироскоп какой угол? а если гира в 0 - смещение по оси без крена или неуспел гироскоп уже не показывает угловую скорость?
вроде понял в мультивийной прошивке - I2C Accelerometer ADXL345 также работает только адресация регистров другая буду пробовать…
С гироскопов снимаем угловую скорость, пересчитываем по формуле omega=U*gain+bias , интегрируем для получения угла. Трехосевой акселерометр позволяет определять положение с точностью до поворота вокруг вектора .Кладем на горизонтальную поверхность , по оси Z Датчик должен мерить g, по остальным нули.По степени вхождения g в оси x y можно определить крен и тангаж при отсутствии линейных ускорений.
С гироскопов снимаем угловую скорость, пересчитываем по формуле omega=U*gain+bias , интегрируем для получения угла. Трехосевой акселерометр позволяет определять положение с точностью до поворота вокруг вектора .Кладем на горизонтальную поверхность , по оси Z Датчик должен мерить g, по остальным нули.По степени вхождения g в оси x y можно определить крен и тангаж при отсутствии линейных ускорений
Как работает гироскоп и акселерометр я знаю, проблема в другом - программирование (я в этом не силён), акселерометр выдаёт byte - восмиразрядное беззнаковое число максимум 255 при этом он его выдаёт в дополнительном коде тобиш от 0 до +177 и от -1 до -178 я же вижу числа от 0 до +255 сейчас решаю проблему как это считать…
А переменная в которую пишется результат точно signed?
Просто в Вашем сообщение противоречие.
беззнаковое число максимум 255 при этом он его выдаёт в дополнительном коде тобиш от 0 до +177 и от -1 до -178 я же вижу числа от 0 до +255 сейчас решаю проблему как это считать…
То есть акселерометр должен отдавать знаковое, а Вы получаете беззнаковое?
То есть акселерометр должен отдавать знаковое, а Вы получаете беззнаковое?
а как правильно обозвать? sbyte оно не понимает.
в бинарном виде так и есть он выдаёт знаковое
Блин ещё вчера вечером перекопал все а туда даже не глянул, спасибо!!!
И цифирки правильные побежали:)😃😃