Sommario:

Mouse per computer Cyborg: 4 passaggi (con immagini)
Mouse per computer Cyborg: 4 passaggi (con immagini)

Video: Mouse per computer Cyborg: 4 passaggi (con immagini)

Video: Mouse per computer Cyborg: 4 passaggi (con immagini)
Video: 4 SITI PAZZESCHI CHE NON DOVRESTI MAI VISITARE 2024, Dicembre
Anonim
Mouse per computer cyborg
Mouse per computer cyborg

Molti studi suggeriscono che la postura dell'utilizzo di un mouse per computer convenzionale può essere pericolosa. Il mouse è un componente standard dell'attrezzatura informatica. Gli utenti di computer usano il mouse quasi tre volte più della tastiera. Poiché i tassi di esposizione sono elevati, è molto importante migliorare la postura degli arti superiori durante l'utilizzo del mouse del computer.

Per questo progetto astratto realizzeremo un indossabile che permetta alle persone di muoversi attraverso lo schermo di un computer senza la necessità di tecnologia esterna. In questo modo potremmo usare i movimenti naturali delle mani invece di fare clic su un dispositivo su una superficie orizzontale. Ciò consente anche di utilizzare gli schermi in piedi, rendendo più piacevoli le presentazioni orali.

Per quanto riguarda il prototipo utilizzerà l'indice come joystick, il dito medio per il clic sinistro, l'anulare per il clic destro e il mignolo per accendere e spegnere il dispositivo. Il pollice fungerà da superficie su cui vengono premuti i pulsanti. Tutto ciò sarà aggiunto in un guanto.

Forniture

  • (x1) Arduino Leonardo
  • (x1) Scheda prototipi
  • (x1) Modulo joystick
  • (x3) Pulsante
  • (x20±) Ponticelli a filo
  • (x3) Resistenze da 1KΩ
  • (x1) Kit da cucito per guanti
  • Velcro Hot silicone
  • Kit di saldatura a filo
  • Parte stampata in 3D

Passaggio 1: configurare l'hardware

Configurare l'hardware
Configurare l'hardware

Abbiamo incluso uno schizzo di Fritzing per una migliore comprensione del design. Si consiglia di montare prima i componenti su una scheda prototipi. In questo modo puoi verificare che tutto funzioni prima di saldare.

Passaggio 2: carica il codice e prova

Una volta effettuati i collegamenti, collega l'USB A (M) alla micro USB B (M) dal computer all'Arduino Leonardo e carica lo sketch. Sentiti libero di copiare, modificare e migliorare lo schizzo.

ATTENZIONE: quando usi il comando Mouse.move(), Arduino prende il controllo del tuo mouse! Assicurati di avere il controllo prima di usare il comando. Funziona solo con Arduino Leonardo, Micro o Due

Ecco il nostro codice per questo progetto:

// Definisci i pin#include; const int mouseMiddleButton = 2; // pin di input per il mouse Button centrale const int startEmulation = 3; // switch per attivare e disattivare l'emulazione del mouse const int mouseLeftButton = 4; // pin di input per il mouse Left Button const int mouseRightButton = 5; // pin di input per il mouse Button destro const int joystickX = A1; // joystick asse X const int joystickY = A0; // asse Y del joystick

// parametri per la lettura del joystick:

int velocità cursore = 10; // velocità di uscita del movimento X o Y int responseDelay = 5; // ritardo di risposta del mouse, in ms int soglia = cursorSpeed / 4; // soglia di riposo int center = cursorSpeed / 2; // valore della posizione di riposo int mouseMiddleState = 0;

booleano mouseIsActive = false; // se controllare o meno il mouse

int lastSwitchState = BASSO; // stato dell'interruttore precedente

void setup() {

pinMode(startEmulation, INPUT); // il pin dello switch pinMode(mouseMiddleButton, INPUT); // il pin del pulsante centrale del mouse pinMode(mouseLeftButton, INPUT); // il pin del pulsante sinistro del mouse pinMode(mouseRightButton, INPUT); // la puntina del tasto destro del mouse

Mouse.begin(); // prendi il controllo del mouse

}

ciclo vuoto() {

// legge lo switch: int switchState = digitalRead(startEmulation);

// se è cambiato ed è alto, cambia lo stato del mouse:

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

// salva lo stato dell'interruttore per il ciclo successivo:

lastSwitchState = switchState;

// legge e scala i due assi:

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

// se lo stato di controllo del mouse è attivo, sposta il mouse:

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

//SINISTRA

// leggi il pulsante del mouse e fai clic o meno: // se il pulsante del mouse è premuto: if (digitalRead(mouseLeftButton) == HIGH) { // se il mouse non è premuto, premilo: if (!Mouse.isPressed (MOUSE_LEFT)) { Mouse.press(MOUSE_LEFT); ritardo(100); // ritardo per abilitare il singolo e doppio clic Mouse.release(MOUSE_LEFT); } }

// altrimenti il pulsante del mouse non viene premuto:

else { // se il mouse è premuto, rilascialo: if (Mouse.isPressed(MOUSE_LEFT)) { Mouse.release(MOUSE_LEFT); } }

//GIUSTO

// leggi il pulsante del mouse e fai clic o meno: // se il pulsante del mouse è premuto: if (digitalRead(mouseRightButton) == HIGH) { // se il mouse non è premuto, premilo: if (!Mouse.isPressed (MOUSE_RIGHT)) { Mouse.press(MOUSE_RIGHT); ritardo(100); // ritardo per abilitare il singolo e doppio clic Mouse.release(MOUSE_RIGHT); } }

// altrimenti il pulsante del mouse non viene premuto:

else { // se il mouse è premuto, rilascialo: if (Mouse.isPressed(MOUSE_RIGHT)) { Mouse.release(MOUSE_RIGHT); } }

//MEZZO

// leggi il pulsante del mouse e fai clic o meno: // se il pulsante del mouse è premuto: if (digitalRead(mouseMiddleButton) == HIGH) { // se il mouse non è premuto, premilo: if (!Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) { Mouse.press(MOUSE_MIDDLE); mouseMiddleState = 1; //attualiza lo stato del botón } }

// altrimenti il pulsante del mouse non viene premuto:

else { // se il mouse è premuto, rilascialo: if (Mouse.isPressed(MOUSE_MIDDLE) && mouseMiddleState == 1) { Mouse.release(MOUSE_MIDDLE); mouseMiddleState = 0; } }

ritardo(rispostaDelay);

}

/*

legge un asse (0 o 1 per x o y) e scala l'intervallo dell'ingresso analogico in un intervallo da 0 a */

int readAxis(int thisAxis) {

// legge l'input analogico: int reading = analogRead(thisAxis);

// mappa la lettura dall'intervallo di input analogico all'intervallo di output:

reading = map(reading, 0, 1023, 0, cursorSpeed);

// se la lettura dell'output è al di fuori di

// soglia posizione di riposo, usala: int distanza = lettura - centro;

if (abs(distanza) < soglia) { distanza = 0; }

// restituisce la distanza per questo asse:

distanza di ritorno; }

Passaggio 3: montaggio del prototipo

Montaggio del prototipo
Montaggio del prototipo
Montaggio del prototipo
Montaggio del prototipo
Montaggio del prototipo
Montaggio del prototipo

Il primo passo è cucire il velcro al guanto, devi cucire quattro strisce di velcro una per ogni dito. Abbiamo cucito la parte morbida del velcro.

Ogni pulsante ha due fili, uno che parte dai rispettivi pin e si collega alla gamba positiva del pulsante e un altro sulla gamba negativa. All'altra estremità del filo negativo saldiamo le resistenze di ciascun pulsante più il filo negativo del joystick a un ultimo filo, che si collega al GND della scheda Arduino. Lo stesso collegamento in parallelo funziona per il lato positivo. (3 pulsanti e joystick positivo gamba)

Dopo aver saldato i ponticelli, metteremo le strisce di velcro rigide, in modo che i fili si incastrino nel mezzo. Infine abbiamo termoincollato il modulo joystick su un pezzo stampato in 3D. Di seguito puoi trovare il file. STL.

Passaggio 4: inizia a usare la mano come un mouse

Image
Image
Inizia a usare la tua mano come un mouse!
Inizia a usare la tua mano come un mouse!
Inizia a usare la tua mano come un mouse!
Inizia a usare la tua mano come un mouse!

Vota per noi all'Assistive Tech Contest se il progetto ti è piaciuto.

Consigliato: