Différences entre les versions de « Bras manipulateur »

De VoWiki
Aller à la navigation Aller à la recherche
 
(181 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Brouillon}}


{{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]]


[[Image:]][[Image:]]
<center>'''<big><big>BrasVor</big></big>'''</center>
<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> -->
[[Image:|thumb|<div style="text-align:center;margin-left:0cm;margin-right:0cm;"></div>]]
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 51 : 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 à 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].
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 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].




Dans ce document sont abordés :
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.


La programmation à  l'aide du logiciel Arduino :
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]]
Servomoteur
 
La compilation séparée
 
Communication Bluetooth
 
App Inventor permet de créer des applications Android.


= Matériel =
= Matériel =
Ligne 75 : 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]]


[[Image:]][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.
[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 100 : 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:cablage2cartes.JPG]][[Image:]]
[[Image:Brasgillesbranchementbluetooth.jpg|400px|thumb|center]]


== Repérage des branchements ==
== Repérage des branchements ==


<div style="margin-left:0cm;margin-right:0cm;"></div>
En Arduino, la configuration des branchements se traduit par le bloc de code suivant :


<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOPLATEFORME 1</nowiki></div>
#define SERVOPLATEFORME 1
#define SERVOEPAULE 2
#define SERVOCOUDE 3
#define SERVOPOIGNET 4
#define SERVOROTPOIGNET 5
#define SERVOPINCE 6


<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOEPAULE 2</nowiki></div>
[[Image:BrasgillesIMG 4690.jpg|400px|thumb|center]]


<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOCOUDE 3</nowiki></div>
= Programmation =
 
Les premiers essais ont été filmés et la vidéo est présentée à cette adresse&nbsp;:
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOPOIGNET 4</nowiki></div>
 
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOROTPOIGNET 5</nowiki></div>


<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOPINCE 6</nowiki></div>
[https://youtu.be/ITMu1824J5M https://youtu.be/ITMu1824J5M]
 
= Programmation =


== 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 149 : Ligne 136 :
<div style="margin-left:0cm;margin-right:0cm;"></div>
<div style="margin-left:0cm;margin-right:0cm;"></div>


=== - La compilation séparée : ===
=== La compilation séparée : ===
<div style="margin-left:0cm;margin-right:0cm;">Plusieurs onglets sont ouverts dans Arduino.</div>
<div style="margin-left:0cm;margin-right:0cm;">Plusieurs onglets sont ouverts dans Arduino.</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>
<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>
: <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&nbsp;:''' programme principal</div>
:: <div style="margin-left:0cm;margin-right:0cm;">'''bras_manip_rot_control_bluetooth&nbsp;:''' 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;">[[Image:]]'''fonctions_robot.ccp&nbsp;:''' (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>
:: <div style="margin-left:0cm;margin-right:0cm;">'''fonctions_robot.ccp&nbsp;:''' (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>


<div style="margin-left:0cm;margin-right:0cm;">[[Image:]]</div>
[[Image:Brasgillesfonctions robot ccp.jpg|700px|thumb|center]]


== Scénario ==
== 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 : ===


=== - Initialisation du système ===


<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;"><nowiki>#include <Adafruit_PWMServoDriver.h> </nowiki>(pour servomoteur)</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;"><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>#define POS_INIT_PLATEF 130</nowiki></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;"><nowiki>#define POS_INIT_EPAULE 80</nowiki></div>
=== - Initialisation du système : ===


<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_COUDE 60</nowiki></div>
<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;"><nowiki>#define POS_INIT_POIGNET 15</nowiki></div>
: <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 POS_INIT_ROTPOIGNET 70</nowiki></div>
:: <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 POS_INIT_PINCE 90</nowiki></div>
:: <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 PINCEOUVERTE POS_INIT_PINCE</nowiki></div>
:: <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 PINCEFERMEE 125</nowiki></div>
:: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_POIGNET 15</nowiki></div>


<div style="margin-left:0cm;margin-right:0cm;">- Programmes&nbsp;:</div>
:: <div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define POS_INIT_ROTPOIGNET 70</nowiki></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>#define POS_INIT_PINCE 90</nowiki></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>#define PINCEOUVERTE POS_INIT_PINCE</nowiki></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>#define PINCEFERMEE 125</nowiki></div>


<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <Wire.h> </nowiki>(pour le bluetooth)</div>
=== - Programmes : ===


<div style="margin-left:0cm;margin-right:0cm;">[[Image:progbluetooth.JPG]]Commander chaque servomoteur pour aller directement à la position programmée</div>: <div style="margin-left:0cm;margin-right:0cm;"></div>




<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]


= Licence =
= BrasVor V2.00 =


<div style="margin-left:0cm;margin-right:0cm;"><span style="color:#000000;">Ce document est mise à disposition selon les termes de la&nbsp;</span>[http://creativecommons.org/licenses/by/4.0/ Licence Creative Commons Attribution 4.0 International]<span style="color:#000000;">.</span> </div>
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.


[[Image:]]Parternité 'by' :<span style="color:#252525;">''L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.''</span>
== 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>


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 non une obligation.
== Programmation arduino V2.00 ==


= Bibliographie =
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://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://fr.wikipedia.org/wiki/Licence_Creative_Commons http://fr.wikipedia.org/wiki/Licence_Creative_Commons]
[http://ww2.acpoitiers.fr/sciences-ingenieur-sti/spip.php?article123 http://ww2.acpoitiers.fr/sciences-ingenieur-sti/spip.php?article123]


= Rédaction en langue française =
[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]


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.
[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]


= VoLAB =
[https://www.arduino.cc/ https://www.arduino.cc/]


<div style="margin-left:0cm;margin-right:0cm;">Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 30km au nord-ouest de Paris dans la commune de Vauréal dans l'agglomération de Cergy Pontoise. Il est animé par l'association VoRoBoTics.</div>
[http://fr.wikipedia.org/wiki/Licence_Creative_Commons http://fr.wikipedia.org/wiki/Licence_Creative_Commons]


<div style="margin-left:0cm;margin-right:0cm;">Site internet [http://www.vorobotics.com/ www.vorobotics.com]</div>
{{finArticles}}

Version actuelle datée du 24 février 2019 à 13:43

AccueilNos Projets Page d'accueil Gilles

Bras manipulateur
Brasgillesbras.JPG
Brasgillesinterface.JPG

Le projet développé est téléchargeable en fichier PDF : brasmanip_pour_pdf clic droit "Enregistrer la cible du lien sous ..."

VoLAB

Volab.JPG

Assocation VoRoBoTics

Date : 01/11/2016
Auteur : Lecorsier
Relecteur :
Thème : Robotique
Projet : Bras robotisé, programmation Arduino

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

BRE articulations.png

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).

Brasgillescarte uno.jpg

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.

Brasgilles16pwm.jpg


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


Logiciels

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

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

Brasgillescablage2cartes.jpg
Brasgillesbranchementbluetooth.jpg

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
BrasgillesIMG 4690.jpg

Programmation

Les premiers essais ont été filmés et la vidéo est présentée à cette adresse :

https://youtu.be/ITMu1824J5M

Programmation des servomoteurs

Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ..."

La librairie externe utilisée pour les servomoteurs

#include <Adafruit_PWMServoDriver.h>

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 SERVOCOUDE (3)
Transformation de degrés (0 à 180) en pulse (SERVOMIN à SERVOMAX)
valCoude3 = POS_INIT_COUDE;
pulseLen = map(valCoude3, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(SERVOCOUDE, 0, pulseLen);


La compilation séparée :

Plusieurs onglets sont ouverts dans Arduino.
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.
Brasgillescompilsepare.jpg


bras_manip_rot_control_bluetooth : programme principal
paramètre_robot.h : comme le nom l'indique, déclaration des constantes.
Brasgillesparametres robot h.jpg


fonctions_robot.h : regroupe les prototypes des fonctions ainsi que les définitions de structures ou de classes
Brasgillesfonctions robot h.jpg
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.
Brasgillesfonctions robot ccp.jpg

Scénario

Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ..."

- Bibliothèque externes utilisées :

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

- Initialisation du système :

Le bras se trouve en position verticale avec la pince ouverte
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 :

Commander chaque servomoteur pour aller directement à  la position programmée :
Brasgillesprogbluetooth.jpg

BrasVor

BrasVor est une application développée avec App Inventor pour être installée sur ma tablette Android.
Le design de l'application de commande du bras se présente sous cette forme.
Brasvorapp.jpg
Brasvorblocs.jpg
L'application BrasVor est téléchargeable ici afin de l'installer sur votre Android : BrasVor clic droit "Enregistrer la cible du lien sous ..."
Pour modifier BrasVor dans App Inventor : le code source 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

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.

EcranV2.jpg
L'application BrasVor V2.00 est téléchargeable ici afin de l'installer sur votre Android : BrasVor clic droit "Enregistrer la cible du lien sous ..."
Pour modifier BrasVor V2.00 dans App Inventor : le code source clic droit "Enregistrer la cible du lien sous ..."

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).

BrasvorV2.jpg

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

https://www.arduino.cc/

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.

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