Sadržaj:

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

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

Video: [Nosivi miš] Kontroler nosivog miša na bazi Bluetooth-a za Windows 10 i Linux: 5 koraka
Video: Magandang Dilag: Full Episode 94 (November 3, 2023) (with English subs) 2024, Prosinac
Anonim
Image
Image
Sučelje akcelerometra s Raspberry Pi
Sučelje akcelerometra s Raspberry Pi

Napravio sam kontroler miša temeljen na Bluetooth-u koji se može koristiti za upravljanje pokazivačem miša i izvođenje operacija povezanih s mišem s računala u hodu, bez dodirivanja bilo koje površine. Elektroničko kolo, koje je ugrađeno u rukavicu, može se koristiti za praćenje gesta rukama kroz akcelerometar i to se može prevesti u pomicanje pokazivača miša. Ovaj uređaj također je povezan s gumbom koji ponavlja klik lijeve tipke. Uređaj se može serijski priključiti na računalo (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. Budući da je Bluetooth široko dostupan i ugrađen je u gotovo sva osobna prijenosna računala, 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 njezina primjena.

Kao mjera opreza protiv pandemije COVID-19, preporučljivo je izbjegavati dodirivanje površina koje se mogu dijeliti među različitim ljudima, a prijenosno računalo ili miš s dodirnim zaslonom 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:)

Pribor

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

Korak 1: Povezivanje akcelerometra s Raspberry Pi

Sučelje akcelerometra s Raspberry Pi
Sučelje akcelerometra s Raspberry Pi

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

Korak 2: Povezivanje gumba s Raspberry Pi

Interfejsni gumb s Raspberry Pi
Interfejsni gumb s Raspberry Pi

Na ovom nosivom uređaju spojio sam gumb koji može funkcionirati kao lijevi gumb miša tako da mogu kliknuti ikone na ekranu. Dva kraja gumba zatim su spojena na 2 GPIO pina Pi. Jedan od pinova daje logički maksimum, a drugi pin čita tu vrijednost. Kada se pritisne gumb, krug se zatvara i ulazni pin može očitati logički visoku vrijednost, koja se zatim obrađuje skriptom koju sam napisao za oponašanje klika lijevim mišem. Zbog nedostatka lemilice, upotrijebio sam ljepljivu traku za spajanje skakača s gumbom.

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

Koristio sam knjižnicu Pyautogui Python za kontrolu pokazivača miša. Razlog korištenja ove knjižnice bio je taj što radi i na Linuxu i na Windows platformi. Kako 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 knjižnica za kontrolu pokazivača miša:

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

Kako bih filtrirao podatke o pogreš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 takav način da pokazivač miša može ići gore-dolje ili lijevo-desno u isto vrijeme. To je zato što mjerač ubrzanja 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 gesta 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 koje prijenosno računalo koje ima Bluetooth mogućnosti može komunicirati s Raspberry Pi-om u komunikacijskom modelu poslužitelj-klijent i bežično prenositi koordinatne podatke miša. Kako bismo postavili 64-bitno prijenosno računalo sa sustavom Windows 10 tako da dopušta Bluetooth komunikaciju, moramo slijediti donje korake:

Windows 10:

  1. Stvorite dolazni Bluetooth COM port.
  2. Uparite Pi -jev Bluetooth s Bluetooth -om prijenosnog računala tako da Pi bude vidljiv.
  3. Instalirajte Python na Windows.
  4. Instalirajte pip na Windows. Pip se koristi za instaliranje knjižnica na Linux ili Windows stroju.
  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 pomoću: pip install PyBluez-win10. PyBluez omogućuje Bluetooth komunikaciju na Windows i Linux računalima.
  7. Da bismo razvili aplikaciju na prijenosnom računalu sa sustavom Windows 10, moramo instalirati Microsoft Visual Studio (potrebno je 15-20 GB prostora) i njegove alate za izgradnju. Stoga, zajedno s PyBluezom, moramo slijediti donje upute,

    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 klon
    4. cd pybluez
    5. python setup.py install

  8. Ako se gornje upute točno 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čunalu 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 pri instaliranju pyblueza, za otklanjanje pogrešaka pogledajte GitHub Problemi.

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 komunikacija utičnica radi s Pythonom, pogledajte ovu vezu s MIT -a.

Za slanje podataka osi s Pi na računalo bit će potrebno dodatno raščlanjivanje podataka jer se podaci šalju u bajtovima. Za dodatne informacije o komunikaciji klijenta i poslužitelja pogledajte priloženi kôd.

Korak 5: Ugrađivanje akcelerometra i gumba na rukavicu

Ugrađivanje akcelerometra i gumba na rukavici
Ugrađivanje akcelerometra i gumba na rukavici
Ugrađivanje akcelerometra i gumba na rukavici
Ugrađivanje akcelerometra i gumba na rukavici

Nakon što se mjerač ubrzanja dobro spoji, sustav kostura izgleda kao prva slika na ovom koraku.

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

Preporučeni: