Innehållsförteckning:

[Wearable Mouse] Bluetooth-baserad Wearable Mouse Controller för Windows 10 och Linux: 5 steg
[Wearable Mouse] Bluetooth-baserad Wearable Mouse Controller för Windows 10 och Linux: 5 steg

Video: [Wearable Mouse] Bluetooth-baserad Wearable Mouse Controller för Windows 10 och Linux: 5 steg

Video: [Wearable Mouse] Bluetooth-baserad Wearable Mouse Controller för Windows 10 och Linux: 5 steg
Video: Reviewing Every iPod Ever - 20 Years of Apple iPod (Documentary) 2024, November
Anonim
Image
Image
Gränssnittsaccelerometer med hallon Pi
Gränssnittsaccelerometer med hallon Pi

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

Gränssnittsaccelerometer med hallon Pi
Gränssnittsaccelerometer med hallon 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

Gränssnittsknapp med Raspberry Pi
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:

  1. pyautogui.move (0, 200, 2) # flyttar musen ner 200 pixlar under 2 sekunder
  2. 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

Utveckla Python Script för att styra muspekaren via Bluetooth
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:

  1. Skapa en inkommande Bluetooth COM -port.
  2. Koppla ihop Pi: s Bluetooth med den bärbara datorns Bluetooth genom att göra Pi upptäcklig.
  3. Installera Python på Windows.
  4. Installera pip på Windows. Pip används för att installera bibliotek på en Linux- eller Windows -maskin.
  5. Installera pyautogui på Windows med: pip install pyautogui
  6. 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.
  7. 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,

    1. Ladda ner och kör "Visual Studio Installer":
    2. Installera "Visual Studio Build Tools 2017", kolla "Visual C ++ build -verktyg" och "Universal Windows Platform -byggverktyg"

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

  8. 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.
  9. 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:

  1. Installera PyBluez på Pi
  2. 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

Bädda in accelerometer och knapp på handsken
Bädda in accelerometer och knapp på handsken
Bädda in accelerometer och knapp på handsken
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: