Satura rādītājs:

[Valkājama pele] Uz Bluetooth balstīts valkājams peles kontrolieris operētājsistēmai Windows 10 un Linux: 5 soļi
[Valkājama pele] Uz Bluetooth balstīts valkājams peles kontrolieris operētājsistēmai Windows 10 un Linux: 5 soļi

Video: [Valkājama pele] Uz Bluetooth balstīts valkājams peles kontrolieris operētājsistēmai Windows 10 un Linux: 5 soļi

Video: [Valkājama pele] Uz Bluetooth balstīts valkājams peles kontrolieris operētājsistēmai Windows 10 un Linux: 5 soļi
Video: ОДЕЖДА с ALIEXPRESS С ПРИМЕРКОЙ//ОЖИДАНИЕ И РЕАЛЬНОСТЬ 2024, Novembris
Anonim
Image
Image
Saskarnes akselerometrs ar Raspberry Pi
Saskarnes akselerometrs ar Raspberry Pi

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

Saskarnes akselerometrs ar Raspberry Pi
Saskarnes akselerometrs 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

Saskarnes spiedpoga ar Raspberry Pi
Saskarnes spiedpoga 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:

  1. pyautogui.move (0, 200, 2) # pārvieto peli 2 sekundes zemāk par 200 pikseļiem
  2. 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

Tiek izstrādāts Python skripts, lai kontrolētu peles rādītāju, izmantojot Bluetooth
Tiek izstrādāts Python skripts, lai kontrolē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:

  1. Izveidojiet ienākošo Bluetooth COM portu.
  2. Pāra Bluetooth savieno ar klēpjdatora Bluetooth, padarot Pi atklājamu.
  3. Instalējiet Python operētājsistēmā Windows.
  4. Instalējiet pip sistēmā Windows. Pip tiek izmantots, lai instalētu bibliotēkas Linux vai Windows datorā.
  5. Instalējiet pyautogui operētājsistēmā Windows, izmantojot: pip install pyautogui
  6. 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.
  7. 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,

    1. Lejupielādējiet un palaidiet "Visual Studio Installer":
    2. 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"

    3. git klons
    4. cd pybluez
    5. python setup.py instalēt

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

  1. Instalējiet PyBluez uz Pi
  2. 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ā

Akselerometra un pogas ievietošana cimdā
Akselerometra un pogas ievietošana cimdā
Akselerometra un pogas ievietošana cimdā
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: