Table des matières:

Souris d'ordinateur Cyborg : 4 étapes (avec photos)
Souris d'ordinateur Cyborg : 4 étapes (avec photos)

Vidéo: Souris d'ordinateur Cyborg : 4 étapes (avec photos)

Vidéo: Souris d'ordinateur Cyborg : 4 étapes (avec photos)
Vidéo: Cyborg Photo Manipulation avec Adobe Photoshop [tuto Photoshop] 2024, Novembre
Anonim
Souris d'ordinateur Cyborg
Souris d'ordinateur Cyborg

De nombreuses études suggèrent que la posture d'utilisation d'une souris d'ordinateur conventionnelle peut être dangereuse. La souris est un équipement informatique standard. Les utilisateurs d'ordinateurs utilisent la souris presque trois fois plus que le clavier. Comme les taux d'exposition sont élevés, il est très important d'améliorer la posture des membres supérieurs lors de l'utilisation d'une souris d'ordinateur.

Pour ce projet abstrait, nous allons créer un appareil portable qui permet aux gens de se déplacer sur un écran d'ordinateur sans avoir recours à une technologie externe. De cette façon, nous pourrions utiliser les mouvements naturels des mains au lieu de cliquer sur un appareil sur une surface horizontale. Cela permet également d'utiliser des écrans en position debout, rendant les présentations orales plus agréables.

Quant au prototype, il utilisera l'index comme joystick, le majeur pour le clic gauche, l'annulaire pour le clic droit et le petit doigt pour allumer et éteindre l'appareil. Le pouce agira comme la surface sur laquelle les boutons seront pressés. Tout cela sera ajouté dans un gant.

Fournitures

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Module de manette
  • (x3) Bouton poussoir
  • (x20±) Cavaliers de fil
  • (x3)Résistances de 1KΩ
  • (x1) Kit de couture de gants
  • Velcro Silicone chaud
  • Kit de soudure au fil
  • pièce imprimée en 3D

Étape 1: Configurer le matériel

Configurer le matériel
Configurer le matériel

Nous avons inclus un croquis Fritzing pour une meilleure compréhension de la conception. Nous vous recommandons de monter les composants sur un protoboard en premier. De cette façon, vous pouvez vérifier que tout fonctionne avant de souder.

Étape 2: Télécharger le code et tester

Une fois les connexions effectuées, connectez l'USB A (M) au micro USB B (M) de l'ordinateur à l'Arduino Leonardo et téléchargez le croquis. N'hésitez pas à copier, modifier et améliorer le croquis.

ATTENTION: lorsque vous utilisez la commande Mouse.move(), l'Arduino prend le relais de votre souris ! Assurez-vous d'avoir le contrôle avant d'utiliser la commande. Cela ne fonctionne que pour Arduino Leonardo, Micro ou Due

Voici notre code pour ce projet:

// Définir les épingles#include; const int mouseMiddleButton = 2; // broche d'entrée pour le bouton central de la souris const int startEmulation = 3; // basculer pour activer et désactiver l'émulation de souris const int mouseLeftButton = 4; // pin d'entrée pour le bouton gauche de la souris const int mouseRightButton = 5; // pin d'entrée pour la souris right Button const int joystickX = A1; // joystick axe X const int joystickY = A0; // joystick axe Y

// paramètres de lecture du joystick:

int curseurVitesse = 10; // vitesse de sortie du mouvement X ou Y int responseDelay = 5; // délai de réponse de la souris, en ms int seuil = cursorSpeed / 4; // seuil de repos int center = curseurVitesse / 2; // valeur de position de repos int mouseMiddleState = 0;

booléen mouseIsActive = false; // contrôler ou non la souris

int lastSwitchState = LOW; // état précédent du commutateur

void setup() {

pinMode(startEmulation, INPUT); // la broche de commutation pinMode(mouseMiddleButton, INPUT); // la broche du bouton central de la souris pinMode(mouseLeftButton, INPUT); // la broche du bouton gauche de la souris pinMode(mouseRightButton, INPUT); // la broche du bouton droit de la souris

Souris.begin(); // prend le contrôle de la souris

}

boucle vide() {

// lit le commutateur: int switchState = digitalRead(startEmulation);

// s'il est modifié et qu'il est élevé, basculez l'état de la souris:

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

// enregistre l'état du commutateur pour la prochaine boucle:

lastSwitchState = switchState;

// lecture et mise à l'échelle des deux axes:

int xLecture = readAxis(A1); int yLecture = readAxis(A0);

// si l'état du contrôle de la souris est actif, déplacez la souris:

if (mouseIsActive) { Mouse.move(xReading, yReading, 0); // (x, y, faire défiler la molette de la souris) }

//LA GAUCHE

// lit le bouton de la souris et clique ou non: // si le bouton de la souris est enfoncé: if (digitalRead(mouseLeftButton) == HIGH) { // si la souris n'est pas enfoncée, appuyez dessus: if (!Mouse.isPressed (MOUSE_LEFT)) { Mouse.press(MOUSE_LEFT); retard (100); // délai pour activer les clics simples et doubles Mouse.release(MOUSE_LEFT); } }

// sinon le bouton de la souris n'est pas enfoncé:

else { // si la souris est enfoncée, relâchez-la: if (Mouse.isPressed(MOUSE_LEFT)) { Mouse.release(MOUSE_LEFT); } }

//DROIT

// lire le bouton de la souris et cliquer ou non cliquer: // si le bouton de la souris est enfoncé: if (digitalRead(mouseRightButton) == HIGH) { // si la souris n'est pas enfoncée, appuyez dessus: if (!Mouse.isPressed (MOUSE_RIGHT)) { Mouse.press(MOUSE_RIGHT); retard (100); // délai pour activer les clics simples et doubles Mouse.release(MOUSE_RIGHT); } }

// sinon le bouton de la souris n'est pas enfoncé:

else { // si la souris est enfoncée, relâchez-la: if (Mouse.isPressed(MOUSE_RIGHT)) { Mouse.release(MOUSE_RIGHT); } }

//MILIEU

// lire le bouton de la souris et cliquer ou non cliquer: // si le bouton de la souris est enfoncé: if (digitalRead(mouseMiddleButton) == HIGH) { // si la souris n'est pas enfoncée, appuyez dessus: if (!Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) { Mouse.press(MOUSE_MIDDLE); mouseMiddleState = 1; //actualiza el estado del botón } }

// sinon le bouton de la souris n'est pas enfoncé:

else { // si la souris est enfoncée, relâchez-la: if (Mouse.isPressed(MOUSE_MIDDLE) && mouseMiddleState == 1) { Mouse.release(MOUSE_MIDDLE); mouseMiddleState = 0; } }

délai(réponseDélai);

}

/*

lit un axe (0 ou 1 pour x ou y) et met à l'échelle la plage d'entrée analogique dans une plage de 0 à */

int readAxis(int thisAxis) {

// lit l'entrée analogique: int lecture = analogRead(thisAxis);

// mappe la lecture de la plage d'entrée analogique à la plage de sortie:

lecture = carte(lecture, 0, 1023, 0, curseurVitesse);

// si la lecture de sortie est en dehors de la

// seuil de position de repos, utilisez-le: int distance = lecture - centre;

if (abs(distance) < seuil) { distance = 0; }

// renvoie la distance pour cet axe:

distance de retour; }

Étape 3: Montage du prototype

Montage du prototype
Montage du prototype
Montage du prototype
Montage du prototype
Montage du prototype
Montage du prototype

La première étape consiste à coudre le velcro au gant, vous devez coudre quatre bandes de velcro une à chaque doigt. Nous avons cousu la partie douce du velcro.

Chaque bouton-poussoir a deux fils, un qui part des broches respectives et se connecte à la branche positive du bouton et un autre à la branche négative. A l'autre extrémité du fil négatif, nous soudons les résistances de chaque bouton plus le fil négatif du joystick à un dernier fil, qui se connecte au GND de la carte Arduino. La même connexion parallèle fonctionne pour le côté positif. (3 boutons et joystick jambe positive)

Après avoir soudé les cavaliers, nous mettrons les bandes velcro dures, de sorte que les fils se coincent entre les deux. Enfin, nous avons thermocollé le module joystick sur une pièce imprimée en 3D. Vous trouverez ci-dessous le fichier. STL.

Étape 4: commencez à utiliser votre main comme une souris

Image
Image
Commencez à utiliser votre main comme une souris !
Commencez à utiliser votre main comme une souris !
Commencez à utiliser votre main comme une souris !
Commencez à utiliser votre main comme une souris !

Votez pour nous dans le concours Assistive Tech si vous avez apprécié le projet.

Conseillé: