Оглавление:
- Запасы
- Шаг 1. Сопряжение акселерометра с Raspberry Pi
- Шаг 2: взаимодействие кнопки с Raspberry Pi
- Шаг 3. Разработка скрипта Python для последовательного управления указателем мыши
- Шаг 4: Разработка скрипта Python для управления указателем мыши через Bluetooth
- Шаг 5: установка акселерометра и кнопки на перчатке
Видео: [Wearable Mouse] Контроллер переносной мыши на основе Bluetooth для Windows 10 и Linux: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Я сделал контроллер мыши на основе 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
Я использовал трехосевой акселерометр MMA8542Q от Sparkfun, который использует протокол связи I2C для связи с контактами Raspberry Pi GPIO и отправки данных осей. Этот датчик обеспечивает различные режимы работы с настраиваемой скоростью передачи данных, режимами сна, диапазоном ускорения, режимом фильтрации и т. Д. Я обнаружил, что код от Pibits очень полезен при первоначальной настройке датчика и тестировании его с помощью жестов руки. Лучше сначала поместить датчик на плоскую поверхность и делать детерминированные наклоны, наблюдая за исходными значениями датчика. Это особенно полезно для понимания того, как этот датчик реагирует на различные жесты рук и как мы можем установить пороговые значения для нашего приложения. После успешного подключения акселерометра вы можете увидеть необработанные данные осей, поступающие на экран терминала Pi.
Шаг 2: взаимодействие кнопки с Raspberry Pi
В этом носимом устройстве я подключил кнопку, которая может работать как левая кнопка мыши, чтобы я мог нажимать на значки на экране. Затем 2 конца кнопки подключаются к 2 контактам GPIO Pi. Один из выводов выводит высокий логический уровень, а другой вывод считывает это значение. Когда кнопка нажата, схема замыкается, и входной вывод может считывать значение с высоким логическим уровнем, которое затем обрабатывается сценарием, который я написал для имитации щелчка левой кнопкой мыши. Из-за отсутствия паяльника я использовал изоленту для соединения перемычек с кнопкой.
Шаг 3. Разработка скрипта Python для последовательного управления указателем мыши
Я использовал библиотеку Python Pyautogui для управления указателем мыши. Причина использования этой библиотеки заключалась в том, что она работает как на Linux, так и на платформе Windows. Чтобы управлять указателем мыши на моем Raspberry Pi, сначала я подключил свой Pi к дисплею. Затем я использовал следующие API-интерфейсы, предоставляемые библиотекой, для управления указателем мыши:
- pyautogui.move (0, 200, 2) # перемещает мышь вниз на 200 пикселей за 2 секунды
- pyautogui.click () # щелкните мышью
Чтобы отфильтровать данные об ошибках, поступающие от акселерометра, я использовал усреднение и другие методы фильтрации, которые можно легко понять из прилагаемого кода. API pyautogui.move (0, y) использовался таким образом, что указатель мыши может перемещаться вверх-вниз или влево-вправо за раз. Это связано с тем, что акселерометр сообщает оси в направлениях X, Y и Z, но API принимает только 2 аргумента, оси X и Y. Следовательно, этот подход очень подходил для моего акселерометра и отображения жестов на экране.
Шаг 4: Разработка скрипта Python для управления указателем мыши через Bluetooth
Эта часть представляет собой расширенное приложение, в котором любой ноутбук, имеющий возможности Bluetooth, может связываться с Raspberry Pi в модели связи сервер-клиент и передавать данные о координатах мыши по беспроводной сети. Чтобы настроить 64-разрядный ноутбук с Windows 10 для связи по Bluetooth, нам необходимо выполнить следующие действия:
Windows 10:
- Создайте входящий COM-порт Bluetooth.
- Соедините Bluetooth Pi с Bluetooth ноутбука, сделав Pi доступным для обнаружения.
- Установите Python в Windows.
- Установите pip в Windows. Pip используется для установки библиотек на машине Linux или Windows.
- Установите pyautogui в Windows, используя: pip install pyautogui
- После установки pyautogui на устройство установите Pybluez в Windows, используя следующую команду на терминале Windows: pip install PyBluez-win10. PyBluez включает связь Bluetooth на ПК с Windows и Linux.
-
Чтобы разработать приложение на ноутбуке с Windows 10, нам необходимо установить Microsoft Visual Studio (требуется 15-20 ГБ места) и его инструменты сборки. Поэтому вместе с PyBluez нам необходимо следовать приведенным ниже инструкциям.
- Загрузите и запустите «Установщик Visual Studio»:
-
Установите «Visual Studio Build Tools 2017», отметьте «Инструменты сборки Visual C ++» и «Инструменты сборки универсальной платформы Windows».
- git clone
- cd pybluez
установка python setup.py
- Если приведенные выше инструкции выполняются правильно, запуск Python на терминале Windows и импорт модуля pyautogui и Bluetooth должны работать без ошибок, как показано на изображении выше.
- В библиотеке pybluez, установленной на машине Windows, перейдите по адресу: pybluez-master / examples / simple / rfcomm-server.py и выполните с помощью python rfcomm-server.py. Если терминал переходит в состояние ожидания без ошибок, перейдите в раздел ниже, чтобы настроить Bluetooth на Pi. Если при установке pybluez возникают ошибки, обратитесь к разделу «Проблемы GitHub» для отладки.
Raspbian на Raspberry Pi:
- Установите PyBluez на Pi
- Запустите пример сервера в Windows. Затем на Pi перейдите к pybluez-master / examples / simple / rfcomm-client.py и выполните. Если два устройства начали обмениваться данными, Bluetooth теперь настроен на обоих устройствах. Чтобы узнать больше о том, как взаимодействие сокетов работает с Python, обратитесь к этой ссылке из MIT.
Для отправки данных осей с Pi на ПК потребуется дополнительный анализ данных, поскольку данные отправляются в байтах. Обратитесь к приложенному коду для получения дополнительной информации о передаче данных между клиентом и сервером.
Шаг 5: установка акселерометра и кнопки на перчатке
После того, как акселерометр хорошо подключен, скелетная система выглядит как первое изображение на этом этапе.
Поскольку поверхность перчатки неровная, я использовал фиктивную кредитную карту, которая то и дело приходила в мой почтовый ящик. Как показано на втором изображении на этом этапе, я прикрепил фиктивную кредитную карту к верхней поверхности перчатки с помощью изоленты. Поверх карты я прикрепил акселерометр. Эта установка была достаточно надежной, чтобы мой акселерометр оставался стабильным и мог точно отслеживать мои жесты.
Рекомендуемые:
Контроллер стартера DOL на основе IOT для ирригационной насосной установки: 6 шагов
Контроллер стартера DOL на базе IOT для ирригационной насосной установки: Здравствуйте, друзья. В этой инструкции рассказывается, как удаленно контролировать и управлять ирригационной насосной установкой через Интернет. История: На своей ферме я получаю электроэнергию от местной сети только около 6 часов в день. Сроки нестандартные, наличие по
Контроллер уровня воды на основе IOT с использованием NodeMCU ESP8266: 6 шагов
Контроллер уровня воды на основе IOT с использованием NodeMCU ESP8266: Это руководство по созданию контроллера уровня воды на основе IOT. Особенности этого проекта: - Обновления уровня воды в реальном времени в приложении для Android. Автоматически включайте водяной насос, когда вода опускается ниже минимального уровня. Ау
Изготовление переносной штанги для MP3-плеера: 12 шагов
Сделайте переносную штангу для MP3-плеера: в этом руководстве показано, как использовать комплект плеера MakeMP3, усилитель Velleman и старый пустой футляр для компакт-дисков, чтобы сделать маленькое портативное радио. Он использует тему, которую я придумал для Y.A.I.A
Переносной рекламный знак по дешевке всего за 10 шагов !!: 13 шагов (с изображениями)
Переносной рекламный знак по дешевке всего за 10 шагов !!: Сделайте свой собственный дешевый портативный рекламный знак. С помощью этого знака вы можете показать свое сообщение или логотип в любом месте для любого человека в городе. Это руководство является ответом на / улучшение / изменение: https://www.instructables.com/id/Low-Cost-Illuminated
Контроллер SNES в моде для мыши: 8 шагов
Контроллер SNES в моде для мыши: быстрый и простой способ превратить контроллер SNES в работающую оптическую мышь