Создание собственной системы стабилизации
Я только платку собрал, теперь думаю попробовать мльтивийную прошивку подцепить, чёт мне не совсем нравится, что получилось без прошивки всё равно не проверю, буду пробовать…
шас попробую залить посмотрю вообще на что нибудь реагировать будет
Внимание !!! в схеме ошибка - у макса 232 - перепутаны входы с выходами!!! блин пол ночи просидел не мог понять чёй то он бутлоадер по SPI принял а дальше не в какую… ладно не так страшно выводы рядом окуратно перекину дорожки
Если комуто интересно - в ардуине бутлоадер можно залить и простым “пять проводков” программатором и STK200 в файле hardware\arduino\programmers.txt нужно прописать
stk200.name=STK200
stk200.protocol=stk200
и он появится в меню а самое главное работает…
И так путём экспериментов и выдирания микросхем добился связи с ПК зря на ресет кнопочку не сделал на 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 оно не понимает.
в бинарном виде так и есть он выдаёт знаковое