Cuprins:
- Provizii
- Pasul 1: Interfață accelerometru cu Raspberry Pi
- Pasul 2: interfațarea butonului cu Raspberry Pi
- Pasul 3: Dezvoltarea scriptului Python pentru controlul serial al mouse-ului
- Pasul 4: Dezvoltarea scriptului Python pentru a controla indicatorul mouse-ului prin Bluetooth
- Pasul 5: încorporarea accelerometrului și butonului pe mănușă
Video: [Wearable Mouse] Controler Wearable Mouse bazat pe Bluetooth pentru Windows 10 și Linux: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Am realizat un controler de mouse bazat pe Bluetooth, care poate fi folosit pentru a controla indicatorul mouse-ului și a efectua operațiuni legate de mouse-ul computerului din mers, fără a atinge nicio suprafață. Circuitele electronice, care sunt încorporate pe o mănușă, pot fi utilizate pentru a urmări gesturile mâinilor printr-un accelerometru și care pot fi traduse în mișcarea indicatorului mouse-ului. Acest dispozitiv este, de asemenea, interfațat cu un buton care reproduce clicul din stânga. Dispozitivul poate fi atașat serial la computer (prin USB) sau fără fir printr-o conexiune Bluetooth. Bluetooth oferă o comunicație fără fir robustă și universală între dispozitivul gazdă și acest mouse portabil. Deoarece Bluetooth este disponibil pe scară largă și vine încorporat cu aproape toate laptopurile personale, cazul de utilizare al unui astfel de dispozitiv portabil este larg. Utilizarea Raspberry Pi, care este o platformă de dezvoltare utilizată în mod obișnuit pentru diverse proiecte, interfața diferiților senzori și dezvoltarea unui astfel de dispozitiv este ușoară și scalabilă. Mănușa poate fi înlocuită cu orice alt purtabil pentru a-și face aplicarea mai largă.
Ca măsură de precauție împotriva COVID-19, este recomandabil să evitați atingerea suprafețelor care pot fi partajate între diferite persoane, iar un laptop cu ecran tactil sau un mouse pot fi printre acele suprafețe comune. Utilizarea unui astfel de dispozitiv portabil ajută la menținerea igienei și la menținerea igienizate a suprafețelor utilizate în mod obișnuit:)
Provizii
- Raspberry Pi 3 Model B V1.2
- SparkFun Triple Axis Breakout Accelerometer Breakout - MMA8452Q
- Sârmă jumper de la bărbat la feminin
- O mănușă
- Banda adeziva
- Foarfece
- Cablu micro-USB
- Cablu HDMI (pentru depanare prin Raspberry Pi)
Pasul 1: Interfață accelerometru cu Raspberry Pi
Am folosit un accelerometru cu trei axe MMA8542Q de la Sparkfun care folosește protocolul de comunicație I2C pentru a vorbi cu pinii GPIO Raspberry Pi și pentru a trimite datele axelor. Acest senzor oferă diferite moduri de funcționare cu viteza de date configurabilă, modurile de repaus, intervalul de accelerație, modul de filtrare etc. Am găsit codul de la Pibits foarte util în configurația inițială a senzorului și testarea acestuia cu gesturile mâinii. Este mai bine să așezați mai întâi senzorul pe o suprafață plană și să faceți înclinări deterministe în timp ce observați valorile brute ale senzorului. Acest lucru este deosebit de util pentru a înțelege cum reacționează acest senzor cu diferite gesturi ale mâinii și cum putem seta praguri pentru aplicația noastră. Odată ce accelerometrul este interfațat cu succes, puteți vedea datele despre axele brute care vin pe ecranul terminalului Pi.
Pasul 2: interfațarea butonului cu Raspberry Pi
În acest dispozitiv purtabil, am interfațat un buton care poate funcționa ca un buton stâng al mouse-ului, astfel încât să pot face clic pe pictograme pe ecran. Cele 2 capete ale butonului sunt apoi conectate la 2 pini GPIO ai Pi. Unul dintre pini produce un nivel logic ridicat, iar celălalt pin citește acea valoare. Când butonul este apăsat, circuitul se închide și pinul de intrare este capabil să citească o valoare logică ridicată, care este apoi procesată de scriptul pe care l-am scris pentru a emula clicul din stânga al mouse-ului. Din cauza lipsei de lipit, am folosit bandă adezivă pentru a conecta jumperii cu butonul.
Pasul 3: Dezvoltarea scriptului Python pentru controlul serial al mouse-ului
Am folosit biblioteca Pyautogui Python pentru a controla indicatorul mouse-ului. Motivul utilizării acestei biblioteci a fost că funcționează atât pe Linux, cât și pe platforma Windows. Pentru a controla indicatorul mouse-ului pe Raspberry Pi, mai întâi mi-am conectat Pi-ul la un afișaj. Apoi, am folosit următoarele API-uri furnizate de bibliotecă pentru a controla indicatorul mouse-ului:
- pyautogui.move (0, 200, 2) # mută mouse-ul în jos cu 200 de pixeli timp de 2 secunde
- pyautogui.click () # faceți clic pe mouse
Pentru a filtra datele de eroare provenite de la Accelerometer, am folosit medii și alte metode de filtrare care pot fi ușor înțelese prin codul atașat. API-ul pyautogui.move (0, y) a fost utilizat într-un mod astfel încât indicatorul mouse-ului să poată merge în sus-jos sau în stânga-dreapta la un moment dat. Acest lucru se datorează faptului că accelerometrul raportează axe în direcția X, Y și Z, dar API acceptă doar 2 argumente, axele X și Y. Prin urmare, această abordare a fost mult mai potrivită pentru accelerometrul meu și pentru a mapa gesturile pe ecran.
Pasul 4: Dezvoltarea scriptului Python pentru a controla indicatorul mouse-ului prin Bluetooth
Această parte este o aplicație avansată în care orice laptop care are capacități Bluetooth poate comunica cu Raspberry Pi într-un model de comunicație server-client și transmite coordonatele mouse-ului fără fir. Pentru a configura un laptop Windows 10 pe 64 de biți pentru a permite comunicarea prin Bluetooth, trebuie să urmăm pașii de mai jos:
Windows 10:
- Creați un port Bluetooth COM de intrare.
- Asociați Bluetooth-ul Pi-ului cu Bluetooth-ul laptopului, făcând Pi descoperibil.
- Instalați Python pe Windows.
- Instalați pip pe Windows. Pip este folosit pentru a instala biblioteci pe un computer Linux sau Windows.
- Instalați pyautogui pe Windows folosind: pip instalați pyautogui
- Odată ce pyautogui este instalat pe dispozitiv, instalați Pybluez pe Windows folosind următoarea comandă pe terminalul Windows folosind: pip instalați PyBluez-win10. PyBluez permite comunicarea Bluetooth atât pe computerele Windows, cât și pe cele Linux.
-
Pentru a dezvolta o aplicație pe un laptop Windows 10, trebuie să instalăm Microsoft Visual Studio (15-20 GB spațiu necesar) și instrumentele sale de construire. Prin urmare, împreună cu PyBluez, trebuie să urmăm instrucțiunile de mai jos,
- Descărcați și rulați „Visual Studio Installer”:
-
Instalați „Visual Studio Build Tools 2017”, bifați „Visual C ++ build tools” și „Universal Windows Platform build tools”
- git clone
- cd pybluez
instalare python setup.py
- Dacă instrucțiunile de mai sus sunt respectate corect, rularea Python pe terminalul Windows și importarea modulelor pyautogui și Bluetooth ar trebui să funcționeze fără erori, conform imaginii de mai sus.
- În biblioteca pybluez instalată pe computerul Windows, navigați la: pybluez-master / examples / simple / rfcomm-server.py și executați folosind python rfcomm-server.py. Dacă terminalul intră într-o stare de așteptare fără erori, accesați secțiunea de mai jos pentru configurarea Bluetooth pe Pi. Dacă există erori la instalarea pybluez, consultați Probleme GitHub pentru depanare.
Raspbian pe Raspberry Pi:
- Instalați PyBluez pe Pi
- Rulați exemplul de server pe Windows. Apoi, pe Pi, navigați la pybluez-master / examples / simple / rfcomm-client.py și executați. Dacă cele două dispozitive au început să comunice, Bluetooth este acum configurat pe ambele dispozitive. Pentru a înțelege mai multe despre cum funcționează comunicarea socket cu Python, consultați acest link de la MIT.
Va fi necesară o analiză suplimentară a datelor pentru a trimite datele axelor de la Pi la PC, deoarece datele sunt trimise în octeți. Consultați codul atașat pentru mai multe informații despre comunicarea datelor client și server.
Pasul 5: încorporarea accelerometrului și butonului pe mănușă
Odată ce accelerometrul este bine interfațat, sistemul scheletului arată ceva prima imagine din acest pas.
Deoarece suprafața mănușii nu este plană, am folosit un card de credit fals care vine în cutia poștală din când în când. Conform celei de-a doua imagini din acest pas, am atașat cardul de credit fals pe suprafața superioară a mănușii cu bandă adezivă. Peste card, mi-am atașat accelerometrul. Această configurare a fost suficient de robustă pentru a-mi menține accelerometrul stabil și capabil să-mi urmărească gesturile cu precizie.
Recomandat:
Controler de joc DIY bazat pe Arduino - Controler de joc Arduino PS2 - Jucând Tekken cu DIY Arduino Gamepad: 7 pași
Controler de joc DIY bazat pe Arduino | Controler de joc Arduino PS2 | Jucând Tekken cu DIY Arduino Gamepad: Bună, băieți, jocul este întotdeauna distractiv, dar jocul cu propriul controler personalizat DIY este mai distractiv
Controler robotizat ROS bazat pe Matlab: 9 pași
Controler robotizat ROS bazat pe Matlab: De când eram copil, am visat întotdeauna să fiu Iron Man și încă o fac. Iron Man este unul dintre acele personaje care este posibil în mod realist și pur și simplu spun că aspir să devin Iron Man cândva chiar dacă oamenii râd de mine sau spun că este imposibil
Controler de pornire DOL bazat pe IOT pentru pompă de irigare: 6 pași
Controler de pornire DOL bazat pe IOT pentru pompă de irigare: Bună ziua Prieteni Acest instructiv este despre cum să monitorizați și să controlați de la distanță o pompă de irigare setată pe internet. Poveste: în ferma mea primesc sursa de alimentare de la rețeaua locală doar timp de aproximativ 6 ore pe zi. Timpurile nu sunt regulate, disponibilitatea po
Generator de muzică bazat pe vreme (Generator Midi bazat pe ESP8266): 4 pași (cu imagini)
Generator de muzică bazat pe vreme (Generator midi bazat pe ESP8266): Bună, astăzi vă voi explica cum să vă creați propriul generator de muzică bazat pe vreme. Se bazează pe un ESP8266, care este un fel ca un Arduino și răspunde la temperatură, ploaie și intensitatea luminii. Nu vă așteptați să producă melodii întregi sau programe de acord
Cum să asamblați un braț impresionant din lemn pentru robot (Partea 1: Robot pentru urmărirea liniei) - Bazat pe micro: Bit: 9 pași
Cum să asamblați un braț robot de lemn impresionant (Partea 1: Robot pentru urmărirea liniei) - Bazat pe Micro: Bit: Acest tip de lemn are trei forme, este foarte diferit și impresionant. Atunci hai să intrăm în el unul câte unul