Sadržaj:

[Nosivi miš] Kontroler nosivog miša zasnovanog na Bluetooth-u za Windows 10 i Linux: 5 koraka
[Nosivi miš] Kontroler nosivog miša zasnovanog na Bluetooth-u za Windows 10 i Linux: 5 koraka

Video: [Nosivi miš] Kontroler nosivog miša zasnovanog na Bluetooth-u za Windows 10 i Linux: 5 koraka

Video: [Nosivi miš] Kontroler nosivog miša zasnovanog na Bluetooth-u za Windows 10 i Linux: 5 koraka
Video: Magandang Dilag: Full Episode 94 (November 3, 2023) (with English subs) 2024, Juli
Anonim
Image
Image
Povezivanje akcelerometra sa Raspberry Pi
Povezivanje akcelerometra sa Raspberry Pi

Napravio sam kontroler miša zasnovan na Bluetooth-u koji se može koristiti za upravljanje pokazivačem miša i izvođenje operacija povezanih sa mišem sa računara u hodu, bez dodirivanja bilo koje površine. Elektroničko kolo, ugrađeno u rukavicu, može se koristiti za praćenje pokreta rukama kroz akcelerometar i to se može prevesti u pomicanje pokazivača miša. Ovaj uređaj je također povezan s gumbom koji ponavlja klik lijevom tipkom. Uređaj se može serijski priključiti na računar (putem USB -a) ili bežično putem Bluetooth veze. Bluetooth pruža robusnu i univerzalnu bežičnu komunikaciju između uređaja domaćina i ovog nosivog miša. Kako je Bluetooth široko dostupan i ugrađen je u gotovo sve osobne prijenosne računare, slučaj upotrebe takvog nosivog uređaja je širok. Korištenje Raspberry Pi, koja je često korištena razvojna platforma za različite projekte, povezivanje različitih senzora i razvoj takvog uređaja je jednostavno i skalabilno. Rukavica se može zamijeniti bilo kojom drugom nosivom opremom kako bi se povećala njena primjena.

Kao mjera opreza protiv pandemije COVID-19, preporučljivo je izbjegavati dodirivanje površina koje se mogu dijeliti između različitih ljudi, a prijenosni računar ili miš s ekranom osjetljivim na dodir mogu biti među tim uobičajenim površinama. Korištenje takvog nosivog uređaja pomaže u održavanju higijene i održavanju uobičajeno korištenih površina dezinficiranim:)

Supplies

  • Raspberry Pi 3 Model B V1.2
  • SparkFun troosni akcelerometar - MMA8452Q
  • Muško -ženska kratkospojna žica
  • Rukavica
  • Ljepljiva traka
  • Makaze
  • Mikro-USB kabl
  • HDMI kabel (za otklanjanje grešaka putem Raspberry Pi)

Korak 1: Povezivanje akcelerometra s Raspberry Pi

Povezivanje akcelerometra sa Raspberry Pi
Povezivanje akcelerometra sa Raspberry Pi

Koristio sam troosni akcelerometar MMA8542Q kompanije Sparkfun koji koristi I2C komunikacijski protokol za razgovor sa Raspberry Pi GPIO pinovima i slanje podataka o osi. Ovaj senzor pruža različite načine rada s konfiguriranom brzinom prijenosa podataka, načinima mirovanja, rasponom ubrzanja, načinom filtriranja itd. Otkrio sam da je kod iz Pibits -a vrlo koristan u mojoj početnoj konfiguraciji senzora i testiranju pokretima ruke. Bolje je senzor prvo postaviti na ravnu površinu i napraviti determinističke nagibe promatrajući neobrađene vrijednosti senzora. Ovo je posebno korisno za razumijevanje kako ovaj senzor reagira s različitim pokretima ruku i kako možemo postaviti pragove za našu aplikaciju. Nakon što se akcelerometar uspješno poveže, možete vidjeti neobrađene podatke osi koje dolaze na Pi terminal terminal.

Korak 2: Povezivanje dugmeta sa Raspberry Pi

Interfejsni taster sa Raspberry Pi
Interfejsni taster sa Raspberry Pi

Na ovom nosivom uređaju spojio sam dugme koje može raditi kao lijevo dugme miša tako da mogu kliknuti na ikone na ekranu. Dva kraja gumba su zatim spojena na 2 GPIO pina Pi. Jedan od pinova daje logički maksimum, a drugi pin čita tu vrijednost. Kada se pritisne dugme, krug se zatvara i ulazni pin može očitati logičku vrijednost, koja se zatim obrađuje skriptom koju sam napisao za oponašanje klika lijevim mišem. Zbog nedostatka lemilice, spojio sam kratkospojnike pomoću dugmeta pomoću ljepljive trake.

Korak 3: Razvoj Python skripte za serijsku kontrolu pokazivača miša

