Bras manipulateur

De VoWiki
Aller à la navigation Aller à la recherche

AccueilNos Projets

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

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

#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.acpoitiers.fr/sciences-ingenieur-sti/spip.php?article123

Licence

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

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

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

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 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.
Site internet www.vorobotics.com