Работа с мышью

Тема в разделе "Arduino & Shields", создана пользователем KBSH, 25 авг 2015.

  1. KBSH

    KBSH Нерд

    Интересует, в частности, функция MouseMove. В этом примере как надо прописать, что данные для вычисления перемещения поступают по SDA/SCL (в цифровом виде +/-)?
     
  2. Alex19

    Alex19 Гуру

    Не очень понимаю, в чем проблема.

    Для начало мышку надо подключить по I2C (TWI). Полагаю, это уже сделано.

    Затем, просто обращаться по адресу слейва и получать данные. А дальше все зависит от того, какие данные Вы получаете, если абсолютные, просто заменить
    Код (Text):
    // считываем значение с аналогового входа:
    int reading = analogRead(axis[axisNumber]);
    На полученное значение.

    Если именно + и -.
    То придется начинать с каких начальных значений, хранить их в переменных для X и Y, прибавляя отнимая в зависимости от полученных данных. Так же неплохо сохранять предпоследние значения X и Y и если они изменились дергать метод Mouse.move().

    Вот как это сделали - http://www.hobbytronics.co.uk/usb-host-mouse. Только в примере идет отображение на экран и у них абсолютные значения.
     
  3. KBSH

    KBSH Нерд

    Ардуинка (Micro) сама в роли мыши выступает) Пробую собрать указательное устройство на акселерометре
     
  4. Alex19

    Alex19 Гуру

    Общий подход тот же, получаем данные в данном случае о перемещении. Получаем данные об ускорении, переводим ускорение. Перевод ускорения в координаты, скорее всего придется подобрать опытным путем.

    Код конечно отойти от примера, но это нюансы. Основная проблема разобраться с акселерометром и его шумом. Сам только недавно начал заниматься IMU, поэтому как его победить не подскажу.
     
  5. KBSH

    KBSH Нерд

    Для всех кто смотрит эту тему:
    В примере для Mouse.move() используются отдельные аналоговые входы получения данных для осей X и Y. А в моем случае все цифровые данные передаются по SDA/SCL. Как же их завести в Mouse.move()?