Différences entre les versions de « Main robotisée »

De VoWiki
Aller à la navigation Aller à la recherche
 
(46 versions intermédiaires par le même utilisateur non affichées)
Ligne 84 : Ligne 84 :
<div style="margin-left:0cm;margin-right:0cm;"><span style="color:#000000;"></span><span style="color:#000000;">Le logiciel Arduino installé (voir : </span><span style="color:#000081;">http://www.arduino.cc/</span><span style="color:#000000;">)</span></div>
<div style="margin-left:0cm;margin-right:0cm;"><span style="color:#000000;"></span><span style="color:#000000;">Le logiciel Arduino installé (voir : </span><span style="color:#000081;">http://www.arduino.cc/</span><span style="color:#000000;">)</span></div>


Ouvrir le fichier [http://www.vorobotics.com/uploads/GL/main_robot/main2.zip code source ] clic droit "Enregistrer la cible du lien sous ..."  
Ouvrir le fichier [http://www.vorobotics.com/uploads/GL/main_robot/hand_separe_main5.zip code source ] clic droit "Enregistrer la cible du lien sous ...". En dossier caché, vous trouverez ".git" créé en utilisant le logiciel de gestion de version [https://openclassrooms.com/fr/courses/2342361-gerez-votre-code-avec-git-et-github  Git]
 
Vous trouverez la documentation générée avec [http://www.doxygen.nl Doxigen ] à cette adresse [http://www.vorobotics.com/uploads/GL/main_robot/doc_hand_separe_main5/html/ doc_hand_separe_main5]


La librairie [https://learn.adafruit.com/16-channel-pwm-servo-driver/chaining-drivers?view=all#library-reference Adafruit_PWMServoDriver] à placer dans C:\Users\nom_du_compte\Documents\Arduino\libraries
La librairie [https://learn.adafruit.com/16-channel-pwm-servo-driver/chaining-drivers?view=all#library-reference Adafruit_PWMServoDriver] à placer dans C:\Users\nom_du_compte\Documents\Arduino\libraries
Ligne 126 : Ligne 128 :
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <Adafruit_PWMServoDriver.h></nowiki></div>
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <Adafruit_PWMServoDriver.h></nowiki></div>


===Bibliothèque externes utilisées pour les cartes===
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <SoftwareSerial.h> </nowiki>(pour l'utilisation du moniteur série du logiciel Arduino)</div>
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <Wire.h> </nowiki>(pour le bluetooth)</div>


=== Vérifier en premier la plage de rotation des moteurs ===
=== Vérifier en premier la plage de rotation des moteurs ===
Ligne 145 : Ligne 153 :


<div style="margin-left:0cm;margin-right:0cm;">pwm.setPWM(SERVOPOUCE, 0, pulseLen);</div>
<div style="margin-left:0cm;margin-right:0cm;">pwm.setPWM(SERVOPOUCE, 0, pulseLen);</div>
== Test d'ouverture et de fermeture des servomoteurs ==
Ce programme permet de tester la main robotisée afin de déterminer les valeurs de positions d'ouverture et de fermeture de chaque doigt.
A l'aide du moniteur d'Arduino, il faut entrer le numéro du servomoteur, la valeur de fermeture et la valeur d'ouverture. Le but est de définir chaque valeur adaptée pour chaque servomoteur.
Ouvrir le fichier [http://www.vorobotics.com/uploads/GL/main_robot/test_servo_main code source ] clic droit "Enregistrer la cible du lien sous ...". En dossier caché, vous trouverez ".git" créé en utilisant le logiciel de gestion de version [https://openclassrooms.com/fr/courses/2342361-gerez-votre-code-avec-git-et-github  Git]
Vous trouverez la documentation générée avec [http://www.doxygen.nl Doxigen ] à cette adresse [http://www.vorobotics.com/uploads/GL/main_robot/test_servo_main/doc_test/ documentation du test]


== Scénario ==
== Scénario ==
Ligne 152 : Ligne 168 :
<div style="margin-left:0cm;margin-right:0cm;">La main se trouve en position ouverte.</div>
<div style="margin-left:0cm;margin-right:0cm;">La main se trouve en position ouverte.</div>


<div style="margin-left:0cm;margin-right:0cm;">La position de chaque servomoteur est définie en degrés comme suit&nbsp;:</div>
<div style="margin-left:0cm;margin-right:0cm;">La position de chaque servomoteur est définie en degrés comme suit dans le tableau : </div>
 
[[Image:Main tableau prog.PNG|border|]]
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_POUCE 50 // valeur initiale pouce ouvert</nowiki></div>
 
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_INDEX 50 </nowiki></div>
 
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_MAJEUR 50</nowiki></div>
 
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_ANNULAIRE 50</nowiki></div>
 
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_AURICULAIRE 50</nowiki></div>
 
<div style="margin-left:0cm;margin-right:0cm;">- Programmes&nbsp;:</div>
 
<div style="margin-left:0cm;margin-right:0cm;">Bibliothèque externes utilisées&nbsp;:</div>
 
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <Adafruit_PWMServoDriver.h> </nowiki>(pour servomoteur)</div>
 
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <SoftwareSerial.h> </nowiki>(pour l'utilisation du moniteur série du logiciel Arduino)</div>
 
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <Wire.h> </nowiki>(pour le bluetooth)</div>
 
<div style="margin-left:0cm;margin-right:0cm;">Commander chaque servomoteur par l’intermédiaire du moniteur série pour aller. Il suffit d’envoyer un chiffre entre 1 et 5 et la main oriente les doigts afin de l’afficher.</div>
 
[[Image:Prog num robot gilles.JPG|border|]]


<div style="margin-left:0cm;margin-right:0cm;"><nowiki>Vous trouverez dans la partie doigtV5.h la valeur déplier=60 degrés</nowiki></div>


<div style="margin-left:0cm;margin-right:0cm;"></div>


<div style="margin-left:0cm;margin-right:0cm;"></div>
<div style="margin-left:0cm;margin-right:0cm;">Commander chaque servomoteur par l’intermédiaire du moniteur série ou par votre tablette ou smatphone sous Androïd. Il suffit de suivre les consignes affichées dans le moniteur série.</div>


<div style="margin-left:0cm;margin-right:0cm;">Chaque fonction est créée au début du programme. (exemple pour la fonction "pouce")</div>
[[Image:Main moniteur serie.PNG|border|]]
[[Image:Fonction1 pouce gilles.JPG|border|]]


== Main Robot ==
== Main Robot ==
Ligne 192 : Ligne 184 :
Main Robot est une application développée avec App Inventor pour être installée sur ma tablette Android.
Main Robot est une application développée avec App Inventor pour être installée sur ma tablette Android.


Pour le moment, elle n’est pas encore opérationnelle mais l’interface de communication prend forme.
<div style="margin-left:0cm;margin-right:0cm;">L'application Main_bluetooth_V2.apk est téléchargeable ici afin de l'installer sur votre Android : [http://www.vorobotics.com/uploads/GL/main_robot/Main_bluetooth_V2.apk Main_bluetooth_V2.apk] clic droit "Enregistrer la cible du lien sous ..."</div>
<div style="margin-left:0cm;margin-right:0cm;">Toute la documentation et l’installation d'un serveur App Inventor se trouve à cette adresse [http://ww2.ac-poitiers.fr/sciences-ingenieur-sti/spip.php?article123 http://ww2.ac-poitiers.fr/sciences-ingenieur-sti/spip.php?article123]


Un premier écran pour piloter directement les doigts
Un premier écran pour piloter directement les doigts
Ligne 203 : Ligne 196 :
[[Image:Calculatrice main gilles.png|200px|border|]]
[[Image:Calculatrice main gilles.png|200px|border|]]


La programmation des blocs afin d’envoyer les informations n’est pas encore réalisée. Un peu d’indulgence et d’ttente s’il vous plait&nbsp;!!!
La programmation des blocs afin d’envoyer les informations est enfin réalisée et testée.


= Recherche de solutions techniques pour les collègues de technologie =
= Recherche de solutions techniques pour les collègues de technologie =
[[Image:Main thingiverse gilles.jpg|200px|]]
<gallery perrow="3" nolines widths="250px">
<gallery nolines widths="250px">
Image:Main imp gilles.png|<center>Main imprimée 3D
Image:Main imp gilles.png|<center>Main imprimée 3D
Image:Main carton gilles.png|<center>Main en carton
Image:Main carton gilles.png|<center>Main en carton
Image:Main plast gilles.png|<center> [http://www.vorobotics.com/wiki/index.php?title=Main_plastique_p%C3%A9dagogique Main plastique]
Image:Main plast gilles.png|<center> [http://www.vorobotics.com/wiki/index.php?title=Main_plastique_p%C3%A9dagogique Main plastique]
Image :Main techno services gilles.JPG|<center>Main bionique [https://www.technologieservices.fr/main-bionique-avec-interface-de-programmation-676396.html Technologie Services]
Image :Main techno services gilles.JPG|<center>Main bionique [https://www.technologieservices.fr/main-bionique-avec-interface-de-programmation-676396.html Technologie Services]
Image :Main thingiverse gilles.jpg|<center>The Raptor Hand [https://www.thingiverse.com/thing:476403 Thingiverse]


</gallery>
</gallery>
Ligne 232 : Ligne 225 :


<div style="margin-left:0cm;margin-right:0cm;">[https://www.arduino.cc/ Logiciel Arduino]</div>
<div style="margin-left:0cm;margin-right:0cm;">[https://www.arduino.cc/ Logiciel Arduino]</div>
<div style="margin-left:0cm;margin-right:0cm;">[http://www.doxygen.nl Doxigen ]</div>
<div style="margin-left:0cm;margin-right:0cm;">Le logiciel de gestion de version [https://openclassrooms.com/fr/courses/2342361-gerez-votre-code-avec-git-et-github  Git]</div>
<div style="margin-left:0cm;margin-right:0cm;">[https://tortoisegit.org TortoiseGit]</div>


{{finArticles}}
{{finArticles}}

Version actuelle datée du 7 mars 2020 à 17:45

AccueilNos Projets

Page d'accueil Gilles

Main robotisée
Main ouverte gilles.jpg

VoLAB

Volab.JPG

Assocation VoRoBoTics

Date : 17/03/2018
Auteur : Gilles Lecorsier
Relecteur :
Thème : Robotique
Projet : Main robotisée, programmation Arduino

Problématique

Suite au visionnage d’un tutoriel Sketchup : Comment utiliser sketchup et MSPhysics pour faire de la simulation ?, j’aurai aimé utiliser la simulation du doigt pour prothèse de main robotisée. Malheuresement, je n’ai pas pu obtenir le fichier correspondant.
Je me suis lancé dans la modélisation de la dite main sous Fusion 360. (Voir la vidéo)
Pour l’instant, la main est directement commandée par l'ordinateur et le logiciel Arduino. Je suis en train de développé une deuxième version de la main communiquant en bluetooth à l'aide d'un module bluetooth HC-05, une tablette sous Android et une interface créée sous App Inventor.

Vous retrouverez une partie déjà développée dans l'étude du Bras manipulateur

Dans ce document sont abordés :

La programmation à l'aide du logiciel Arduino :

Servomoteur

Communication Bluetooth

App Inventor permet de créer des applications Android.

Matériel

Cartes

La carte Arduino Uno[1]est une carte à microcontrôleur basée sur l'ATmega328 (voir la fiche technique).

Carte uno.JPG

La carte contrôleur PWM/servo 16 canaux. Adafruit 16-Channel 12-bit PWM / Servo Driver conduira jusqu'à 16 servos sur I2C avec seulement 2 broches. Le contrôleur PWM intégré pilotera les 16 canaux simultanément sans aucune charge supplémentaire de traitement Arduino.

Brasgilles16pwm.jpg


Le module bluetooth HC-05, permet de communiquer entre une tablette et la carte Uno.


Brasgillesbluetooth.jpg


Logiciels utilisés pour le développement

Modélisation

Pour la modélisation de la main, j’ai utilisé le logiciel Fusion 360 qui m’a permis de simuler les différents déplacement des doigts. (Voir la vidéo).

Cette vidéo est créée avec le logiciel CamStudio qui m’a permis de réaliser des captures de vidéos et ensuite de faire un montage rapide à l’aide de Movie Maker qui suffit largement pour ces petits montages.

Main fusion gilles.jpg

A partir de la modélisation, les différents fichiers sont exportés en STL afin d’être utilisés pour imprimer les pièces en 3D. Le dossier  main_fichier3d.zip  est en téléchargement.

Programmation

Le logiciel Arduino installé (voir : http://www.arduino.cc/)

Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ...". En dossier caché, vous trouverez ".git" créé en utilisant le logiciel de gestion de version Git

Vous trouverez la documentation générée avec Doxigen à cette adresse doc_hand_separe_main5

La librairie Adafruit_PWMServoDriver à placer dans C:\Users\nom_du_compte\Documents\Arduino\libraries

APP INVENTOR est un environnement de développement intégré permettant la création d'applications destinées à des systèmes équipés de plate-forme Androïd.

Actionneurs

5 Servo moteurs 9g, 4,8 à 6V.

Préparation

Câblage des cartes Uno, du contrôleur PWM/servo 16 canaux et module bluetooth HC-05

Cablage2cartes.JPG Brasgillesbranchementbluetooth.jpg

Repérage des branchements

#define SERVOPOUCE 1
#define SERVOINDEX 2
#define SERVOMAJEUR 3
#define SERVOANNULAIRE 4
#define SERVOAURICULAIRE 5


Main robot gilles.jpeg

Programmation

Programmation des servomoteurs

La librairie externe utilisée pour les servomoteurs

#include <Adafruit_PWMServoDriver.h>


Bibliothèque externes utilisées pour les cartes

#include <SoftwareSerial.h> (pour l'utilisation du moniteur série du logiciel Arduino)
#include <Wire.h> (pour le bluetooth)

Vérifier en premier la plage de rotation des moteurs

#define SERVOMIN 150
#define SERVOMAX 600


Pour travailler en degrés

Par exemple le contrôle du Servomoteur SERVOPOUCE
Transformation de degré (0 à 180) en pulse (SERVOMIN à SERVOMAX)
valPouce1 = POS_INIT_POUCE;
pulseLen = map(valPouce1, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(SERVOPOUCE, 0, pulseLen);

Test d'ouverture et de fermeture des servomoteurs

Ce programme permet de tester la main robotisée afin de déterminer les valeurs de positions d'ouverture et de fermeture de chaque doigt. A l'aide du moniteur d'Arduino, il faut entrer le numéro du servomoteur, la valeur de fermeture et la valeur d'ouverture. Le but est de définir chaque valeur adaptée pour chaque servomoteur.

Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ...". En dossier caché, vous trouverez ".git" créé en utilisant le logiciel de gestion de version Git

Vous trouverez la documentation générée avec Doxigen à cette adresse documentation du test

Scénario

- Initialisation du système

La main se trouve en position ouverte.
La position de chaque servomoteur est définie en degrés comme suit dans le tableau :

Main tableau prog.PNG

Vous trouverez dans la partie doigtV5.h la valeur déplier=60 degrés


Commander chaque servomoteur par l’intermédiaire du moniteur série ou par votre tablette ou smatphone sous Androïd. Il suffit de suivre les consignes affichées dans le moniteur série.

Main moniteur serie.PNG

Main Robot

Main logo robot gilles.png

Main Robot est une application développée avec App Inventor pour être installée sur ma tablette Android.

L'application Main_bluetooth_V2.apk est téléchargeable ici afin de l'installer sur votre Android : Main_bluetooth_V2.apk clic droit "Enregistrer la cible du lien sous ..."
Toute la documentation et l’installation d'un serveur App Inventor se trouve à cette adresse http://ww2.ac-poitiers.fr/sciences-ingenieur-sti/spip.php?article123

Un premier écran pour piloter directement les doigts

Pilotage main gilles.png

Un deuxième écran pour faire compter la main et orienter les doigts afin de présenter le résultats du calcul.


Calculatrice main gilles.png

La programmation des blocs afin d’envoyer les informations est enfin réalisée et testée.

Recherche de solutions techniques pour les collègues de technologie

Webographie

Applications et logiciels

Le logiciel de gestion de version Git

Licence

Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.

CC88x31.jpg Paternité 'by' :L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.


Note aux auteurs de documents du VoLAB, Vous avez la possibilité de changer de licence. Mais ce serait bien de rester libre et ouvert. Encore une fois ceci est une recommandation et pas une obligation.

Rédaction en langue française

Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare

et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information,

nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.

VoLAB

Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 28km au nord-ouest de Paris dans l'agglomération de Cergy Pontoise.

Il est animé par l'association VoRoBoTics.

Site internet www.vorobotics.com


AccueilNos Projets