arduino leonardo прекращает передачу как только кабель hdmi подключен к экрану

Я использую arduino leonardo для перемещения указателя мыши с отслеживанием головы с помощью MPU6050. В общем, он прекрасно работает. Но как только я подключаю внешний жидкокристаллический экран к своему ноутбуку через кабель hdmi, он перестает передавать данные. (то есть светодиод TX полностью гаснет, и мышь перестает двигаться) Я не могу понять, в чем здесь проблема, Решит ли эту проблему использование teensy 3.0 вместо Leonardo?

, 👍2


1 ответ


1

Проблема в том, что координаты мыши задаются дисплейным устройством, к которому она подключена.

Компьютер посылает дескриптор дисплея на HID устройство ( мышь), а затем мышь использует информацию о логическом размере экрана для координации движений.

Например, для перемещения с помощью Mouse.move(100,100,0); на самом деле вы перемещаетесь не на 100 пикселей, а на 100/(127-((-127)).

Единственный вариант, который я могу предложить, - это ОСТАНОВИТЬ мышь и перезапустить ее снова-так будет легче снова перезапустить вычисления.

Вот моя логическая функция для преобразования процента в соответствующие значения для Mouse.move();
int percentToLogic(int percent) { процент возврата*254/100; }

,

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