Différences entre les versions de « Bras manipulateur »
(154 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Projet}} | |||
[http://www.vorobotics.com/wiki/index.php?title=Utilisateur:Gillou_Lec Page d'accueil Gilles] | |||
[[Category:Robots]] | |||
[[Category:Microcontroleurs]] | |||
[[Category:Programmation]] | |||
[[Category:Arduino]] | |||
[[Category:Bluetooth]] | |||
[[Category:Android]] | |||
[[Category:Application inventor]] | |||
<center>'''<big><big>Bras manipulateur</big></big>'''</center> | <center>'''<big><big>Bras manipulateur</big></big>'''</center> | ||
[[Fichier:Brasgillesbras.JPG|600px|right|thumb]] | |||
[[Fichier:Brasgillesinterface.JPG|200px|right|thumb]] | |||
<!-- <center>'''<big><big>Bras manipulateur</big></big>'''</center> --> | |||
Le projet développé est téléchargeable en fichier PDF : [http://www.vorobotics.com/uploads/GL/brasmanip/brasmanip_pour_pdf.pdf brasmanip_pour_pdf] clic droit "Enregistrer la cible du lien sous ..." | |||
= VoLAB = | = VoLAB = | ||
[[Fichier:Volab.JPG]] | |||
= Assocation VoRoBoTics = | = Assocation VoRoBoTics = | ||
Ligne 53 : | Ligne 35 : | ||
= Problématique = | = Problématique = | ||
La partie mécanique est à retrouver sur le site Thingiverse. Les fichiers sont en téléchargement [https://www.thingiverse.com./thing:436096 Educational_robot_arm_with_6DOF]. | |||
BrasVor est un petit bras robotisé avec 6 servomoteurs 9g et une carte Arduino Uno + une [https://learn.adafruit.com/16-channel-pwm-servo-driver carte contrôleur PWM/servo 16 canaux]. | BrasVor est un petit bras robotisé avec 6 servomoteurs 9g et une carte Arduino Uno + une [https://learn.adafruit.com/16-channel-pwm-servo-driver carte contrôleur PWM/servo 16 canaux]. | ||
Au départ, le bras était directement commandé par l'ordinateur et le logiciel Arduino. ([https://youtu.be/ITMu1824J5M Voir vidéo]). J'ai développé une deuxième version du bras communiquant en bluetooth | Au départ, le bras était directement commandé par l'ordinateur et le logiciel Arduino. ([https://youtu.be/ITMu1824J5M Voir vidéo]). J'ai développé une deuxième version du bras communiquant en bluetooth A l'aide d'un [http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 module bluetooth HC-05], une tablette sous Android et une interface créée sous [http://appinventor.mit.edu/explore/ App Inventor]. | ||
Ligne 65 : | Ligne 48 : | ||
:: Communication Bluetooth | :: Communication Bluetooth | ||
:: App Inventor permet de créer des applications Android. | :: App Inventor permet de créer des applications Android. | ||
Joël, notre grand président de l’association a développé un bras robot éducatif beaucoup plus abouti à cette adresse : [http://www.vorobotics.com/wiki/index.php?title=Bras_Robot_Educatif http://www.vorobotics.com/wiki/index.php?title=Bras_Robot_Educatif] | |||
[[Fichier:BRE articulations.png|400px|thumb|center]] | |||
= Matériel = | = Matériel = | ||
Ligne 72 : | Ligne 58 : | ||
== Cartes == | == Cartes == | ||
[http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno La carte Arduino Uno] est une carte à microcontrôleur basée sur l'ATmega328 ([http://www.mon-club-elec.fr/datasheet/micro_proc/avr/at_mega_328.pdf voir la fiche technique]). | [http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno La carte Arduino Uno] est une carte à microcontrôleur basée sur l'ATmega328 ([http://www.mon-club-elec.fr/datasheet/micro_proc/avr/at_mega_328.pdf voir la fiche technique]). | ||
[[Image:Brasgillescarte_uno.jpg|thumb|center]] | |||
[https://learn.adafruit.com/16-channel-pwm-servo-driver La carte contrôleur PWM/servo 16 canaux] : L'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. | |||
[[Image:Brasgilles16pwm.jpg|thumb|center]] | |||
<div style="margin-left:0cm;margin-right:0cm;">[http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 module bluetooth HC-05], permet de communiquer entre une tablette et la carte Uno.</div> | <div style="margin-left:0cm;margin-right:0cm;">[http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 Le module bluetooth HC-05], permet de communiquer entre une tablette et la carte Uno.</div> | ||
[[Image:Brasgillesbluetooth.jpg|thumb|center]] | |||
Ligne 97 : | Ligne 86 : | ||
== Câblage des cartes Uno, du contrôleur PWM/servo 16 canaux et module bluetooth HC-05 == | == Câblage des cartes Uno, du contrôleur PWM/servo 16 canaux et module bluetooth HC-05 == | ||
[[Image:Brasgillescablage2cartes.jpg|400px|thumb|center]] | |||
[[Image: | [[Image:Brasgillesbranchementbluetooth.jpg|400px|thumb|center]] | ||
== Repérage des branchements == | == Repérage des branchements == | ||
En Arduino, la configuration des branchements se traduit par le bloc de code suivant : | |||
#define SERVOPLATEFORME 1 | |||
#define SERVOEPAULE 2 | |||
#define SERVOCOUDE 3 | |||
#define SERVOPOIGNET 4 | |||
#define SERVOROTPOIGNET 5 | |||
#define SERVOPINCE 6 | |||
[[Image:BrasgillesIMG 4690.jpg|400px|thumb|center]] | |||
= Programmation = | |||
Les premiers essais ont été filmés et la vidéo est présentée à cette adresse : | |||
[https://youtu.be/ITMu1824J5M https://youtu.be/ITMu1824J5M] | |||
== Programmation des servomoteurs == | == Programmation des servomoteurs == | ||
Ouvrir le fichier [http://www.vorobotics.com/uploads/GL/brasmanip/bras_manip_rot_control_bluetooth.zip code source] clic droit "Enregistrer la cible du lien sous ..." | |||
=== La librairie externe utilisée pour les servomoteurs === | === La librairie externe utilisée pour les servomoteurs === | ||
Ligne 150 : | Ligne 140 : | ||
<div style="margin-left:0cm;margin-right:0cm;">Organisation du fichier : séparer son code en différents fichiers afin d'avoir des entités logiques séparées les unes des autres.</div> | <div style="margin-left:0cm;margin-right:0cm;">Organisation du fichier : séparer son code en différents fichiers afin d'avoir des entités logiques séparées les unes des autres.</div> | ||
[[Image:Brasgillescompilsepare.jpg|700px|thumb|center]] | |||
: <div style="margin-left:0cm;margin-right:0cm;">[http://eskimon.fr/1803-arduino-mini-tuto-organisez-votre-code-en-fichiers Structure du programme :] | : <div style="margin-left:0cm;margin-right:0cm;">[http://eskimon.fr/1803-arduino-mini-tuto-organisez-votre-code-en-fichiers Structure du programme :] </div> | ||
:: <div style="margin-left:0cm;margin-right:0cm;">'''bras_manip_rot_control_bluetooth :''' programme principal</div> | :: <div style="margin-left:0cm;margin-right:0cm;">'''bras_manip_rot_control_bluetooth :''' programme principal</div> | ||
:: <div style="margin-left:0cm;margin-right:0cm;">'''paramètre_robot.h :''' comme le nom l'indique, déclaration des constantes.</div> | :: <div style="margin-left:0cm;margin-right:0cm;">'''paramètre_robot.h :''' comme le nom l'indique, déclaration des constantes.</div> | ||
[[Image:Brasgillesparametres robot h.jpg|700px|thumb|center]] | |||
:: <div style="margin-left:0cm;margin-right:0cm;">'''fonctions_robot.h :''' regroupe les prototypes des fonctions ainsi que les définitions de structures ou de classes </div> | :: <div style="margin-left:0cm;margin-right:0cm;">'''fonctions_robot.h :''' regroupe les prototypes des fonctions ainsi que les définitions de structures ou de classes </div> | ||
[[Image:Brasgillesfonctions robot h.jpg|700px|thumb|center]] | |||
<div style="margin-left:0cm;margin-right:0cm;"> | :: <div style="margin-left:0cm;margin-right:0cm;">'''fonctions_robot.ccp :''' (pour C plus plus ou C++) regroupe le code à proprement parler, le codage de vos fonctions. C'est ici que vous écrivez le contenu de vos fonctions, ce qui est censé se passer à l'intérieur de ces dernières.</div> | ||
'''fonctions_robot.ccp :''' (pour C plus plus ou C++) regroupe le code à proprement parler, le codage de vos fonctions. | |||
[[Image:Brasgillesfonctions robot ccp.jpg|700px|thumb|center]] | |||
== | == Scénario == | ||
Ouvrir le fichier [http://www.vorobotics.com/uploads/GL/brasmanip/bras_manip_rot_control_bluetooth.zip code source] clic droit "Enregistrer la cible du lien sous ..." | |||
=== - Bibliothèque externes utilisées : === | |||
<div style="margin-left:0cm;margin-right:0cm;"> | <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;"> | <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># | <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <Wire.h> </nowiki>(pour le bluetooth)</div> | ||
=== - Initialisation du système : === | |||
<div style="margin-left:0cm;margin-right:0cm;"> | <div style="margin-left:0cm;margin-right:0cm;">Le bras se trouve en position verticale avec la pince ouverte</div> | ||
<div style="margin-left:0cm;margin-right:0cm;"> | : <div style="margin-left:0cm;margin-right:0cm;">La position de chaque servomoteur est définie en degrés comme suit :</div> | ||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define | :: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_PLATEF 130</nowiki></div> | ||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define | :: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_EPAULE 80</nowiki></div> | ||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define | :: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_COUDE 60</nowiki></div> | ||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define | :: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_POIGNET 15</nowiki></div> | ||
<div style="margin-left:0cm;margin-right:0cm;"> | :: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_ROTPOIGNET 70</nowiki></div> | ||
<div style="margin-left:0cm;margin-right:0cm;"> | :: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_PINCE 90</nowiki></div> | ||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki># | :: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define PINCEOUVERTE POS_INIT_PINCE</nowiki></div> | ||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki># | :: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define PINCEFERMEE 125</nowiki></div> | ||
=== - Programmes : === | |||
<div style="margin-left:0cm;margin-right:0cm;">Commander chaque servomoteur pour aller directement à la position programmée :</div> <div style="margin-left:0cm;margin-right:0cm;"></div> | |||
[[Image:Brasgillesprogbluetooth.jpg|900px|thumb|center]] | |||
<div style="margin-left:0cm;margin-right:0cm;"></div> | == BrasVor == | ||
<div style="margin-left:0cm;margin-right:0cm;">BrasVor est une application développée avec [http://appinventor.mit.edu/explore/ App Inventor] pour être installée sur ma tablette Android.</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Le design de l'application de commande du bras se présente sous cette forme.</div> | |||
[[Image:Brasvorapp.jpg|400px|thumb|center]][[Image:Brasvorblocs.jpg|900px|thumb|center]] | |||
<div style="margin-left:0cm;margin-right:0cm;">L'application BrasVor est téléchargeable ici afin de l'installer sur votre Android : [http://www.vorobotics.com/uploads/GL/brasmanip/BrasVor_bluetooth.apk BrasVor] clic droit "Enregistrer la cible du lien sous ..."</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Pour modifier BrasVor dans App Inventor : [http://www.vorobotics.com/uploads/GL/brasmanip/BrasVor_bluetooth.aia le code source] 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] | |||
= | = BrasVor V2.00 = | ||
Toujours prêt à jouer avec le bras manipulateur et ma tablette Android, je suis parvenu à créer un module APPRENTISSAGE : Il suffit de faire faire des mouvements au bras et d'enregistrer pas à pas ce qu'il doit répéter lorsque que l'on appuie sur le bouton "GO" qui lance les mouvements enregistrés. | |||
== BrasVor V2.00, App Inventor == | |||
Le module rajouté se trouve au bas de l'interface de commande, sur ma tablette android. | |||
[[Image:EcranV2.jpg|400px|thumb|center]] | |||
<div style="margin-left:0cm;margin-right:0cm;">L'application BrasVor V2.00 est téléchargeable ici afin de l'installer sur votre Android : [http://www.vorobotics.com/uploads/GL/brasmanip/BrasVor_bluetooth_V2.apk BrasVor] clic droit "Enregistrer la cible du lien sous ..."</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Pour modifier BrasVor V2.00 dans App Inventor : [http://www.vorobotics.com/uploads/GL/brasmanip/BrasVor_bluetooth_V2.aia le code source] clic droit "Enregistrer la cible du lien sous ..."</div> | |||
== Programmation arduino V2.00 == | |||
Pour enregistrer les pas un à un, un tableau à 2 entrées est utilisée : | |||
- Les différents moteurs en colonne (6 colonnes) | |||
- Les pas en ligne (10 dans le programme mais possibilité de changer). | |||
[[Image:BrasvorV2.jpg|900px|thumb|center]] | |||
Ouvrir le fichier [http://www.vorobotics.com/uploads/GL/brasmanip/bras_manip_rot_control_bluetooth_V2.zip code source] clic droit "Enregistrer la cible du lien sous ..." | |||
= Webographie = | = Webographie = | ||
[https://learn.adafruit.com/16-channel-pwm-servo-driver https://learn.adafruit.com/16-channel-pwm-servo-driver] | |||
[http://fr. | [http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05] | ||
[http://appinventor.mit.edu/explore/ http://appinventor.mit.edu/explore/] | |||
[http://ww2.acpoitiers.fr/sciences-ingenieur-sti/spip.php?article123 http://ww2.acpoitiers.fr/sciences-ingenieur-sti/spip.php?article123] | |||
= | [http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno] | ||
[http://www.mon-club-elec.fr/datasheet/micro_proc/avr/at_mega_328.pdf http://www.mon-club-elec.fr/datasheet/micro_proc/avr/at_mega_328.pdf] | |||
[https://www.arduino.cc/ https://www.arduino.cc/] | |||
[http://fr.wikipedia.org/wiki/Licence_Creative_Commons http://fr.wikipedia.org/wiki/Licence_Creative_Commons] | |||
{{finArticles}} |
Version actuelle datée du 24 février 2019 à 13:43
← Accueil ← Nos Projets Page d'accueil Gilles
Le projet développé est téléchargeable en fichier PDF : brasmanip_pour_pdf clic droit "Enregistrer la cible du lien sous ..."
VoLAB
Assocation VoRoBoTics
Problématique
La partie mécanique est à retrouver sur le site Thingiverse. Les fichiers sont en téléchargement Educational_robot_arm_with_6DOF.
BrasVor est un petit bras robotisé avec 6 servomoteurs 9g et une carte Arduino Uno + une carte contrôleur PWM/servo 16 canaux.
Au départ, le bras était directement commandé par l'ordinateur et le logiciel Arduino. (Voir vidéo). J'ai développé une deuxième version du bras communiquant en bluetooth A l'aide d'un module bluetooth HC-05, une tablette sous Android et une interface créée sous App Inventor.
Dans ce document sont abordés :
- La programmation à l'aide du logiciel Arduino :
- Servomoteur
- La compilation séparée
- Communication Bluetooth
- App Inventor permet de créer des applications Android.
Joël, notre grand président de l’association a développé un bras robot éducatif beaucoup plus abouti à cette adresse : http://www.vorobotics.com/wiki/index.php?title=Bras_Robot_Educatif
Matériel
La maquette proposée n'est qu'un support et le travail peut très bien être transposable sur un autre projet (exemple : une main)
Cartes
La carte Arduino Uno est une carte à microcontrôleur basée sur l'ATmega328 (voir la fiche technique).
La carte contrôleur PWM/servo 16 canaux : L'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.
Logiciels
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
6 Servomoteurs 9g, 4,8 à 6V.
Préparation
Câblage des cartes Uno, du contrôleur PWM/servo 16 canaux et module bluetooth HC-05
Repérage des branchements
En Arduino, la configuration des branchements se traduit par le bloc de code suivant :
#define SERVOPLATEFORME 1 #define SERVOEPAULE 2 #define SERVOCOUDE 3 #define SERVOPOIGNET 4 #define SERVOROTPOIGNET 5 #define SERVOPINCE 6
Programmation
Les premiers essais ont été filmés et la vidéo est présentée à cette adresse :
Programmation des servomoteurs
Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ..."
La librairie externe utilisée pour les servomoteurs
Vérifier en premier la plage de rotation des moteurs
Pour travailler en degrés
La compilation séparée :
- bras_manip_rot_control_bluetooth : programme principal
- paramètre_robot.h : comme le nom l'indique, déclaration des constantes.
- fonctions_robot.h : regroupe les prototypes des fonctions ainsi que les définitions de structures ou de classes
- fonctions_robot.ccp : (pour C plus plus ou C++) regroupe le code à proprement parler, le codage de vos fonctions. C'est ici que vous écrivez le contenu de vos fonctions, ce qui est censé se passer à l'intérieur de ces dernières.
Scénario
Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ..."
- Bibliothèque externes utilisées :
- Initialisation du système :
- La position de chaque servomoteur est définie en degrés comme suit :
- #define POS_INIT_PLATEF 130
- #define POS_INIT_EPAULE 80
- #define POS_INIT_COUDE 60
- #define POS_INIT_POIGNET 15
- #define POS_INIT_ROTPOIGNET 70
- #define POS_INIT_PINCE 90
- #define PINCEOUVERTE POS_INIT_PINCE
- #define PINCEFERMEE 125
- Programmes :
BrasVor
BrasVor V2.00
Toujours prêt à jouer avec le bras manipulateur et ma tablette Android, je suis parvenu à créer un module APPRENTISSAGE : Il suffit de faire faire des mouvements au bras et d'enregistrer pas à pas ce qu'il doit répéter lorsque que l'on appuie sur le bouton "GO" qui lance les mouvements enregistrés.
BrasVor V2.00, App Inventor
Le module rajouté se trouve au bas de l'interface de commande, sur ma tablette android.
Programmation arduino V2.00
Pour enregistrer les pas un à un, un tableau à 2 entrées est utilisée :
- Les différents moteurs en colonne (6 colonnes)
- Les pas en ligne (10 dans le programme mais possibilité de changer).
Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ..."
Webographie
https://learn.adafruit.com/16-channel-pwm-servo-driver
http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05
http://appinventor.mit.edu/explore/
http://ww2.acpoitiers.fr/sciences-ingenieur-sti/spip.php?article123
http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno
http://www.mon-club-elec.fr/datasheet/micro_proc/avr/at_mega_328.pdf
http://fr.wikipedia.org/wiki/Licence_Creative_Commons
Licence
Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.
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
← Accueil ← Nos Projets