Satura rādītājs:
- Piegādes
- 1. darbība: akselerometra saskarne ar Raspberry Pi
- 2. darbība: spiedpogas saskarne ar Raspberry Pi
- 3. darbība: Python skripta izstrāde, lai sērijveidā kontrolētu peles rādītāju
- 4. darbība. Izstrādājiet Python skriptu, lai vadītu peles rādītāju, izmantojot Bluetooth
- 5. darbība: akselerometra un pogas ievietošana cimdā
Video: [Valkājama pele] Uz Bluetooth balstīts valkājams peles kontrolieris operētājsistēmai Windows 10 un Linux: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Es izveidoju peles kontrolieri, kura pamatā ir Bluetooth, un kuru var izmantot, lai vadītu peles rādītāju un veiktu ar peli saistītas darbības, nepieskaroties nevienai virsmai. Elektronisko shēmu, kas iestrādāta cimdā, var izmantot, lai izsekotu roku žestiem, izmantojot akselerometru, un to var pārvērst peles rādītāja kustībā. Šī ierīce ir savienota arī ar pogu, kas atkārto kreisās pogas klikšķi. Ierīci var pievienot sērijveidā datoram (izmantojot USB) vai bezvadu režīmā, izmantojot Bluetooth savienojumu. Bluetooth nodrošina stabilu un universālu bezvadu saziņu starp saimniekdatoru un šo valkājamo peli. Tā kā Bluetooth ir plaši pieejams un iekļauts gandrīz visos personālajos klēpjdatoros, šādas valkājamas ierīces lietojums ir plašs. Izmantojot Raspberry Pi, kas ir plaši izmantota dažādu projektu izstrādes platforma, dažādu sensoru saskarne un šādas ierīces izstrāde ir vienkārša un mērogojama. Cimdu var nomainīt ar jebkuru citu valkājamu, lai padarītu to plašāku.
Piesardzības nolūkos pret COVID-19 ieteicams izvairīties no pieskaršanās virsmām, kuras var koplietot dažādi cilvēki, un starp šīm parastajām virsmām var būt skārienekrāna klēpjdators vai pele. Šādas valkājamas ierīces izmantošana palīdz uzturēt higiēnu un regulāri izmantotās virsmas notīrīt:)
Piegādes
- Raspberry Pi 3 Modelis B V1.2
- SparkFun trīs asu akselerometra izlaušanās - MMA8452Q
- Džemperis no tērauda līdz sievietei
- Cimds
- Santehnikas līmlente
- Šķēres
- Mikro-USB kabelis
- HDMI kabelis (atkļūdošanai, izmantojot Raspberry Pi)
1. darbība: akselerometra saskarne ar Raspberry Pi
Es izmantoju Sparkfun trīs asu akselerometru MMA8542Q, kas izmanto I2C sakaru protokolu, lai sarunātos ar Raspberry Pi GPIO tapām un nosūtītu asu datus. Šis sensors nodrošina dažādus darbības režīmus ar konfigurējamu datu pārraides ātrumu, miega režīmiem, paātrinājuma diapazonu, filtra režīmu utt. Es atklāju, ka Pibits kods ir ļoti noderīgs manā sākotnējā sensora konfigurācijā un tā testēšanā ar roku žestiem. Vispirms labāk ir novietot sensoru uz līdzenas virsmas un veikt deterministiskus slīpumus, vienlaikus ievērojot neapstrādātās sensora vērtības. Tas ir īpaši noderīgi, lai saprastu, kā šis sensors reaģē ar dažādiem roku žestiem un kā mēs varam iestatīt sliekšņus savai lietojumprogrammai. Kad akselerometrs ir veiksmīgi savienots, jūs varat redzēt neapstrādātos asu datus, kas parādās Pi termināļa ekrānā.
2. darbība: spiedpogas saskarne ar Raspberry Pi
Šajā valkājamajā ierīcē es saspiedu pogu, kas var darboties kā peles kreisā poga, lai es varētu noklikšķināt uz ekrānā redzamajām ikonām. Pēc tam pogas 2 gali ir savienoti ar 2 Pi GPIO tapām. Viena no tapām izvada loģiski augstu, bet otra tapa nolasa šo vērtību. Nospiežot pogu, ķēde kļūst slēgta un ievades tapa spēj nolasīt loģiski augstu vērtību, kuru pēc tam apstrādā skripts, ko es uzrakstīju, lai līdzinātos peles kreisās pogas klikšķināšanai. Tā kā trūkst lodāmura, es izmantoju līmlenti, lai savienotu džemperus ar pogu.
3. darbība: Python skripta izstrāde, lai sērijveidā kontrolētu peles rādītāju
Peles rādītāja vadīšanai izmantoju Pyautogui Python bibliotēku. Šīs bibliotēkas izmantošanas iemesls bija tas, ka tā darbojas gan Linux, gan Windows platformā. Lai kontrolētu peles rādītāju savā Raspberry Pi, vispirms es savienoju savu Pi ar displeju. Pēc tam peles rādītāja vadīšanai izmantoju šādas bibliotēkas sniegtās API:
- pyautogui.move (0, 200, 2) # pārvieto peli 2 sekundes zemāk par 200 pikseļiem
- pyautogui.click () # noklikšķiniet uz peles
Lai filtrētu kļūdas datus, kas nāk no akselerometra, es izmantoju vidējo vērtību un citas filtrēšanas metodes, kuras var viegli saprast, izmantojot pievienoto kodu. API pyautogui.move (0, y) tika izmantots tā, lai peles rādītājs vienlaikus varētu virzīties uz augšu vai uz leju vai pa kreisi pa labi. Tas ir tāpēc, ka akselerometrs ziņo par asīm X, Y un Z virzienā, bet API ņem tikai 2 argumentus, X un Y asis. Tādējādi šī pieeja bija ļoti piemērota manam akselerometram un žestu kartēšanai ekrānā.
4. darbība. Izstrādājiet Python skriptu, lai vadītu peles rādītāju, izmantojot Bluetooth
Šī daļa ir uzlabota lietojumprogramma, kurā jebkurš klēpjdators ar Bluetooth iespējām var sazināties ar Raspberry Pi servera-klienta saziņas modelī un bezvadu režīmā pārsūtīt peles koordinātu datus. Lai iestatītu Windows 10 64 bitu klēpjdatoru, lai atļautu Bluetooth sakarus, mums jāveic šādas darbības:
Windows 10:
- Izveidojiet ienākošo Bluetooth COM portu.
- Pāra Bluetooth savieno ar klēpjdatora Bluetooth, padarot Pi atklājamu.
- Instalējiet Python operētājsistēmā Windows.
- Instalējiet pip sistēmā Windows. Pip tiek izmantots, lai instalētu bibliotēkas Linux vai Windows datorā.
- Instalējiet pyautogui operētājsistēmā Windows, izmantojot: pip install pyautogui
- Kad pyautogui ir instalēts ierīcē, instalējiet Pybluez operētājsistēmā Windows, izmantojot šādu komandu Windows terminālī, izmantojot: pip install PyBluez-win10. PyBluez nodrošina Bluetooth saziņu gan Windows, gan Linux datoros.
-
Lai izstrādātu lietojumprogrammu klēpjdatorā Windows 10, mums jāinstalē Microsoft Visual Studio (nepieciešama 15–20 GB vietas) un tās veidošanas rīki. Tāpēc kopā ar PyBluez mums ir jāievēro tālāk sniegtie norādījumi,
- Lejupielādējiet un palaidiet "Visual Studio Installer":
-
Instalējiet "Visual Studio Build Tools 2017", pārbaudiet "Visual C ++ būvēšanas rīkus" un "Universālos Windows platformas veidošanas rīkus"
- git klons
- cd pybluez
python setup.py instalēt
- Ja iepriekš minētie norādījumi tiek pareizi izpildīti, Python palaišanai Windows terminālī un pyautogui un Bluetooth moduļa importēšanai vajadzētu darboties bez kļūdām, kā parādīts iepriekš redzamajā attēlā.
- Pybluez bibliotēkā, kas instalēta Windows mašīnā, dodieties uz: pybluez-master / example / simple / rfcomm-server.py un izpildiet, izmantojot python rfcomm-server.py. Ja terminālis nonāk gaidīšanas stāvoklī bez kļūdām, pārejiet uz zemāk esošo sadaļu par Bluetooth iestatīšanu Pi. Ja, instalējot pybluez, rodas kļūdas, atkļūdošanai skatiet sadaļu GitHub problēmas.
Raspbian uz Raspberry Pi:
- Instalējiet PyBluez uz Pi
- Palaidiet servera piemēru operētājsistēmā Windows. Pēc tam programmā Pi dodieties uz pybluez-master / example / simple / rfcomm-client.py un izpildiet. Ja abas ierīces ir sākušas sazināties, tagad abās ierīcēs ir iestatīts Bluetooth. Lai saprastu vairāk par to, kā ligzdas komunikācija darbojas ar Python, skatiet šo saiti no MIT.
Lai nosūtītu asu datus no Pi uz datoru, būs nepieciešama papildu datu parsēšana, jo dati tiek nosūtīti baitos. Papildinformāciju par klienta un servera datu saziņu skatiet pievienotajā kodā.
5. darbība: akselerometra un pogas ievietošana cimdā
Kad akselerometrs ir labi savienots, skeleta sistēma izskatās kā pirmais attēls šajā solī.
Tā kā cimda virsma nav plakana, es ik pa brīdim izmantoju fiktīvu kredītkarti, kas nāk pie manas pastkastes. Saskaņā ar otro attēlu šajā solī es ar līmlenti piestiprināju fiktīvo kredītkarti uz cimda augšējās virsmas. Virs kartes pievienoju akselerometru. Šī iestatīšana bija pietiekami stabila, lai mans akselerometrs būtu stabils un spētu precīzi izsekot maniem žestiem.
Ieteicams:
Iestatiet Linux operētājsistēmai Windows !: 12 soļi
Iestatiet Linux operētājsistēmai Windows !: Laipni lūdzam instrukciju komplektā, lai iestatītu Linux operētājsistēmai Windows! Šī instrukciju kopa ir paredzēta iesācējiem, lai komandrindā iestatītu Ubuntu Linux sistēmu savā Windows mašīnā un savienotu savus Windows failus ar savu Linux sistēmu. Linux apakšsistēma
Matlab balstīts ROS robotu kontrolieris: 9 soļi
Matlab balstīts ROS robotu kontrolieris: Kopš bērnības es vienmēr esmu sapņojis būt Dzelzs vīrs un joprojām to daru. Dzelzs vīrs ir viens no tiem varoņiem, kas ir reāli iespējams, un vienkārši sakot, es vēlos kādreiz kļūt par dzelzs vīru, pat ja cilvēki par mani smejas vai saka, ka tas nav iespējams
Arduino balstīts bezkontakta infrasarkanais termometrs - Uz IR balstīts termometrs, izmantojot Arduino: 4 soļi
Arduino balstīts bezkontakta infrasarkanais termometrs | Uz IR balstīts termometrs, izmantojot Arduino: Sveiki puiši, šajā instrukcijā mēs izgatavosim bezkontakta termometru, izmantojot arduino. Tā kā dažreiz šķidruma/cietās vielas temperatūra ir pārāk augsta vai zema, un tad ir grūti ar to sazināties un izlasīt temperatūra tādā situācijā
IOT balstīts DOL startera kontrolieris apūdeņošanas sūkņu komplektam: 6 soļi
IOT balstīts DOL startera kontrolieris apūdeņošanas sūkņu komplektam: Sveiki draugi! Šī pamācība ir par to, kā attālināti uzraudzīt un kontrolēt apūdeņošanas sūkņu komplektu internetā. Stāsts: Savā saimniecībā es saņemu strāvas padevi no vietējā tīkla tikai apmēram 6 stundas dienā. Laiki nav regulāri, pieejamība
Orange PI HowTo: Apkopojiet Sunxi rīku operētājsistēmai Windows operētājsistēmai Windows: 14 soļi (ar attēliem)
Orange PI HowTo: Sastādīt Sunxi rīku operētājsistēmai Windows operētājsistēmā Windows: PRIEKŠNOSACĪJUMI: Jums būs nepieciešams (galddators), kurā darbojas sistēma Windows. Interneta savienojums. Oranžā PI plāksne. Pēdējais nav obligāts, bet esmu pārliecināts, ka jums tas jau ir. Pretējā gadījumā jūs neizlasīsit šo pamācību. Pērkot oranžo PI grēku