Innehållsförteckning:
- Tillbehör
- Steg 1: Gränssnittsaccelerometer med Raspberry Pi
- Steg 2: Gränssnittsknapp med Raspberry Pi
- Steg 3: Utveckla Python Script för att seriellt styra muspekaren
- Steg 4: Utveckla Python Script för att styra muspekaren via Bluetooth
- Steg 5: Bädda in accelerometer och knapp på handsken
Video: [Wearable Mouse] Bluetooth-baserad Wearable Mouse Controller för Windows 10 och Linux: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
Jag gjorde en Bluetooth-baserad muskontroller som kan användas för att styra muspekaren och utföra PC-musrelaterade operationer i farten, utan att röra vid några ytor. Den elektroniska kretsen, som är inbäddad i en handske, kan användas för att spåra handrörelser via en accelerometer och som kan översättas till muspekarens rörelse. Denna enhet är också ansluten till en knapp som replikerar det vänstra knappklicket. Enheten kan anslutas seriellt till datorn (via USB) eller trådlöst via en Bluetooth -anslutning. Bluetooth ger en robust och universell trådlös kommunikation mellan värdenheten och denna bärbara mus. Eftersom Bluetooth är allmänt tillgängligt och finns inbäddat med nästan alla personliga bärbara datorer, är användningen av en sådan bärbar enhet bred. Att använda Raspberry Pi, som är en vanligt utvecklad plattform för olika projekt, gränssnittet mellan olika sensorer och utvecklingen av en sådan enhet är enkel och skalbar. Handsken kan bytas ut mot alla andra bärbara för att göra applikationen bredare.
Som en försiktighetsåtgärd mot COVID-19 är det lämpligt att undvika att vidröra ytor som kan delas mellan olika människor, och en pekskärm eller en mus kan vara bland de vanliga ytorna. Att använda en sådan bärbar enhet hjälper till att upprätthålla hygienen och hålla de vanliga ytorna desinficerade:)
Tillbehör
- Raspberry Pi 3 Model B V1.2
- SparkFun Triple Axis Accelerometer Breakout - MMA8452Q
- Manlig till kvinnlig bygeltråd
- En handske
- Silvertejp
- Sax
- Micro-USB-kabel
- HDMI -kabel (för felsökning via Raspberry Pi)
Steg 1: Gränssnittsaccelerometer med Raspberry Pi
Jag använde en MMA8542Q Accelerometer med tre axlar från Sparkfun som använder I2C-kommunikationsprotokollet för att prata med Raspberry Pi GPIO-stiften och skicka axeldata. Denna sensor ger olika driftsätt med den konfigurerbara datahastigheten, vilolägen, accelerationsområdet, filterläget, etc. Jag tyckte att koden från Pibits var till stor hjälp i min första konfiguration av sensorn och testade den med mina handgester. Det är bättre att först placera sensorn på en plan yta och göra deterministiska lutningar medan du observerar de råa sensorvärdena. Detta är särskilt användbart för att förstå hur denna sensor reagerar med olika handrörelser och hur vi kan ställa in trösklar för vår applikation. När accelerometern har anslutits framgångsrikt kan du se råaxeldata som kommer på Pi: s terminalskärm.
Steg 2: Gränssnittsknapp med Raspberry Pi
I denna bärbara enhet gränssnitt jag en knapp som kan fungera som en vänster musknapp så att jag kan klicka på ikoner på skärmen. Knappens två ändar ansluts sedan till 2 GPIO -stift på Pi. En av stiften matar ut en logisk hög och den andra stiftet läser det värdet. När du trycker på knappen stängs kretsen och inmatningsnålen kan läsa ett logiskt högt värde, som sedan bearbetas av manuset jag skrev för att efterlikna vänsterklick. På grund av bristen på lödkolv använde jag tejp för att ansluta hopparna med knappen.
Steg 3: Utveckla Python Script för att seriellt styra muspekaren
Jag använde Pyautogui Python -biblioteket för att styra muspekaren. Anledningen till att använda detta bibliotek var att det fungerar på både Linux och Windows -plattformen. För att styra muspekaren på min Raspberry Pi kopplade jag först min Pi till en bildskärm. Sedan använde jag följande API: er från biblioteket för att styra min muspekare:
- pyautogui.move (0, 200, 2) # flyttar musen ner 200 pixlar under 2 sekunder
- pyautogui.click () # klicka på musen
För att filtrera bort feldata från Accelerometer använde jag medelvärdes- och andra filtreringsmetoder som enkelt kan förstås genom den bifogade koden. API: et pyautogui.move (0, y) användes på ett sådant sätt att muspekaren antingen kan gå uppåt eller vänster-höger åt gången. Detta beror på att accelerometern rapporterar axlar i X-, Y- och Z -riktning, men API: et tar bara två argument, X- och Y -axlar. Därför var detta tillvägagångssätt mycket lämpligt för min accelerometer och för att kartlägga gesterna på skärmen.
Steg 4: Utveckla Python Script för att styra muspekaren via Bluetooth
Denna del är en avancerad applikation där alla bärbara datorer med Bluetooth-funktioner kan kommunicera med Raspberry Pi i en server-klientkommunikationsmodell och överföra muskoordinatdata trådlöst. För att kunna installera en Windows 10 64-bitars bärbar dator för att tillåta Bluetooth-kommunikation måste vi följa stegen nedan:
Windows 10:
- Skapa en inkommande Bluetooth COM -port.
- Koppla ihop Pi: s Bluetooth med den bärbara datorns Bluetooth genom att göra Pi upptäcklig.
- Installera Python på Windows.
- Installera pip på Windows. Pip används för att installera bibliotek på en Linux- eller Windows -maskin.
- Installera pyautogui på Windows med: pip install pyautogui
- När pyautogui har installerats på enheten installerar du Pybluez på Windows med följande kommando på Windows-terminalen med: pip install PyBluez-win10. PyBluez möjliggör Bluetooth -kommunikation på både Windows- och Linux -datorer.
-
För att kunna utveckla en applikation på en bärbar dator med Windows 10 måste vi installera Microsoft Visual Studio (15-20 GB utrymme krävs) och dess byggverktyg. Därför måste vi, tillsammans med PyBluez, följa instruktionerna nedan,
- Ladda ner och kör "Visual Studio Installer":
-
Installera "Visual Studio Build Tools 2017", kolla "Visual C ++ build -verktyg" och "Universal Windows Platform -byggverktyg"
- git -klon
- cd pybluez
python setup.py installera
- Om ovanstående instruktioner följs korrekt bör körning av Python på Windows -terminalen och import av pyautogui och Bluetooth -modul fungera utan fel enligt bilden ovan.
- I pybluez-biblioteket som är installerat på Windows-maskinen navigerar du till: pybluez-master / examples / simple / rfcomm-server.py och kör med python rfcomm-server.py. Om terminalen går i vänteläge utan fel, gå till avsnittet nedan för att konfigurera Bluetooth på Pi. Om det finns fel vid installation av pybluez, se GitHub -problem för felsökning.
Raspbian på Raspberry Pi:
- Installera PyBluez på Pi
- Kör serverexemplet på Windows. Navigera sedan till Pi, pybluez-master / exempel / enkel / rfcomm-client.py och kör. Om de två enheterna har börjat kommunicera är Bluetooth nu installerat på båda enheterna. För mer information om hur sockelkommunikation fungerar med Python, hänvisa till denna länk från MIT.
Det kommer att krävas ytterligare dataanalys för att skicka axeldata från Pi till PC, eftersom data skickas i byte. Se den bifogade koden för mer information om klient- och serverdatakommunikation.
Steg 5: Bädda in accelerometer och knapp på handsken
När accelerometern väl är ansluten ser skelettsystemet något ut som den första bilden på detta steg.
Eftersom handskens yta inte är platt, använde jag ett dummy -kreditkort som kommer till min brevlåda då och då. Enligt den andra bilden i det här steget fäst jag dummy -kreditkortet på min hands ovansida med tejp. Över kortet fäst jag min accelerometer. Denna inställning var tillräckligt robust för att hålla min accelerometer stabil och kunna spåra mina gester exakt.
Rekommenderad:
PC Game Controller Mapping (Linux och Windows): 5 steg
PC Game Controller Mapping (Linux och Windows): Om du börjar komma igång med spel på en persondator kan du ha några steg att ta för att komma dit. Idag kommer jag att visa dig hur du använder en USB -spelkontroll med även det äldsta av PC -spel, gratis. Tekniken
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Rädda Windows direkt från skärmen (Windows och Linux): 4 steg
Rädda Windows utanför skärmen direkt (Windows och Linux): När ett program flyttas utanför skärmen - kanske till en andra bildskärm som inte längre är ansluten - behöver du ett snabbt och enkelt sätt att flytta det till den aktuella bildskärmen. Det här är vad jag gör -OBS --- Jag har suddig ut bilderna för sekretess
DIY MusiLED, musiksynkroniserade lysdioder med ett klick Windows och Linux-applikation (32-bitars och 64-bitars). Lätt att återskapa, lätt att använda, lätt att porta .: 3 steg
DIY MusiLED, musiksynkroniserade lysdioder med ett klick Windows och Linux-applikation (32-bitars och 64-bitars). Lätt att återskapa, lätt att använda, lätt att porta .: Detta projekt hjälper dig att ansluta 18 lysdioder (6 röda + 6 blå + 6 gula) till ditt Arduino-kort och analysera datorns ljudkortets realtidsignaler och vidarebefordra dem till lysdioderna för att tända dem enligt slageffekterna (Snare, High Hat, Kick)
Använd SSH och XMing för att visa X -program från en Linux -dator på en Windows -dator: 6 steg
Använd SSH och XMing för att visa X -program från en Linux -dator på en Windows -dator: Om du använder Linux på jobbet och Windows hemma eller vice versa kan du ibland behöva logga in på datorn på din andra plats och köra program. Tja, du kan installera en X -server och aktivera SSH -tunnling med din SSH -klient, och en