Académique Documents
Professionnel Documents
Culture Documents
Présenté par :
SAFAOUI AYMANE
0
REMERCIEMENTS
Au terme de ce projet, nous tenons à exprimer nos sincères remerciements et gratitudes à tous
ceux qui nous ont aidés à le réaliser et qui ont contribué à l'élaboration de ce mémoire ainsi
qu'à la réussite de cette formidable année universitaire.
Nos remerciements s'adressent également aux membres du jury qui ont eu la gentillesse de
nous accorder leur temps afin de lire et corriger ce travail.
Enfin, nous adressons nos plus sincères remerciements à tous nos proches et amis, qui nous
ont toujours soutenus au cours de la réalisation de ce mémoire pour donner de notre mieux et
pouvoir réaliser un projet qui soit à la hauteur de nos espérance.
1
RESUME :
2
SOMMAIRE
Webographie ........................................................................................................................... 46
3
LISTE DES FIGURES
4
INTRODUCTION
Les robots sont devenus un outil éducatif populaire dans certains collèges et lycées, ainsi
que dans nombreux camps d'été pour les jeunes. Ils peuvent susciter l'intérêt dans la
programmation, l'intelligence artificielle et la robotique chez les étudiants
Un robot 6 axes conçu dans le logiciel Catia V5, produit dans l’imprimante 3D
Replicator4X, et commandé à base d’Arduino.
Ce projet est une utilisation et applications des connaissances acquises dans nos
formations. En commençant par une étude de faisabilité, un design, une conception, et puis la
commande. On a pu utiliser la technologie d’impression 3D pour toucher notre projet, et puis
en utilisant une programmation en langage C, une interface graphique de commande,des
servos moteurs commandés à base d’une carte Arduino, notre robot a pu bouger et faire des
tâches et mouvements simulés sur le logiciel Catia. A part qu’il soit un projet didacticiel, Ce
robot est un prototype multifonctions inspirés des leaders mondiaux (Kuka, ABB, Fanuc..)
capable d’effectuer des tâches de manutention, soudage, ou peinture. Avec un total de six
articulations, ce robot est capable d’effectuer des mouvements proches de celle d’un bras
humain mais d’une précision bien plus importante.
A travers ce rapport nous souhaitons présenter notre bras 6 axes multifonction nommé
EXI6, les étapes de conceptions, l’assemblage des pièces, l’impression et la commande. Ce
projet est un robot didacticiel et un prototype à la fois encadré par M.NOUZHA EL
MENNAOUI.
5
Chapitre I : Introduction sur la robotique
1. QU’EST-CE QUE LA ROBOTIQUE ?
La robotique est la science qui s’intéresse aux robots. En fait, il s’agit d’un domaine
multidisciplinaire: on y trouve des aspects concernant la mécanique, l’informatique,
l’électronique, …
La robotique est devenue en quelques années une science importante qui ne cesse
d’évoluer. Les chercheurs parviennent petit à petit à donner à des machines une intelligence
artificielle. Les robots envahissent littéralement notre vie, on les trouve dans des concours,
dans les films de science-fiction et dans tous les autres domaines déjà cités.
L'origine du mot robot est issue du tchèque "robota" qui signifie travail forcé. Le terme
de robotique est apparu en 1942 dans le cycle universellement connu rédigé par Isaac Asimov
et intitulé "Les robots". Un robot est une machine programmable qui imite des actions d'une
créature intelligente. Isaac Asimov a écrit les 3 lois fondamentales de la robotique. Celles-ci
permettent d’éviter que cette science amène l’apocalypse avec elle :
1ère loi : Un robot ne peut porter atteinte à un être humain ni, en restant passif, laisser cet être
humain exposé au danger.
2ième loi : Un robot doit obéir aux ordres donnés par les êtres humains, sauf si de tels ordres
sont en contradiction avec la première loi.
3ième loi : Un robot doit protéger son existence dans la mesure où cette protection n'est pas
en contradiction avec la première ou la deuxième loi.
Les robots prennent actuellement une place importante dans notre vie, on les trouve dans
toutes les entreprises pour accélérer la production ou pour agir là où l'homme ne peut
travailler cause du danger, à la maison pour aider à la cuisine et aux tâches ménagères, à la
guerre (hé oui, un missile, ça peut être considéré comme un robot), dans les services publics :
hôpitaux, casernes de pompiers, la police, au cours de l’histoire, 3 types différents de robots
sont apparus attestant chacun de nouvelles évolutions :
6
Le premier type de machine que l'on peut appeler robot correspond aux "Automates". Ceux-ci
sont généralement programmés à l'avance et permettent d'effectuer des actions répétitives.
Le second type de robot correspond à ceux qui sont équipés de capteurs (les sens du robot).
On trouve tout type de capteurs (température, photo électronique, à ultrasons pour par
exemple éviter les obstacles et/ou suivre une trajectoire). Ces capteurs vont permettre au robot
une relative adaptation à son environnement afin de prendre en compte des paramètres
aléatoires qui n'auraient pu être envisagés lors de leur programmation initiale. Ces robots sont
Donc bien plus autonomes que les automates.
Enfin le dernier type de robot existant correspond à ceux disposant d'une intelligence dite
"artificielle" et reposant sur des modèles mathématiques complexes tels que les réseaux de
neurones. En plus de capteurs physiques comme leurs prédécesseurs, ces robots peuvent
prendre des décisions beaucoup plus complexes et s'appuient également sur un apprentissage
de leurs erreurs comme peut le faire l'être humain. Bien sûr il faudra attendre encore
longtemps avant que le plus "intelligent" des robots ne soit égal, tant par sa faculté
d'adaptation que par sa prise de décisions, à l'Homme. Mais que nous réserve le futur ?
2. HISTORIQUE :
Apparue vers 3500 av. J-C. la roue est considérée comme le premier ouvrage technique
significatif de l’histoire de l’humanité, que ce soit pour les tours de potiers ou pour le
transport.
7
B. L’horlogerie :
Les clepsydres (horloges à eau) furent probablement inventées vers 1600 av. J-C. en
Egypte. De simples bols percés dont l’écoulement régulier permettait une mesure
rudimentaire du temps, elles furent perfectionnées en Grèce quelques siècles avant Jésus
Christ, avant de constituer de véritables automates sophistiqués sous les civilisations chinoises
et arabes du premier millénaire
L’horlogerie est aussi le berceau des premiers automates dont nous avons la trace, le plus
ancien conservé étant le coq automate des Trois Rois de l’horloge astronomique de la
cathédrale Notre-Dame de Strasbourg.[1]
C. Les automates :
Un des automates les plus surprenants est certainement le canard digérateur de Jacques de
Vaucanson (1738). Capable de boire, manger, cancaner et digérer comme un véritable animal,
il fut malheureusement détruit dans un incendie au milieu du XIXème siècle et il n’en reste
que des photographies
8
Figure 1.3 : 1738 Canaed digérateur de
jacques de Vaucanson
D. La cybernétique :
E. L’intelligence artificielle :
9
F. Les rovers :
G. Les animats :
Animaux artificiels, ils sont l’objet d’une branche particulière de la cybernétique dont
l’objectif est de copier les mécanismes du vivant. Si le terme animat ne fut définit qu’en 1985
par S.W. Wilson, en revanche les machines inspirées du vivant ont de tous temps stimulé les
artistes et savants.
On attribue par exemple à Archytas de Tarente (IVème siècle av. J-C.) ce qui est
considéré comme le premier robot de l’histoire de l’humanité, bien avant les premières
horloges et automates dont nous avons des traces physiques : un pigeon de bois capable de
voler, propulsé par de la vapeur. Aucun vestige, aucune photo ou représentation fidèle de ce
mécanisme n’existe toutefois.
10
3. LES ROBOTS INDUSTRIELS :
Un robot industriel est un système polyariticulé à l’image d’un bras humain souvent
composé de 6 degrés de liberté, 3 axes destinés au positionnement et 3 axes à l’orientation
permettant de déplacer et d'orienter un outil (organe effecteur) dans un espace de travail
donné.
On peut distinguer :
4. DOMAINES D'UTILISATION :
Les robots industriels ont d'abord été développés pour intervenir dans les milieux à
risques (nucléaire, forte corrosion...)
Ils servent aussi beaucoup dans le maniement d'objets lourds.
Le petit assemblage de précision sur des petites séries.
11
5. LES ROBOTS SIX AXES :
Un robot 6 axes contient principalement 6 articulations, 6 degrés de liberté.
Précisons la notion d'articulation : Une articulation lie deux corps successifs en limitant
le nombre de degré de liberté de l'un par rapport à l'autre. Soit m le nombre de degré de liberté
résultant, encore appelé mobilité de l'articulation. La mobilité d’une articulation est telle que :
0 ≤ m ≤ 6.
Lorsque m = 1 ; ce qui est fréquemment le cas en robotique, l'articulation est dite simple :
soit rotoïde, soit prismatique.
Remarque : Une articulation complexe, avec une mobilité supérieure à 1, peut toujours se
ramener à une combinaison d'articulations prismatique ou rotoïde. Par exemple, une rotule est
obtenue avec trois articulations rotoïdes dont les axes sont concourants.
12
Chapitre II : Conception, simulation et impression 3D
1- INTRODUCTION :
A travers ce chapitre nous souhaitons vous parler un peu, dans un premier temps, de
notre inspiration, de détailler un peu notre objectif derrière ce projet, présenter les étapes de
conceptions, l’assemblage des pièces, l’impression en 3D, et finalement l’assemblage du
robot.
2- INSPIRATION :
EXI6 est un robot inspiré des leaders mondiaux dans le domaine de la robotique qui ont
marqué l’histoire. Parmi ces robots on trouve : Kuka, ABB, Fanuc, YASKAWA, Stäubli ...
3- OBJECTIF :
Ce projet est une utilisation et applications des connaissances acquises dans nos formations.
En commençant par une étude de faisabilité, un design, une conception, et puis la commande.
On a pu utiliser la technologie d’impression 3D pour toucher notre projet, et puis en utilisant
une programmation en langage C#, une interface graphique de commande, des servos moteurs
commandés et une carte Arduino, notre robot a pu faire des tâches et mouvements simulé sur
13
le logiciel Catia. A part qu’il soit un projet didacticiel, Ce robot est un prototype
multifonctions inspirés des leaders mondiaux (Kuka, ABB, Fanuc..) capable d’effectuer des
tâches de manutention, soudage, ou peinture.
Avec un total de six articulations, ce robot est capable d’effectuer des mouvements proches de
celle d’un bras humain mais d’une précision bien plus importante.
4- CONCEPTION :
L’étape de la conception était très cruciale, vu que c’est un assemblage composé de
plusieurs pièces, plusieurs contraintes étaient en jeu. Au début, on avait essayé de simplifier
les pièces au maximum car on a espérer les fabriqué avec du découpage laser ou en machine
CNC. Mais après un certain temps et à cause de quelques problèmes, on a décidé d’imprimer
le robot en 3D. La décision n’était pas facile car elle avait aussi ses propres contraintes, mais
elle nous a permis d’avoir des pièces beaucoup plus complexe dans un temps plus moins que
dans d’autres procédés.
14
Avoir un montage possible bien ordonné et facile :
15
6- IMPRESSION 3D DU ROBOT :
Impression 3D c’est quoi ?
Qui dit « impression 3D » dit « modèle 3D », tout commence par la conception de l’objet
à partir d’un logiciel de CAO (CATIA, SolidWorks, ProEngineer par exemple). Le fichier 3D
obtenu, le plus souvent au format .STL, est découpé en plusieurs couches via un logiciel
dénommé « slicer » (comme Makerware, Cura ou Repetier), avant d’être envoyé à la machine.
La machine utilisée :
Propriété Mécaniques :
16
Dimensions hors tout: 320 x 466 x 382 mm
Roulements à billes linéaires
Arbres de précision de 8 mm
Assemblée avec une tête réglée en PLA (une seconde tête est livrée avec la machine et
à monter soit même) + Protection en plexiglass
Taille maxi de la pièce imprimable : 225 x 145 x 150 mm
Choix de l'épaisseur des couches : de 0,1 à 0,34 mm (réglable par le logiciel
Replicator G)
Buse de diamètre 0,4 mm
Vitesse: 90mm/s max
Température maximale recommandée extrudeuse: 230°C
Température maximale recommandée pour la platforme de construction: 120 C
Précision de positionnement de 2,5 microns sur l'axe Z et 11 microns sur les axes X et
Y.
17
Figure 2.2 : Les composants d’une Imprimante 3D
Le logiciel 3DS MAX est un outil de modélisation et d'animation 3D, et c’est grâce à ce
logiciel qu’ils peuvent savoir où exactement il faut mette les supports de chaque pièce.
Dans cette étape ils préparent le lit de l’imprimante avec les dimensions réelles, puis ils
cherchent à mettre les pièces dans la meilleure combinaison, pour savoir est ce qu’ils
peuvent imprimer plusieurs pièces à la fois.
18
Figure 2.3 : Les pièces sous le logiciel « slicer »
19
7. ASSEMBLAGE FINALE DU ROBOT :
Tout bras manipulateur est constitué d’un ensemble d’articulation qui permettent de
nombreux mouvements, chaque articulation contient un servomoteur, l'ensemble constitue les
actionneurs.
A. ARDUINO MEGA :
La carte Arduino est le cœur de notre Robot, c’est comme on dit le chef d’orchestre.
a. Vue d'ensemble :
La carte Arduino Mega 2560 est une carte à microcontrôleur basée sur un
ATmega2560, Cette carte dispose :
Elle contient tout ce qui est nécessaire pour le fonctionnement du microcontrôleur. Pour
pouvoir l'utiliser et se lancer, il suffit simplement de la connecter à un ordinateur à l'aide d'un
câble USB (ou de l'alimenter avec un adaptateur secteur ou une pile, mais ceci n'est pas
indispensable, l'alimentation étant fournie par le port USB). La carte Arduino Mega 2560 est
compatible avec les circuits imprimés prévus pour les cartes Arduino Uno, Duemilanove ou
Diecimila.[3]
23
B. Les servomoteurs :
On a utilisé les servomoteurs car ils sont faciles à commander, ainsi qu’ils sont rapide et
pratique
a. Généralités :
Un servomoteur est un type de moteur intégrant dans un même boitier la mécanique (moteur à
courant continu) et l’électronique de contrôle simplifié, généralement asservi en position avec
une limite de débattement d’angle de 180 degrés, mais également disponible en rotation
continue.
Son intérêt est la facilité de commande par un signal numérique externe et la forte
démultiplication que les engrenages intégrés dans son boitier permettent.
Les servomoteurs que nous utilisons sont dits "de modélisme" car ils servent habituellement à
déplacer des pièces (voiles, cabestans, dérives, gouvernes, volets) de modèles réduits, bateaux
ou avions, et sont reconnaissables grâce à leur boitier standardisé, rectangulaire et noir.
24
un réducteur en sortie de ce moteur diminuant la vitesse mais augmentant le couple ;
un potentiomètre (faisant fonction de diviseur résistif) qui génère une tension variable,
proportionnelle à l'angle de l'axe de sortie ;
Alors Récapitulons : Les servos servent à actionner les parties mobiles de notre robot (les
articulations).
b. CONNECTIQUE
Le servomoteur a besoin de trois fils de connexion pour fonctionner. Deux fils servent à son
alimentation, le dernier étant celui qui reçoit le signal de commande :
Nous l’avons vu plus haut, la connectique d’un servomoteur se résume à trois fils : deux pour
l’alimentation positive et la masse et le dernier pour le signal de commande. Rappelons qu’un
servomoteur accepte généralement une plage d’alimentation comprise entre 4.5V et 6V (à 6V
il aura plus de couple et sera un peu plus rapide qu’à 4.5V). Si on a besoin d’utiliser qu’un ou
deux servomoteurs, on peut les brancher sur la sortie 5V de la carte Arduino. Si on veut en
utiliser plus, il serait bon d’envisager une alimentation externe car le régulateur de l’Arduino
n’est pas fait pour délivrer trop de courant, on risque de le cramer. Dans ce cas, il ne faut pas
oublier de relier la masse de l’alimentation externe et celle de l’Arduino afin de garder un
référentiel électrique commun. Le câble permettant le transit du signal de commande du servo
peut-être branché sur n’importe quelle broche de l’Arduino. Cependant lorsque nous
utiliserons ces derniers, les sorties 9 et 10 ne pourront plus fournir un signal PWM (elles
pourront cependant être utilisées comme de simples entrées/sorties numériques). C’est une
des contraintes de la bibliothèque que nous allons utiliser.
Pour utiliser le servo avec Arduino, il va nous falloir générer le signal PPM vu précédemment.
C’est à dire créer un signal d’une fréquence de 50Hz et modifier l’état haut d’une durée
comprise entre 1 et 2ms. Contraignant n’est-ce pas ? Surtout si on a plusieurs servos et tout un
programme à gérer derrière… C’est pourquoi l’équipe d’Arduino a été sympa en
implémentant une classe très bien nommée : Servo. Tout comme l’objet Serial nous permet de
faire abstraction du protocole de la voie série, l’objet Servo va nous permettre d’utiliser les
servomoteurs. Et comme elle est développée par une équipe de personnes compétentes, on
peut l’utiliser facilement car elle est optimisée et sans bugs. Voyons maintenant comme s’en
servir :
26
iii- Integration de la librairie :
Tout d’abord, il nous faut inclure la librairie dans notre sketch. Pour cela nous pouvons au
choix écrire nous même au début du code #include <Servo.h> ou alors cliquer sur library dans
la barre de menu puis sur “Servo” pour que s’écrive automatiquement et sans faute la ligne
précédente. Ensuite, il nous faudra créer un objet de type Servo pour chaque servomoteur que
nous allons utiliser. Nous allons ici n’en créer qu’un seul que j’appellerai “monServo” de la
manière suivante : Servo monServo;. Nous devons lui indiquer la broche sur laquelle est
connecté le fil de commande du servo en utilisant la fonction attach() de l’objet Servo créé.
Cette fonction prend 3 arguments :
Le numéro de la broche sur laquelle est relié le fil de signal
La valeur basse (angle à 0°) de la durée de l’état haut du signal de PWM en
microsecondes (optionnel, défaut à 544 µs)
La valeur haute (angle à 90°, 180°, 360°, etc.) de la durée de l’état haut du signal de
PWM en microsecondes (optionnel, défaut à 2400 µs)
Par exemple, si mon servo possède comme caractéristique des durées de 1ms pour 0° et 2ms
pour 180° et que je l’ai branché sur la broche 2, j’obtiendrais le code suivant :
27
iv- UTILISER LE SERVO :
Une fois ces quelques étapes terminées, notre servo est fin prêt à être mis en route. Nous
allons donc lui donner une consigne d’angle à laquelle il doit s’exécuter. Pour cela, nous
allons utiliser la fonction prévue à cet effet : write().
Cette fonction prend pour argument un nombre, de type int, qui donne la valeur en degré de
l’angle à suivre. Si par exemple je veux placer le bras du servo à mi-chemin entre 0 et 180° :
Pour terminer, voilà le code complet qui nous permettra de mettre l’angle du bras de notre
servomoteur à 90° :
v- Conclusion :
On a vue plus haut comment utiliser, broncher, et commander les servomoteurs via Arduino.
Dans le dernier chapitre, on va détailler notre propre code de commande de ces servomoteurs.
d. Fonctionnement :
Les servomoteurs sont commandés par l'intermédiaire d'un câble électrique à trois fils qui
permet d’alimenter le moteur et de lui transmettre des consignes de position sous forme d’un
signal codé en largeur d'impulsion plus communément appelé PWM. Cela signifie que c'est la
durée des impulsions qui détermine l'angle absolu de l'axe de sortie et donc la position du bras
de commande du servomoteur. Le signal est répété périodiquement, en général toutes les 20
28
millisecondes, ce qui permet à l'électronique de contrôler et de corriger continuellement la
position angulaire de l'axe de sortie, cette dernière étant mesurée par le potentiomètre.
e. La mécanique :
Comme on le voit dans l’image précédente, le servomoteur possède plusieurs pignons
(engrenages) en sortie du petit moteur CC. Cet ensemble est ce qui constitue le réducteur. Ce
réducteur fait deux choses : d’une part il réduit la vitesse de rotation en sortie de l’axe du
servomoteur (et non du moteur CC), d’autre part il permet d’augmenter le couple en sortie du
servomoteur (là encore non en sortie du moteur CC).
Alors, à quoi ça sert de réduire la vitesse et d’augmenter le couple ? Eh bien les moteur CC se
débrouillent très bien pour tourner très vite mais lorsqu’ils font une si petite taille ils sont bien
moins bons pour fournir du couple. On va donc utiliser ce réducteur qui va réduire la vitesse,
car nous n’avons pas besoin d’avoir une vitesse trop élevée, et augmenter le couple pour ainsi
pouvoir déplacer une charge plus lourde. Ceci est prouvé par la formule :
(1)
Le rapport de réduction (R) du réducteur définit le couple et la vitesse de sortie (en sortie du
réducteur) selon la vitesse et le couple d’entrée (en sortie du moteur CC). Ces données sont
souvent transparentes lorsque l’on achète un servomoteur. Dans la quasi-totalité des cas, nous
n’avons que la vitesse angulaire (en degré par seconde °/s ), le couple de sortie du
servomoteur et le débattement maximal (s’il s’agit d’un servomoteur ayant un débattement de
0 à 90°, 180, 360 ou autre). Et c’est largement suffisant étant donné que c’est que ce qui nous
intéresse dans le choix d’un servomoteur. Il y a cependant une unité qui pourra peut-être vous
donner quelques doutes ou une certaine incompréhension. Cette caractéristique est celle du
couple du servomoteur et a pour unité le kg.cm (kilogramme-centimètre). Nous allons tout de
suite rappeler ce que cela signifie. Avant tout, rappelons la formule suivante :
(2) C=F×r
29
qui
donne la relation entre le couple C du servomoteur (en kilogramme mètre), F la force exercée
sur le bras du servomoteur (en kilos) et r la distance (en m) à laquelle s’exerce cette force par
rapport à l’axe de rotation du servomoteur.
Disséquons dans notre langage la signification de cette formule : le couple (C) exercé sur un
axe est égal à la force (F) appliquée au bout du levier accroché à ce même axe. À force
identique, plus le levier est long et plus le couple exercé sur cet axe est important. En d’autres
termes, si le servomoteur dispose d’un bras d’un mètre de long, il aura beaucoup plus de
difficultés à soulever une charge de, disons 10g, que son homologue qui supporte la même
charge avec un bras nettement raccourci à 10 centimètres. Prenons l’exemple de l’un de nos
servomoteurs : Le MG90s.
Sa documentation nous indique que lorsqu’il est alimenté sous 4.8V il peut fournir un couple
(torque en anglais) de 1.8 kgf·cm. C’est à dire, qu’au bout de son bras, s’il fait 1 centimètre,
il pourra soulever une charge de 1.8kg.
Si le bras fait 10 centimètres, vous aurez compris que l’on perd 10 fois la capacité à soulever
une masse, on se retrouve alors avec un poids de 180g au maximum (sans compter le poids du
bras lui-même, certes négligeable ici, mais parfois non).
Voilà une image qui permet d’illustrer un peu notre étude. Bref. Ici, chaque poids représenté
est celui maximum que peut soulever le servomoteur selon la distance à laquelle il est situé. Et
ne vous avisez pas de les mettre tous car votre pauvre servo serait bien dans l’incapacité de les
soulever en même temps. Et oui, malgré le fait qu’il n’y ait que 320g au bout du bras, le servo
voit comme s’il y avait un poids de 3,2kg ! Dans cette situation on aurait trois fois 3,2kg, ce
qui ferait un poids total de 9,6kg ! Impossible pour le servo de ne bouger ne serait-ce que d’un
millimètre (vous risqueriez fort de le détruire d’ailleurs).
30
Tout dépend du diamètre de cet axe. Plus on éloigne le poids de l’axe et plus celui-ci
diminue, et cela fonctionne dans l’autre sens : plus on le rapproche, plus sa valeur maximale
augmente. En théorie, si on se met à 0cm, on pourrait mettre un poids infini. Admettons, plus
rigoureusement, que l’on mette le poids à 1mm de l’axe (soit un axe de diamètre 2mm). Le
poids que le servo pourrait soulever serait de… 10 fois plus ! Soit 18kg !
En conclusion, on peut admettre la formule suivante qui définit le poids maximal à mettre à la
distance voulue :
Avec :
f. MG90S :
31
Caractéristiques techniques
Roulement Oui
Pignon Metal
Taille Standard
g. MG996R:
Ce servo numérique est le plus haut de la gamme de taille standard TowerPro, il est équipé de
pignons métaux et de 2 roulements lui assurant une precision et une longévité sans égale.
32
Caractéristiques techniques
Couple 11 (Kg.cm/6,0V)
Couple 00 (Kg.cm/4,8V)
Poids 55 (g)
Longueur 40 (mm)
Roulement Oui
Pignon Metal
Taille Standard
C. Module Bluetooth :
Afin de commander à distance notre bras, on a pensé à utiliser un protocole Bluetooth.
Le Bluetooth est un protocole de communication sans fil. Il a vu le jour à la fin des années
1990 et n’a vraiment percé que dans les années 2000. Il a subi de nombreuses révisions et
évolutions pour atteindre aujourd’hui la version 4.1 depuis la fin 2013.
À l’origine, la société Ericsson cherchait à développer un moyen d’utiliser une voie série sans
passer par un fil. Petit à petit, ses utilisations se sont étendues pour atteindre ce que l’on
connais aujourd’hui, un moyen de connecter sans fil de nombreux appareils, allant d’une
Arduino et sa voie série à un ordinateur, ou pour utiliser un casque audio ou encore une
manette de jeu sur une console de salon.
33
B. Présentation du module bluetooth HC-05 :
Comme expliqué plus tôt, le module utilisé se nomme HC-05 et est trouvable assez facilement
pour quelques dirhams. Il est aussi gros que le pouce et est en fait un montage d’un module
Bluetooth sur un petit PCB. Cela permet de s’affranchir de certaines contraintes comme la
soudure du module (qui est très délicate), la conversion 5V -> 3.3V, la régulation de
l’alimentation (3.3V de nouveau) ou encore l’ajout de LEDs de signal. Tout cela est déjà
intégré !
Alors que trouvons-nous sur ce module ?
Tout d’abord, un ensemble de broches. VCC et GND pour l’alimentation (5V), Rx/Tx pour la
communication. On y voit aussi une broche “Key” qui servira à envoyer des commandes de
configuration au module (nous y reviendrons plus tard). La dernière broche nommée “Led
permet de brancher une LED pour obtenir un signal sur l’état du module.
34
D. Alimentation du Robot :
a. L’alimentation des servos :
Les servomoteurs accepte une alimentation minimale de 5V, et maximale de 6V.
Notre bras contient 8 servomoteurs, chaque articulation comporte un servomoteur et un 8 eme
se trouve sur la pince,
Si on veut alimenter tous ces servomoteurs, il serait bon d’envisager une alimentation externe
car le régulateur de l’Arduino n’est pas fait pour délivrer trop de courant, on risque de le
cramer. Dans ce cas, il ne faut pas oublier de relier la masse de l’alimentation externe et celle
de l’Arduino afin de garder un référentiel électrique commun.
b. L’alimentation de l’Arduino :
Les sources de 5V sont monnaie courante de nos jours. On en retrouve par exemple
énormément avec tous les appareils mobiles qui demande une alimentation USB pour être
rechargé (chargeur de portable, "power pack" pour faire une batterie d'appoint…).on la relie a
l’Arduino. Pour cela, on va passer au-delà du régulateur et amener directement la tension sur
la borne "+5V" (et bien sûr sur le GND). Il est aussi possible d'adapter un câble USB pour
amener cette tension sur le connecteur USB (et ainsi limiter les erreurs possibles de
branchement). C'est la solution la plus simple.
c. Le problème de déconnexion de l’Arduino :
Comme on a déjà vue auparavant, le servomoteur contient un mini moteur a courant continu.
La caractéristique du couple de ce dernier est la suivante :
35
Caractéristique électrique Couple en
fonction du courant
Alors de cette caractéristique, on peut déduire que le couple est proportionnel au courant
moteur :
Cm = k × Im (1)
K est une constante
Cm : couple moteur
Im : courant moteur
Donc si le couple augmente, le courant aussi augmente. Rappelons la fameuse formule du
couple en coté mécanique :
C=F×r (2)
F est la force appliquée = m x g (donc qui dit force dit poids).
On a r est une constante, donc de même si F augmente c’est-à-dire le poids est important,
automatiquement C augmente aussi :
P=UxI (3)
Quand on a un pique de courant, la tension diminue rapidement et c’est proportionnel au
courant.
Pour notre cas, et si on veut parler seulement du poids du bras, cela nécessite un appel de
courant important. Cela cause la diminution de la tension de l’Arduino jusqu’a une valeur
inferieur a 1, et dans ce cas l’Arduino se déconnecte.
d. Solution :
Alors pour remédier à ce problème on a pensé à plusieurs solutions. (Changer les moteur,
changer les dimensions du robot, changer la matière de construction du robot, utiliser des
alimentations stabilisé …). On a pensé à utiliser un condensateur pour atténuer la chute de
tension qui est dû au pique du courant.
36
Chapitre IV : La partie commande
1. SCHEMA SYNOPTIQUE :
2. COMMANDE LOCALE :
Cette interface nous permettra de commander le bras, plus précisément les servomoteurs de
chaque articulation.
37
a. Visual studio :
38
39
c. Fenêtre concepteur :
40
41
On peut modifier le texte, ajouter des couleurs, des images…
42
d. Fenêtre code :
Les parties de programme :
43
Le bouton stop :
44
3. COMMANDE A DISTANCE :
a) Application Bluetooth :
i. App inventor :
45
ii. Fenêtre concepteur :
46
Les différents screen de notre application :
47
Dans ce 1er screen, on a programmé le bouton 2 :
48
Au cours de ce projet on a découvert et expérimenté toutes les étapes de la
conception et de l’optimisation d’un bras six axes multitâches, de la mécanique jusqu’à
l’électronique, grâce à des tests et expériences. De nombreux choix et interprétations ont
été nécessaires afin de conduire ce projet à son terme tout en respectant les contraintes
qui nous ont étaient données.
Ce travail va représenter une plateforme open source pour les futurs étudiants
qui souhaitent travailler sur le même sujet ou bien ajouter pour des fonctionnalités au
système.
J’espère avoir répondu au mieux aux attentes du projet à travers mes travaux,
mes conclusions et mes réalisations.
49
[1] : https://www.robots.com/faq/show/what-are-six-axis-
robots
[2] : http://www.3ds.com/fr/produits-et-services/catia/
[3] : https://www.arduino.cc/
[4] : http://appinventor.mit.edu/
50