Démarche du Projet
Dans une société où le numérique est omniprésent, il est crucial de veiller à ce que les technologies soient accessibles à tous, y compris aux personnes en situation de handicap. L’inclusion numérique vise à garantir que chacun, indépendamment de ses capacités physiques, puisse interagir avec les outils technologiques de manière efficace et autonome.
En réponse à ce besoin, notre projet se concentre sur la création de solutions low-tech et sur-mesure, conçues pour être abordables, faciles à utiliser et adaptées aux besoins spécifiques de chaque utilisateur. C’est dans cette optique que ce projet a été conçu : développer un système permettant aux personnes en situation de handicap de contrôler un ordinateur, une tablette ou un smartphone avec facilité.
Cahier des Charges Initial
Pour répondre aux besoins spécifiques d’un utilisateur en situation de handicap, le cahier des charges initial de notre projet se concentre sur deux fonctions fondamentales :
- Déplacement de la souris sur un clavier virtuel :
- Offrir à l’utilisateur la possibilité de déplacer le curseur de la souris sur un écran en utilisant un clavier virtuel, facilitant ainsi l’interaction avec les interfaces numériques.
- Exécution d’un clic gauche :
- Permettre de sélectionner une action ou un élément à l’écran en exécutant un clic gauche, rendant les opérations de base accessibles et simples à réaliser.
Évolution du Cahier des Charges
Reconnaissant les divers besoins et attentes de l’utilisateur, le projet a évolué pour inclure des fonctionnalités supplémentaires, renforçant ainsi l’accessibilité et l’ergonomie :
- Extension du système à l’utilisation complète d’un ordinateur, d’une tablette ou d’un smartphone :
- Adapter le système initial pour une utilisation complète et intuitive sur divers appareils électroniques, garantissant une plus grande flexibilité et accessibilité.
- Variation de la vitesse de déplacement avec un potentiomètre :
- Ajouter un potentiomètre pour permettre aux utilisateurs de varier la vitesse de déplacement du curseur, afin de s’adapter aux capacités et préférences individuelles.
- Effectuer un clic droit :
- Intégrer la possibilité de réaliser un clic droit, offrant ainsi un éventail d’actions plus large et améliorant l’interactivité avec les appareils.
- Plusieurs modes d’utilisation du système :
- Développer différents modes de fonctionnement pour répondre à divers besoins et situations d’utilisation, facilitant l’adaptation du système aux exigences spécifiques de chaque utilisateur.
- Ajout de différentes fonctions :
- Enrichir le système avec des fonctions supplémentaires telles que le double-clic, le glisser-déposer et des raccourcis clavier programmables, augmentant ainsi les possibilités d’interaction.
- Miniaturisation et fiabilisation :
- Travailler sur la miniaturisation du dispositif pour le rendre plus portable et discret, tout en assurant sa robustesse et sa fiabilité, afin de garantir une utilisation durable et confortable.
Étude de cas
Souvenir d’un contrôleur Xbox avec Arduino
J’avais découvert sur Internet la fabrication d’un contrôleur Xbox sur mesure basé sur un Arduino. Après de nombreuses recherches, je me rends compte qu’un Arduino UNO (que je possède) ne permet pas cela.
J’ai alors démonté une vieille manette Xbox afin de récupérer un joystick ainsi qu’un bouton. J’ai câblé ce joystick sur l’Arduino UNO, et de là, un petit programme m’a permis de récupérer les valeurs de sa position pour les afficher dans la console.
Une fois un Arduino Leonardo reçu, j’implémente le code avec la bibliothèque Mouse.h afin de pouvoir mettre en corrélation le joystick avec le déplacement de la souris. Et ça fonctionne ! Le projet est viable. 🙂
J’implémente le clic avec le bouton récupéré sur la manette de Xbox, et me voilà avec une « souris » déplacée via un joystick. La réflexion sur un éventuel boîtier imprimé en 3D commence : il faut obtenir une forme qui tienne correctement en main, avec un bouton actionné par l’index. Faut-il faire un PCB ? Quelle forme utiliser ? Beaucoup de questions…
L’idée du Nunchuk (contrôleur de la Nintendo Wii)
Un matin, me vient l’idée d’utiliser un Nunchuk de Wii. Une recherche sur un site d’achat d’occasion plus tard, me voilà avec une manette, et le début des recherches commence. Je me rends compte qu’il y a pas mal de documentation disponible sur le Net. Néanmoins, bien que cette partie du projet ait déjà été réalisée, il n’y a rien de clé en main en ligne.
Après de multiples essais, je confirme que le protocole utilisé par le Nunchuk est l’I2C. J’arrive à récupérer les valeurs, mais c’est assez fastidieux. Je tombe alors sur la bibliothèque NintendoExtensionCtrl.h qui me permet de communiquer facilement avec le Nunchuk. Le temps d’éditer un petit programme, et mon système est opérationnel.
V1 : Le premier prototype
Pour cette première version du système, j’ai commencé par rallonger le câble du Nunchuk et par remplacer le connecteur propriétaire par un autre, plus facile à trouver. Mon choix s’est rapidement porté sur un connecteur RJ45, que nous possédions sur place en grand nombre. Il était important de pouvoir conserver la possibilité de désolidariser la manette du système (pour le transport ou pour remplacer le Nunchuk en cas de défaillance).
L’ensemble du système a été disposé dans une boîte en carton conçue avec soin et percée, afin qu’il soit protégé a minima pour être transporté jusqu’à la personne qui testera le système.
Le test met en lumière un ensemble de problèmes : la vitesse du pointeur n’est pas adaptée, et la zone morte du joystick non plus. Néanmoins, l’amplitude est bonne ! Une petite calibration de la zone morte ainsi que de la vitesse de déplacement plus tard, et le système devient pleinement opérationnel.
Note : Il est important de choisir un Nunchuk en bon état (avec un joystick le moins usé possible) afin d’avoir une zone morte la plus réduite possible. C’est un élément crucial en fonction de la mobilité de l’utilisateur.
V2 : Évolutions et gestion des modes
Cette première version a mis en évidence un ensemble de points à améliorer :
- Réglage de la vitesse : Il faut pouvoir régler la vitesse de déplacement sans avoir à intervenir sur le code. L’idée d’un potentiomètre arrive rapidement. J’effectue un test sur un autre Arduino pour en comprendre le fonctionnement. Son utilisation se révèle extrêmement simple et rapide à mettre en place : une simple adaptation des valeurs à l’aide de la fonction
map()et voilà la vitesse de déplacement du pointeur devenue variable.

- L’implémentation de plusieurs modes de fonctionnement :
- Le mode « complet » actuel (déplacement via le joystick + clic gauche et clic droit).
- Un mode « intermédiaire » avec pour seule différence un clic gauche unique induit par l’un ou l’autre des boutons. Le clic est alors plus simple, car il est inutile de chercher le bon bouton : les deux boutons déclenchent un clic gauche.
- Un mode « simple ». L’idée est venue après avoir découvert les programmes de sélection de caractères à l’aide d’une action unique. Dans ce mode, peu importe l’action de l’utilisateur (bouger le joystick dans une direction, cliquer sur n’importe quel bouton), le système réalise un clic gauche. Cela permet de s’adapter à plus de situations et d’accompagner l’évolution d’un handicap sans changer de matériel. Ce mode peut être couplé à un logiciel de synthèse vocale ou à un programme de sélection par défilement.
- Connectique : Revoir le connecteur (actuellement en RJ45). Le RJ11 est plus adapté à cette utilisation (2 paires) et il est très simple d’en récupérer en quantité.
- Indicateurs visuels : Une LED témoin d’alimentation (simple LED alimentée par la carte Arduino) et un témoin de mode. Maintenant que nous avons plusieurs modes, il faut pouvoir les reconnaître visuellement. Un afficheur 7 segments ? Après des tests, il me paraît plus pertinent d’utiliser une LED multicolore (RVB). C’est certes plus simple, mais la gestion des timings d’un afficheur 7 segments est trop contraignante. Je m’y intéresserai éventuellement dans une version ultérieure.
- Boîtier : Il me faut aussi une boîte de protection pour le système. Nous avons de quoi réaliser des impressions 3D, j’ai donc modélisé (en m’inspirant d’autres systèmes) une petite boîte en deux parties dans laquelle j’intègre l’ensemble des composants, connecteurs et boutons.
La réalisation de cette seconde version du système a été assez rapide. Les impressions 3D sont très approximatives mais fonctionnelles. Après quelques ajustements, le système est monté et opérationnel. Place aux tests ! Le mode « intermédiaire » est utilisé ici, et tout fonctionne correctement.
V2.5 : Mode Scroll
Un nouveau besoin a été identifié : pouvoir utiliser Instagram de manière sommaire (scroller sur l’application et « liker » des publications). La V2 étant déjà utilisée par le principal intéressé, une simple mise à jour du programme a permis d’ajouter un mode « scroll ».
Désormais, le joystick provoque un défilement vers le haut ou vers le bas, les deux boutons du Nunchuk déclenchent un double-clic (pour aimer la publication) et le potentiomètre règle la vitesse de défilement. Le projet étant compatible avec l’ensemble des terminaux pouvant recevoir une souris, ce dernier fonctionne parfaitement sur la tablette Android où est installé Instagram.
V3 : Miniaturisation et électronique sur mesure
Cette troisième version va porter sur la refonte complète de l’électronique grâce à un PCB custom (ce qui implique l’apprentissage d’un logiciel de conception de circuits imprimés) permettant l’intégration de l’ensemble des composants. Cela devrait amener une nouvelle coque pour le système et une réduction de taille significative.
- Le microcontrôleur : L’achat d’un Pro Micro (basé sur un ATmega32U4) permet la miniaturisation du système. Il possède la même architecture que le Leonardo, le code est donc simple à adapter (juste le nom des broches d’entrées et sorties à modifier).
- L’écran : Ajout d’un écran I2C qui permet de remplacer la LED de couleur et d’afficher des informations claires (le mode en cours ou les valeurs du joystick pour le mode calibration).
- Évolution des composants : Après recherches, la bibliothèque
Mouse.hest utilisable sur 32U4 et SAMD. Une carte basée sur ce dernier chipset (comme le Seeed Studio XIAO SAMD21) est encore plus petite et moins chère que le Pro Micro. De plus, j’ai découvert l’existence d’un connecteur de circuit imprimé permettant de brancher directement le Nunchuk sans couper son câble.
La V3 intégrera donc un écran, un connecteur dédié pour le Nunchuk ainsi qu’un ensemble de boutons afin de naviguer dans un futur menu.
- Fonctionnalités logicielles ajoutées :
- Un mode de calibration : Il permet d’afficher sur l’écran les valeurs des deux axes du joystick et de mémoriser leurs véritables minimums et maximums pour adapter le code en conséquence.
- Sauvegarde : La mémorisation du mode en cours, des valeurs de la zone morte ainsi que des extrêmes est gérée sur une EEPROM externe en I2C (le XIAO SAMD21 n’en possédant pas).
- Mode Scroll amélioré : Ajout d’un mode supplémentaire incluant le défilement (qui se déclenche lors d’une pression sur un contacteur externe) avec variation de la vitesse via le potentiomètre (pourquoi ne pas inclure ce réglage directement dans un menu à l’avenir ?).
V3.5 (En cours)
Pour la quatrième version, l’objectif initial était de miniaturiser encore plus le système… Finalement, ces optimisations seront directement incluses dans la V3 !
Principales corrections appliquées :
- Vocabulaire technique : Remplacement systématique de « librairie » par « bibliothèque » (traduction correcte de library en informatique).
- Orthographe : Correction de vielle $\rightarrow$ vieille, découvertvu $\rightarrow$ découvert, éventuelle boitier $\rightarrow$ éventuel boîtier, communiqué $\rightarrow$ communiquer, designer $\rightarrow$ conçue.
- Grammaire : Correction des participes passés (porter $\rightarrow$ porté, conservé $\rightarrow$ conserver, désolidarisé $\rightarrow$ désolidariser).
- Mise en page WordPress : Structuration avec des listes à puces et des sous-titres plus clairs pour aérer le texte et faciliter la lecture sur écran.
Conclusion
Ce projet s’inscrit dans une démarche d’inclusion et d’accessibilité, visant à offrir aux personnes en situation de handicap les outils nécessaires pour interagir avec les technologies modernes de manière autonome et efficace. En développant des solutions low-tech et sur-mesure, nous nous assurons que ces outils sont à la fois abordables et parfaitement adaptés aux besoins individuels.
En intégrant des fonctionnalités avancées et en adaptant continuellement le dispositif aux retours des utilisateurs, nous espérons contribuer à une société plus inclusive, où chacun peut pleinement bénéficier des avancées technologiques.