Mise à jour le 28/12/2019 : Dans cette page nous allons étudier la modification de l’avant-bras qui a pour but de supprimer les fils qui partent du torse de Maya et qui parcourt les bras du robot. La solution retenue est l’utilisation du contrôleur de robot EZ-B IoTiny.
Sommaire :
- Descriptif de la modification
- Materiel nécessaire pour la réalisation de ce montage
- Montage de la carte sur son support
- Principe de fonctionnement des capteurs de flexion
- Programme permettant de tester la main avec un gant de recopie
- Pour tout probléme
- Retour à la page principale.
Descriptif de la modification |
.
Nous allons étudier la modification de l’avant-bras qui a pour but de supprimer les fils qui partent du torse de Maya et qui parcours les bras du robot. La solution retenue est l’utilisation du contrôleur de robot EZ-B IoTiny.
Le fonctionnement est simple, la carte qui est insérée dans l’avant-bras de Maya aura pour but de piloter les cinq doigts, l’inclinaison poignée et la rotation poignée ce qui nous fait supprimer 7 fils. La carte reçoit une alimentation de 12 V pour son fonctionnement propre et une alimentation de 6 V pour la puissance des servomoteurs ce qui nous ramène à trois fils. Nous avions 10 fils pour piloter l’avant-bras, maintenant nous en sommes à trois fils. Il nous reste la possibilité de piloter 1 Servo supplémentaire, 2 entrées analogiques et un circuit en I2c .
Nous avons aussi modifié le type de servomoteur qui a pour fonction d’incliner la main de Maya. Nous l’avons remplacé par un servomoteur beaucoup plus puissant tout en gardant une taille identique ce qui nous a évité de redessiner et imprimer une paume et un support poignet.
Enfin, nous avons créé un montage de recopie du mouvement de la main à l’aide de capteur de flexion. Ce petit montage nous permet de pouvoir tester le fonctionnement de la main
.
Retour au sommaire
Materiel nécessaire pour la réalisation de ce montage |
.
- 1 carte controleur EZ-B V4 commandé en wi-fi.Pour la récuperation des information venant des capteurs de flexion
- Traitement total : 32-bit de 200 MHz (processeur ARM Cortex-M3 32-bit de 120 MHz et micropuce PIC32 de 80 MHz)
- Connectivité : Wi-Fi (ad-hoc/infrastructure/WEP/WPA/WPA2) et serveur Web intégré
- 8 x Port analogique pouvant fonctionner en 5 volts (CAN)
- 24 x Port numérique pouvant fonctionner en 5 volts (servos, MLI et plus)
- 3 x Port I²C
- 1 Contrôleur de Robot EZ-B IoTiny commandé en wi-fi.Ce module est implantée dans l’avant bras du robot Maya
- 8 x E/S numérique, servomoteur, UART (tx uniquement)
- 2 x ADC
- 1 x I2C
- 3 Capteurs de flexion FS7548 ou equivalent
- Capteur de flexion souple résistif. La résistance augmente lorsque l’angle de flexion du capteur augmente.
- Résistance au repos: 10 kΩ
- Dimensions: 112 x 6 x 0,43 mm
- Affectation : index,majeur,annulaire
- 2 Capteurs de flexion FS7954 ou equivalent
- Capteur de flexion souple résistif. La résistance augmente lorsque l’angle de flexion du capteur augmente.
- Résistance au repos: 25 kΩ
- Dimensions: 74 x 6 x 0,43 mm
- Affectation : pouce,auriculaire.
- 5 resistances 1/4W 22KΩ
- Résistances à couche carbone ¼ W.
- Tolérance: 5%
- Diamètre 2.3 mm
- Longueur 6.5 mm
- Affectation : pouce, index ,majeur,annulaire , auriculaire .
.
Retour au sommaire
Montage de la carte sur son support |
.
Retour au sommaire
.
Lot de Led 10 mm sur Amazon
- Taille : 10mm
- Tension pour le jaune et le rouge : de 1.8V à 2.2V
- Tension pour le bleu , vert et le blanc : de 3.0V à 3.4V
- Courant moyen de la Led : 20 mA
Calcul de la resistance de limitation pour le LED
Formule =>
Resistance_de_le_led = ( tension_d’alimentaion – tension_de_la_led ) / courant de la led
Soit pour une led bleu =>
(6-3.0)/0.02= 150 Ω pour un courant de 0.02A
Il faut tenir compte du courant de sortie maximun de la carte en gardant une reserve afin d’eviter les echauffements soit 15 mA .
(6-3.0)/0.015= 200 Ω pour un courant de 0.015A
.
Retour au sommaire.
.
Retour au sommaire.
Retour au sommaire.
Retour au sommaire
Principe de fonctionnement des capteurs de flexion |
.
On utilise un capteur « Flex Sensor » .Deux fines couches de métal sont séparées par un polymère conducteur qui se déforme quand on le plie, modifiant la résistance aux bornes des deux couches métalliques.
Il s’agit d’un capteur à résistance variable, il nous faut simplement une résistance pour réaliser un pont diviseur de tension et obtenir ainsi une tension variable que l’on va pouvoir traiter sur une entrée analogique d’un micro-contrôleur.
.
Le capteur Flex modifie sa résistance en flexion de sorte que nous pouvons mesurer ce changement sur l’une des broches analogique de la carte Arduino. Mais pour cela nous avons besoin d’une résistance fixe que nous allons utiliser pour cette comparaison (la résistance utilisée dans le montage est de valeur 22 KΩ).
Ce type de montage est appelé : pont diviseur de tension .On divise la tension du 5 V délivré par la carte microcontrôleur entre le capteur flexion est la résistance de 22KΩ .
Schéma de principe du pont diviseur de tension .
.
Le but et de copier les mouvements des doigts et de les retransmettre via une carte inserée dans l’avant bras du robot Maya .Pour cela, nous allons créer un gant équipé de capteurs de flexion pour chaque doigt. Nous allons donc utiliser trois capteurs de type FS7548 que nous allons affecter à l’index, le majeur et l’annulaire , et deux autres capteurs de type FS7954 qui seront affectés au pouce et à l’auriculaire .
.
Retour au sommaire
Programme permettant de tester la main avec un gant de recopie |
.
Ce programme permet de piloter les servomoteurs à l’aide de capteur de flexion. Le principe électrique étant le suivant :
Nous utilisons 2 composants, le capteur de flexion et une résistance .Ces deux composants sont montés suivants le principe du pont diviseur. La sortie du pont diviseur allant à l’entrée analogique du contrôleur de Robot WiFi EZ-B V4. Nous récupérons l’information du capteur de flexion sous la forme d’une tension qui est traduite sur 8 bits. Il est très important de récupérer les valeurs minimales et maximales qui correspondent à la courbure du capteur.
Une remise à l’échelle entre la valeur minimale et maximale du capteur de flexion et la valeur minimale et maximale de l’angle du servomoteur sera effectuée. Cette valeur sera introduite dans une variable qui nous servira à piloter le servomoteur correspondant au doigt activé.
.
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# :Retour # Renvoie la valeur du port analogique # en spécifiant son numéro d'entree #(numéro se trouvant sur le boitier EZ). # on transfert cette valeur dans la variable correspondante $pouce_gant = GetADC(1.adc0) $index_gant = GetADC(1.adc1) $majeur_gant = GetADC(1.adc2) $annulaire_gant = GetADC(1.adc3) $auriculaire_gant = GetADC(1.adc4) #Affiche le texte spécifié dans la console de débogage ainsi que la valeur #analogique de la carte et de 1'entree print("Valeur de la tension sur la carte EZ-B #1 port adc1 : " + $index_gant) # # Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. # Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination, # une valeur haute source sera étalonnée en une valeur haute de destination, # # Syntaxe : Map( input, inputMin, inputMax, containerMin, containerMax ) # $copie_pouce_gant = Map($pouce_gant, 61, 80, 75,129 ) $copie_index_gant = Map($index_gant, 92, 145, 77,175 ) $copie_majeur_gant = Map($majeur_gant, 125,176, 30,175 ) $copie_annulaire_gant = Map($annulaire_gant, 118,170, 56,153 ) $copie_auriculaire_gant = Map($auriculaire_gant, 70,110, 130,88 ) #Pilotage des servomoteurs correspondants Servo(0.D0,$copie_pouce_gant) Servo(0.D1,$copie_index_gant) Servo(0.D2,$copie_majeur_gant) Servo(0.D3,$copie_annulaire_gant) Servo(0.D4,$copie_auriculaire_gant) goto (retour) # |
.
Retour au sommaire
Pour tout problème |
Pour tout problème de téléchargement ou pour nous suivre sur les réseaux sociaux voici les plateformes sur lesquelles nous éditons.
Cliquez sur celle qui vous intéresse .
.
Retour en haut de page