Turinys:

„Cyborg“kompiuterio pelė: 4 žingsniai (su nuotraukomis)
„Cyborg“kompiuterio pelė: 4 žingsniai (su nuotraukomis)

Video: „Cyborg“kompiuterio pelė: 4 žingsniai (su nuotraukomis)

Video: „Cyborg“kompiuterio pelė: 4 žingsniai (su nuotraukomis)
Video: Wolverine išleidimo data ir naujos nešiojamos konsolės! - ŽB podcastas S02E21 2024, Lapkritis
Anonim
Kiborgo kompiuterio pelė
Kiborgo kompiuterio pelė

Daugelis tyrimų rodo, kad įprastos kompiuterio pelės laikysena gali būti pavojinga. Pelė yra standartinė kompiuterinė įranga. Kompiuterių vartotojai pelę naudoja beveik tris kartus daugiau nei klaviatūra. Kadangi ekspozicijos rodikliai yra dideli, labai svarbu pagerinti viršutinių galūnių laikyseną naudojant kompiuterio pelę.

Šiam abstrakčiam projektui mes pagaminsime nešiojamąjį kompiuterį, kuris leis žmonėms judėti per kompiuterio ekraną, nereikalaujant išorinių technologijų. Tokiu būdu galėtume naudoti natūralius rankų judesius, o ne spustelėti prietaisą ant horizontalaus paviršiaus. Tai taip pat leidžia naudoti ekranus stovint, todėl žodiniai pristatymai tampa malonesni.

Kalbant apie prototipą, rodyklė bus naudojama kaip vairasvirtė, vidurinis pirštas - spustelėjimui kairiuoju, žiedinis pirštas - dešiniuoju pelės mygtuku, o rožinis - prietaisui įjungti ir išjungti. Nykštis veiks kaip paviršius, kuriame spaudžiami mygtukai. Visa tai bus įdėta į pirštinę.

Prekės

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) vairasvirtės modulis
  • (x3) Mygtukas
  • (x20 ±) Vieliniai džemperiai
  • (x3) 1KΩ rezistoriai
  • (x1) Pirštinių siuvimo rinkinys
  • Velcro karštas silikonas
  • Vielos litavimo rinkinys
  • 3D spausdinta dalis

1 veiksmas: nustatykite aparatūrą

Nustatykite aparatūrą
Nustatykite aparatūrą

Norėdami geriau suprasti dizainą, įtraukėme „Fritzing“eskizą. Rekomenduojame komponentus pirmiausia sumontuoti ant prototvarkės. Tokiu būdu prieš litavimą galite patikrinti, ar viskas veikia.

2 veiksmas: įkelkite kodą ir išbandykite

Užmezgus ryšį, prijunkite USB A (M) prie mikro USB B (M) iš kompiuterio prie „Arduino Leonardo“ir įkelkite eskizą. Nesivaržykite kopijuoti, keisti ir patobulinti eskizą.

ĮSPĖJIMAS: Kai naudojate Mouse.move () komandą, „Arduino“perima pelę! Prieš naudodami komandą įsitikinkite, kad turite kontrolę. Tai veikia tik „Arduino Leonardo“, „Micro“ar „Due“

Čia yra mūsų šio projekto kodas:

// Apibrėžti kaiščius#include; const int mouseMiddleButton = 2; // pelės vidurio įvesties kaištis Mygtukas const int startEmulation = 3; // įjungti ir išjungti pelės emuliaciją const int mouseLeftButton = 4; // kairysis pelės įvesties kaištis Mygtukas const int mouseRightButton = 5; // pelės įvesties smeigtukas dešinėn Mygtukas const int vairasvirtėX = A1; // vairasvirtė X ašis const int vairasvirtėY = A0; // vairasvirtės Y ašis

// kreiptuko skaitymo parametrai:

int cursorSpeed = 10; // X arba Y judesio išėjimo greitis int responseDelay = 5; // pelės atsako uždelsimas, ms int riba = cursorSpeed / 4; // poilsio slenkstis int centre = cursorSpeed / 2; // poilsio padėties vertė int mouseMiddleState = 0;

boolean mouseIsActive = klaidinga; // ar valdyti pelę, ar ne

int lastSwitchState = LOW; // ankstesnė jungiklio būsena

void setup () {

pinMode (startEmulation, INPUT); // jungiklio kaištis pinMode (mouseMiddleButton, INPUT); // vidurinio pelės mygtuko smeigtukas pinMode (mouseLeftButton, INPUT); // kairiojo pelės mygtuko smeigtukas pinMode (mouseRightButton, INPUT); // dešiniojo pelės mygtuko smeigtukas

Pelė.pradėti (); // perimti pelės valdymą

}

void loop () {

// skaityti jungiklį: int switchState = digitalRead (startEmulation);

// jei jis pasikeitė ir yra aukštas, perjunkite pelės būseną:

if (switchState! = lastSwitchState) {if (switchState == LOW) {mouseIsActive =! mouseIsActive; }}

// išsaugoti jungiklio būseną kitai kilpa:

lastSwitchState = switchState;

// perskaitykite ir padidinkite dvi ašis:

int xReading = readAxis (A1); int yReading = readAxis (A0);

// jei pelės valdymo būsena aktyvi, judinkite pelę:

if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, slinkite pelės ratuku)}

// Kairė

// perskaitykite pelės mygtuką ir spustelėkite arba nespauskite: // jei pelės mygtukas yra paspaustas: if (digitalRead (mouseLeftButton) == HIGH) {// jei pelė nespaudžiama, paspauskite: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); vėlavimas (100); // uždelsti, kad įjungtumėte vieną ir du kartus spustelėkite pelę.paleiskite (MOUSE_LEFT); }}

// kitaip pelės mygtukas nepaspaudžiamas:

else {// jei pelė paspaudžiama, atleiskite ją: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

// TEISINGAI

// perskaitykite pelės mygtuką ir spustelėkite arba nespauskite: // jei pelės mygtukas yra paspaustas: if (digitalRead (mouseRightButton) == HIGH) {// jei pelė nespaudžiama, paspauskite: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); vėlavimas (100); // atidėti, kad įjungtumėte vieną ir du kartus spustelėję pelę.paleiskite (MOUSE_RIGHT); }}

// kitaip pelės mygtukas nepaspaudžiamas:

else {// jei pelė paspaudžiama, atleiskite ją: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

// VIDURINIS

// perskaitykite pelės mygtuką ir spustelėkite arba nespauskite: // jei pelės mygtukas yra paspaustas: if (digitalRead (mouseMiddleButton) == HIGH) {// jei pelė nespaudžiama, paspauskite: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // aktualus el estado del botonas}}

// kitaip pelės mygtukas nepaspaudžiamas:

else {// jei pelė paspaudžiama, atleiskite ją: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

uždelsimas (responseDelay);

}

/*

nuskaito ašį (0 arba 1 x arba y) ir pakeičia analoginės įvesties diapazoną nuo 0 iki */

int readAxis (int thisAxis) {

// skaityti analoginę įvestį: int reading = analogRead (thisAxis);

// susieti rodmenis iš analoginio įvesties diapazono į išvesties diapazoną:

skaitymas = žemėlapis (skaitymas, 0, 1023, 0, cursorSpeed);

// jei išvesties rodmenys yra už

// poilsio padėties slenkstis, naudok jį: int distance = reading - centre;

if (abs (atstumas) <slenkstis) {atstumas = 0; }

// grąžinkite šios ašies atstumą:

grįžimo atstumas; }

3 žingsnis: Prototipo montavimas

Prototipo montavimas
Prototipo montavimas
Prototipo montavimas
Prototipo montavimas
Prototipo montavimas
Prototipo montavimas

Pirmasis žingsnis yra prisiūti velcro prie pirštinės, prie kiekvieno piršto turite pasiūti keturias velcro juosteles. Siuvome minkštą velcro dalį.

Kiekvienas mygtukas turi du laidus, vienas prasideda nuo atitinkamų kaiščių ir jungiasi prie teigiamos mygtuko kojelės, o kitas - prie neigiamos kojelės. Kitame neigiamo laido gale lituojame kiekvieno mygtuko varžą ir neigiamą kreiptuko laidą iki paskutinio laido, kuris jungiasi prie „Arduino“plokštės GND. Ta pati lygiagreti jungtis veikia ir teigiamai pusei. (3 mygtukai ir teigiama kojelė)

Lituodami džemperius, uždėsime kietas velcro juosteles, kad laidai įstrigtų tarp jų. Galiausiai termo-klijuoti vairasvirtės modulį prie 3D atspausdintos dalies. Žemiau rasite. STL failą.

4 žingsnis: pradėkite naudoti ranką kaip pelę

Image
Image
Pradėkite naudoti savo ranką kaip pelę!
Pradėkite naudoti savo ranką kaip pelę!
Pradėkite naudoti savo ranką kaip pelę!
Pradėkite naudoti savo ranką kaip pelę!

Balsuokite už mus pagalbinių technologijų konkurse, jei jums patiko projektas.

Rekomenduojamas: