Fin du premier quadrimestre, notre équipe s’est penchée sérieusement sur la compréhension du code disponible en Open source. Malheureusement, très peu d’explications sont fournies avec le code. Avant d’apporter des modifications au code, il était donc essentiel d’identifier l’utilité des différents paramètres, différentes fonctions,…
Tout d’abord, il est important de mentionner que le code disponible en Open Source a été adapté à un certain type de carte Arduino. Dans le cadre de ce projet, nous n’utilisons pas la même carte. Les fonctionnalités de ces deux cartes sont globalement identiques. Cependant, la numérotation/position des pins diffère. La première tâche consistait donc à identifier les différents entrées/sorties de notre carte Arduino pour ensuite adapter le code. Parmi les entrées, nous avons les signaux provenant des capteurs et 3 boutons, et pour les sorties, le contrôle des moteurs.
Afin de contrôler le mouvement des doigts, le code, sur base du signal provenant du capteur, calcule l’angle d’ouverture des moteurs. Les premières lignes de code sont dédiées à la définition de variables globales qui limitent les angles d’ouverture maximum (doigts en extension) et de fermeture minimum (doigts en flexion) de chaque moteur. Ces limites sont importantes afin d’éviter d’endommager les mécanismes.
Le fonctionnement général du code s’organise autour d’une fonction “Void Loop”. Lorsque la prothèse est sous alimentation, cette fonction va attendre que l’utilisateur presse le bouton dédié à la calibration. Une fois cette première étape terminée, la fonction lance boucle « while ». Il s’agit d’une boucle qui va répéter les mêmes opérations tant qu’une certaine condition est respectée. Dans notre cas, il n’y aucune condition à respecter. Une fois que la prothèse est allumée, elle doit rester fonctionnelle. Toutes les 10 ms, la fonction va vérifier si le bouton “Calibration” est pressé, si un autre bouton est pressé (par exemple, le bouton qui contrôle le mouvement du pouce) et lire le signal renvoyé par le capteur pour adapter la position des doigts.
Quel est le rôle de la calibration ?
Le processus de calibration adapte la dynamique de la prothèse à son utilisateur. L’objectif est de connaître la valeur du signal renvoyé par le capteur lorsque l’utilisateur est au repos et lorsqu’il contracte son bras au maximum. Une fois que ces valeurs sont connues, la prothèse est parfaitement adaptée à l’utilisateur. Si il contracte son muscle “à moitié”, les doigts se fermeront à moitié.
Pourquoi répéter la calibration?
Si, pendant l’utilisation, la position du capteur bouge, l’utilisateur peut relancer une calibration sans devoir éteindre et rallumer la prothèse.