Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Interfacing Accelerometer Med Raspberry Pi
- Trin 2: Interfacing-trykknap med Raspberry Pi
- Trin 3: Udvikling af Python Script til seriel styring af musemarkøren
- Trin 4: Udvikling af Python Script til styring af musemarkøren via Bluetooth
- Trin 5: Indlejring af accelerometer og knap på handsken
Video: [Wearable Mouse] Bluetooth-baseret Wearable Mouse Controller til Windows 10 og Linux: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
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
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
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:
- pyautogui.move (0, 200, 2) # flytter musen ned 200 pixels i løbet af 2 sekunder
- 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
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:
- Opret en indkommende Bluetooth COM -port.
- Par Pi's Bluetooth med den bærbare computers Bluetooth ved at gøre Pi synlig.
- Installer Python på Windows.
- Installer pip på Windows. Pip bruges til at installere biblioteker på en Linux- eller Windows -maskine.
- Installer pyautogui på Windows ved hjælp af: pip install pyautogui
- 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.
-
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,
- Download og kør "Visual Studio Installer":
-
Installer "Visual Studio Build Tools 2017", tjek "Visual C ++ build -værktøjer" og "Universal Windows Platform build -værktøjer"
- git -klon
- cd pybluez
python setup.py installation
- 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.
- 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:
- Installer PyBluez på Pi
- 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
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:
Sega Genesis Controller til USB -adapter til $ 2: 4 trin
Sega Genesis Controller til USB Adapter til $ 2: Denne adapter tillader en Sega Genesis / Mega Drive controller at efterligne dobbelt XBox 360 gamepads til brug med retroarch eller anden software. Den bruger en Arduino-kompatibel stm32f103c8t6 blå pille til elektronikken. Ingredienser: stm32f103c8t6 blå pille to DB9 m
LoRa Messenger til to enheder til distancer Op til 8 km: 7 trin
LoRa Messenger til to enheder til afstande Op til 8 km: Tilslut projektet til din bærbare computer eller telefon, og chat derefter mellem enhederne uden internet eller SMS ved hjælp af bare LoRa.Hey, hvad sker der gutter? Akarsh her fra CETech. I dag skal vi lave et projekt, der kan forbindes til din smartphone eller en hvilken som helst
1A til 40A nuværende BOOST -konverter til op til 1000W DC -motor: 3 trin
1A til 40A Current BOOST-konverter til op til 1000W DC-motor: Hej! I denne video lærer du, hvordan du laver et strømforstærkerkredsløb til dine høj ampere DC-motorer op til 1000W og 40 ampere med transistorer og en center-tap-transformer. Selvom, strømmen ved udgangen er meget høj, men spændingen bliver r
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: 3 trin
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: Min plan var enkel. Jeg ville skære en væg-drevet LED-lysstreng i stykker og derefter genkoble den til at køre 12 volt. Alternativet var at bruge en strømomformer, men vi ved alle, at de er frygtelig ineffektive, ikke? Ret? Eller er de det?
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): 6 trin
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): Dette viser dig, hvordan du laver en 12v til USB (5v) adapter. Den mest oplagte anvendelse af dette er til 12v biladaptere, men hvor som helst du har 12v kan du bruge det! Hvis du har brug for 5v til andet end USB, skal du blot springe trinene om tilføjelse af USB -porte over