Акселерометр Gy521 вместо аналогового стика

5 000 руб. за проект
06 декабря 2021, 12:38 • 6 откликов • 44 просмотра
ТЗ:
Имеется джойстик для авиасимулятора, к которому прикреплен акселерометр Gy521. Акселерометр присоединен к Arduino по i2c с адресом 0x68. Нужно получать углы отклонения джойстика (палки джойстика) и обрабатывать их. Таким образом, чтобы получалось две координаты: по оси X и по оси Y. Также, как бы вместо акселерометра у нас был бы аналоговый стик (на базе двух потенциометров).

Важно, при программировании:
1. Акселерометр Gy521 может быть прикреплен к джойстику под любым углом. При запуске, есть возможность откалибровать акселерометр (предполагая, что джойстик в этот момент не трогаем).
2. Нужно учесть "защиту" от тряски. Допустим, если мы делаем щелбан по акселерометру, при этом он остается неподвижным, то и значения должны передаваться корректные, без скачков.
3. Координаты X и Y должны быть типа INT от -512 до 512. Где 0 - стартовая позиция джойстика.

Опционально:
1. сделать сглаживание значений. Если джойстик неподвижен, чтобы минимальные отклонения (уровень этого отклонения должен задаваться константой) не учитывались.

Результат работы:
Скетч для Arduino в формате *.ino.

Проверка работы:
Каждые delay(100) должны выводиться координаты по X и Y.
Если при проверке у меня при движении вперед будет показывать движение вправо, значит мне нужно САМОСТОЯТЕЛЬНО повернуть акселерометр или поправить ваш код. Итого, мне нужен лишь код, а соответствие сторонам (вперед/назад/лево/право) я смогу поправить сам.
Отзывы
R50 b19fc617349e7e5ded39509fbcc3ce62
Заказчик
Грамотный, минималистичный, элегантный код. Спасибо!
~ 3 года назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Надеюсь, будут еще идеи?!
Буду ждать.
~ 3 года назад