Оглавление:

[Wearable Mouse] Контроллер переносной мыши на основе Bluetooth для Windows 10 и Linux: 5 шагов
[Wearable Mouse] Контроллер переносной мыши на основе Bluetooth для Windows 10 и Linux: 5 шагов

Видео: [Wearable Mouse] Контроллер переносной мыши на основе Bluetooth для Windows 10 и Linux: 5 шагов

Видео: [Wearable Mouse] Контроллер переносной мыши на основе Bluetooth для Windows 10 и Linux: 5 шагов
Видео: Ноу-хау... Глава 136: Взлом автомобилей, VLAN NAT и AlienX 2024, Ноябрь
Anonim
Image
Image
Подключение акселерометра к Raspberry Pi
Подключение акселерометра к Raspberry Pi

Я сделал контроллер мыши на основе Bluetooth, который можно использовать для управления указателем мыши и выполнения операций, связанных с компьютерной мышью, на лету, не касаясь каких-либо поверхностей. Электронная схема, встроенная в перчатку, может использоваться для отслеживания жестов рук с помощью акселерометра, что может быть преобразовано в движение указателя мыши. Это устройство также связано с кнопкой, которая повторяет щелчок левой кнопкой. Устройство можно подключить к ПК последовательно (через USB) или по беспроводной связи через соединение Bluetooth. Bluetooth обеспечивает надежную и универсальную беспроводную связь между главным устройством и этой носимой мышью. Поскольку Bluetooth широко доступен и встроен почти во все персональные ноутбуки, возможности использования такого носимого устройства весьма широки. Используя Raspberry Pi, который является часто используемой платформой разработки для различных проектов, можно легко и легко масштабировать взаимодействие различных датчиков и разработку такого устройства. Перчатку можно заменить любой другой носимой, чтобы расширить область ее применения.

В качестве меры предосторожности против COVID-19 рекомендуется избегать прикосновения к поверхностям, которые могут использоваться разными людьми, и ноутбук с сенсорным экраном или мышь могут быть среди этих общих поверхностей. Использование такого носимого устройства помогает поддерживать гигиену и дезинфицировать часто используемые поверхности:)

Запасы

  • Raspberry Pi 3 Модель B V1.2
  • Трехосный акселерометр SparkFun Breakout - MMA8452Q
  • Перемычка между мужчинами и женщинами
  • Перчатка
  • Скотч
  • Ножницы
  • Кабель Micro-USB
  • Кабель HDMI (для отладки через Raspberry Pi)

Шаг 1. Сопряжение акселерометра с Raspberry Pi

Подключение акселерометра к Raspberry Pi
Подключение акселерометра к Raspberry Pi

Я использовал трехосевой акселерометр MMA8542Q от Sparkfun, который использует протокол связи I2C для связи с контактами Raspberry Pi GPIO и отправки данных осей. Этот датчик обеспечивает различные режимы работы с настраиваемой скоростью передачи данных, режимами сна, диапазоном ускорения, режимом фильтрации и т. Д. Я обнаружил, что код от Pibits очень полезен при первоначальной настройке датчика и тестировании его с помощью жестов руки. Лучше сначала поместить датчик на плоскую поверхность и делать детерминированные наклоны, наблюдая за исходными значениями датчика. Это особенно полезно для понимания того, как этот датчик реагирует на различные жесты рук и как мы можем установить пороговые значения для нашего приложения. После успешного подключения акселерометра вы можете увидеть необработанные данные осей, поступающие на экран терминала Pi.

Шаг 2: взаимодействие кнопки с Raspberry Pi

Взаимодействие кнопки с Raspberry Pi
Взаимодействие кнопки с Raspberry Pi

В этом носимом устройстве я подключил кнопку, которая может работать как левая кнопка мыши, чтобы я мог нажимать на значки на экране. Затем 2 конца кнопки подключаются к 2 контактам GPIO Pi. Один из выводов выводит высокий логический уровень, а другой вывод считывает это значение. Когда кнопка нажата, схема замыкается, и входной вывод может считывать значение с высоким логическим уровнем, которое затем обрабатывается сценарием, который я написал для имитации щелчка левой кнопкой мыши. Из-за отсутствия паяльника я использовал изоленту для соединения перемычек с кнопкой.

Шаг 3. Разработка скрипта Python для последовательного управления указателем мыши