Koristio sam Pyautogui Python biblioteku za kontrolu pokazivača miša. Razlog za korištenje ove biblioteke bio je taj što radi i na Linuxu i na Windows platformi. Da bih kontrolirao pokazivač miša na svom Raspberry Pi -u, prvo sam spojio svoj Pi na zaslon. Zatim sam koristio sljedeće API -je koje pruža biblioteka za kontrolu pokazivača miša:

  1. pyautogui.move (0, 200, 2) # pomiče miša prema dolje za 200 piksela u trajanju od 2 sekunde
  2. pyautogui.click () # kliknite mišem

Da bih filtrirao podatke o greškama koji dolaze s Accelerometra, upotrijebio sam prosjek i druge metode filtriranja koje se lako mogu razumjeti kroz priloženi kôd. API pyautogui.move (0, y) korišten je na način da pokazivač miša može ići gore-dolje ili lijevo-desno u isto vrijeme. To je zato što akcelerometar izvještava osi u smjeru X, Y i Z, ali API uzima samo 2 argumenta, osi X i Y. Stoga je ovaj pristup bio vrlo prikladan za moj akcelerometar i za mapiranje pokreta na ekranu.

Korak 4: Razvoj Python skripte za kontrolu pokazivača miša putem Bluetootha

Razvoj Python skripte za kontrolu pokazivača miša putem Bluetootha
Razvoj Python skripte za kontrolu pokazivača miša putem Bluetootha

Ovaj dio je napredna aplikacija u kojoj bilo koji laptop koji ima Bluetooth mogućnosti može komunicirati s Raspberry Pi-om u komunikacijskom modelu server-klijent i bežično prenositi koordinatne podatke miša. Da bismo postavili Windows 10 64-bitni laptop koji će omogućiti Bluetooth komunikaciju, moramo slijediti donje korake:

Windows 10:

  1. Kreirajte dolazni Bluetooth COM port.
  2. Uparite Pi -jev Bluetooth s Bluetooth -om na prijenosnom računaru čineći Pi vidljivim.
  3. Instalirajte Python na Windows.
  4. Instalirajte pip na Windows. Pip se koristi za instaliranje biblioteka na Linux ili Windows mašini.
  5. Instalirajte pyautogui na Windows pomoću: pip install pyautogui
  6. Nakon što je pyautogui instaliran na uređaj, instalirajte Pybluez na Windows pomoću sljedeće naredbe na Windows terminalu koristeći: pip install PyBluez-win10. PyBluez omogućava Bluetooth komunikaciju na Windows i Linux računarima.
  7. Da bismo razvili aplikaciju na laptopu sa operativnim sistemom Windows 10, moramo instalirati Microsoft Visual Studio (potrebno je 15-20 GB prostora) i njegove alate za izgradnju. Stoga, zajedno s PyBluezom, moramo slijediti upute u nastavku,

    1. Preuzmite i pokrenite "Visual Studio Installer":
    2. Instalirajte "Visual Studio Build Tools 2017", označite "Visual C ++ build tools" i "Universal Windows Platform build tools"

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

  8. Ako se gornja uputstva pravilno slijede, pokretanje Pythona na Windows terminalu i uvoz pyautogui i Bluetooth modula trebali bi raditi bez grešaka, kao na gornjoj slici.
  9. U biblioteci pybluez instaliranoj na Windows računaru idite na: pybluez-master / examples / simple / rfcomm-server.py i izvršite pomoću python rfcomm-server.py. Ako terminal prelazi u stanje čekanja bez grešaka, idite na donji odjeljak za postavljanje Bluetootha na Pi. Ako postoje greške u instaliranju pyblueza, pogledajte GitHub Problemi za otklanjanje grešaka.

Raspbian na Raspberry Pi:

  1. Instalirajte PyBluez na Pi
  2. Pokrenite primjer poslužitelja u sustavu Windows. Zatim na Pi idite na pybluez-master / examples / simple / rfcomm-client.py i izvršite. Ako su dva uređaja započela komunikaciju, Bluetooth je sada postavljen na oba uređaja. Da biste saznali više o tome kako socket komunikacija funkcionira s Pythonom, pogledajte ovu vezu s MIT -a.

Za slanje podataka osi iz Pi na PC bit će potrebno dodatno raščlanjivanje podataka, jer se podaci šalju u bajtovima. Pogledajte priloženi kôd za više informacija o komunikaciji podataka klijenta i poslužitelja.

Korak 5: Ugrađivanje akcelerometra i dugmeta na rukavicu

Ugrađivanje akcelerometra i dugmeta na rukavici
Ugrađivanje akcelerometra i dugmeta na rukavici
Ugrađivanje akcelerometra i dugmeta na rukavici
Ugrađivanje akcelerometra i dugmeta na rukavici

Kada se akcelerometar dobro poveže, skeletni sistem izgleda kao prva slika na ovom koraku.

Kako površina rukavice nije ravna, koristio sam lažnu kreditnu karticu koja mi s vremena na vrijeme dolazi u poštanski sandučić. Prema drugoj slici na ovom koraku, ljepljivom trakom sam pričvrstio lažnu kreditnu karticu na gornju površinu rukavice. Preko kartice sam priključio akcelerometar. Ova postavka bila je dovoljno robusna da održi moj akcelerometar stabilnim i da može precizno pratiti moje geste.

Preporučuje se: