Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Grensesnittakselometer med bringebær Pi
- Trinn 2: Grensesnittknapp med Raspberry Pi
- Trinn 3: Utvikle Python Script for å kontrollere musepekeren serielt
- Trinn 4: Utvikle Python Script for å kontrollere musepekeren via Bluetooth
- Trinn 5: Legge inn akselerometer og knapp på hansken
Video: [Wearable Mouse] Bluetooth-basert Wearable Mouse Controller for Windows 10 og Linux: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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
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
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:
- pyautogui.move (0, 200, 2) # flytter musen ned 200 piksler over 2 sekunder
- 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
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:
- Lag en innkommende Bluetooth COM -port.
- Koble Pi's Bluetooth til den bærbare Bluetooth -enheten ved å gjøre Pi synlig.
- Installer Python på Windows.
- Installer pip på Windows. Pip brukes til å installere biblioteker på en Linux- eller Windows -maskin.
- Installer pyautogui på Windows ved hjelp av: pip install pyautogui
- 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.
-
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,
- Last ned og kjør "Visual Studio Installer":
-
Installer "Visual Studio Build Tools 2017", sjekk "Visual C ++ build tools" og "Universal Windows Platform build tools"
- git -klon
- cd pybluez
python setup.py installere
- 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.
- 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:
- Installer PyBluez på Pi
- 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
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:
Endre en L-tek Dance Pad til avstemning på 1000hz på Windows og Linux: 9 trinn
Endre en L-tek Dance Pad til avstemning på 1000hz på Windows og Linux: Hvorfor gjøre denne moden? Hvis du noen gang har rullet over til grafen på en 125 BPM sang, kan du lure på hva som skjer med denne spikey boi? Hvorfor faller timingen inn i diskrete "spilleautomater"? ITG og DDR har utrolig stramme tidsvinduer, og med dette
Redd Windows uten skjerm umiddelbart (Windows og Linux): 4 trinn
Redde Windows uten skjerm umiddelbart (Windows og Linux): Når et program flyttes utenfor skjermen - kanskje til en annen skjerm som ikke lenger er tilkoblet - trenger du en rask og enkel måte å flytte det til den nåværende skjermen. Dette er hva jeg gjør -MERK --- Jeg har uskarpe bildene for personvern
YABC - Yet Another Blynk Controller - IoT Cloud Temperature and Humidity Controller, ESP8266: 4 trinn
YABC - Yet Another Blynk Controller - IoT Cloud Temperature and Humidity Controller, ESP8266: Hi Makers, jeg begynte nylig å dyrke sopp hjemme, østerssopp, men jeg har allerede 3x av denne kontrollerne hjemme for fermenteringstemperaturkontroll for hjemmebrygget mitt, kone gjør også denne Kombucha -tingen nå, og som termostat for varme
NES Controller Shuffle (Nintendo Controller MP3, V3.0): 5 trinn (med bilder)
NES Controller Shuffle (Nintendo Controller MP3, V3.0): Jeg dratt fullstendig av ryan97128 på designet hans for Nintendo Controller MP3, versjon 2.0, og jeg hører at han fikk ideen fra den kloke Morte_Moya, så jeg kan ikke ta æren for alle deres genier. Jeg ville bare legge til bekvemmeligheten og lade opp
SNES Controller Into a Mouse Mod: 8 trinn
SNES Controller Into a Mouse Mod: En rask og enkel måte å gjøre en SNES Controller til en fungerende optisk mus