Я использовал библиотеку Python Pyautogui для управления указателем мыши. Причина использования этой библиотеки заключалась в том, что она работает как на Linux, так и на платформе Windows. Чтобы управлять указателем мыши на моем Raspberry Pi, сначала я подключил свой Pi к дисплею. Затем я использовал следующие API-интерфейсы, предоставляемые библиотекой, для управления указателем мыши:

  1. pyautogui.move (0, 200, 2) # перемещает мышь вниз на 200 пикселей за 2 секунды
  2. pyautogui.click () # щелкните мышью

Чтобы отфильтровать данные об ошибках, поступающие от акселерометра, я использовал усреднение и другие методы фильтрации, которые можно легко понять из прилагаемого кода. API pyautogui.move (0, y) использовался таким образом, что указатель мыши может перемещаться вверх-вниз или влево-вправо за раз. Это связано с тем, что акселерометр сообщает оси в направлениях X, Y и Z, но API принимает только 2 аргумента, оси X и Y. Следовательно, этот подход очень подходил для моего акселерометра и отображения жестов на экране.

Шаг 4: Разработка скрипта Python для управления указателем мыши через Bluetooth

Разработка скрипта Python для управления указателем мыши через Bluetooth
Разработка скрипта Python для управления указателем мыши через Bluetooth

Эта часть представляет собой расширенное приложение, в котором любой ноутбук, имеющий возможности Bluetooth, может связываться с Raspberry Pi в модели связи сервер-клиент и передавать данные о координатах мыши по беспроводной сети. Чтобы настроить 64-разрядный ноутбук с Windows 10 для связи по Bluetooth, нам необходимо выполнить следующие действия:

Windows 10:

  1. Создайте входящий COM-порт Bluetooth.
  2. Соедините Bluetooth Pi с Bluetooth ноутбука, сделав Pi доступным для обнаружения.
  3. Установите Python в Windows.
  4. Установите pip в Windows. Pip используется для установки библиотек на машине Linux или Windows.
  5. Установите pyautogui в Windows, используя: pip install pyautogui
  6. После установки pyautogui на устройство установите Pybluez в Windows, используя следующую команду на терминале Windows: pip install PyBluez-win10. PyBluez включает связь Bluetooth на ПК с Windows и Linux.
  7. Чтобы разработать приложение на ноутбуке с Windows 10, нам необходимо установить Microsoft Visual Studio (требуется 15-20 ГБ места) и его инструменты сборки. Поэтому вместе с PyBluez нам необходимо следовать приведенным ниже инструкциям.

    1. Загрузите и запустите «Установщик Visual Studio»:
    2. Установите «Visual Studio Build Tools 2017», отметьте «Инструменты сборки Visual C ++» и «Инструменты сборки универсальной платформы Windows».

    3. git clone
    4. cd pybluez
    5. установка python setup.py

  8. Если приведенные выше инструкции выполняются правильно, запуск Python на терминале Windows и импорт модуля pyautogui и Bluetooth должны работать без ошибок, как показано на изображении выше.
  9. В библиотеке pybluez, установленной на машине Windows, перейдите по адресу: pybluez-master / examples / simple / rfcomm-server.py и выполните с помощью python rfcomm-server.py. Если терминал переходит в состояние ожидания без ошибок, перейдите в раздел ниже, чтобы настроить Bluetooth на Pi. Если при установке pybluez возникают ошибки, обратитесь к разделу «Проблемы GitHub» для отладки.

Raspbian на Raspberry Pi:

  1. Установите PyBluez на Pi
  2. Запустите пример сервера в Windows. Затем на Pi перейдите к pybluez-master / examples / simple / rfcomm-client.py и выполните. Если два устройства начали обмениваться данными, Bluetooth теперь настроен на обоих устройствах. Чтобы узнать больше о том, как взаимодействие сокетов работает с Python, обратитесь к этой ссылке из MIT.

Для отправки данных осей с Pi на ПК потребуется дополнительный анализ данных, поскольку данные отправляются в байтах. Обратитесь к приложенному коду для получения дополнительной информации о передаче данных между клиентом и сервером.

Шаг 5: установка акселерометра и кнопки на перчатке

Встраивание акселерометра и кнопки на перчатку
Встраивание акселерометра и кнопки на перчатку
Встраивание акселерометра и кнопки на перчатку
Встраивание акселерометра и кнопки на перчатку

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

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

Рекомендуемые: