Différences entre les versions de « Bras manipulateur »
Ligne 1 : | Ligne 1 : | ||
{{Brouillon}} | {{Brouillon}} | ||
[[Image:]][[Image:]] | |||
<div style="text-align:center;">BrasVor</div> | |||
<div style="text-align:center;">Bras manipulateur</div> | |||
[[Image:|thumb|<div style="text-align:center;margin-left:0cm;margin-right:0cm;"></div>]] | |||
= VoLAB = | |||
= Assocation VoRoBoTics = | |||
<div style="margin-left:0cm;margin-right:0cm;">Date : 01/11/2016</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Auteur : Lecorsier</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Relecteur : </div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Thème : Robotique</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Projet : Bras robotisé, programmation Arduino</div> | |||
= Problématique = | |||
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]. | |||
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. | |||
= Matériel = | |||
La maquette proposée n'est qu'un support et le travail peut très bien être transféré sur un autre projet (exemple : une main) | |||
== Cartes == | |||
[http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno La carte Arduino ][http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno Uno][http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno ]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:]][https://learn.adafruit.com/16-channel-pwm-servo-driver La ][https://learn.adafruit.com/16-channel-pwm-servo-driver 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. | |||
<div style="margin-left:0cm;margin-right:0cm;">[http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 Le m][http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 odule bluetooth HC-05], permet de communiquer entre une tablette et la carte Uno.</div> | |||
<div style="margin-left:0cm;margin-right:0cm;"></div> | |||
== Logiciels == | |||
<div style="margin-left:0cm;margin-right:0cm;"><span style="color:#000000;">L</span><span style="color:#000000;">e logiciel Arduino installé (voir : </span><span style="color:#000081;">http://www.arduino.cc/</span><span style="color:#000000;">)</span></div> | |||
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 | |||
[http://appinventor.mit.edu/explore/ 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 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 == | |||
[[Image:cablage2cartes.JPG]][[Image:]] | |||
== Repérage des branchements == | |||
<div style="margin-left:0cm;margin-right:0cm;"></div> | |||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOPLATEFORME 1</nowiki></div> | |||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOEPAULE 2</nowiki></div> | |||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define SERVOCOUDE 3</nowiki></div> | |||
<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> | |||
= Programmation = | |||
== Programmation des servomoteurs == | |||
=== La librairie externe utilisée pour les servomoteurs === | |||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#include <Adafruit_PWMServoDriver.h></nowiki></div> | |||
=== Vérifier en premier la plage de rotation des moteurs === | |||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#</nowiki>define SERVOMIN 150 </div> | |||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#</nowiki>define SERVOMAX 600</div> | |||
=== Pour travailler en degrés === | |||
<div style="margin-left:0cm;margin-right:0cm;">Par exemple le contrôle du Servomoteur SERVOCOUDE (3)</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Transformation de degré (0 à 180) en pulse (SERVOMIN à SERVOMAX)</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">valCoude3 = POS_INIT_COUDE;</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">pulseLen = map(valCoude3, 0, 180, SERVOMIN, SERVOMAX );</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">pwm.setPWM(SERVOCOUDE, 0, pulseLen);</div> | |||
<div style="margin-left:0cm;margin-right:0cm;"></div> | |||
=== - La compilation séparée : Plusieurs onglets sont ouverts dans Arduino === | |||
<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;">[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;">'''paramettre_robot.h :''' comme le nom l'indique, déclaration des constantes.</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> | |||
<div style="margin-left:0cm;margin-right:0cm;">[[Image:]]'''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> | |||
<div style="margin-left:0cm;margin-right:0cm;">[[Image:]]</div> | |||
== Scénario == | |||
=== - 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;">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_PLATEF 130</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 POS_INIT_COUDE 60</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;"><nowiki>#define POS_INIT_ROTPOIGNET 70</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 PINCEOUVERTE POS_INIT_PINCE</nowiki></div> | |||
<div style="margin-left:0cm;margin-right:0cm;"><nowiki>#define PINCEFERMEE 125</nowiki></div> | |||
<div style="margin-left:0cm;margin-right:0cm;">- Programmes :</div> | |||
<div style="margin-left:0cm;margin-right:0cm;">Bibliothèque externes utilisées :</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;">[[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;"></div> | |||
= Licence = | |||
<div style="margin-left:0cm;margin-right:0cm;"><span style="color:#000000;">Ce document est mise à disposition selon les termes de la </span>[http://creativecommons.org/licenses/by/4.0/ Licence Creative Commons Attribution 4.0 International]<span style="color:#000000;">.</span> </div> | |||
[[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> | |||
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. | |||
= Bibliographie = | |||
= Webographie = | |||
[http://fr.wikipedia.org/wiki/Licence_Creative_Commons http://fr.wikipedia.org/wiki/Licence_Creative_Commons] | |||
= 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 = | |||
<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> | |||
<div style="margin-left:0cm;margin-right:0cm;">Site internet [http://www.vorobotics.com/ www.vorobotics.com]</div> |
Version du 3 décembre 2016 à 16:46
[[Image:]][[Image:]]
[[Image:|thumb|
]]
VoLAB
Assocation VoRoBoTics
Problématique
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 à l'aide d'unmodule 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.
Matériel
La maquette proposée n'est qu'un support et le travail peut très bien être transféré sur un autre projet (exemple : une main)
Cartes
La carte Arduino Uno[1]est une carte à microcontrôleur basée sur l'ATmega328 (voir la fiche technique).
[[Image:]]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 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
Repérage des branchements
Programmation
Programmation des servomoteurs
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 : Plusieurs onglets sont ouverts dans Arduino
Scénario
- Initialisation du système
:
Licence
[[Image:]]Parternité '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 non une obligation.
Bibliographie
Webographie
http://fr.wikipedia.org/wiki/Licence_Creative_Commons
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.