Vous êtes sur la page 1sur 47

2 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Remerciement
Nousavonsl’honneurenmargedecetravaild’exprimernos
profondesgratitudesainsiquetoutenosreconnaissancesànotre
ProfesseurA .Ailainepour l’intérêtaveclequelilasuivila
progressiondenotretravail,sesconseilsjudicieux,etpourtousles
moyensqu’ilamisànotredisposition...
O n saitbienqueçan’apasétédu faciledenousenseigner;
parfoisdûànotremanquedebased’autrefoisanotresurcharge,
mercidenepasavoirbaissélesbrasquandmême;denousavoir
tantsoutenuetencouragerpourarriveraubout,queDieuvous
bénisse.Lesmotsrestentincapablesdetoutexprimer,lalangueune
traitremaisDieuungrandbenedicteurqu’ilvousbénisse.
Enfi n,quetoutepersonneayantcontribuéedeprèsoudeloinà
lapréparationdecetravail,trouveicil’expressiondenotreprofonde
gratitude

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


3 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Sommaire
Remerciement................................................................................................................................................................................2
Sommaire................................................................................................................................................................................ ........3
Résumé ...................................................................................................................... ......................................... ...... ...... ..........5
Abstract ............................................................................................................................................................ ...... ...... ............6
Mots-clés ........................................................................................................................ ....................................................;….......7
Chapitre 0 Introduction ..................................................................................................................................................... 8
Introduction générale............................................................................................................................ ...................................8
OBJECTIF ET CONTRAINTES DU PROJET......................................................................................... ............................10
Le Diagramme de Gantt pour la gestion du projet ........................................................................... ...................... 11
Chapitre I Description du modèle et équations du mouvement…...........................................................................13
I.1 Approche physique et schéma d’un pendule inversé..................................... .....................................14
I.2 Démonstration à partir du lagrangien ........................................... ................... ......................................15
I.2 Auto-équilibrage……………………….……………………………..…….................................................................................17
Chapitre III Analyse fonctionnelle balancing robot .…………..…....... ............... ...........................................................21
II.1 Analyse du besoin................................................................................................................ ..............................22
II.2 Fonctions de services .......................................................................................... ...........................................23
II.3 Cahier des charges............................................... ………………………..….................................................................24
Chapitre VI Choix des matériels............................................................... .......................... ........... ..................................25
III.1 Capteur………………………………………………………………….….……………………………………............................………………………26
III.2 Carte de puissance…………………………………………………....…………………………………….. .........................…………………29
III.3 Les moteurs……………………………………………………………..…..…………………………………….......................………………………31
III.4 Carte de commande………………………………………….............…………………………………………............................…………33
III.5 Alimentation……………………………………………………………........………………………………………............................…………….34

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


4 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Chapitre 4- Réalisations et Assemblage....................................................................................................... ............35


4.1 Assemblage ................................................................................. .......................................................................36
4.2 Partie programmation…...................................................................................................…......... ..................37
a) Programmer avec Arduino................................................... ............ ....................................... . .......38
b) Contenu général du code........................................................... ...........................................… ...........40
c) Transfert du programme............................................................... ............ ................................ .........41
e) Organisation du programme ................................................................................ ............ ..... .........42
4.3 Partie électronique ........................................................................................... ..... ........... ........................43
Conclusion ………….…………………………………………………………………. ........................... ..................... ............ ......... ..........44
Annexes……………………………………………………………………………….... ........................... .................. ........... ...........................45
Bibliographie……………………………………………………..….……………….. ........................... ............... ............ .............. ............47
Webographie ……………………………………………………………………...… ........................... ............ ............................ ..............47

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


5 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Résumé :

Les robots a pendule inversé semblent défier les lois de


l’équilibre. Ces derniers sont des objets ou une véhicule minuaritisée
a deux roues peuvent se maintenir à la verticale à l’arrêt sans
action de l’utilisateur.

On propose ici d’étudier comment un tel système peut être


maintenu à l’´équilibre. A cet effet, nous avons pu réalisé ce
projet qui consiste à mettre en évidence nos connaissances en
matières de stabilisation.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


6 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Abstract :

Inverse Pendulum Balancing is a phenomenon that is widespread


in the world around us. The human body is capable of incredibly
precise balancing, thanks to our biological sensors, such as our eyes
and (inner) ears.

In the robot world however, such balancing is actually a fairly


complicated process, and requires advanced sensors and significant
computing power to adjust and balance the pendulum.

This project is our attempt to recreate a smart balancing


robot, and the study of the principles required to effectively
control this robotic system.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


7 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Mots-clés :
 Balancing robot
 Pendule inversé
 Arduino
 PID
 Le Robot Mindstorms
 Gyroscope
 Sensor
 Inverted pendulum

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


8 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Introduction Générale
Les systèmes de commande sont présents partout autour de nous. Ceux-ci sont
utilisés aussi bien dans les produits commerciaux que dans les applications industrielles
et militaires. Traditionnellement, ces systèmes étaient analogiques et leurs différentes
composantes telles que des capteurs, actionneurs et circuits de commande, étaient inter-
reliées par des connexions physiques sur lesquelles des signaux analogiques étaient
transmis.
De nos jours, avec l’évolution des ordinateurs et des technologies de l’information, la
plupart des systèmes de commande sont conçus en tant que systèmes numériques à base
des cartes ARDUINO . Ceci permet donc à leurs différentes composantes d’être reliées
par des connexions logiques sur un réseau de communication.
Actuellement, les robots prennent une place de plus en plus importante, tant dans le
domaine industriel que dans la vie de tous les jours. En effet, le robot que nous devons
réaliser est une copie d'un robot existant, commercialisé et destiné à un jeune publique
(enfant).

L'objectif principal de ce projet est de réaliser un système commandé par un


ARDUINO UNO. Ce dernier sera le cerveau du système, il permettra d'envoyer des
requêtes à la différente composante s constituant le robot.

Le pendule inversé est un pendule qui a une masse au-dessus de son point de pivot.
Il est composé d’un chariot sur 2 roues, pouvant se déplacer horizontalement, sur lequel
se trouve un point de pivot. Alors qu’un pendule normal est stable avec une masse
accroché en bas, le pendule inversé est instable puisqu’une masse est accrochée en haut
de la tige. Il est donc important de trouver le bon équilibre pour que la tige reste droite
tout en faisant avancer ou reculer le chariot.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


9 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Ce bon équilibre ne peut se faire qu’en déplaçant le point de pivot et en


trouvant la bonne masse à placer en haut de la tige. Il existe néanmoins une autre
façon de stabiliser le pendule inversé.
Elle consiste à faire osciller la tige du pendule de haut en bas. Il faut bien entendu
que les oscillations du pendule soient suffisamment fortes pour récupérer les
perturbations. En théorie, il est très simple de comprendre le principe du pendule
inversé. En effet quand le pendule penche vers la droite, le chariot doit le rattraper en
effectuant un mouvement vers la droite, et vice versa.

Mais en pratique, la difficulté est de régler l’intensité et la forme de la réaction du


chariot en fonction de l’angle fait avec la verticale. Le pendule inversé est un problème
classique dans la dynamique et la théorie des commandes. Sa principale utilisation est de
servir de repère pour les algorithmes d’essai de commande.
On peut retrouver ces robots dans la vie quotidienne dans l’utilisation des appareils
électroménagers ou dans les appareils tels que les segways : Le Transporteur Personnel
Segway est un gyropode (véhicule monoplace à deux roues où le conducteur se trouve
debout). L'utilisateur est maintenu en équilibre grâce au modèle du pendule inversé.

Le système de stabilisation d'une fusée ou encore d'un missile (lors du décollage


ou du début de la propulsion) est également une application directe du pendule
inversé. Enfin, il existe d'autres éléments que nous retrouvons dans la vie de tous les
jours, tel que le système tonique postural (c'est à dire le système qui contrôle
l'équilibre de l'être humain). Plus généralement nous pouvons généraliser ce modèle
aux corps qui subissent un état d'équilibre instable.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


10 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Objectif :
Au début, il faut que le pendule soit vertical, à l’équilibre dans sa position instable, La
gravité, ou une autre force affecte son équilibre, et il commence à tomber ,On détecte la
direction du mouvement grâce à un accéléromètre fixé sur le pendule ,Le moteur est
actionné, et remet la pendule à sa position d’équilibre.

Contraintes :
La majeure contrainte qu’on a rencontrée est la stabilité, ou faire démarrer le
système, le choix des composantes a aussi posé des problèmes lors de la conception, il
faut toujours choisir des composantes adéquates entre eux.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


11 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Diagramme de Gannat et organisation du travail :


Pour réussir un tel projet, nous nous sommes fixés des objectifs dès le début.

Objectif au niveau du travail : Notre projet consiste en la fabrication d’un


robot { pendule inversé. Pour se faire, le robot devra être construit et
programmé.

Notre objectif principal est que notre robot fonctionne, c'est-à-dire qu’il n’y
ait pas d’erreurs de fabrication ni de programmation.

Objectif au niveau du groupe : Bien entendu, qui dit projet de groupe, dit
aussi travail de groupe.

Pour nous organiser, nous avons choisi un «leader du projet» : ARRAMAZ


Salim , et nous avons réparti le travail en 4 domaines de responsabilité :

- mécanique : LARHRIB Hamza et ARRAMAZ Salim


- électronique : KHATTAB AMINE ET OUSSAMA ELFAHIMI
- programmation : Chaque membre de projet a pu se lancé pour trouver le
programme adéquat à nos spécifications.
- organisation du rapport : LARHRIB HAMZA & KHATTAB AMINE
-Présentation du PPT : ARRAMZA Salim

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


12 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Nous avons également mis en place un planning afin de conserver des objectifs
de temps :

Séances préparatives

14Mai 21 Mai 28 Mai 4 Juin 8 Juin 10 Juin 12 Juin 14 Juin 16Juin 17 Juin

Fonctions

LEADER

Partie programmation

Partie électronique

Partie mécanique

Responsable rapport

Responsable du PPT

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


13 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Chapitre 1

Le modèle du
pendule inverse

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


14 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

1.1 Approche physique et schéma d’un pendule


inverse.
Un pendule invers´e est un pendule simple ,cependant la masse est situ´ee en l’air.
Le pendule pr´esente une position d’équilibre instable que l’on cherche aà
stabiliser en utilisant un chariot mobile.
Plus simplement,une application du pendule invers´e est le jeu qui consiste a`
faire tenirun balai(la tˆété de celui-ci etant vers le haut)dans la paume de la
main , le plus longtemps possible.

L’´etude du pendule invers´e a plusieurs interˆets:


-L’homme est en fait un pendule invers´e double dont les deux axes de rota- tions
sont les chevilles et les hanches. Afin de detenir debout, les articulations
travaillent sans cesse, et l’etude de ce mod`ele est importante pour la construc-
tion de proth`eses.
-La robotique utilise le principe du pendule invers´e,en particulier dans de
nouveaux moyens de transports `a 2 roues comme lese gway qui permet d’avancer
en se penchant en avant comme nous le verrons dans la suite.

1.2 Démonstration à partir du Lagrangien.


Dans cette partie ,nous cherchons à obtenir les équations du mouvement de la
masse située en l’air a fin de pouvoir corriger ce des équilibre en utilisant le chariot.

Pour toute la démonstration ,on définit les variables suivantes:


–M : la masse du chariot
–m : la masse de la Masse
–l : la longueur de la tige
–x : La position du chariot
–θ :L’angle entre l’axe˙ y et la tige.
–g : La force d’attraction de la pesanteur
–F: Une force extérieur dirigé suivant l’axe ˙x

(Pour le moment ,nous avons admis toutes les notions liées au lagrangien, mais
nous sommes en train d’étudier ces notions afin de pouvoir les démontrer le jour
de l’oral si nécessaire).

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


15 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Afin d’obtenir les équations du mouvement, nous sommes amenés a faire les
hypothèses suivantes:
–La masse M est supposée ponctuelle de masse m en son centre.
–Les deux seules masses considérés sont celles de la masse M de masse m et
celle du chariot C de masse M.
–On considère seulement l’énergie potentielle de la masse M car le chariot est lié
au sol par les roues.
Afin d’obtenir ces équations, on isole l’ensemble (Chariot+Masse) pour calculer
les différentes energies liées à l’ensemble du système.

Soit Ec l’energie cinétique et Ep l’´energie potentielle

L’énergie cinétique se calcule par la somme des différentes ´énergies potentielles liées
aux systèmes qui sont celles de la masse M et du chariot C.

On obtient

Ec = ½ Mv1² + ½ mv2²

Avec v1 la vitesse du chariot et v2 la vitesse de la masse. L’´energie potentielle totale


correspond `a celle crée par la masse m ( puisque que l’on néglige celle du chariot ).
On obtient alors :

Ep = mgl cos θ

On peut alors exprimer le Lagragien :


L = Ec − Ep
On obtient alors finalement :

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


16 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

D’où :

On
remplace les

expressions 1.2 et 1.3 dans l’expression du lagrangien 1.1 et on obtient :

On obtient les deux équations du mouvement grâce aux deux équations ci dessous :

D’où :

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


17 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

On obtient donc comme équations du mouvement :

Figure 1 : pendule inversé

I.3-Auto-équilibrage
PID
L'élément le plus important de tout robot est le contrôleur. Surtout pour un robot d'auto-
équilibrage, le programme de contrôle est vital, car il interprète les données de capteurs et
décide combien les moteurs doivent être déplacés pour que le robot de rester debout. Le
contrôleur le plus couramment utilisé pour les systèmes de stabilisation est le régulateur
PID. Alors regardons comment cela fonctionne:

Le contrôleur PID
PID signifie proportionnelle, intégrale et dérivée, en se référant aux équations mathématiques
utilisées pour calculer la sortie.
Le P-composant prend simplement dans l'angle actuel du robot et rend les moteurs se
déplacent dans la même direction que le robot est en baisse. Par conséquent, la poursuite du
TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016
18 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

robot tombe cible, plus les moteurs se déplacent. Si le P-composant est utilisé seul, le robot
pourrait se stabiliser pendant un certain temps, mais le système aura tendance à dépasser,
osciller et finalement tomber.
I-composant est utilisé pour accumuler les erreurs. Par exemple, si le robot a tendance à
tomber sur un côté, il sait qu'il a besoin de se déplacer dans la direction opposée, afin de
maintenir la sur la cible et pour prévenir la dérive vers la gauche ou la droite.
Enfin, le composant D est chargé d'amortir toute oscillation et assure que le robot ne
vibre pas trop. Il agit tout simplement contre tout mouvement.

Calibrage contrôleur PID


1) Créer une certaine manière dans laquelle vous pouvez modifier la constante PID de
votre robot pendant qu'il est en cours d' exécution. Une option est d'utiliser un
potentiomètre ou une autre entrée analogique pour être en mesure d'augmenter ou
de diminuer la constante PID. J'ai personnellement utilisé la connexion USB et le
moniteur série pour envoyer de nouvelles valeurs PID. Ceci est important car vous
pouvez alors voir tout de suite à quel point les nouvelles valeurs PID sont detravail, et
vous ne devrez pas re-télécharger les centaines de codes de fois!
2) Mettez toutes les constantes PID à zéro. Ceci est aussi bon endroit pour commencer
que tout ...
3) Lentement augmenter la valeur de P-constant. Alors que vous faites cela, maintenez le
robot pour vous assurer qu'il ne tombe pas et casser en mille morceaux! Vous devez
augmenter la P-constante jusqu'à ce que le robot répond rapidement à toute
inclinaison, puis juste rend le dépassement du robot dans l'autre sens.
4) Maintenant augmenter la I-constante. Ce composant est un peu difficile à trouver
à droite. Vous devez garder cela relativement faible, car il peut accumuler deserreurs
très rapidement.

En théorie, le robot doit être capable de se stabiliser avec seulement le P et je


constantes définir, mais oscillera beaucoup et finalement tomber.
TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016
19 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

5) Soulever le D-constant. Beaucoup. Les composants dérivés fonctionne contre tout


mouvement, de sorte qu'il contribue à amortir des oscillations et de réduire
les dépassements
Passez de nombreuses heures infructueuses modifiant légèrement les valeurs PID. Ceci
est probablement la partie la plus longue de la procédure, car il n'y a pas beaucoup
d'une méthode à elle. Vous avez juste à augmenter et diminuer les valeurs jusqu'à ce
que vous atteignez ce sweet-spot parfait pour votre robot!

Le Régulateur RST
+Pourquoi utiliser le correcteur numérique RST ?
Pour assurer et maintenir des performances optimales d’ asservissement / régulation dans
les régimes de fonctionnement variables des systèmes et procédés d’ordre supérieur à 2.
+Quand utiliser le correcteur RST ?
Quand cela est techniquement nécessaire et … économiquement rentable ! Quand le
système est caractérisé par: - un ordre supérieur à 2 (donc possédant plus d’un mode
vibratoire) - dont les caractéristiques dynamiques varient au cours du fonctionnement - à
retard pur important - possédant des zones de non-linéarités (frottements, jeu …) -Et quand
des performances acceptables ne peuvent plus être obtenues avec des correcteurs « classiques
»
+Comment utiliser le correcteur RST ?
- Avec une méthodologie de calcul et d’analyse de régulateurs numériques robustes, associée
à un module d’acquisition temps réel pour les mesures. - Sur tous systèmes de commande
existant (Carte contrôleur, PC, Automate, …). Les "difficultés" d'un asservissement "classique"
- Systèmes à plusieurs modes vibratoires, ordre > 2
- Correcteurs de complexité insuffisante pour appréhender les caractéristiques dynamiques
de nombreux systèmes-et pour satisfaire les performances imposées.
Le nombre de paramètres du correcteur PID, par exemple, est de 4 (Kp, Ti, Td et N) Un tel
correcteur ne peut donc commander un système d'ordre supérieur à 2.
- Variations des caractéristiques dynamiques des systèmes en cours de fonctionnement -
Présence de retards purs importants et variables, de non-linéarités.
- La dynamique de poursuite est identique à celle de réjection de perturbation.
- Une forte accélération de la poursuite va engendrer un fort dépassement de la consigne.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


20 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

- La robustesse est imparfaitement évaluée. Une méthodologie pour un asservissement


performant en 5 étapes:
1- Excitation du procédé: mesures expérimentales sur le système
2- Identification et validation d’un modèle paramétrique échantillonné
3- Calcul, analyse et validation d’un correcteur numérique RST robuste
4- Test en temps réel du correcteur sur le système
5- Intégration du RST sur la cible

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


21 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Chapitre 2

Analyse
fonctionnelle du
Balancing Robot

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


22 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

II.1 Analyse du b esoin


V er b a li s a ti on et s ch ém at is at io n d u b es oi n
La formulation du besoin peut être exprimée en répondant à ces questions :

A qui le produit rend-il Utilisateur:Etudiant-Public


service ?
Dans quel but ? De garder l’équilibre-voir même d’autres fonctions fdans
les perspectives
Sur quoi le produit agit- Centre de gravité
il ?
Tableau 1 : bête à corne

On peut normaliser le besoin sous forme de graphe des prestations ou « bête à corne »
qui traduit le fond, impose la méthode et porte les mêmes informations que la
verbalisation.

Figure 4 : Diagramme ‘’bête à corne ‘’


TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016
23 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

II.2 Fonctions de services :


Définition :
Elles peuvent être classées en 2 catégories :
Fonction principale : FP (aussi appelée fonction d’Interaction FI)
C’est une fonction de service qui justifie la création du projet.
Fonction contrainte: FC (aussi appelée fonction d’adaptation FA)
C’est une fonction de service qui limite la liberté du concepteur.
Pour définir ces fonctions de service, on trace le graphe des interactions.
Diagramme "Pieuvre" ou graphe des interactions
Objectif
Méthode utilisée pour analyser les besoins et identifier les fonctions de service d’un
produit.
Principe
Isoler le produit et recenser les éléments extérieurs au produit.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


24 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Figure 5 : Diagramme ‘pieuvre’

II.3Cahierdescharges:
- Corps du robot animé d'un mouvement de translation (avance, recule, tourner) -
Utilisation d'un Arduino UNO
- Programmation en langage C.
- Transportable (hauteur maximale de 30 cm et poids inférieur à 2 Kg) -
Prix inférieur à 1000dh

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


25 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Chapitre 3

Choix des
composantes

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


26 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Pour procédé notre constitution du projet, il fallait choisir les composantes ou soit
disant le matériel, puisqu’il nous faut un matériel compatible avec la puissance,
l’alimentation, la taille, le fonctionnement et le poids du robot.

3.1Capteur :
Définition :

Un capteur est un dispositif transformant l'état d'une grandeur physique observée


en une grandeur utilisable, telle qu'une tension électrique, une hauteur de mercure,
une intensité ou la déviation d'une aiguille. Le capteur se distingue de l'instrument de
mesure par le fait qu'il ne s'agit que d'une simple interface entre un processus
physique et une information manipulable.

Centrale inertielle (gyromètre, accéléromètre) :

Figure 7: capteur MPU6050

Traditionnellement, le capteur de préférence pour la stabilisation est un


gyroscope. Maintenant-jours gyroscopes sont extrêmement petites et très pas cher à
l'achat, elles sont donc idéales pour les amateurs projets
électroniques. Malheureusement, ces gyroscopes (à la fois les versions pas si bon
marché et bon marché) viennent aussi avec leurs propres problèmes. Ils sont bons
pour court terme et rapides mouvements, mais ont tendance à dériver au fil du temps
que l'erreur accumule.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


27 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Ils enregistrent aussi beaucoup de gigue et du bruit, qui doit être filtré par le
micro-contrôleur avant que les données peuvent être utilisées.

En conséquence , on a décidé d'utiliser un module gyroscope breakout (MPU-


6050), ce qui est légèrement plus cher qu'un gyro simple, mais devrait conduire à une
performance de stabilisation supérieure. Note: le MPU-6050 est livré avec une
bibliothèque qui fait tous les calculs et filtrations pour vous, ce qui est vraiment un
plus!

Le MPU-6050 utilise I 2 C pour communiquer avec la carte Aduino, alors on a


commencé en connectant les broches comme indiqué dans les schémas: la ligne SDA se
connecte à la broche analogique 4, le SCL analogique broche 5, puissance d'entrée à la
broche de 3.3v et le sol à la broche GND.

Il est nécessaire de récupérer l'inclinaison du robot (car une fois les premiers
livrables fait, nous devons ajouter l'option auto-équilibrage du robot). Pour cela, nous
avons opté pour une IMU (Inertiel Mesurent Unit ou centrale inertielle en français)
qui est un composant intégrant au minimum 3 gyromètres et 3 accéléromètres (un
pour chaque axe, x, y, z).
TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016
28 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Ce composant permet de calculer la vitesse angulaire et l'accélération linéaire d'un


objet. Le composant est le GY-521, fonctionnant en I2C ou en SPI, qui est un
composant MEMS, ce qui signifie qu'il est fortement intégré.

Le gyroscope fournit une mesure de la vitesse angulaire (thêta tréma). En


intégrant cette mesure, nous pouvons obtenir la valeur de l'angle de pivotement.
Toutefois, cette opération va intégrer le bruit du système lui-même, accumulant en
quelques itérations, une grande dérive. (kd)

L'accéléromètre mesure les accélérations à la fois statique et dynamique.


Afin de séparer les deux composantes, nous sommes obligés d'utiliser un filtre passe-
bas (ramène la composante statique : gravité) et un filtre passe-haut (accélération
dynamique).

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


29 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

3.2 Carte de puissance :


Description
Le L293D est conçu pour fournir des courants d'entraînement bidirectionnel
jusqu'à 600 mA à des tensions allant de 4,5 V à 36 V.

Le L293D un circuit intégré monolitique, à haut voltage, grand courant et 4


canaux.” Cela veut dire que ce circuit intégré peut être utilisé pour des moteurs DC
alimentés jusqu'à 36 Volts (ce sont déjà des jolis petits moteurs). Le circuit peut
fournir un maximum de 600mA par canal. Le L293D est aussi connu pour être un
excellent Pont-H facile à mettre en pratique.

Les deux dispositifs sont conçus pour piloter des charges inductives telles que les
relais, les solénoïdes, les moteurs pas à pas bipolaire et dc, ainsi que d'autres hauts-
Courant/ charges haute tension dans les applications à alimentation positive. Toutes les
entrées sont compatibles TTL. Chaque sortie est un totem pôle complet du circuit
d'entraînement, avec un transistor darlington pseudoDarlington lavabo et d'une source.
Pilotes sont activés par paires, avec des pilotes 1 et 2 activés par 1,2EN et moteurs 3 et
4 activés par 3,4EN.
Avec deux signaux de commande Input 1 et Input 2 fournit par Arduino (nous
laissons volontairement Enable de côté pour le moment), il est possible d'inverser la
direction du courant dans le pont-H et donc renverser le sens de rotation du moteur
qui y est raccordé.
En utilisant différentes combinaisons de Input 1 et input 2 il devient possible de
démarrer, Stopper ou Inverser le courant

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


30 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Brochage

Caractéristiques

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


31 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

III.3 Les moteurs :


Les moteurs utilisés de manière classique en robotique sont assez diversifiés. Les
plus répandus sont les moteurs "pas à pas", les moteurs "à courant continu" et enfin
les servos bien connus dans le milieu du modélisme.

Il existe bien sûr d'autres moyens de propulser un Robot roulant. Les moteurs
synchrones et asynchrones, par exemple, sont réservés à des puissances électriques
plus importantes et utilisent le courant alternatif. Les moteurs pneumatiques ou
thermiques sont également des solutions.

Figure 11 : moteur à courant continu

Concernant les actionneurs, il y en avait plusieurs à choisir. Les servomoteurs ne


sont pas commandable en vitesse, ne conviennent donc pas pour notre application, les
moteurs pas à pas sont trop lent). Nous avons opté pour des moteurs à courant
continu car ils offrent un couple et une vitesse élevée..

III.4Carte de commande :
Le modèle UNO de la société ARDUINO est une carte électronique dont le coeur
est un microcontrôleur ATMEL de référence ATMega328. Le microcontrôleur
ATMega328 est un microcontrôleur 8bits de la famille AVR dont la programmation
peut être réalisée en langage C.

L'intérêt principal des cartes ARDUINO (d'autres modèles existent) est leur facilité
de mise en oeuvre. ARDUINO fournit un environnement de développement s'appuyant
TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016
32 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

sur des outils opensource. Le chargement du programme dans la mémoire du


microcontrôleur se fait de façon très simple par port USB. En outre, des bibliothèques de
fonctions "clé en main" sont également fournies pour l'exploitation d'entrées-sorties
courantes : gestion des E/S TOR, gestion des convertisseurs ADC, génération de
signaux PWM, exploitation de bus TWI/I2C, exploitation de servomoteurs ... L'objectif
de ce document est de mettre en évidence certaines informations techniques
concernant l'exploitation des périphériques intégrés, en particulier lorsqu'on n'utilise
pas les fonctions "clé en main" d'ARDUINO, dans l'objectif de comprendre comment ça
marche

Schéma simplifié de la carte Arduino UNO

Les signaux d'entrée-sortie du microcontrôleur sont reliés à des connecteurs selon le


schéma
cidessous.

III.5Alimentation :
TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016
33 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Le robot a besoin d’une batterie comme source d’énergie pour fonctionner .Les
caractéristiques principales d'une batterie sont sa tension de sortie, sa capacité et sa
résistance interne.

Figure 14 : batterie 12V

Après une recherche approfondie sur les types de batteries, on a conclu finalement
que le Expert POWER est le convenable pour notre robot .Ce dernier présente une
faible résistance interne ce qui permet de délivrer de fortes quantités de courant, elle
est rechargeable et délivre des courants supérieurs à ceux obtenus. Sa recharge est
rapide mais elle se décharge toute seule lorsqu'elle est inutilisée. Attention à prendre
en compte la chaleur qu’elle dissipe durant son utilisation.

Caractéristiques :
Type: Batteries plomb-acide

Usage: UPS, alimentation électrique, éclairage

Tension nominale: 12V

Capacité nominale: 1.3ah

Forme: Batterie carrée

Rechargeable: chargeable

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


34 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Chapitre 4

Réalisation-
Assemblage

4-1-Assemblage :
Jusqu’a présent, nous avons examiné tous les sujets individuels derrière robots
auto-équilibrage. Dans cette dernière partie de ce tutoriel, je vais mettre tous

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


35 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

ensemble et vous donner quelques lignes directrices pour la conception et l'assemblage


de votre propre robot.

Concevoir le robot
Répartition du poids: robots auto-équilibrage fonctionnent sur le principe d'un
pendule inversé. Cela signifie que le système est plus stable lorsque la totalité de la
masse est placée le plus haut possible. Cela semble aller à l' encontre du bon
sens;habituellement les systèmes sont plus stables quand ils ont un centre de gravité
bas.Dans ce cas , en gardant la masse au - dessus augmente l'inertie du système, ce
qui signifie que le robot a plus de temps pour répondre aux changements dans
l'équilibre. Par conséquent , ma première recommandation est de placer les objets
lesplus lourds, tels que la batterie, au sommet du robot.

Capteur de positionnement: Le positionnement du module accéléromètre / gyroscope


est également important. Quand je démontrer mon robot de l' équilibre à la Maker
Faire Dublin cette année, je demandai à un certain nombre de gens là où ils pensent
que le capteur doit être positionné. La plupart deviné qu'il devrait être sur ledessus,
car cela est où il enregistrerait la plus grande quantité de mouvement!

Nous voulons vraiment éviter autant de ce mouvement de translation que


possible, comme nous sommes seulement intéressés par la rotation du robot. Par
conséquent, le capteur doit être placé exactement sur l'axe de rotation, entre les deux
roues.Placer le capteur plus haut sur le cadre introduit du bruit et de la gigue dans les
lectures, et peut provoquer une boucle de rétroaction (semblable au bruit grinçant fait
quand un microphone est trop près de son propre haut-parleur).

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


36 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

4-2-Partie programmation :
Initiation à la mise en œuvre matérielle et logicielle de l’Arduino

L’Arduino est une carte électronique en Matériel Libre pour la création artistique
interactive. Elle peut servir:

1/ pour des dispositifs interactifs autonomes simples

2/ comme interface entre capteurs/actionneurs et ordinateur

3/ comme programmateur de certains microcontrôleurs.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


37 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

L’Arduino est une carte basée sur un microcontrôleur (mini-ordinateur) Atmel


ATMEGA8 ou ATMEGA168. Elle dispose dans sa version de base de 1 Ko de mémoire
vive, et 8Ko de mémoire flash pour stocker ses programmes.

Elle peut être connectée à 13 entrées ou sorties numériques, dont 3 PWM (pouvant
donner 3 sorties analogiques : cf http://fr.wikipedia.org/wiki/PWM) et 6 entrées
analogiques convertissant en 10 bit. Dans la version la plus courante, la communication
avec l’ordinateur se fait par un port USB. Il existe plusieurs versions de l’Arduino, dont
une version miniaturisée, et d’autres projets sont également en gestation. La carte
dispose d’un logiciel système interne (modifiable) et des programmes utilisateur.

Environnement logiciel
L'environnement de programmation Arduino (IDE en anglais) est une application
écrite en Java inspirée du langage Processing. L'IDE permet d'écrire, de modifier un
TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016
38 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

programme et de le convertir en une série d'instructions compréhensibles pour la


carte.

Contenu général du code


Cette méthode employée pour l'asservissement utilise trois correcteurs qui doivent
permettre de réaliser le meilleur compromis possible entre précision, stabilité et
rapidité du système. Elle se sert de l'erreur (la différence entre la consigne, valeur
renvoyée par le potentiomètre l’équilibre, et la mesure) pour faire ces trois
correcteurs. Elle est essentielle l'optimisation du fonctionnement de notre robot à
pendule inversé. Dans un premier temps, il fallait définir les constantes et variables du
programme qui représentent les éléments connectés aux broches numérotées de la
carte Arduino (LED, interrupteur…).

On leur assigne ou non une valeur qui correspond la broche laquelle l’élément est
relié et on indique devant son nom son type (int, float, double…).

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


39 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Il faut ensuite écrire les instructions qui seront dans les procédures void setup () et
void loop().

void setup () :

Dans cette procédure, on configure en entrée (INPUT) ou en sortie (OUTPUT) les


éléments connectés aux broches de la carte. Il faut avoir au préalable défini les
variables et constantes leur correspondant. On peut également y décider si l’on veut
que les valeurs de certains paramètres apparaissent sur l’écran grâce la commande :
Serial. Begin ()

void Loop () :

Dans cette boucle, ce sont les interactions et les comportements des éléments
branchés la carte Arduino qui sont définis. Les opérations effectuées sont écrites dans
l’ordre dans lequel elles doivent être réalisées.

Transfert du programme
Après sa rédaction puis sa compilation, le programme réalisé avec le logiciel Arduino
est envoyé sur la carte via un câble USB. Lorsque deux LED de la carte clignotent deux
fois, cela signifie que le programme a été charge.

4-3-Partie électronique :
On réalise le brochage suivant le schéma ci-dessous

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


40 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


41 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Conclusion
Malgré la courte période de notre preparation qui ne s’étale que sur 6 semaines. Le
travail présenté dans ce rapport de projet, porte, destiné pour la programmation et le
choix dcapteurs convenables ensuite.

Cause du temps nous n’avons pas pu approfondir ce sujet, pour cette raison ne
avons pas entamé la partie de câblage pratique des équipements matérielles

Ce projet nous a beaucoup appris tant au niveau professionnel qu’au niveau


personnel et c’était l’occasion pour découvrir ce vaste monde de robotisation et de
toucher l’importance et le rôle culminant de chaque élément pour un résultat
favorable et satisfaisant.

Après la rapide intégration de l’équipe, on a eu l’occasion de réaliser plusieurs


tâches qui ont constitué une mission de projet globale. Chacune de ces tâches utiles au
service et au bon déroulement de l’activité de robot.

On garde du projet un excellent souvenir, il constitue désormais une expérience


professionnelle valorisante et encourageante pour mon avenir c’était une très bonne
occasion du côté professionnel et personnel surtout par le contact avec différentes
catégories du service.

En fin, nous tenons encore une fois à renouveler nos chaleureux remerciements à
toute personne qui nous a aidés pour accomplir ce travail et plus précisément tous les
personnels du service d’expédition.

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


42 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Annexes
Code source du programme

#include "Wire.h"

#include "nRF24L01.h"

#include "I2Cdev.h"

#include "MPU6050.h"

MPU6050 accelgyro;

int16_t ax, ay, az;

int16_t gx, gy, gz;

#define Gry_offset 0

#define Gyr_Gain 0.00763358

#define Angle_offset 2.23

#define RMotor_offset 13.0

#define LMotor_offset 13.0

#define pi 3.14159

long data;

int x, y;

float kp, ki, kd;

float r_angle, f_angle, omega;

float LOutput,ROutput;

unsigned long preTime = 0;

float SampleTime = 0.08;

unsigned long lastTime;

float Input, Output;

float errSum, dErr, error, lastErr;

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


43 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

int timeChange;

int TN1=3;

int TN2=4;

int ENA=9;

int TN3=5;

int TN4=6;

int ENB=10;

void setup() {

Wire.begin();

accelgyro.initialize();

pinMode(TN1,OUTPUT);

pinMode(TN2,OUTPUT);

pinMode(TN3,OUTPUT);

pinMode(TN4,OUTPUT);

pinMode(ENA,OUTPUT);

pinMode(ENB,OUTPUT);

Serial.begin(115200);

void loop() {

accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

r_angle = (atan2(ay, az) * 180 / pi + Angle_offset); Serial.print(" r_angle="); Serial.print(r_angle);

omega = Gyr_Gain * (gx + Gry_offset); Serial.print(" omega="); Serial.print(omega);

if (abs(r_angle)<40){

myPID();

PWMControl();

else{ analogWrite(EN

A, 0);

analogWrite(ENB, 0);

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


44 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

void myPID(){

kp = 25.0; Serial.print ( "kp ="); Serial.print (kp); // 20

kd = 4.0; Serial.print ( "kd ="); Serial.print (kd); // 1000

ki = 0.1; Serial.print(" ki=");Serial.print(ki);

unsigned long now = millis();

float dt = (now - preTime) / 1000.0;

preTime = now;

float K = 0.8;

float A = K / (K + dt);

f_angle = A * (f_angle + omega * dt) + (1 - A) * r_angle; Serial.print(" f_angle=");Serial.print(f_angle);

timeChange = (now - lastTime);

if(timeChange >= SampleTime){

Input = f_angle;

error = Input;

errSum += error * timeChange;

dErr = (error - lastErr) / timeChange;

Output = kp * error + ki * errSum + kd * dErr;

LOutput = Output ; Serial.print(" LOutput=");Serial.print(LOutput);

ROutput = Output ; Serial.print(" ROutput=");Serial.println(ROutput);

lastErr = error ;

lastTime = now ;

errSum =0;

error =0;

void PWMControl(){

if(LOutput > 0){

digitalWrite(TN1, HIGH);

digitalWrite(TN2, LOW);

else if(LOutput < 0){

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


45 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

digitalWrite(TN1, LOW);

digitalWrite(TN2, HIGH);

else{

digitalWrite(TN1, HIGH);

digitalWrite(TN2, HIGH);

if(ROutput > 0){

digitalWrite(TN3, HIGH);

digitalWrite(TN4, LOW);

else if(ROutput < 0){

digitalWrite(TN3, LOW);

digitalWrite(TN4, HIGH);

else{

digitalWrite(TN3, HIGH);

digitalWrite(TN4, HIGH);

analogWrite(ENA, min(255, abs(LOutput) + LMotor_offset));

analogWrite(ENB, min(255, abs(ROutput) + RMotor_offset));

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016


46 Réalisation du projet : Balancing Robot 2éme Année cycle ingénieur : GE

Webographies

https://openclassrooms.com/forum/sujet/arduino-utiliser-un-gy-521-mpu6050-et-un-l298n

https://fr.wikipedia.org/wiki/Pont_en_H#Utilisation_avec_les_moteurs_.C3.A0_courant_continu

http://makezine.com/projects/arduroller-self-balancing-robot/ http://forum.arduino.cc/index.php?

topic=60170.0 http://forum.arduino.cc/index.php?topic=292339.35;wap2

Bibliographies

Begining Arduino by Michael McROBERTS (2010)

Atelier Arduino – Initiation à la mise en œuvre matérielle et logicielle de l’Arduino par Jean-Noël
MONTAGNE

Arduino Starter Kit Manual - A Complete Beginners Guide to the Arduino by M. R. McROBERTS (2009)

Photos prises par nous-mêmes

TP&Cours encadrés par Mr.Dr Ailaine Abdellah Année universitaire 2015-2016