Съдържание:

[Носеща мишка] Контролер за носеща мишка, базиран на Bluetooth, за Windows 10 и Linux: 5 стъпки
[Носеща мишка] Контролер за носеща мишка, базиран на Bluetooth, за Windows 10 и Linux: 5 стъпки

Видео: [Носеща мишка] Контролер за носеща мишка, базиран на Bluetooth, за Windows 10 и Linux: 5 стъпки

Видео: [Носеща мишка] Контролер за носеща мишка, базиран на Bluetooth, за Windows 10 и Linux: 5 стъпки
Видео: Молитва о помощи и исцелении от тяжелых недугов святой мученице Фотинии Самаряныне. 2024, Ноември
Anonim
Image
Image
Свързване на акселерометъра с Raspberry Pi
Свързване на акселерометъра с Raspberry Pi

Направих контролер за мишка, базиран на Bluetooth, който може да се използва за управление на показалеца на мишката и извършване на операции, свързани с компютърна мишка, в движение, без да докосвате никакви повърхности. Електронната схема, която е вградена в ръкавица, може да се използва за проследяване на жестове с ръце чрез акселерометър и това може да се преведе в движението на показалеца на мишката. Това устройство също е свързано с бутон, който възпроизвежда щракването с левия бутон. Устройството може да бъде свързано последователно към компютъра (чрез USB) или безжично чрез Bluetooth връзка. Bluetooth осигурява здрава и универсална безжична комуникация между хост устройството и тази носима мишка. Тъй като Bluetooth е широко достъпен и е вграден с почти всички лични лаптопи, случаят на използване на такова носимо устройство е широк. Използването на Raspberry Pi, която е често използвана платформа за разработка за различни проекти, взаимодействието на различни сензори и разработването на такова устройство е лесно и мащабируемо. Ръкавицата може да бъде заменена с всяка друга носима, за да стане по -широко нейното приложение.

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

Консумативи

  • Raspberry Pi 3 Модел B V1.2
  • Акселерометър с тройна ос SparkFun - 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 GPIO пина на Pi. Единият извод извежда логически максимум, а другият изчислява тази стойност. Когато бутонът е натиснат, веригата се затваря и входният щифт може да прочете логически висока стойност, която след това се обработва от скрипта, който написах, за да подражава на щракване с левия бутон на мишката. Поради липсата на поялник използвах тиксо за свързване на джъмперите с бутона.

Стъпка 3: Разработване на скрипт на Python за серийно управление на мишката

Използвах библиотеката Pyautogui Python, за да контролирам показалеца на мишката. Причината да използвате тази библиотека е, че тя работи както на Linux, така и на платформата Windows. За да контролирам показалеца на мишката на моя Raspberry Pi, първо свързах Pi към дисплей. След това използвах следните API, предоставени от библиотеката, за да контролирам показалеца на мишката си:

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

За да филтрирам данните за грешките, идващи от Accelerometer, използвах усредняване и други методи за филтриране, които могат лесно да бъдат разбрани чрез приложения код. 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. Създайте входящ Bluetooth COM порт.
  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 GB пространство) и неговите инструменти за изграждане. Следователно, заедно с PyBluez, трябва да следваме инструкциите по -долу,

    1. Изтеглете и стартирайте „Visual Studio Installer“:
    2. Инсталирайте „Visual Studio Build Tools 2017“, поставете отметка в „Visual C ++ build tools“и „Universal Windows Platform build tools“

    3. git clone
    4. cd pybluez
    5. python setup.py install

  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: Вграждане на акселерометър и бутон върху ръкавицата

Вграждане на акселерометър и бутон върху ръкавицата
Вграждане на акселерометър и бутон върху ръкавицата
Вграждане на акселерометър и бутон върху ръкавицата
Вграждане на акселерометър и бутон върху ръкавицата

След като акселерометърът е добре свързан, скелетната система изглежда нещо първото изображение на тази стъпка.

Тъй като повърхността на ръкавицата не е плоска, използвах фиктивна кредитна карта, която идва в пощенската ми кутия от време на време. Съгласно второто изображение на тази стъпка, прикрепих фиктивната кредитна карта към горната повърхност на ръкавицата си с тиксо. Поставих акселерометъра върху картата. Тази настройка беше достатъчно здрава, за да поддържа моя акселерометър стабилен и да може да проследява точно жестовете ми.

Препоръчано: