Sites


Fabrikarium 2016

Réalisation et modifications de l'électronique

Alimentation

Le circuit d’alimentation assure l’approvisionnement en électricité des composants électriques et électroniques de la Bionicohand.

Connectique de la batterie

La “Bionico Hand” sera alimentée par une batterie de 8.4V, disponible dans le commerce avec son chargeur qui se connecte à un port USB.

Pour ce faire, il est prévu que la batterie d’alimentation vienne se brancher à un circuit imprimé en PCB au moyen d’une prise jack. C’est sur ce circuit que viendront se brancher le microcontrôleur Arduino, les capteurs, et les interrupteurs de commande.

Il est nécessaire de trouver un moyen pour brancher cette batterie au câble d’alimentation de la prise jack.

Pour gagner de la place et faciliter la construction, ce câble sera soudé directement aux connecteurs de la batterie, en veillant à déposer une brasure suffisamment fine pour pouvoir placer la batterie dans le chargeur en conservant son branchement.

La video qui suit explique la réflexion qui a été menée pour aboutir à la solution pour le branchement de la batterie.

Pour réaliser le branchement, il faut déterminer la polarité des fils reliés au jack, sachant que la polarité positive du jack est dans le conducteur intérieur et la polarité négative dans le conducteur extérieur.

A l’aide d’un multimètre, marquer le fil positif en mesurant que la résistance est nulle (contact établi) lorsque le multimètre est branché sur la broche positive. Souvent, le multimètre émet un beep sonore dans cette configuration pour signaler le contact franc.

Ensuite, sur la batterie qui comporte 4 connecteurs, il faudra identifier la borne ”+” pour y souder le fil positif relié au jack et la borne ”-” pour y souder la masse.

Une fois les bornes positive et négative clairement identifées, il faudra y souder les fils correspondant reliés à la prise jack :

A l’issue de l’opération, tester que la batterie ainsi équipée s’ajuste dans le chargeur et que la charge est effective (la LED du chargeur devient rouge pour indiquer que la batterie est en charge, pourvu qu’elle n’ait pas été chargée au préalable).

Enfin, solidariser les fils sur le côté externe de la batterie.

L’ensemble des photos et vidéos se rapportant au branchement de la batterie sont disponibles à l’emplacement “file:medias/04_circuits_electriques/01_alimentation/”.

Confection d’un régulateur de tension

A l’entrée du circuit, c’est une batterie de 8.4V qui sera positionnée.

Or, les équipements électroniques pour notre main doivent être alimentés par une tension de 5V.

Pour obtenir une tension d’entrée de 5V pour le circuit de la main, il faudra donc placer un régulateur. Le domaine de fonctionnement de la batterie se situe entre 8.4V et 7.2V (2*3.6V) à minimum de charge (après quoi, la tension chute rapidement).

Dans un tel montage, la différence de puissance correspondant à la conversion de tension entre l’entrée et la sortie sera dissipée en chaleur.

Puisque la tension minimale de fonctionnement de la batterie sera de 7.2V, il y a donc 2V de marge. Pour un meilleur rendement énergétique, il pourra être envisagé de choisir une batterie plus faible s’il existe dans le commerce des modèles aussi pratiques d’utilisation que celui qui a été trouvé.

Au cours du Fabrikarium, le régulateur conçu pour la “Bionico Hand” a été construit à partir d’un un régulateur linéaire à 5V, de référence “7805” et du circuit suivant :

  • un dissipateur a été monté sur celui-ci pour dissiper la chaleur résultant de la conversion de tension excédentaire
  • en amont et en aval deux capacités de filtrage ont été ajoutés, une chimique polarisée (1000µF, cylindre, qui gère l’appel de courant) et une céramique (100 nF, filtre les petits parasites, appels de courant)

Le circuit est représenté sur les photos qui suivent.

Une video montre le travail de brasure pour souder les composants et réaliser le circuit de connexion:

Vous trouverez quelques conseils pour obtenir une bonne brasure à la section ”Brasure et soudure”.

A l’issue du montage, le régulateur devra être testé. Pour cela, il faudra utiliser une alimentation stabilisée, réglée à 8V, qui se situe dans la plage de tension attendue de la batterie dans son domaine de fonctionnement.

A l’aide d’un multimètre, deux mesures seront faites. Dans un premier temps, à l’entrée du circuit, pour vérifier que la tension de 8V commandée est bien présente. Ensuite, dans un deuxième temps, vérifier que la tension indique 5V stabilisés à la sortie du circuit.

L’ensemble des photos et vidéos disponibles pour la confection du régulateur de tension sont rassemblées dans le dossier “file:medias/04_circuits_electriques/02_regulateur_tension/”.

Circuit imprimé : ajout d’un deuxième capteur myoélectrique

Le circuit imprimé (PCB) a été conçu pour accueillir les équipements de commande et contrôle des moteurs de la Bionicohand, dont le microcontrôleur Arduino, ainsi que le circuit d’alimentation pour la fourniture en énergie.

Le schéma du PCB a été revu par rapport au projet exiii HACKberry pour permettre l’installation d’un capteur supplémentaire. Il en découle une utilisation différente des bornes du microcontrôleur Arduino, d’où un nouvel adressage à prévoir entre le microcontrôleur et le circuit.

Branchement des éléments du circuit imprimé

Comme indiqué dans la rubrique ”brasure et soudure”, les éléments à fixer au circuit imprimé le seront en commençant par les plus petits.

Les différentes phases d’assemblage sont présentées dans le tutoriel My Human Kit - étape 16.

La première photo présente le circuit PCB et les composants à assembler, que nous avons ici pour le /Fabrikarium/ :

Les photos 2, 3 et 8 présentent l’installation du jack pour l’alimentation.

Les photos 4 à 7 présentent l’assemblage du bouton de commande on/off, des borniers (pin header ou têtes de broches) mâles et femelles et des boutons de commande.

  • Installation du bouton on/off :

  • Assemblage des borniers pour la commande des moteurs et pour accueillir le microcontrôleur Arduino (selon leur positionnement, ils pourront être coupés a posteriori pour disposer d’un meilleur maintien) :

  • Installation des boutons de commande :



Les photos 9 à 12 du tutoriel My Human Kit concernent le régulateur de tension que nous avons revu au cours du /Fabrikarium/. Nous ne les reverrons pas ici.

Pour visualiser l’ensemble des photos sur le montage du circuit imprimé, se référer au contenu du dossier medias/04_circuits_electriques/03_circuit_imprimé_PCB.

Deux approches pour la connexion des capteurs

Dans le projet original, il était prévu une prise mini-jack stéréo, qui permettait donc de relayer une masse, une tension d’alimentation et un signal.

Par rapport au projet exiii HACKberry, la Bionicohand prévoit d’utiliser deux capteurs afin d’étendre les possibilités de pilotage de la main commandée électroniquement.

Pour pouvoir brancher un deuxième capteur, le circuit imprimé a été repensé pour faire sortir les deux signaux de capteur vers le mini-jack stéréo, en se passant de l’alimentation qui sera réalisée de manière externe au moyen de deux piles Lithium-Ion. Une autre possibilité serait de prévoir un mini-jack à 4 connecteurs, comme il en existe pour les branchements d’écouteurs avec microphone.

Il en résulte deux montages possibles pour les capteurs.

Alimentation externe

Le premier montage consiste à utiliser une alimentation externe pour les capteurs, puisque celle-ci n’est pas piquée sur le circuit principal.

Alimentation sur la carte et circuit de stabilisation

L’autre approche consiste à utiliser l’alimentation de la carte pour les deux capteurs, en utilisant un mini-jack à 4 connecteurs.

Au cours du Fabrikarium, le mini-jack stéréo prévu n’était pas disponible de toutes façons. Pour s’en passer, les capteurs ont donc été reliés directement au PCB au moyen de fils. Ce qui a également permis de tester le branchement à 4 connexions, une masse, une alimentation et deux signaux.

L’alimentation du capteur a été puisée directement à partir de la tension positive du PCB plutôt qu’à partir d’une alimentation supplémentaire. Cela permet de s’affranchir de gérer des sources d’énergies additionnelles chacune avec leur cycle de vie propre.

Les deux capteurs sont connectés l’un à l’autre, pour relayer la tension d’alimentation. De plus, un circuit de stabilisation a été monté pour filtrer le bruit et transmettre un meilleur signal au microcontrôleur Arduino pour le traitement de l’information.


Le circuit de stabilisation est un circuit RLC comportant à l’entrée une capacité de 4,7 µF, ensuite en série une inductance (self) de 470 µH et une résistance de 0,5 ohms, pour sortir sur un montage en parallèle de deux condensateurs 100 mF et 820 µF.

Ce circuit assure une meilleure stabilité dans la tension de sortie, tout en réduisant les parasites. Le résultat donne une mesure beaucoup plus fine à l’entrée du microcontrôleur Arduino, ce qui permet une meilleure boucle de régulation dans la commande de la main.

Montage des circuits

Une fois les différents circuits réalisés, il va falloir les connecter entre eux et les loger dans le compartiment prévu de la main motorisée.

Il faut donc tester que les circuits et composants prennent bien place dans la main et ce, sous la coque du dos de la main, en s’assurant que les boutons de commande soient suffisamment mobiles, au besoin limer les insertions.



