Obsah:

[Wearable Mouse] Ovládač nositeľnej myši na báze Bluetooth pre Windows 10 a Linux: 5 krokov
[Wearable Mouse] Ovládač nositeľnej myši na báze Bluetooth pre Windows 10 a Linux: 5 krokov

Video: [Wearable Mouse] Ovládač nositeľnej myši na báze Bluetooth pre Windows 10 a Linux: 5 krokov

Video: [Wearable Mouse] Ovládač nositeľnej myši na báze Bluetooth pre Windows 10 a Linux: 5 krokov
Video: Keynote of Ken Perlin at Visual Computing Trends 2019 2024, Júl
Anonim
Image
Image
Prepojovací akcelerometer s Raspberry Pi
Prepojovací akcelerometer s Raspberry Pi

Vytvoril som ovládač myši na báze Bluetooth, ktorý je možné použiť na ovládanie ukazovateľa myši a vykonávanie operácií súvisiacich s počítačom s myšou za behu, bez toho, aby ste sa dotkli akéhokoľvek povrchu. Elektronické obvody, ktoré sú zabudované v rukavici, je možné použiť na sledovanie gest rúk pomocou akcelerometra, ktoré je možné preložiť do pohybu ukazovateľa myši. Toto zariadenie je tiež prepojené s tlačidlom, ktoré replikuje kliknutie ľavým tlačidlom. Zariadenie je možné pripojiť sériovo k počítaču (cez USB) alebo bezdrôtovo prostredníctvom pripojenia Bluetooth. Bluetooth poskytuje robustnú a univerzálnu bezdrôtovú komunikáciu medzi hostiteľským zariadením a touto nositeľnou myšou. Pretože je Bluetooth široko dostupný a je súčasťou takmer všetkých osobných prenosných počítačov, prípad použitia takéhoto prenosného zariadenia je široký. Používanie Raspberry Pi, čo je bežne používaná vývojová platforma pre rôzne projekty, prepojenie rôznych senzorov a vývoj takéhoto zariadenia je jednoduché a škálovateľné. Rukavicu je možné nahradiť akýmkoľvek iným oblečením, aby bola jej aplikácia širšia.

Ako preventívne opatrenie proti COVID-19 sa odporúča vyhnúť sa dotýkajúcim sa povrchom, ktoré je možné zdieľať medzi rôznymi ľuďmi, a medzi tieto bežné povrchy môže patriť prenosný počítač alebo myš s dotykovým displejom. Použitie takého prenosného zariadenia pomáha udržiavať hygienu a udržiavať bežne používané povrchy dezinfikované:)

Zásoby

  • Raspberry Pi 3 Model B V1.2
  • Trojosový akcelerometer SparkFun - MMA8452Q
  • Prepojovací kábel medzi mužmi a ženami
  • Rukavica
  • Lepiaca páska
  • Nožnice
  • Micro-USB kábel
  • Kábel HDMI (na ladenie cez Raspberry Pi)

Krok 1: Rozhranie akcelerometra s Raspberry Pi

Prepojovací akcelerometer s Raspberry Pi
Prepojovací akcelerometer s Raspberry Pi

Použil som trojosový akcelerometer MMA8542Q od Sparkfun, ktorý pomocou komunikačného protokolu I2C komunikuje s pinmi GPIO Raspberry Pi a odosiela údaje o osiach. Tento snímač poskytuje rôzne režimy prevádzky s konfigurovateľnou rýchlosťou prenosu údajov, režimami spánku, rozsahom zrýchlenia, režimom filtra atď. Zistil som, že kód od spoločnosti Pibits je veľmi nápomocný pri mojej počiatočnej konfigurácii snímača a jeho testovaní gestami ruky. Je lepšie najskôr umiestniť snímač na rovný povrch a vykonávať deterministické náklony pri sledovaní nespracovaných hodnôt senzora. To je obzvlášť užitočné v chápaní toho, ako tento senzor reaguje rôznymi gestami rúk a ako môžeme pre svoju aplikáciu nastaviť prahové hodnoty. Akonáhle je akcelerometer úspešne prepojený, môžete vidieť surové údaje osí prichádzajúce na obrazovku terminálu Pi.

Krok 2: Tlačidlo prepojenia s Raspberry Pi

Tlačidlo prepojenia s Raspberry Pi
Tlačidlo prepojenia s Raspberry Pi

V tomto nositeľnom zariadení som prepojil tlačidlo, ktoré môže fungovať ako ľavé tlačidlo myši, aby som mohol klikať na ikony na obrazovke. 2 konce tlačidla sú potom spojené s 2 GPIO pinmi Pi. Jeden z pinov vydáva logickú výšku a druhý pin číta túto hodnotu. Po stlačení tlačidla sa obvod uzavrie a vstupný pin je schopný prečítať logicky vysokú hodnotu, ktorá je potom spracovaná skriptom, ktorý som napísal, aby emuloval klikanie ľavým tlačidlom myši. Z dôvodu nedostatku spájkovačky som pomocou prepojovacej pásky prepojil prepojky pomocou tlačidla.

Krok 3: Vývoj skriptu Python na sériové ovládanie ukazovateľa myši

Na ovládanie ukazovateľa myši som použil knižnicu Pyautogui Python. Dôvodom použitia tejto knižnice bolo, že funguje na platforme Linux aj Windows. Aby som mohol ovládať ukazovateľ myši na svojom Raspberry Pi, najskôr som svoje Pi pripojil k displeju. Potom som na ovládanie ukazovateľa myši použil nasledujúce API, ktoré poskytuje knižnica:

  1. pyautogui.move (0, 200, 2) # presunie myš nadol o 200 pixelov v priebehu 2 sekúnd
  2. pyautogui.click () # kliknite myšou

Aby som odfiltroval chybové údaje pochádzajúce z akcelerometra, použil som priemerovanie a ďalšie metódy filtrovania, ktoré je možné ľahko pochopiť pomocou priloženého kódu. Rozhranie API pyautogui.move (0, y) bolo použité takým spôsobom, že ukazovateľ myši sa môže pohybovať buď hore-dole alebo vľavo-vpravo súčasne. Dôvodom je, že akcelerometer hlási osi v smere X, Y a Z, ale API používa iba 2 argumenty, osi X a Y. Tento prístup bol teda veľmi vhodný pre môj akcelerometer a pre mapovanie gest na obrazovke.

Krok 4: Vývoj skriptu Python na ovládanie ukazovateľa myši cez Bluetooth

Vývoj skriptu Python na ovládanie ukazovateľa myši cez Bluetooth
Vývoj skriptu Python na ovládanie ukazovateľa myši cez Bluetooth

Táto časť je pokročilá aplikácia, v ktorej akýkoľvek prenosný počítač s funkciami Bluetooth môže komunikovať s Raspberry Pi v komunikačnom modeli server-klient a bezdrôtovo prenášať údaje o súradniciach myši. Aby sme mohli nastaviť 64-bitový prenosný počítač so systémom Windows 10 tak, aby umožňoval komunikáciu Bluetooth, musíme postupovať podľa nasledujúcich krokov:

Windows 10:

  1. Vytvorte prichádzajúci port Bluetooth COM.
  2. Spárujte Bluetooth Pi a Bluetooth notebooku tým, že ho zistíte.
  3. Nainštalujte Python na Windows.
  4. Nainštalujte pip na Windows. Pip sa používa na inštaláciu knižníc na počítači so systémom Linux alebo Windows.
  5. Nainštalujte pyautogui do systému Windows pomocou: pip install pyautogui
  6. Akonáhle je do zariadenia nainštalovaný pyautogui, nainštalujte Pybluez do systému Windows pomocou nasledujúceho príkazu do terminálu Windows pomocou: pip install PyBluez-win10. PyBluez umožňuje komunikáciu Bluetooth na počítačoch so systémom Windows aj Linux.
  7. Aby sme mohli vyvinúť aplikáciu na prenosnom počítači so systémom Windows 10, musíme nainštalovať Microsoft Visual Studio (vyžaduje sa 15-20 GB miesta) a nástroje na jeho zostavenie. Spolu s PyBluez sa preto musíme riadiť nižšie uvedenými pokynmi,

    1. Stiahnite si a spustite „Inštalátor Visual Studio“:
    2. Nainštalujte „Visual Studio Build Tools 2017“, začiarknite políčka „Nástroje na vytváranie Visual C ++“a „Nástroje na vytváranie univerzálnej platformy Windows“

    3. klon git
    4. cd pybluez
    5. inštalácia python setup.py

  8. Ak sú správne dodržané vyššie uvedené pokyny, spustenie programu Python na termináli systému Windows a import modulu pyautogui a Bluetooth by mal fungovať bez chýb, ako je uvedené na obrázku vyššie.
  9. V knižnici pybluez nainštalovanej na počítači so systémom Windows prejdite na: pybluez-master / examples / simple / rfcomm-server.py a spustite pomocou python rfcomm-server.py. Ak terminál prejde do stavu čakania bez chýb, v nižšie uvedenej časti nájdete informácie o nastavení Bluetooth na zariadení Pi. Ak sa pri inštalácii pybluez vyskytnú chyby, ladenie nájdete v časti Problémy s GitHub.

Raspbian na Raspberry Pi:

  1. Nainštalujte PyBluez na Pi
  2. Spustite príklad servera v systéme Windows. Potom na Pi prejdite na pybluez-master / examples / simple / rfcomm-client.py a spustite. Ak tieto dve zariadenia začali komunikovať, Bluetooth je teraz nastavené na oboch zariadeniach. Ak sa chcete dozvedieť viac o tom, ako soketová komunikácia funguje s Pythonom, pozrite sa na tento odkaz od MIT.

Na odoslanie údajov osí z počítača Pi do počítača bude potrebné vykonať niekoľko ďalších analýz údajov, pretože údaje sa odosielajú v bajtoch. Bližšie informácie o dátovej komunikácii s klientom a serverom nájdete v priloženom kóde.

Krok 5: Vložte akcelerometer a tlačidlo do rukavice

Vkladací akcelerometer a tlačidlo na rukavici
Vkladací akcelerometer a tlačidlo na rukavici
Vkladací akcelerometer a tlačidlo na rukavici
Vkladací akcelerometer a tlačidlo na rukavici

Akonáhle je akcelerometer dobre prepojený, kostrový systém vyzerá ako prvý obrázok v tomto kroku.

Pretože povrch rukavice nie je plochý, použil som atrapu kreditnej karty, ktorá sa mi každú chvíľu dostala do schránky. Podľa druhého obrázku v tomto kroku som pripevnil atrapu kreditnej karty na horný povrch rukavice lepiacou páskou. Cez kartu som pripevnil akcelerometer. Toto nastavenie bolo dostatočne robustné, aby udržalo môj akcelerometer stabilný a dokázalo presne sledovať moje gestá.

Odporúča: