INHOUDSOPGAWE:

Cyborg -rekenaarmuis: 4 stappe (met foto's)
Cyborg -rekenaarmuis: 4 stappe (met foto's)

Video: Cyborg -rekenaarmuis: 4 stappe (met foto's)

Video: Cyborg -rekenaarmuis: 4 stappe (met foto's)
Video: ELBERT HELPT BIJ EEN BEVALLING - TOPDOKS EXTRA 2024, Desember
Anonim
Cyborg rekenaarmuis
Cyborg rekenaarmuis

Baie studies dui daarop dat die houding van die gebruik van 'n konvensionele rekenaarmuis gevaarlik kan wees. Die muis is 'n standaard toerusting. Rekenaargebruikers gebruik die muis amper drie keer soveel as die sleutelbord. Aangesien die blootstellingsyfers hoog is, is dit baie belangrik om die postuur van die boonste ledemate te verbeter terwyl u 'n rekenaarmuis gebruik.

Vir hierdie abstrakte projek maak ons 'n draagbare waarmee mense deur 'n rekenaarskerm kan beweeg sonder dat eksterne tegnologie nodig is. Op hierdie manier kan ons die hande se natuurlike bewegings gebruik in plaas daarvan om op 'n toestel op 'n horisontale oppervlak te klik. Hiermee kan u ook skerms terwyl u staan, gebruik, wat mondelinge aanbiedings aangenamer maak.

Wat die prototipe betref, gebruik die indeks as 'n joystick, die middelvinger vir links klik, ringvinger vir regsklik en die pinkie om die toestel aan en uit te skakel. Die duim sal dien as die oppervlak waar die knoppies ingedruk word. Dit alles word in 'n handskoen gevoeg.

Voorrade

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Joystick -module
  • (x3) Drukknop
  • (x20 ±) Draadspringers
  • (x3) Weerstande van 1KΩ
  • (x1) Naadstel vir handskoene
  • Velcro warm silikoon
  • Draad soldeer kit
  • 3D gedrukte deel

Stap 1: Stel die hardeware op

Stel die hardeware op
Stel die hardeware op

Ons het 'n Fritzing -skets ingesluit vir 'n beter begrip van die ontwerp. Ons beveel aan dat u die komponente eers op 'n protobord monteer. Op hierdie manier kan u seker maak dat alles werk voordat u soldeer.

Stap 2: Laai die kode op en toets

Nadat die verbindings gemaak is, koppel die USB A (M) aan die mikro -USB B (M) van die rekenaar na die Arduino Leonardo en laai die skets op. Kopieer, verander en verbeter die skets.

WAARSKUWING: As u die opdrag Mouse.move () gebruik, neem die Arduino u muis oor! Maak seker dat u beheer het voordat u die opdrag gebruik. Dit werk slegs vir Arduino Leonardo, Micro of Due

Hier is ons kode vir hierdie projek:

// Definieer penne#sluit in; const int mouseMiddleButton = 2; // invoerpen vir die muis se middelste knoppie const int startEmulation = 3; // skakel om muisemulasie const int mouseLeftButton = 4 aan en af te skakel; // invoerpen vir die muis links Knoppie const int mouseRightButton = 5; // invoerpen vir die regter muis Knoppie const int joystickX = A1; // joystick X -as const int joystickY = A0; // joystick Y -as

// parameters vir die lees van die joystick:

int cursorSpeed = 10; // uitsetsnelheid van X of Y beweging int responseDelay = 5; // reaksie vertraging van die muis, in ms int drempel = cursorSpeed / 4; // rusdrempel int sentrum = cursorSpeed / 2; // rusposisie waarde int mouseMiddleState = 0;

boolean mouseIsActive = false; // of die muis beheer moet word al dan nie

int lastSwitchState = LAAG; // vorige skakelstatus

ongeldige opstelling () {

pinMode (startEmulation, INPUT); // die skakelaar pinMode (mouseMiddleButton, INPUT); // die middelste muisknoppie pinMode (mouseLeftButton, INPUT); // die pen van die muisknop aan die linkerkant pinMode (mouseRightButton, INPUT); // die pen met die regter muisknop

Muis.begin (); // neem beheer oor die muis

}

leemte -lus () {

// lees die skakelaar: int switchState = digitalRead (startEmulation);

// as dit verander en hoog is, skakel die muisstatus:

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

// stoor die skakelaarstatus vir die volgende lus:

lastSwitchState = switchState;

// lees en skaal die twee asse:

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

// as die muisbeheerstatus aktief is, beweeg die muis:

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

// LINKS

// lees die muisknop en klik of klik nie: // as die muisknop ingedruk word: if (digitalRead (mouseLeftButton) == HOOG) {// as die muis nie ingedruk word nie, druk dit: as (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); vertraging (100); // vertraag om enkel- en dubbelklik op Mouse.release (MOUSE_LEFT) moontlik te maak; }}

// anders word die muisknop nie ingedruk nie:

anders {// as die muis ingedruk word, laat dit los: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

// REGS

// lees die muisknop en klik of klik nie: // as die muisknop ingedruk word: as (digitalRead (mouseRightButton) == HOOG) {// as die muis nie ingedruk word nie, druk dit: as (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); vertraging (100); // vertraag om enkel- en dubbelkliek op Mouse.release (MOUSE_RIGHT) moontlik te maak; }}

// anders word die muisknop nie ingedruk nie:

anders {// as die muis ingedruk word, laat dit los: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

// MIDDEL

// lees die muisknop en klik of klik nie: // as die muisknop ingedruk word: as (digitalRead (mouseMiddleButton) == HOOG) {// as die muis nie ingedruk word nie, druk dit: as (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza el estado del botón}}

// anders word die muisknop nie ingedruk nie:

anders {// as die muis ingedruk word, laat dit los: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

vertraging (responseDelay);

}

/*

lees 'n as (0 of 1 vir x of y) en skaal die analoog invoerbereik tot 'n reeks van 0 tot */

int readAxis (int thisAxis) {

// lees die analoog insette: int lees = analogRead (thisAxis);

// karteer die lesing van die analoog invoerbereik na die uitsetbereik:

lees = kaart (lees, 0, 1023, 0, cursorSpeed);

// as die uitsetlesing buite die

// rusposisie drempel, gebruik dit: int afstand = lees - sentrum;

as (abs (afstand) <drempel) {afstand = 0; }

// gee die afstand vir hierdie as terug:

terugkeer afstand; }

Stap 3: Monteer die prototipe

Montering van die prototipe
Montering van die prototipe
Montering van die prototipe
Montering van die prototipe
Montering van die prototipe
Montering van die prototipe

Die eerste stap is om die klittenband aan die handskoen vas te werk; u moet vier stroke klittenband aan elke vinger vaswerk. Ons het die sagte deel van die klittenband vasgewerk.

Elke drukknop het twee drade, een wat by die onderskeie penne begin en aansluit by die positiewe been van die knoppie en 'n ander op die negatiewe been. Aan die ander kant van die negatiewe draad soldeer ons die weerstande van elke knoppie plus die negatiewe draad van die joystick tot 'n laaste draad, wat aansluit by die GND van die Arduino -bord. Dieselfde parallelle verbinding werk vir die positiewe kant. (3 knoppies en joystick positiewe been)

Na die soldeer van die springers trek ons die harde klittenbandstroke aan, sodat die drade tussenin vassteek. Laastens het ons die joystick-module termo-vasgeplak op 'n 3D-gedrukte stuk. Hieronder vind u die. STL -lêer.

Stap 4: Begin om u hand as 'n muis te gebruik

Image
Image
Begin om u hand as 'n muis te gebruik!
Begin om u hand as 'n muis te gebruik!
Begin om u hand as 'n muis te gebruik!
Begin om u hand as 'n muis te gebruik!

Stem vir ons in die Assistive Tech Contest as u van die projek hou.

Aanbeveel: