Comment construire une souris


main-qimg-cd963832294f04cf71a19df7b636f43c


Une souris d'ordinateur comporte un composant logiciel et un composant matériel. Le logiciel devra communiquer via le port USB avec le système d'exploitation de l'ordinateur tandis que le matériel devra enregistrer des commandes spécifiques et les envoyer à l'ordinateur. Une simple carte Arduino devrait suffire comme processeur principal pour votre logiciel de souris et être capable de relier le matériel au système.

À l'adresse https://www.instructables.com/id/PC-Mouse-Made-With-Arduino-Uno-and-Joystick/, vous trouverez un exemple de fonctionnement mais il présente un sérieux défaut car il dépend d'une application Java supplémentaire fonctionnant sur l'ordinateur comme "pilote de souris". Mais c'est surtout parce que l'Arduino Uno manque d'un bon support USB. Cette version de souris n'est pas une vraie souris HID.


Au site Arduino - JoystickMouseControl, vous trouverez un meilleur exemple qui utilise la carte Arduino Leonardo, Micro ou Due, qui dispose d'un support USB. Ceux-ci utilisent une bibliothèque de souris et vous pouvez également joindre une bibliothèque de clavier afin que votre carte puisse prétendre être à la fois une souris et un clavier. Ceux-ci génèreraient des souris HID et seraient donc reconnus sans aucun logiciel supplémentaire sur votre ordinateur.

Si vous voulez quelque chose de plus petit qu'une carte Arduino, alors le plus petit que vous pourriez utiliser serait un processeur ATTiny85. C'est juste un processeur avec 8 broches, donc il y aura des défis pour attacher votre matériel de souris à celui-ci. Et comme le processeur n'a pas de support USB, vous aurez besoin de quelque chose comme l'émulateur logiciel V-USB dans le processeur pour prétendre qu'il s'agit toujours d'un périphérique USB. Il existe des composants matériels que vous pouvez ajouter pour ajouter ce support USB mais cela rendrait l'ensemble du schéma matériel plus complexe. Vous pouvez aussi utiliser le processeur ATmega32U4, car il a un support USB intégré. (Attention, cela se termine par U4, car il existe de nombreux processeurs ATmega32 différents et tous ne supportent pas l'USB !)

Lorsque vous utilisez un processeur brut, vous devrez également utiliser un cristal car les processeurs bruts sont lents par eux-mêmes. Ce n'est pas très pratique avec un ATtiny car il n'a que 8 broches et l'alimentation, le reset et le cristal mangeraient 5 broches. La connexion USB aurait également besoin de 2 broches, donc il ne vous resterait qu'une seule broche... Donc l'ATmega32U4 est le meilleur choix avec un cristal de 16MHz, car il a 44 broches que vous pouvez utiliser.

Après le logiciel, vous auriez besoin de matériel qui peut répondre aux actions de l'utilisateur. Vous auriez besoin de quelque chose pour les mouvements gauche et droit de la souris et quelque chose pour les mouvements haut et bas, plus les boutons de la souris. Ajouter une fonctionnalité de molette de défilement pourrait également être agréable, ce que vous faites avec la fonction mouse.Move() de la bibliothèque Arduino Mouse.

Donc, de quel type de matériel auriez-vous besoin ? Beaucoup utilisent simplement un simple contrôleur joystick et/ou des boutons poussoirs. Vous pouvez également utiliser des roues rotatives et d'autres techniques. Tout dépend de la façon dont vous voulez que l'utilisateur interagisse avec la souris. Certaines techniques seront plus complexes que d'autres, cependant.