Etape 11 : Logiciel Arduino Teensy
J’ai déjà évoqué les spécifications matérielles grande du Conseil Teensy. Mais combiné avec l’environnement du logiciel Arduino, le Teensy offre également quelques grandes possibilités. Mais d’abord nous allons installer le plug-in
Maintenant vous devriez voir une catégorie « Teensy » lorsque vous choisissez votre planche. Et si vous la sélectionnez, vous avez accès à plusieurs autres options comme le « USB Serial Type » instantanément transformer votre chambre en un clavier USB ou une souris (quelques possibilités se trouvent sur Arduino Leonardo). Le type de communication USB est une « marche » qui signifie qu'il peut communiquer à 12Mb/s. Vous pouvez également modifier la vitesse du Conseil d’administration (sur ce projet, j’ai utilisé l’overclock à 92Mhz).
Pour l’instant, tous mes codes Arduino UNO ont été avec succès construits sur le Teensy qui signifie l’adaptation entre l’ARM Cortex M4 et l’Atmega328 AVR ont été très bien fait. J’ai essayé d’écrire le code pour être compréhensible. Voici la structure de la boucle principale :
- A pour la boucle de 0 au nombre de LED
-Allumer une LED (comme les LED sont câblés avec l’Anode sur VCC et la Cathode sur la broche, vous devez donner un état bas pour l’activer)
-ClearCCD(), le capteur doit être effacé une fois avant la lecture de la valeur... Je ne sais pas pourquoi. Si quelqu'un a une idée de comment je pourrais accélérer cette partie, je l’apprécierais beaucoup.
-readCCD(), lire le capteur, si une valeur est supérieure à l’étalonnage, il est stocké et la fonction retourne 1. Si quelque chose ont été détecté, la flag_detect est définie sur 1.
-Éteindre la LED (État haut à OFF dans cette configuration)
- Si quelque chose n’a été détecté, alors la flag_detect est définie sur 1 et vous entrez la fonction si. Vous pouvez alors choisir votre étalonnage entre ce qui suit :
-OPTION 1 ; Envoyer le Serial monitor.
Débogage basique : cette option vous permet de lire les 16 grappes directement sur le moniteur de la série.
-OPTION 2 ; calculer la position + envoyer Serial monitor
Position de débogage : envoyer les coordonnées X et Y de la série monitor
-OPTION 3 ; Envoyer interface de traitement
Débogage visual : Regardez les résultats de la CCD sur un GUI de traitement. L’interface va devoir être adaptée au nombre de LED (16 par défaut).
-OPTION 4 ; calculer la position + envoyer interface Python Pi
La position d’envoi à l’interface de PyQT
-OPTION 5 ; calculer la position + envoyer des souris (uniquement sur Teensy)
Envoyer la position comme une interface USB de la souris. Pour utiliser cette option, vous devrez aller dans « Outils » -> "USB Type" -> "Clavier + souris + Joystick". (Voir l’avertissement en bas de cette étape)
-OPTION 6 ; calculer la position + envoyer clavier (uniquement sur Teensy)
Envoyer la position comme une interface de clavier USB. Pour utiliser cette option, vous devrez aller dans « Outils » -> "USB Type" -> "Clavier + souris + Joystick".
-OPTION 7 ; Pointer et cliquer. Identique à la souris cliquez sur mais au lieu de suivre la position
- Vous pouvez éventuellement ajouter un retard à la fin de la loop(). Selon la vitesse dont vous avez besoin
Avertissement : OPTION 5 utilise la commande mouse.mouveTo (X, Y) qui ne fonctionne pas sur une station Linux. Si vous voulez faire la même configuration que moi avec un Linux Raspberry Pi vous allez avoir besoin d’utiliser le HACK laide faite par Paul Stoffregen qui semble être un des développeurs du projet Teensy. Il est vraiment bon et il aide beaucoup avec le débogage si vous avez des questions. Merci Paul !
Pour ce hack, vous devez modifier une partie de la usb_desc.c de nom de fichier qu'il devrait être installé dans votre dossier Arduino. La nouvelle configuration donnée par Paul est légèrement différente, mais il fait fonctionner ! D’ici là, la fonction mouse.move() ne fonctionne plus.