Kazalo:

[Wearable Mouse] Krmilnik nosljive miške na osnovi Bluetooth za Windows 10 in Linux: 5 korakov
[Wearable Mouse] Krmilnik nosljive miške na osnovi Bluetooth za Windows 10 in Linux: 5 korakov
Anonim
Image
Image
Vmesnik merilnika pospeška z Raspberry Pi
Vmesnik merilnika pospeška z Raspberry Pi

Naredil sem krmilnik miške na osnovi Bluetooth, s katerim lahko upravljate kazalec miške in izvajate operacije, povezane z računalniško miško, ne da bi se dotaknili površin. Elektronsko vezje, ki je vdelano v rokavico, lahko uporabite za sledenje kretnjam rok skozi merilnik pospeška in to lahko prevedete v premikanje kazalca miške. Ta naprava je povezana tudi z gumbom, ki ponovi klik z levim gumbom. Napravo lahko serijsko priključite na računalnik (prek USB -ja) ali brezžično prek povezave Bluetooth. Bluetooth zagotavlja robustno in univerzalno brezžično komunikacijo med gostiteljsko napravo in to nosljivo miško. Ker je Bluetooth široko dostopen in je vgrajen v skoraj vse osebne prenosne računalnike, je primer uporabe takšne nosljive naprave širok. Uporaba Raspberry Pi, ki je pogosto uporabljena razvojna platforma za različne projekte, povezovanje različnih senzorjev in razvoj takšne naprave je enostaven in prilagodljiv. Rokavice lahko zamenjate s katero koli drugo nosljivo roko, da bo njena uporaba širša.

Kot previdnostni ukrep proti COVID-19 je priporočljivo, da se izogibate dotikanju površin, ki jih lahko delite med različnimi ljudmi, prenosnik ali miška z zaslonom na dotik pa je lahko med temi skupnimi površinami. Uporaba takšne nosljive naprave pomaga pri vzdrževanju higiene in ohranja dezinfekcijo pogosto uporabljenih površin:)

Zaloge

  • Raspberry Pi 3 Model B V1.2
  • SparkFun trojni osni merilnik pospeška - MMA8452Q
  • Moška ženska skakalna žica
  • Rokavica
  • Lepilni trak
  • Škarje
  • Kabel mikro-USB
  • HDMI kabel (za odpravljanje napak prek Raspberry Pi)

Korak 1: Povezovanje merilnika pospeška z Raspberry Pi

Povezovanje merilnika pospeška z Raspberry Pi
Povezovanje merilnika pospeška z Raspberry Pi

Uporabil sem troosni merilnik pospeška MMA8542Q podjetja Sparkfun, ki uporablja komunikacijski protokol I2C za pogovor z zatiči Raspberry Pi GPIO in pošiljanje podatkov o osi. Ta senzor ponuja različne načine delovanja z nastavljivo hitrostjo prenosa podatkov, načini spanja, območjem pospeševanja, načinom filtriranja itd. Ugotovil sem, da je koda iz Pibitov v veliko pomoč pri moji začetni konfiguraciji senzorja in preizkušanju z ročnimi kretnjami. Bolje je, da senzor najprej postavite na ravno površino in določite nagibe, medtem ko opazujete vrednosti surovega senzorja. To je še posebej uporabno pri razumevanju, kako se ta senzor odziva z različnimi kretnjami rok in kako lahko nastavimo pragove za našo aplikacijo. Ko merilnik pospeška uspešno povežete, lahko vidite surove podatke osi, ki prihajajo na terminalu zaslona Pi.

2. korak: Povezava gumba z Raspberry Pi

Povezovalni gumb z Raspberry Pi
Povezovalni gumb z Raspberry Pi

V tej nosljivi napravi sem povezal gumb, ki lahko deluje kot levi gumb miške, tako da lahko kliknem ikone na zaslonu. Dva konca gumba sta nato priključena na 2 GPIO zatiča Pi. Eden od nožic odda logično visoko vrednost, drugi pa odčita to vrednost. Ko pritisnete gumb, se vezje zapre in vhodni pin lahko prebere logično visoko vrednost, ki jo nato obdela skript, ki sem ga napisal, da posnema levi klik miške. Zaradi pomanjkanja spajkalnika sem uporabil lepilni trak za povezavo skakalcev z gumbom.

Korak 3: Razvoj skripta Python za zaporedni nadzor kazalca miške

Za nadzor kazalca miške sem uporabil knjižnico Pyautogui Python. Razlog za uporabo te knjižnice je, da deluje tako na Linuxu kot na platformi Windows. Za nadzor kazalca miške na mojem Raspberry Pi sem najprej povezal svoj Pi z zaslonom. Nato sem za nadzor kazalca miške uporabil naslednje API -je, ki jih ponuja knjižnica:

  1. pyautogui.move (0, 200, 2) # premakne miško navzdol za 200 slikovnih pik v 2 sekundah
  2. pyautogui.click () # kliknite miško

Za filtriranje podatkov o napakah, ki prihajajo iz merilnika pospeška, sem uporabil povprečenje in druge metode filtriranja, ki jih je mogoče enostavno razumeti s priloženo kodo. API pyautogui.move (0, y) je bil uporabljen tako, da se lahko kazalec miške premika navzgor ali navzgor levo-desno. To je zato, ker merilnik pospeška poroča osi v smeri X, Y in Z, API pa sprejema le 2 argumenta, osi X in Y. Zato je bil ta pristop zelo primeren za moj merilnik pospeška in za preslikavo kretenj na zaslonu.

4. korak: Razvoj skripta Python za nadzor kazalca miške prek Bluetootha

Razvoj skripta Python za nadzor kazalca miške prek Bluetootha
Razvoj skripta Python za nadzor kazalca miške prek Bluetootha

Ta del je napredna aplikacija, v kateri lahko vsak prenosnik, ki ima zmožnosti Bluetooth, komunicira z Raspberry Pi v komunikacijskem modelu strežnik-odjemalec in brezžično prenaša podatke o koordinatah miške. Za nastavitev 64-bitnega prenosnega računalnika Windows 10, ki omogoča komunikacijo Bluetooth, moramo slediti spodnjim korakom:

Windows 10:

  1. Ustvarite dohodna vrata COM COM.
  2. Povežite Pi -jev Bluetooth z Bluetooth -om prenosnega računalnika, tako da Pi odkrijete.
  3. Namestite Python v sistem Windows.
  4. Namestite pip v sistem Windows. Pip se uporablja za namestitev knjižnic na računalnik z operacijskim sistemom Linux ali Windows.
  5. Namestite pyautogui v Windows z uporabo: pip install pyautogui
  6. Ko je pyautogui nameščen v napravi, namestite Pybluez v Windows z naslednjim ukazom na terminalu Windows z uporabo: pip install PyBluez-win10. PyBluez omogoča komunikacijo Bluetooth v računalnikih z operacijskim sistemom Windows in Linux.
  7. Za razvoj aplikacije na prenosnem računalniku z operacijskim sistemom Windows 10 moramo namestiti Microsoft Visual Studio (15-20 GB prostora) in njegova orodja za gradnjo. Zato moramo skupaj s programom PyBluez upoštevati naslednja navodila,

    1. Prenesite in zaženite "Visual Studio Installer":
    2. Namestite "Visual Studio Build Tools 2017", potrdite "Visual C ++ build tools" in "Universal Windows Platform build tools"

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

  8. Če so zgornja navodila pravilno upoštevana, bi morali zagon Pythona na terminalu Windows in uvoz pyautogui in modula Bluetooth delovati brez napak, kot je prikazano na zgornji sliki.
  9. V knjižnici pybluez, nameščeni na računalniku z operacijskim sistemom Windows, pojdite na: pybluez-master / examples / simple / rfcomm-server.py in izvedite z uporabo python rfcomm-server.py. Če gre terminal v stanje čakanja brez napak, pojdite v spodnji razdelek za nastavitev Bluetootha na Pi. Če pride do napak pri nameščanju programa pybluez, glejte Težave z GitHubom za odpravljanje napak.

Raspbian na Raspberry Pi:

  1. Namestite PyBluez na Pi
  2. Zaženite primer strežnika v sistemu Windows. Nato se na Pi pomaknite do pybluez-master / examples / simple / rfcomm-client.py in izvedite. Če sta napravi začeli komunicirati, je Bluetooth zdaj nastavljen na obeh napravah. Če želite izvedeti več o tem, kako komunikacija vtičnic deluje s Pythonom, si oglejte to povezavo z MIT.

Za pošiljanje podatkov osi iz Pi v računalnik bo potrebnih nekaj dodatnih razčlenitev podatkov, saj se podatki pošiljajo v bajtih. Za več informacij o podatkovni komunikaciji odjemalca in strežnika si oglejte priloženo kodo.

5. korak: Vstavite merilnik pospeška in gumb na rokavico

Vdelava merilnika pospeška in gumba na rokavico
Vdelava merilnika pospeška in gumba na rokavico
Vdelava merilnika pospeška in gumba na rokavico
Vdelava merilnika pospeška in gumba na rokavico

Ko je merilnik pospeška dobro povezan, okostnjaški sistem izgleda kot prva slika na tem koraku.

Ker površina rokavice ni ravna, sem uporabil lažno kreditno kartico, ki mi vsake toliko pride v nabiralnik. Kot je prikazano na drugi sliki na tem koraku, sem z lepilnim trakom pritrdil lažno kreditno kartico na zgornjo površino rokavice. Nad kartico sem pritrdil merilnik pospeška. Ta nastavitev je bila dovolj robustna, da je merilnik pospeška ostal stabilen in je lahko natančno sledil mojim kretnjam.

Priporočena: