Innholdsfortegnelse:

[Wearable Mouse] Bluetooth-basert Wearable Mouse Controller for Windows 10 og Linux: 5 trinn
[Wearable Mouse] Bluetooth-basert Wearable Mouse Controller for Windows 10 og Linux: 5 trinn

Video: [Wearable Mouse] Bluetooth-basert Wearable Mouse Controller for Windows 10 og Linux: 5 trinn

Video: [Wearable Mouse] Bluetooth-basert Wearable Mouse Controller for Windows 10 og Linux: 5 trinn
Video: HAPPY ST. PATRICK'S DAY | Happy Wheels - Part 91 2024, Juli
Anonim
Image
Image
Grensesnitt akselerometer med bringebær Pi
Grensesnitt akselerometer med bringebær Pi

Jeg lagde en Bluetooth-basert musekontroller som kan brukes til å kontrollere musepekeren og utføre PC-musrelaterte operasjoner i farten, uten å berøre noen overflater. Den elektroniske kretsen, som er innebygd på en hanske, kan brukes til å spore håndbevegelser gjennom et akselerometer og som kan oversettes til bevegelsen til musepekeren. Denne enheten er også koblet til en knapp som replikerer klikk på venstre knapp. Enheten kan kobles serielt til PCen (via USB) eller trådløst via en Bluetooth -tilkobling. Bluetooth gir en robust og universell trådløs kommunikasjon mellom vertsenheten og denne bærbare musen. Siden Bluetooth er allment tilgjengelig og er innebygd i nesten alle personlige bærbare datamaskiner, er bruksområdet for en slik bærbar enhet bredt. Å bruke Raspberry Pi, som er en vanlig utviklingsplattform for ulike prosjekter, grensesnittet mellom forskjellige sensorer og utviklingen av en slik enhet er enkel og skalerbar. Hansken kan byttes ut med hvilken som helst annen bærbar for å gjøre bruken mer bred.

Som en forholdsregel mot COVID-19, er det tilrådelig å unngå å berøre overflater som kan deles mellom forskjellige mennesker, og en berøringsskjerm eller en mus kan være blant de vanlige overflatene. Å bruke en slik bærbar enhet hjelper til med å opprettholde hygiene og holde de vanlige overflatene renset:)

Rekvisita

  • Raspberry Pi 3 Model B V1.2
  • SparkFun Triple Axis Accelerometer Breakout - MMA8452Q
  • Jumper Wire fra mann til kvinne
  • En hanske
  • Kanaltape
  • Saks
  • Mikro-USB-kabel
  • HDMI -kabel (for feilsøking gjennom Raspberry Pi)

Trinn 1: Grensesnittakselometer med bringebær Pi

Grensesnitt akselerometer med bringebær Pi
Grensesnitt akselerometer med bringebær Pi

Jeg brukte et MMA8542Q Triple-axis akselerometer fra Sparkfun som bruker I2C kommunikasjonsprotokoll for å snakke med Raspberry Pi GPIO pins og sende aksedata. Denne sensoren gir forskjellige driftsmåter med den konfigurerbare datahastigheten, hvilemodus, akselerasjonsområde, filtermodus, etc. Jeg fant koden fra Pibits for å være veldig nyttig i min første konfigurasjon av sensoren og teste den ut med håndbevegelsene mine. Det er bedre å først plassere sensoren på en flat overflate og gjøre deterministiske vipper mens du observerer de rå sensorverdiene. Dette er spesielt nyttig for å forstå hvordan denne sensoren reagerer med forskjellige håndbevegelser og hvordan vi kan sette opp terskler for applikasjonen vår. Når akselerometeret er vellykket grensesnitt, kan du se råaksedataene som kommer på Pi -terminalens skjerm.

Trinn 2: Grensesnittknapp med Raspberry Pi

Grensesnitt Trykknapp Med Raspberry Pi
Grensesnitt Trykknapp Med Raspberry Pi

I denne bærbare enheten grensesnittet jeg en knapp som kan fungere som en venstre museknapp, slik at jeg kan klikke på ikoner på skjermen. De to endene på knappen er deretter koblet til 2 GPIO -pinner på Pi. En av pinnene gir en logisk høy, og den andre pinnen leser den verdien. Når du trykker på knappen, blir kretsen lukket og inngangspinnen kan lese en logisk høy verdi, som deretter behandles av skriptet jeg skrev for å etterligne venstre museklikk. På grunn av mangel på loddejern brukte jeg gaffatape for å koble hopperne med knappen.

Trinn 3: Utvikle Python Script for å kontrollere musepekeren serielt

Jeg brukte Pyautogui Python -biblioteket til å kontrollere musepekeren. Grunnen til å bruke dette biblioteket var at det fungerer på både Linux og Windows -plattformen. For å kontrollere musepekeren på Raspberry Pi, koblet jeg først Pi til en skjerm. Deretter brukte jeg følgende API -er fra biblioteket for å kontrollere musepekeren:

  1. pyautogui.move (0, 200, 2) # flytter musen ned 200 piksler over 2 sekunder
  2. pyautogui.click () # klikk på musen

For å filtrere ut feildata fra Accelerometer, brukte jeg gjennomsnitt og andre filtreringsmetoder som lett kan forstås gjennom den vedlagte koden. API pyautogui.move (0, y) ble brukt på en slik måte at musepekeren enten kan gå opp-ned eller venstre-høyre om gangen. Dette er fordi akselerometeret rapporterer akser i X-, Y- og Z -retning, men API -et tar bare to argumenter, X- og Y -akser. Derfor var denne tilnærmingen mye egnet for mitt akselerometer og for å kartlegge bevegelsene på skjermen.

Trinn 4: Utvikle Python Script for å kontrollere musepekeren via Bluetooth

Utvikler Python Script for å kontrollere musepekeren via Bluetooth
Utvikler Python Script for å kontrollere musepekeren via Bluetooth

Denne delen er en avansert applikasjon der enhver bærbar PC med Bluetooth-funksjoner kan kommunisere med Raspberry Pi i en server-klientkommunikasjonsmodell og overføre musekoordinater data trådløst. For å sette opp en Windows 10 64-biters bærbar datamaskin for å tillate Bluetooth-kommunikasjon, må vi følge trinnene nedenfor:

Windows 10:

  1. Lag en innkommende Bluetooth COM -port.
  2. Koble Pi's Bluetooth til den bærbare Bluetooth -enheten ved å gjøre Pi synlig.
  3. Installer Python på Windows.
  4. Installer pip på Windows. Pip brukes til å installere biblioteker på en Linux- eller Windows -maskin.
  5. Installer pyautogui på Windows ved hjelp av: pip install pyautogui
  6. Når pyautogui er installert på enheten, installerer du Pybluez på Windows ved å bruke følgende kommando på Windows-terminalen ved hjelp av: pip install PyBluez-win10. PyBluez muliggjør Bluetooth -kommunikasjon på både Windows- og Linux -PCer.
  7. For å utvikle et program på en Windows 10 bærbar datamaskin, må vi installere Microsoft Visual Studio (kreves 15-20 GB plass) og dets verktøy. Derfor, sammen med PyBluez, må vi følge instruksjonene nedenfor,

    1. Last ned og kjør "Visual Studio Installer":
    2. Installer "Visual Studio Build Tools 2017", sjekk "Visual C ++ build tools" og "Universal Windows Platform build tools"

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

  8. Hvis instruksjonene ovenfor er riktig fulgt, bør kjøring av Python på Windows -terminalen og import av pyautogui og Bluetooth -modul fungere uten feil, i henhold til bildet ovenfor.
  9. I pybluez-biblioteket som er installert på Windows-maskinen, navigerer du til: pybluez-master / examples / simple / rfcomm-server.py og kjører ved hjelp av python rfcomm-server.py. Hvis terminalen går i ventetilstand uten feil, går du til delen nedenfor for å konfigurere Bluetooth på Pi. Hvis det er feil ved installering av pybluez, kan du se GitHub -problemer for feilsøking.

Raspbian på Raspberry Pi:

  1. Installer PyBluez på Pi
  2. Kjør servereksemplet på Windows. Deretter, på Pi, naviger til pybluez-master / examples / simple / rfcomm-client.py og kjør. Hvis de to enhetene har begynt å kommunisere, er Bluetooth nå konfigurert på begge enhetene. For å forstå mer om hvordan sokkelkommunikasjon fungerer med Python, se denne lenken fra MIT.

Det vil være noen ekstra dataparsering som kreves for å sende aksedata fra Pi til PC, ettersom dataene sendes i byte. Se den vedlagte koden for mer informasjon om klient- og serverdatakommunikasjon.

Trinn 5: Legge inn akselerometer og knapp på hansken

Innebygd akselerometer og knapp på hansken
Innebygd akselerometer og knapp på hansken
Innebygd akselerometer og knapp på hansken
Innebygd akselerometer og knapp på hansken

Når akselerometeret er godt tilkoblet, ser skjelettsystemet ut som det første bildet på dette trinnet.

Siden hansken ikke er flat, brukte jeg et dummy -kredittkort som kommer til postkassen min nå og da. I henhold til det andre bildet på dette trinnet, festet jeg dummy -kredittkortet på toppen av hansken min med tape. Over kortet festet jeg akselerometeret mitt. Dette oppsettet var robust nok til å holde akselerometeret mitt stabilt og kunne spore bevegelsene mine nøyaktig.

Anbefalt: