Inhoudsopgave:

Cyborg computermuis - Ajarnpa
Cyborg computermuis - Ajarnpa

Video: Cyborg computermuis - Ajarnpa

Video: Cyborg computermuis - Ajarnpa
Video: Unboxing Mouse Alcatroz Cyborg C2 2024, November
Anonim
Cyborg computermuis
Cyborg computermuis

Veel studies suggereren dat de houding van het gebruik van een conventionele computermuis gevaarlijk kan zijn. De muis is een standaard computerapparaat. Computergebruikers gebruiken de muis bijna drie keer zoveel als het toetsenbord. Aangezien de blootstellingspercentages hoog zijn, is het erg belangrijk om de houding van de bovenste extremiteiten te verbeteren tijdens het gebruik van een computermuis.

Voor dit abstracte project gaan we een wearable maken waarmee mensen door een computerscherm kunnen bewegen zonder de noodzaak van externe technologie. Op die manier konden we de natuurlijke bewegingen van de handen gebruiken in plaats van met een apparaat op een horizontaal oppervlak te klikken. Hierdoor is het ook mogelijk om schermen staand te gebruiken, wat mondelinge presentaties aangenamer maakt.

Het prototype zal de wijsvinger als joystick gebruiken, de middelvinger voor links klikken, ringvinger voor rechts klikken en de pink voor het in- en uitschakelen van het apparaat. De duim zal fungeren als het oppervlak waarop de knoppen worden ingedrukt. Dit alles zal worden toegevoegd in een handschoen.

Benodigdheden

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Joystick-module
  • (x3) Drukknop
  • (x20±) Draadjumpers
  • (x3) Weerstanden van 1KΩ
  • (x1) Handschoen naaiset
  • Klittenband Hot siliconen
  • Draadsoldeerset
  • 3D geprint onderdeel

Stap 1: Stel de hardware in

De hardware instellen
De hardware instellen

We hebben een Fritzing-schets bijgevoegd voor een beter begrip van het ontwerp. We raden aan om de componenten eerst op een protoboard te monteren. Zo kun je controleren of alles werkt voordat je gaat solderen.

Stap 2: Upload de code en test

Zodra de verbindingen zijn gemaakt, verbindt u de USB A (M) met micro USB B (M) van de computer naar de Arduino Leonardo en uploadt u de schets. Voel je vrij om de schets te kopiëren, aan te passen en te verbeteren.

WAARSCHUWING: Wanneer u de opdracht Mouse.move() gebruikt, neemt de Arduino uw muis over! Zorg ervoor dat je controle hebt voordat je de opdracht gebruikt. Het werkt alleen voor Arduino Leonardo, Micro of Due

Hier is onze code voor dit project:

// Definieer pinnen#include; const int mouseMiddleButton = 2; // invoerpin voor het midden van de muis Knop const int startEmulation = 3; // schakelaar om muisemulatie const int in en uit te schakelen mouseLeftButton = 4; // invoerpin voor de muis links Knop const int mouseRightButton = 5; // invoerpin voor de muis rechts Knop const int joystickX = A1; // joystick X-as const int joystickY = A0; // joystick Y-as

// parameters voor het lezen van de joystick:

int cursorSnelheid = 10; // uitgangssnelheid van X- of Y-beweging int responseDelay = 5; // responsvertraging van de muis, in ms int drempel = cursorSpeed / 4; // rustdrempel int center = cursorSpeed / 2; // rustpositiewaarde int mouseMiddleState = 0;

boolean mouseIsActive = false; // wel of niet de muis besturen

int lastSwitchState = LAAG; // vorige schakelstatus

ongeldige setup() {

pinMode (startEmulatie, INPUT); // de schakelaar pin pinMode (muisMiddenknop, INPUT); // de middelste muisknop pin pinMode (muisLinksKnop, INPUT); // de linkermuisknop pin pinMode (muisRightButton, INPUT); // de rechter muisknop pin

Muis.begin(); // neem de controle over de muis

}

lege lus() {

// lees de schakelaar: int switchState = digitalRead (startEmulation);

// als het is gewijzigd en het is hoog, wissel dan de muisstatus:

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

// sla de status van de schakelaar op voor de volgende lus:

lastSwitchState = switchState;

// lees en schaal de twee assen:

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

// als de muisbesturingsstatus actief is, beweegt u de muis:

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

//LINKS

// lees de muisknop en klik of klik niet: // als de muisknop wordt ingedrukt: if (digitalRead(mouseLeftButton) == HIGH) { // als de muis niet wordt ingedrukt, druk erop: if (!Mouse.isPressed (MOUSE_LEFT)) { Muis.druk (MOUSE_LEFT); vertraging (100); // vertraging om enkel- en dubbelklik Mouse.release (MOUSE_LEFT) in te schakelen; } }

// anders is de muisknop niet ingedrukt:

else { // als de muis wordt ingedrukt, laat hem los: if (Mouse.isPressed(MOUSE_LEFT)) { Mouse.release(MOUSE_LEFT); } }

//RECHTSAF

// lees de muisknop en klik of klik niet: // als de muisknop is ingedrukt: if (digitalRead(mouseRightButton) == HIGH) { // als de muis niet is ingedrukt, druk erop: als (!Mouse.isPressed (MOUSE_RIGHT)) { Muis.druk (MOUSE_RIGHT); vertraging (100); // vertraging om enkel- en dubbelklik Mouse.release (MOUSE_RIGHT) in te schakelen; } }

// anders is de muisknop niet ingedrukt:

else { // als de muis wordt ingedrukt, laat hem los: if (Mouse.isPressed(MOUSE_RIGHT)) { Mouse.release(MOUSE_RIGHT); } }

//MIDDEN

// lees de muisknop en klik of klik niet: // als de muisknop wordt ingedrukt: if (digitalRead(mouseMiddleButton) == HIGH) { // als de muis niet wordt ingedrukt, druk erop: if (!Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) { Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; //actualiza el estado del botón } }

// anders is de muisknop niet ingedrukt:

else { // als de muis wordt ingedrukt, laat hem los: if (Mouse.isPressed(MOUSE_MIDDLE) && mouseMiddleState == 1) { Mouse.release(MOUSE_MIDDLE); mouseMiddleState = 0; } }

vertraging (responseDelay);

}

/*

leest een as (0 of 1 voor x of y) en schaalt het analoge ingangsbereik naar een bereik van 0 tot */

int readAxis(int thisAxis) {

// lees de analoge ingang: int lezen = analogRead (thisAxis);

// wijs de uitlezing van het analoge ingangsbereik naar het uitgangsbereik:

lezen = kaart (lezen, 0, 1023, 0, cursorsnelheid);

// als de outputwaarde buiten de. ligt

// drempel voor rustpositie, gebruik het: int afstand = lezen - midden;

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

// retourneer de afstand voor deze as:

retour afstand; }

Stap 3: Het prototype monteren

Het prototype monteren
Het prototype monteren
Het prototype monteren
Het prototype monteren
Het prototype monteren
Het prototype monteren

De eerste stap is het klittenband aan de handschoen naaien, je moet vier stroken klittenband aan elke vinger naaien. We naaiden het zachte deel van het klittenband.

Elke drukknop heeft twee draden, een die begint bij de respectieve pinnen en wordt aangesloten op de positieve poot van de knop en een andere op de negatieve poot. Aan het andere uiteinde van de negatieve draad solderen we de weerstanden van elke knop plus de negatieve draad van de joystick aan een laatste draad, die wordt aangesloten op de GND van het Arduino-bord. Dezelfde parallelle verbinding werkt voor de positieve kant. (3 knoppen en joystick positieve poot)

Na het solderen van de jumpers zullen we de harde klittenbandstrips erop doen, zodat de draden er tussen komen te zitten. Ten slotte hebben we de joystickmodule thermisch verlijmd op een 3D-geprint stuk. Hieronder vindt u het. STL-bestand.

Stap 4: Gebruik je hand als muis

Image
Image
Begin je hand als muis te gebruiken!
Begin je hand als muis te gebruiken!
Begin je hand als muis te gebruiken!
Begin je hand als muis te gebruiken!

Stem op ons in de Assistive Tech Contest als je het project leuk vond.

Aanbevolen: