Indholdsfortegnelse:

[Wearable Mouse] Bluetooth-baseret Wearable Mouse Controller til Windows 10 og Linux: 5 trin
[Wearable Mouse] Bluetooth-baseret Wearable Mouse Controller til Windows 10 og Linux: 5 trin

Video: [Wearable Mouse] Bluetooth-baseret Wearable Mouse Controller til Windows 10 og Linux: 5 trin

Video: [Wearable Mouse] Bluetooth-baseret Wearable Mouse Controller til Windows 10 og Linux: 5 trin
Video: Ggopro 7 black 4k and slowmotion 2024, November
Anonim
Image
Image
Interfacing Accelerometer Med Raspberry Pi
Interfacing Accelerometer Med Raspberry Pi

Jeg lavede en Bluetooth-baseret musecontroller, der kan bruges til at styre musemarkøren og udføre pc-mus-relaterede operationer i farten, uden at røre nogen overflader. Det elektroniske kredsløb, der er integreret på en handske, kan bruges til at spore håndbevægelser gennem et accelerometer, og det kan oversættes til musemarkørens bevægelse. Denne enhed er også grænseflade med en knap, der replikerer det venstre knap klik. Enheden kan sluttes serielt til pc'en (via USB) eller trådløst via en Bluetooth -forbindelse. Bluetooth giver en robust og universel trådløs kommunikation mellem værtenheden og denne bærbare mus. Da Bluetooth er bredt tilgængeligt og er integreret med næsten alle personlige bærbare computere, er brugen af en sådan bærbar enhed bred. Brug af Raspberry Pi, som er en almindeligt anvendt udviklingsplatform til forskellige projekter, grænsefladen mellem forskellige sensorer og udviklingen af en sådan enhed er let og skalerbar. Handsken kan udskiftes med enhver anden bærbar for at gøre dens anvendelse mere bred.

Som en sikkerhedsforanstaltning mod COVID-19 er det tilrådeligt at undgå at røre overflader, der kan deles mellem forskellige mennesker, og en bærbar berøringsskærm eller en mus kan være blandt disse fælles overflader. Brug af sådan en bærbar enhed hjælper med at opretholde hygiejne og holder de almindeligt anvendte overflader desinficerede:)

Forbrugsvarer

  • Raspberry Pi 3 Model B V1.2
  • SparkFun Triple Axis Accelerometer Breakout - MMA8452Q
  • Mand til kvinde Jumper Wire
  • En handske
  • Gaffatape
  • Saks
  • Micro-USB-kabel
  • HDMI -kabel (til fejlfinding via Raspberry Pi)

Trin 1: Interfacing Accelerometer Med Raspberry Pi

Interfacing Accelerometer Med Raspberry Pi
Interfacing Accelerometer Med Raspberry Pi

Jeg brugte et MMA8542Q Triple-axis accelerometer fra Sparkfun, der bruger I2C kommunikationsprotokollen til at tale med Raspberry Pi GPIO pins og sende aksedata. Denne sensor giver forskellige driftstilstande med den konfigurerbare datahastighed, dvaletilstande, accelerationsområde, filtertilstand osv. Jeg fandt koden fra Pibits til at være meget nyttig i min første konfiguration af sensoren og teste den med mine håndbevægelser. Det er bedre at først placere sensoren på en flad overflade og foretage deterministiske vipper, mens du observerer de rå sensorværdier. Dette er især nyttigt til at forstå, hvordan denne sensor reagerer med forskellige håndbevægelser, og hvordan vi kan oprette tærskler for vores applikation. Når accelerometeret er blevet grænseflade med succes, kan du se de rå aksedata, der kommer på Pi's terminalskærm.

Trin 2: Interfacing-trykknap med Raspberry Pi

Interfacing trykknap med Raspberry Pi
Interfacing trykknap med Raspberry Pi

I denne bærbare enhed interfacede jeg en knap, der kan fungere som en venstre museknap, så jeg kan klikke på ikoner på skærmen. Knappens 2 ender forbindes derefter til 2 GPIO -ben på Pi. En af benene udsender en logisk høj, og den anden pin læser denne værdi. Når der trykkes på knappen, bliver kredsløbet lukket, og input-pin er i stand til at aflæse en logisk høj værdi, som derefter behandles af scriptet, jeg skrev for at efterligne venstre museklik. På grund af manglen på loddejern brugte jeg tape til at forbinde jumpere med knappen.

Trin 3: Udvikling af Python Script til seriel styring af musemarkøren

Jeg brugte Pyautogui Python -biblioteket til at styre musemarkøren. Grunden til at bruge dette bibliotek var, at det fungerer på både Linux og Windows -platformen. For at styre musemarkøren på min Raspberry Pi, sluttede jeg først min Pi til en skærm. Derefter brugte jeg følgende API'er fra biblioteket til at styre min musemarkør:

  1. pyautogui.move (0, 200, 2) # flytter musen ned 200 pixels i løbet af 2 sekunder
  2. pyautogui.click () # klik med musen

For at filtrere fejldata fra Accelerometer brugte jeg gennemsnit og andre filtreringsmetoder, der let kan forstås gennem den vedhæftede kode. API pyautogui.move (0, y) blev brugt på en sådan måde, at musemarkøren enten kan gå op-ned eller venstre-højre ad gangen. Dette skyldes, at accelerometeret rapporterer akser i X-, Y- og Z -retning, men API'en tager kun 2 argumenter, X- og Y -akser. Derfor var denne fremgangsmåde meget velegnet til mit accelerometer og til at kortlægge bevægelser på skærmen.

Trin 4: Udvikling af Python Script til styring af musemarkøren via Bluetooth

Udvikling af Python Script til styring af musemarkøren via Bluetooth
Udvikling af Python Script til styring af musemarkøren via Bluetooth

Denne del er en avanceret applikation, hvor enhver bærbar computer med Bluetooth-funktioner kan kommunikere med Raspberry Pi i en server-klient-kommunikationsmodel og overføre musekoordinater data trådløst. For at konfigurere en Windows 10 64-bit bærbar computer til at tillade Bluetooth-kommunikation, skal vi følge nedenstående trin:

Windows 10:

  1. Opret en indkommende Bluetooth COM -port.
  2. Par Pi's Bluetooth med den bærbare computers Bluetooth ved at gøre Pi synlig.
  3. Installer Python på Windows.
  4. Installer pip på Windows. Pip bruges til at installere biblioteker på en Linux- eller Windows -maskine.
  5. Installer pyautogui på Windows ved hjælp af: pip install pyautogui
  6. Når pyautogui er installeret på enheden, skal du installere Pybluez på Windows ved hjælp af følgende kommando på Windows-terminalen ved hjælp af: pip install PyBluez-win10. PyBluez muliggør Bluetooth -kommunikation på både Windows- og Linux -pc'er.
  7. For at udvikle en applikation på en Windows 10-bærbar computer skal vi installere Microsoft Visual Studio (påkrævet 15-20 GB plads) og dets byggeværktøjer. Derfor skal vi sammen med PyBluez følge nedenstående instruktioner,

    1. Download og kør "Visual Studio Installer":
    2. Installer "Visual Studio Build Tools 2017", tjek "Visual C ++ build -værktøjer" og "Universal Windows Platform build -værktøjer"

    3. git -klon
    4. cd pybluez
    5. python setup.py installation

  8. Hvis ovenstående instruktioner følges korrekt, bør kørsel af Python på Windows -terminalen og import af pyautogui og Bluetooth -modul fungere uden fejl i henhold til billedet ovenfor.
  9. I pybluez-biblioteket installeret på Windows-maskinen skal du navigere til: pybluez-master / eksempler / simple / rfcomm-server.py og udføre ved hjælp af python rfcomm-server.py. Hvis terminalen går i ventetilstand uden fejl, skal du gå til nedenstående sektion for opsætning af Bluetooth på Pi. Hvis der er fejl ved installation af pybluez, henvises til GitHub -problemer for fejlfinding.

Raspbian på Raspberry Pi:

  1. Installer PyBluez på Pi
  2. Kør servereksemplet på Windows. Naviger derefter på Pi til pybluez-master / examples / simple / rfcomm-client.py og udfør. Hvis de to enheder er begyndt at kommunikere, er Bluetooth nu konfigureret på begge enheder. For at forstå mere om, hvordan socketkommunikation fungerer med Python, henvises til dette link fra MIT.

Der vil være nogle yderligere dataparsering påkrævet for at sende aksedata fra Pi til pc, da dataene sendes i bytes. Se den vedhæftede kode for mere information om klient- og serverdatakommunikation.

Trin 5: Indlejring af accelerometer og knap på handsken

Indlejring af accelerometer og knap på handsken
Indlejring af accelerometer og knap på handsken
Indlejring af accelerometer og knap på handsken
Indlejring af accelerometer og knap på handsken

Når accelerometeret er godt forbundet, ser skeletsystemet noget ud som det første billede på dette trin.

Da handskens overflade ikke er flad, brugte jeg et dummy kreditkort, der kommer til min postkasse nu og da. I henhold til det andet billede på dette trin vedhæftede jeg dummy -kreditkortet på toppen af min handske med gaffatape. Over kortet vedhæftede jeg mit accelerometer. Denne opsætning var robust nok til at holde mit accelerometer stabilt og kunne spore mine bevægelser præcist.

Anbefalede: