Indholdsfortegnelse:

Cyborg computermus: 4 trin (med billeder)
Cyborg computermus: 4 trin (med billeder)

Video: Cyborg computermus: 4 trin (med billeder)

Video: Cyborg computermus: 4 trin (med billeder)
Video: Как отказ от порно спасёт твой мозг 2024, Juli
Anonim
Cyborg computermus
Cyborg computermus

Mange undersøgelser tyder på, at holdningen ved at bruge en konventionel computermus kan være farlig. Musen er et standard stykke computerudstyr. Computerbrugere bruger musen næsten tre gange så meget som tastaturet. Da eksponeringsraterne er høje, er det meget vigtigt at forbedre kropsholdning i øvre ekstremiteter, mens du bruger en computermus.

Til dette abstrakte projekt laver vi en bærbar, der gør det muligt for folk at bevæge sig gennem en computerskærm uden behov for ekstern teknologi. På den måde kunne vi bruge hænderne naturlige bevægelser i stedet for at klikke på en enhed på en vandret overflade. Dette giver også mulighed for at bruge skærme mens du står, hvilket gør mundtlige præsentationer mere behagelige.

Hvad angår prototypen, vil indekset bruges som et joystick, langfingeren til venstre klik, ringfinger til højreklik og pink til at tænde og slukke for enheden. Tommelfingeren fungerer som den overflade, hvor knapperne bliver trykket på. Alt dette vil blive tilføjet til en handske.

Forbrugsvarer

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Joystick -modul
  • (x3) Trykknap
  • (x20 ±) Wire jumpere
  • (x3) Modstande på 1KΩ
  • (x1) Syningssæt til handsker
  • Velcro varm silikone
  • Trådlodningssæt
  • 3D -printet del

Trin 1: Konfigurer hardware

Opsæt hardware
Opsæt hardware

Vi har inkluderet en Fritzing -skitse for en bedre forståelse af designet. Vi anbefaler først at montere komponenterne på et protoboard. På den måde kan du kontrollere, at alt fungerer, før lodning.

Trin 2: Upload koden og test

Når forbindelserne er foretaget, skal du slutte USB A (M) til micro USB B (M) fra computeren til Arduino Leonardo og uploade skitsen. Du er velkommen til at kopiere, ændre og forbedre skitsen.

ADVARSEL: Når du bruger kommandoen Mouse.move (), overtager Arduino musen! Sørg for at have kontrol, før du bruger kommandoen. Det fungerer kun for Arduino Leonardo, Micro eller Due

Her er vores kode til dette projekt:

// Definer stifter#inkluderer; const int mouseMiddleButton = 2; // input -pin til musens midterste knap const int startEmulation = 3; // skift for at tænde og slukke musemulering const int mouseLeftButton = 4; // input -pin til musen til venstre Knap const int mouseRightButton = 5; // input -pin til højre mus Knap const int joystickX = A1; // joystick X -akse const int joystickY = A0; // joystick Y -akse

// parametre til læsning af joysticket:

int cursorSpeed = 10; // udgangshastighed for X eller Y -bevægelse int responseDelay = 5; // svarforsinkelse af musen, i ms int tærskel = cursorSpeed / 4; // hviletærskel int center = cursorSpeed / 2; // hvilestillingsværdi int mouseMiddleState = 0;

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

int lastSwitchState = LAV; // tidligere switch -tilstand

ugyldig opsætning () {

pinMode (startEmulation, INPUT); // switch pin pinMode (mouseMiddleButton, INPUT); // den midterste museknap pin pinMode (mouseLeftButton, INPUT); // venstre museknap pin pinMode (mouseRightButton, INPUT); // den højre museknap

Mus.begynd (); // tage kontrol over musen

}

void loop () {

// læs kontakten: int switchState = digitalRead (startEmulation);

// hvis den er ændret, og den er høj, skal du skifte musestatus:

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

// Gem switch -tilstand til næste loop:

lastSwitchState = switchState;

// læs og skaler de to akser:

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

// hvis musens kontroltilstand er aktiv, skal du flytte musen:

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

//VENSTRE

// læs museknappen, og klik eller klik ikke: // hvis der trykkes på museknappen: hvis (digitalRead (mouseLeftButton) == HIGH) {// hvis musen ikke trykkes, skal du trykke på den: hvis (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); forsinkelse (100); // forsinkelse for at aktivere enkelt- og dobbeltklik på Mouse.release (MOUSE_LEFT); }}

// ellers trykkes der ikke på museknappen:

ellers {// hvis der trykkes på musen, slip den: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

//RET

// læs museknappen, og klik eller klik ikke: // hvis der trykkes på museknappen: hvis (digitalRead (mouseRightButton) == HIGH) {// hvis musen ikke trykkes, skal du trykke på den: hvis (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); forsinkelse (100); // forsinkelse for at aktivere enkelt- og dobbeltklik på Mouse.release (MOUSE_RIGHT); }}

// ellers trykkes der ikke på museknappen:

ellers {// hvis der trykkes på musen, slip den: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

// MELLEM

// læs museknappen, og klik eller klik ikke: // hvis der trykkes på museknappen: hvis (digitalRead (mouseMiddleButton) == HIGH) {// hvis musen ikke trykkes, skal du trykke på den: hvis (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza el estado del botón}}

// ellers trykkes der ikke på museknappen:

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

forsinkelse (responseDelay);

}

/*

læser en akse (0 eller 1 for x eller y) og skalerer det analoge inputområde til et område fra 0 til */

int readAxis (int thisAxis) {

// læs det analoge input: int reading = analogRead (thisAxis);

// kortlæg læsningen fra det analoge indgangsområde til outputområdet:

læsning = kort (læsning, 0, 1023, 0, cursorSpeed);

// hvis outputaflæsning er uden for

// hvilepositionstærskel, brug den: int distance = læsning - center;

hvis (abs (afstand) <tærskel) {distance = 0; }

// returner afstanden for denne akse:

returafstand; }

Trin 3: Montering af prototypen

Montering af prototypen
Montering af prototypen
Montering af prototypen
Montering af prototypen
Montering af prototypen
Montering af prototypen

Det første trin er at sy velcroen til handsken, du skal sy fire strimler velcro en til hver finger. Vi syede den bløde del af velcroen.

Hver trykknap har to ledninger, en der starter ved de respektive stifter og forbinder til det positive ben på knappen og en anden på det negative ben. I den anden ende af den negative ledning lodder vi modstandene for hver knap plus joystickets negative ledning til en sidste ledning, der forbinder til Arduino -kortets GND. Den samme parallelle forbindelse fungerer for den positive side. (3 knapper og joystick -positivt ben)

Efter lodning af springerne sætter vi de hårde velcrobånd på, så trådene sidder fast imellem. Endelig termolimmede vi joystickmodulet til et 3D-trykt stykke. Nedenfor kan du finde. STL -filen.

Trin 4: Begynd at bruge din hånd som mus

Image
Image
Begynd at bruge din hånd som mus!
Begynd at bruge din hånd som mus!
Begynd at bruge din hånd som mus!
Begynd at bruge din hånd som mus!

Stem på os i Assistive Tech Contest, hvis du nød projektet.

Anbefalede: