Différences entre versions de « Projets:Declic »

De wikilab
Ligne 87 : Ligne 87 :
 
== Scénario 1 : joystick ==
 
== Scénario 1 : joystick ==
  
Afin de se familiariser avec Arduino et son utilisation comme un périphérique USB, nous décidons de commencer par l'idée la plus simple et qui permettrait d'avoir un démonstrateur le plus rapidement possible. Il s'agit d'utiliser un joystick de controleur de jeu vidéo (thumbstick), avec un arduino connecté en USB et directement reconnu comme une souris.
+
Afin de se familiariser avec Arduino et son utilisation comme un périphérique USB, nous décidons de commencer par l'idée la plus simple et qui permettrait d'avoir un démonstrateur le plus rapidement possible. Il s'agit d'utiliser un joystick de contrôleur de jeu vidéo (thumbstick), avec un arduino connecté en USB et directement reconnu comme une souris.
  
Le thumbstick est un joystic analogique composé de deux potentiomètres et qui fait également office de bouton poussoir.
+
Le thumbstick est un joystick analogique (composé de deux potentiomètres) et qui fait également office de bouton poussoir.
  
Nous utilisons une plateforme de prototypage existante qui permet de relier plusieurs capteurs analogiques ou des interupteurs sur une carte arduino Leonardo. Nous avons un certain nombre de modules à disposition dont le fameux thumbstick, des joysticks "tout ou rien" (type borne d'arcade), des potentiomètres et des boutons d'arcade.
+
Nous utilisons une plateforme de prototypage existante qui permet de relier plusieurs capteurs analogiques ou des interupteurs sur une carte Arduino Leonardo. Nous avons un certain nombre de modules à disposition dont le fameux thumbstick, des joysticks "tout ou rien" (type borne d'arcade), des potentiomètres et des boutons d'arcade.
  
 
Un premier version fonctionnelle permettant de déplacer le curseur et de faire un clic gauche est assez rapidement développé à partir de l'exemple [https://www.arduino.cc/en/Tutorial/JoystickMouseControl JoystickMouseControl]
 
Un premier version fonctionnelle permettant de déplacer le curseur et de faire un clic gauche est assez rapidement développé à partir de l'exemple [https://www.arduino.cc/en/Tutorial/JoystickMouseControl JoystickMouseControl]
 +
 +
Le déplacement est effectué avec la fonction <code>Mouse.move(x, y, wheel)<code> qui permet d'effectuer un déplacement relatif du pointeur en pixels. Nous trouvons des valeurs raisonnable de déplacement relatif de 5 à 10 pixels.
  
 
Un potentiomètre est ajouté pour permettre de régler la sensibilité du déplacement de la souris, qu'il faut adapter en fonction de l'utilisateur et de l'évolution de son niveau de maîtrise.
 
Un potentiomètre est ajouté pour permettre de régler la sensibilité du déplacement de la souris, qu'il faut adapter en fonction de l'utilisateur et de l'évolution de son niveau de maîtrise.
  
La principale amélioration consiste à ajouter un clic droit et un clic gauche maintenu à partir d'un seul est même bouton.
+
=== Clic ! ===
* si le bouton est relaché avant 0,5 secondes, alors c'est un clic gauche simple ("press", puis "release")
+
 
* si le bouton est relaché entre 0,5 et 1,5 secondes, c'est un clic droit ("clic" = "press" + "release" instantané).
+
L'utilisation du bouton poussoir pour contrôler la souris consiste à détecter les changements d'état du bouton : appui ou relachement. Nous utilisons pour cela l'objet bouton de la librairie Arduino MHK.
* si le bouton est relaché après 1,5 secondes, le clic est maintenu est ne sera relaché qu'au prochain clic, ce qui permet de réaliser un "cliquer-glisser" pour par exemple déplacer une fenêtre ou orbiter dans une vue 3D.
+
 
 +
La librairie <code>Mouse</code> d'Arduino permet de réaliser différentes actions :
 +
- "press" : la souris est appuyée,
 +
- "release" : la souris est relachée,
 +
- "clic" : la souris est appuyée et relachée instantanément.
 +
 
 +
=== Clic droit ===
 +
 
 +
La principale amélioration consiste à ajouter un clic droit et un clic gauche maintenu, ceci à partir du seul bouton du thumbstick.
 +
* si le bouton est relaché avant 0,5 secondes, alors c'est un clic gauche simple ("press" au clic, puis "release" au relâchement)
 +
* si le bouton est relaché entre 0,5 et 1,5 secondes, c'est un clic droit ("clic droit" au relachement = "press" + "release" instantané).
 +
* si le bouton est relaché après 1,5 secondes, le "press" est maintenu est ne sera relaché qu'au prochain clic, ce qui permet de réaliser un "cliquer-glisser" pour par exemple déplacer une fenêtre ou orbiter dans une vue 3D.
  
 
https://github.com/myhumankit/declic
 
https://github.com/myhumankit/declic
 +
 +
Une fois le prototype fonctionnel, il s'agit de réaliser une version compacte et intégré, avec une carte Arduino plus compact (micro) dans un boîtier dédié.
 +
 +
=== Électronique ===
 +
 +
=== Boîtier ===

Version du 16 octobre 2019 à 23:43

Présentation

Objectif

Utiliser une souris sans la main.

Contexte

Nico fait de la CAO mais il lui manque une main pour faire des combinaisons de touches (par exemple ctrl+clic gauche pour faire tourner un objet dans la vue 3d). Il souhaiterait disposer d'un dispositif faisant office de souris qui ne nécessiterais aucune configuration.

L'équipe

  • Nico, MHK
  • Julien, MHK
  • Pauline, MHK
  • Mickaël, Ariane Group
  • Antony, Ariane Group
  • Jamila, Ariane Group
  • Fred, Ariane Groupe
  • Laurent, FLOSSManual

Cahier des charges

Fonctions

  • déplacement du curseur sur l'écran
  • clic gauche
  • clic droit

Contraintes

  • facilité/simplicité d'utilisation,
 * pas de configuration, compatibilité (windows, linux, android...),
 * simple pour s'équiper,
  • robustesse,
  • fonctionnel (au moins) avec une seul main valide,
  • pas de calibration ou calibration simple,
  • pas perturbé par l'environnement (EMC, champ magnétique, température),
  • outils, matériaux et composants disponibles dans les fablabs,
  • prix accessible.


Scénarios

Scénarios
Scénario Handicap Solution Interface
S1 main manquante joystick potentiomètres filaire
S2 Avant bras manquant Détection de mouvement sans fil (étape avec fil)
J1 Avec Prothèse de main Adaptation ergonomique joystick filaire
J2 Avec moignon Support à partir d'existant filaire

Déroulé

Mercredi matin

  • Introduction et tour de table
  • Brainstorming objectifs, contraintes, scénarios, déroulé
  • initiation arduino : Présentation de la lecture d'une entrée analogique (potentiomètre, joystick)

Mercredi après midi

  • initiation arduino : utilisation de la librairie buton_MHK
  • initiation arduino : HID


Scénario 1 : joystick

Afin de se familiariser avec Arduino et son utilisation comme un périphérique USB, nous décidons de commencer par l'idée la plus simple et qui permettrait d'avoir un démonstrateur le plus rapidement possible. Il s'agit d'utiliser un joystick de contrôleur de jeu vidéo (thumbstick), avec un arduino connecté en USB et directement reconnu comme une souris.

Le thumbstick est un joystick analogique (composé de deux potentiomètres) et qui fait également office de bouton poussoir.

Nous utilisons une plateforme de prototypage existante qui permet de relier plusieurs capteurs analogiques ou des interupteurs sur une carte Arduino Leonardo. Nous avons un certain nombre de modules à disposition dont le fameux thumbstick, des joysticks "tout ou rien" (type borne d'arcade), des potentiomètres et des boutons d'arcade.

Un premier version fonctionnelle permettant de déplacer le curseur et de faire un clic gauche est assez rapidement développé à partir de l'exemple JoystickMouseControl

Le déplacement est effectué avec la fonction Mouse.move(x, y, wheel) qui permet d'effectuer un déplacement relatif du pointeur en pixels. Nous trouvons des valeurs raisonnable de déplacement relatif de 5 à 10 pixels.

Un potentiomètre est ajouté pour permettre de régler la sensibilité du déplacement de la souris, qu'il faut adapter en fonction de l'utilisateur et de l'évolution de son niveau de maîtrise.

Clic !

L'utilisation du bouton poussoir pour contrôler la souris consiste à détecter les changements d'état du bouton : appui ou relachement. Nous utilisons pour cela l'objet bouton de la librairie Arduino MHK.

La librairie Mouse d'Arduino permet de réaliser différentes actions : - "press" : la souris est appuyée, - "release" : la souris est relachée, - "clic" : la souris est appuyée et relachée instantanément.

Clic droit

La principale amélioration consiste à ajouter un clic droit et un clic gauche maintenu, ceci à partir du seul bouton du thumbstick.

  • si le bouton est relaché avant 0,5 secondes, alors c'est un clic gauche simple ("press" au clic, puis "release" au relâchement)
  • si le bouton est relaché entre 0,5 et 1,5 secondes, c'est un clic droit ("clic droit" au relachement = "press" + "release" instantané).
  • si le bouton est relaché après 1,5 secondes, le "press" est maintenu est ne sera relaché qu'au prochain clic, ce qui permet de réaliser un "cliquer-glisser" pour par exemple déplacer une fenêtre ou orbiter dans une vue 3D.

https://github.com/myhumankit/declic

Une fois le prototype fonctionnel, il s'agit de réaliser une version compacte et intégré, avec une carte Arduino plus compact (micro) dans un boîtier dédié.

Électronique

Boîtier