Académique Documents
Professionnel Documents
Culture Documents
Remerciement
Nous avons l’honneur en marge de ce travail d’exprimer nos
profondes gratitudes ainsi que toute nos reconnaissances à notre
Professeur A .Ailaine pour l’intérêt avec lequel il a suivi la
progression de notre travail, ses conseils judicieux, et pour tous les
moyens qu’il a mis à notre disposition...
On sait bien que ça n’a pas été du facile de nous enseigner;
parfois dû à notre manque de base d’autre fois a notre surcharge,
merci de ne pas avoir baissé les bras quand même; de nous avoir
tant soutenu et encourager pour arriver au bout , que Dieu vous
bénisse. Les mots restent incapables de tout exprimer, la langue une
traitre mais Dieu un grand benedicteur qu’il vous bénisse.
Enfin, que toute personne ayant contribuée de près ou de loin à
la préparation de ce travail, trouve ici l’expression de notre profonde
gratitude
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
Résumé :
Abstract :
Mots-clés :
Balancing robot
Pendule inversé
Arduino
PID
Le Robot Mindstorms
Gyroscope
Sensor
Inverted pendulum
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).
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.
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.
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.
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
Chapitre 1
Le modèle du
pendule inverse
(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).
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.
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²
Ep = mgl cos θ
D’où :
On
remplace les
On obtient les deux équations du mouvement grâce aux deux équations ci dessous :
D’où :
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.
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.
Chapitre 2
Analyse
fonctionnelle du
Balancing Robot
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.
Chapitre 3
Choix des
composantes
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.1 Capteur :
Définition :
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.
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
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
Brochage
Caractéristiques
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.
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
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.
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
Rechargeable: chargeable
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
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.
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:
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
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…).
Il faut ensuite écrire les instructions qui seront dans les procédures void setup () et
void loop().
void setup () :
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
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
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.
Annexes
Code source du programme
#include "Wire.h"
#include "nRF24L01.h"
#include "I2Cdev.h"
#include "MPU6050.h"
MPU6050 accelgyro;
#define Gry_offset 0
#define pi 3.14159
long data;
int x, y;
float LOutput,ROutput;
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() {
if (abs(r_angle)<40){
myPID();
PWMControl();
else{
analogWrite(ENA, 0);
analogWrite(ENB, 0);
void myPID(){
preTime = now;
float K = 0.8;
float A = K / (K + dt);
Input = f_angle;
error = Input;
lastErr = error ;
lastTime = now ;
errSum =0;
error =0;
void PWMControl(){
digitalWrite(TN1, HIGH);
digitalWrite(TN2, LOW);
digitalWrite(TN1, LOW);
digitalWrite(TN2, HIGH);
else{
digitalWrite(TN1, HIGH);
digitalWrite(TN2, HIGH);
digitalWrite(TN3, HIGH);
digitalWrite(TN4, LOW);
digitalWrite(TN3, LOW);
digitalWrite(TN4, HIGH);
else{
digitalWrite(TN3, HIGH);
digitalWrite(TN4, HIGH);
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
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)