Innholdsfortegnelse:

Cyborg datamus: 4 trinn (med bilder)
Cyborg datamus: 4 trinn (med bilder)

Video: Cyborg datamus: 4 trinn (med bilder)

Video: Cyborg datamus: 4 trinn (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Cyborg datamus
Cyborg datamus

Mange studier tyder på at holdningen til å bruke en konvensjonell datamus kan være farlig. Musen er et standard datamaskinutstyr. Databrukere bruker musen nesten tre ganger så mye som tastaturet. Siden eksponeringsfrekvensen er høy, er det viktig å forbedre holdningen i øvre ekstremiteter mens du bruker en datamus.

For dette abstrakte prosjektet skal vi lage en bærbar som lar folk bevege seg gjennom en dataskjerm uten nødvendig ekstern teknologi. På den måten kunne vi bruke hendene naturlige bevegelser i stedet for å klikke på en enhet på en horisontal overflate. Dette gjør det også mulig å bruke skjermer mens du står, noe som gjør muntlige presentasjoner mer behagelige.

Når det gjelder prototypen, vil indeksen brukes som en joystick, langfingeren for venstre klikk, ringfingeren for høyreklikk og pinky for å slå enheten på og av. Tommelen vil fungere som overflaten der knappene blir trykket på. Alt dette vil bli lagt i en hanske.

Rekvisita

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Joystick -modul
  • (x3) Trykknapp
  • (x20 ±) Trådhoppere
  • (x3) Motstander på 1KΩ
  • (x1) Synsett for hansker
  • Borrelås Varm silikon
  • Wire Loddesett
  • 3D -trykt del

Trinn 1: Konfigurer maskinvaren

Sett opp maskinvaren
Sett opp maskinvaren

Vi har inkludert en Fritzing -skisse for en bedre forståelse av designet. Vi anbefaler å montere komponentene på et protoboard først. På den måten kan du sjekke at alt fungerer før lodding.

Trinn 2: Last opp koden og test

Når tilkoblingene er gjort, kobler du USB A (M) til micro USB B (M) fra datamaskinen til Arduino Leonardo og laster opp skissen. Du kan gjerne kopiere, endre og forbedre skissen.

ADVARSEL: Når du bruker kommandoen Mouse.move (), tar Arduino musen! Sørg for at du har kontroll før du bruker kommandoen. Det fungerer bare for Arduino Leonardo, Micro eller Due

Her er vår kode for dette prosjektet:

// Definer Pins#inkluderer; const int mouseMiddleButton = 2; // inngangspinne for musens midtre Knapp const int startEmulation = 3; // bytt for å slå på og av musemulering const int mouseLeftButton = 4; // inndatapinne for musen venstre Knapp const int mouseRightButton = 5; // inndatapinne for musen til høyre Knapp const int joystickX = A1; // joystick X -akse const int joystickY = A0; // joystick Y -akse

// parametere for lesing av joysticken:

int cursorSpeed = 10; // utgangshastighet på X eller Y bevegelse int responseDelay = 5; // svarforsinkelse av musen, i ms int terskel = cursorSpeed / 4; // hvileterskel int center = cursorSpeed / 2; // hvileposisjon verdi int mouseMiddleState = 0;

boolsk mouseIsActive = false; // om musen skal kontrolleres eller ikke

int lastSwitchState = LAV; // forrige byttestatus

ugyldig oppsett () {

pinMode (startEmulation, INPUT); // bryteren pin pinMode (mouseMiddleButton, INPUT); // den midterste museknappen pin pinMode (mouseLeftButton, INPUT); // venstre museknapp pin pinMode (mouseRightButton, INPUT); // høyre museknapp

Mus.begin (); // ta kontroll over musen

}

void loop () {

// les bryteren: int switchState = digitalRead (startEmulation);

// hvis den er endret og den er høy, bytter du musestatus:

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

// lagre bryterstatus for neste sløyfe:

lastSwitchState = switchState;

// les og skala de to aksene:

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

// hvis musekontrollstatusen er aktiv, flytter du musen:

if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, rullehjul)}

//VENSTRE

// les museknappen og klikk eller ikke klikk: // hvis museknappen trykkes: if (digitalRead (mouseLeftButton) == HIGH) {// hvis musen ikke trykkes, trykk på den: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); forsinkelse (100); // forsinkelse for å aktivere enkelt- og dobbeltklikk på Mouse.release (MOUSE_LEFT); }}

// ellers blir ikke museknappen trykket:

ellers {// hvis musen trykkes, slipp den: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

//IKKE SANT

// les museknappen og klikk eller ikke klikk: // hvis museknappen trykkes: if (digitalRead (mouseRightButton) == HIGH) {// hvis musen ikke trykkes, trykk på den: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); forsinkelse (100); // forsinkelse for å aktivere enkelt- og dobbeltklikk på Mouse.release (MOUSE_RIGHT); }}

// ellers blir ikke museknappen trykket:

ellers {// hvis musen trykkes, slipp den: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

//MIDTEN

// les museknappen og klikk eller ikke klikk: // hvis museknappen trykkes: if (digitalRead (mouseMiddleButton) == HIGH) {// hvis musen ikke trykkes, trykk på den: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza el estado del botón}}

// ellers blir ikke museknappen trykket:

ellers {// hvis musen trykkes, slipp den: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

forsinkelse (responseDelay);

}

/*

leser en akse (0 eller 1 for x eller y) og skalerer det analoge inngangsområdet til et område fra 0 til */

int readAxis (int thisAxis) {

// les den analoge inngangen: int reading = analogRead (thisAxis);

// kartles avlesningen fra det analoge inngangsområdet til utgangsområdet:

lesing = kart (lesing, 0, 1023, 0, markørhastighet);

// hvis utdataavlesningen er utenfor fra

// hvileposisjonsterskel, bruk den: int distance = reading - center;

hvis (abs (avstand) <terskel) {distanse = 0; }

// returner avstanden for denne aksen:

returavstand; }

Trinn 3: Montering av prototypen

Montering av prototypen
Montering av prototypen
Montering av prototypen
Montering av prototypen
Montering av prototypen
Montering av prototypen

Det første trinnet er å sy borrelåsen til hansken, du må sy fire borrelister én til hver finger. Vi sydde den myke delen av borrelåsen.

Hver trykknapp har to ledninger, en som starter ved de respektive pinnene og kobles til det positive benet på knappen og en til på det negative benet. I den andre enden av den negative ledningen lodder vi motstandene til hver knapp pluss den negative ledningen til styrespaken til en siste ledning, som kobles til GND på Arduino -kortet. Den samme parallelle forbindelsen fungerer for den positive siden. (3 knapper og joystick -positivt ben)

Etter lodding av hopperne vil vi sette på de harde borrelåsstrimlene, slik at ledningene setter seg fast i mellom. Til slutt termolimmet vi joystickmodulen til et 3D-trykt stykke. Nedenfor finner du. STL -filen.

Trinn 4: Begynn å bruke hånden som mus

Image
Image
Begynn å bruke hånden som mus!
Begynn å bruke hånden som mus!
Begynn å bruke hånden som mus!
Begynn å bruke hånden som mus!

Stem på oss i Assistive Tech Contest hvis du likte prosjektet.

Anbefalt: