Использование мыши PS2 (PAW3402 / PAW3412) в качестве датчика расстояния для Arduino

Я работаю над проектом, в котором мне нужно рассчитать расстояние, пройденное роботом. Мышь подключена к процессору Arduino Uno, и я получил пример кода с сайта Arduino, чтобы начать работу.

Проблема в том, что мышь показывает разное расстояние в зависимости от того, насколько быстро или медленно она движется. (Точно так же, как вы можете двигать компьютерную мышь из стороны в сторону, быстро или медленно, и наблюдать, как она проходит разные расстояния по экрану). Можно ли как-то обойти эту настройку мыши? Если нет, то есть ли более точный датчик, который можно использовать для решения этой задачи? Мне сложно его найти.

Вот ссылка на техническое описание

, 👍1

Обсуждение

Ускорение мыши — это часть ОС, а не самой мыши. У вас действительно такая проблема или вы просто её предсказываете?, @Gerben

Если бы вы могли указать в характеристиках, на которые вы ссылаетесь, где у мыши есть функция/способность определять скорость движения, я был бы признателен. Я также изменю свой ответ, чтобы учесть это., @st2000


1 ответ


2

При использовании этой мыши я заметил, что если скорость чтения недостаточно высокая, мышь переполняется. Она может считывать только движение по осям X и Y на расстояние до 127 пикселей, прежде чем буфер заполнится (аналогично тому, что говорил st2000). При чтении данных с мыши буфер очищается, и можно снова начать измерение пикселей.

Моя программа помечает любые перемещения на 127 пикселей как событие переполнения. В вашем приложении вы можете замедлить робота, когда они происходят, и найти подходящую «максимальную скорость». Или вы можете увеличить скорость чтения.

...при условии, что вы все еще работаете над этим 8 лет спустя.

,