Différences entre les versions de « Bras manipulateur »

De VoWiki
Aller à la navigation Aller à la recherche
 
Ligne 91 : Ligne 91 :
== 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>
<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>
[[Image:BrasgillesIMG 4690.jpg|400px|thumb|center]]
[[Image:BrasgillesIMG 4690.jpg|400px|thumb|center]]



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