Dans notre cas, nous avons dû réduire la taille du dissipateur de chaleur installé sur le régulateur “7805” de notre circuit de régulation: il a simplement été replié pour gagner de la place en hauteur (comparez celui de droite à celui de gauche, dans sa forme initiale) :



Le dissipateur sera ensuite branché au circuit imprimé par brasage, en respectant le schéma de connexion présenté ci-dessous :


Pour terminer, préparer les fils de connexion qui seront branchés aux capteurs musculaires. La video qui suit indique comment réaliser la connectique pour la réception des signaux en gris et en orange, une prise de masse en bleu et la tension en rouge.

Les branchements et circuits seront isolés à l’aide de toile isolante (aussi appelée ”chatterton” du nom de son inventeur) afin d’éviter un court-circuit en juxtaposant les circuits les uns contre les autres :

La video montre également que 4 fils sont rassemblés et solidarisés pour établir la connexion aux deux capteurs, en se passant de la prise mini-jack à 4 connecteurs.

Ajustement dans l’adressage des bornes du microcontrôleur Arduino

La modification du PCB pour permettre de brancher le nouveau capteur a entraîné un nouvel adressage des bornes de l’arduino. Ne disposant pas du schéma du nouveau circuit, il a fallu retrouver une par une à quoi les bornes étaient reliées.

Voici la table de correspondance obtenue entre l’adressage Arduino du circuit exiii HACKberry original, et celui de la la Bionicohand telle que réalisée au /Fabrikarium d’octobre 2016/ :

borne ancienne affectation nouvelle affectation
A0 sensorInput0 myo0
A3 fingerPin ?
A4 thumbPin fingerPin
A5 X thumbPin
A6 calibPin0 myo1
7 X (calibPin0?) reset

thumbPin, fingerPin et calibPin0 correspondent aux boutons situés sur le dessus de la main. Le nouveau programme arduino ne nécessitant pas de calibrage, le bouton de calibrage est affecté à une fonction de reset, qui permet de réinitialiser le programme en cas de dysfonctionnement.

Les bornes affectées au contrôle des servomoteurs restent inchangées :

borne affectation
3 servo index
5 servo middle
6 servo thumb

medias/05_tests_et_calibrations/02_adressage_arduino/20161020_085.jpg

Tests et calibration

Lorsque les circuits sont mis en place, les servomoteurs peuvent être installés et branchés au circuit, puis testés.

Tests de commande des servomoteurs

Les deux vidéos qui suivent présentent les premiers tests qui ont été réalisés sur la main motorisée.

Le fonctionnement ne s’avère pas comme attendu, il y a un temps de réflexion et d’examen. Cette étape est intéressante car elle montre comment s’y prendre face à une situation imprévue. Deux mains ont été montées, elles présentaient toutes les deux un comportement inadéquat, pas 100% le même. C’est donc le montage qui a été remis en question.

Le principe de base est de s’y prendre pas à pas pour pister le problème, les commandes ont été testées une par une à partir d’un programme Arduino simplifié.

De là, il s’est avéré que l’adressage des bornes de l’Arduino dans le logiciel n’était pas le même, le circuit a été modifié à ce niveau là également. Donc, il a été nécessaire de procéder à des ajustements dans l’adressage des bornes du microcontrôleur Arduino pour réceptionner correctement les signaux et piloter les moteurs avec les commandes adéquates.

Ensuite, le nouvel adressage a pu être testé, ce qui nous donne les résultats présentés dans cette video. Cette fois, le comportement est tout à fait satisfaisant !

La différence qui avait été constatée entre les deux mains s’est retrouvées dans les tests moteurs, même après bon adressage: dans la première main, bien que d’apparence semblable, c’est un moteur différent qui a été monté. Il est important de choisir un servomoteur avec consigne de position qui se mettra en mouvement jusqu’à atteindre la position voulue, non pas avec une consigne de commande qui se déplacera jusqu’à recevoir une autre consigne et nécessite donc un travail permanent pour maintenir une position fixe, ce qui affaiblira très vite la batterie.

Tests du montage complet

Après l’adressage réalisé et les tests de base concluants, il est temps de réaliser les tests sur le montage complet :

L’objectif final sera de commander la main entièrement arrimée à la prothèse :



Vous pouvez consulter les autres photos sur ce thème sous medias/05_tests_et_calibrations/03_tests_montage_complet.

La section ”Emboiture : conception d’une prise rapide de poignée” décrira comment concevoir une prothèse de main et son Emboiture à monter soi-même.

Installation des capteurs sur la prothèse de main

Les capteurs de pression seront installés sur la prothèse ainsi confectionnée.

Des boutons-pression seront utilisés pour établir un contact amovible entre le bras et le capteur, comme expliqué dans cette vidéo :

Pour que la réalisation soit fonctionnelle, il faut que le capteur soit localisé au bon endroit. Dans un premier temps, l’endroit a été localisé à partir de la prothèse industrielle pour être marqué par souci de fiabilité, sachant que ce qui nous intéresse, c’est la zone musculaire active, comme le montrent ces vidéos :

Ensuite, il faut repérer la zone de contact entre la prothèse et le muscle. Une première approche est d’utiliser de la pâte à modeler, ce qui ne s’est pas avéré efficace. La deuxième approche utilise de la peinture effaçable, sans danger pour le corps.

A partir du marquage réalisé, les boutons-pression et le capteur pourront être installés sur la prothèse. Plusieurs vidéos montrent les manipulations réalisées.

Filtrage du signal des capteurs myoélectriques

Problématique

Les capteurs musculaire myoélectriques MyoWare que l’on souhaite utiliser sont capricieux. L’objectif du filtrage est d’être en mesure de détecter certains événements afin qu’ils se traduisent par l’actionnement d’un des servomoteur.



Un travail a été effectué afin de filtrer leur signal de sortie pour le rendre plus lisse et que les événements déclencheurs soient bien identifiés. Maintenant qu’ils fonctionnent correctement, le signal est tout à fait exploitable et permet bien de régler la position de la main progressivement et non pas en tout ou rien.

Certains paramètres restent critiques dans le bon fonctionnement de ces capteurs :

  • la position des électrodes sur le muscle
  • le type de contact avec la peau (patch adhésif, pâte conductrice, contact métalliques…) et aussi l’humidité de la peau.
  • la pression exercée sur le capteur, qui doivent être serrés avec une bande de scratch.

Tous ces facteurs font qu’il est difficilement envisageable dans l’état actuel d’utiliser ces capteurs à l’intérieur d’une emboîture. Les tests réalisés ne sont en effet pas satisfaisants.

Protocole

Le filtrage a été mis au point par essais et erreurs, en testant successivement plusieurs techniques. On utilise un utilitaire présent dans les versions récentes de l’IDE d’Arduino (versions supérieures à 1.6.6) : serialPlotter. Cet utilitaire représente en temps réel des valeurs reçues sur le port série avec une échelle verticale qui s’adapte à l’évolution du signal (ou des signaux).

Par défaut, l’exemple AnalogReadSerial permet effectivement de tracer directement l’évolution d’un signal analogique, reçu par l’intermédiaire du port série.

Méthode de filtrage

Sur le programme arduino d’origine, une moyenne est appliquée sur une certain nombre de valeurs à suivre (une vingtaine), ce qui n’empêche pas l’apparition d’une variation brusque entre le premier lot de valeurs et celui qui arrivent ensuite. On utilisera plutôt des moyennes (ou des médianes) flottantes, c’est-à-dire que ce sont toujours les vingt dernières valeurs reçues qui sont prises en compte dans le traitement. Chaque nouvelle valeur ne modifiera donc la moyenne qu’à la marge et le signal résultant évoluera de façon plus continue.

RunningMedian est une librairie arduino qui permet de réaliser simplement des médianes flottantes.

Finalement, deux médianes flottantes sont utilisées :

  • la médiane courte correspond à un premier filtrage où tous les signaux reçus par le capteur sont pris en compte. Elle permet de supprimer les bruits et d’obtenir un signal relativement lisse.
  • la médiane longue est une médiane flottantes des médianes courtes. Il s’agit d’obtenir une référence qui évolue en fonction du temps et à partir de laquelle on va détecter des changements sur de plus courtes échelles de temps.

C’est donc à partir des variations de cette différence que nous allons détecter des événements correspondant à contraction du muscle correspondant.

Sur la photo suivante, on voit l’évolution des médianes obtenues pour deux capteurs musculaires. Le signal lisse correspond à la médiane courte, le signal en escalier correspond à la médiane longue.



Réécriture du programme Arduino

Avec la nouvelle procédure de filtrage et l’utilisation de deux capteurs myoélectriques apparaît assez vite la nécessité de réécrire le programme Arduino à partir de zéro plutôt que d’adapter l’existant.

Le nouveau code arduino est mis à disposition sur un dépôt GitHub.

Il est également disponible dans la branche fabrikarium d’une copie (fork) du dépôt original.

Capteur de pression

Cette partie consiste à ajouter un capteur au bout du pouce afin d’avoir un retour d’information “sensible”. Ce retour d’information permet au porteur de la main d’adapter lui même la pression. Il s’agit d’un capteur de pression de type FSR.



Pour ce test, le retour d’information se fait par un servomoteur en contact avec le bras du porteur.



On dimensionne ainsi la résistance du circuit : il faut qu’elle soit supérieure à la résistance du capteur lorsque celui-ci est chargé. Une autre solution est de la remplacer par une résistance variable afin de pouvoir la calibrer directement.

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.