Vous êtes sur la page 1sur 15

Réalisé par : Encadré par :

-Ayoub Srerho MR.OMAR bouazizi

-Alale lakhal

-Aboubakr Ait Seghir

Classe Date de remise le :

2Ap g2 28/06/2022
Résumé :
Ce mini projet est par objectif d’exploiter les connaissances
qu’on a vues dans les cours de l’informatique industrielle, et à
l’objectif de réaliser un robot suiveur de ligne . Il est composé
de trois grands chapitres ;
Le premier chapitre explique la description du robot
Le deuxième chapitre montre le câblage effectué et les
montages réalisés
Le dernier chapitre contient la programmation
Sommaire :
Résume………………………………………………………………………………………………..2

Introduction…………………………………………………………………………………………4

I) Description du robot…………………………………………………………………………5

1-directions……………………………………………………………………………………..5

2-outils…………………………………………………………………………………………….5

3-support…………………………………………………………………………………………9

II) montages-câblages …………………………………………………………………………..9

1-connexion du circuit pour le pilote de moteur……………………………….9

2-les étapes…………………………………………………………………………………….10

3-annexes……………………………………………………………………………………….10

A* le shéma……………………………………………………………………………….10

B* le code………………………………………………………………………………….10

III) programmation……………………………………………………………………………..11

1-Géneralites ………………………………………………………………………………….12

2-l’ogiciel…………………………………………………………………………………………12

3-l’algorithme………………………………………………………………………………….12

4-constantes du programmation……………………………………………………..12

5-chargement des programmes……………………………………………………….12

6-intoduction à la programmation……………………………………………………13

7-Qu’est-ce qu’un microcontrôleur…………………………………….…………….13

8- Qu’est-ce qu’un programme…………………………………………………………13

Avis et perspectives / Conclusion………………………………………………………14


Introduction :
-Durant la seconde année de notre formation nous sommes amenés à réaliser un projet d'études et
réalisation.

- Les sujets proposés par l'enseignant sont variés et complets. Dans notre cas nous avons préféré
choisir notre propre sujet .C'est à dire un robot suiveur de ligne de petite taille, comme son nom
l'indique il doit pouvoir suivre un parcours en tout autonomie.

- Nous avons comme contrainte un délai de réalisation de 9 semaines et un challenge robotique à


préparer, nous devons également faire attention à notre budget et respecter les consignes du cahier
des charges.

Ce projet sera entièrement réalisé par nos soins de la partie électronique à la programmation en
allant jusqu'à la conception.

-Le but de ce projet était - comme son nom l’indique - de réaliser un robot capable de suivre une
ligne qu’elle soit droite ou courbe. Notre groupe était composé de trois personnes de profil différent
mais tous déterminés à mener à bien ce projet. Nous avons donc décidé de nous répartir le travail en
deux groupes avec des taches bien définies. Nous avions beaucoup à apprendre pour réaliser ce
projet, nos connaissances dans les divers domaines nécessaires étant très limitées. Ce projet s’inscrit
dans le cadre de l’enseignement dispensé aux élèves ingénieurs. Comme mentionné ci-dessus, nous
avons eu beaucoup à apprendre et à mettre en pratique pour ce projet, ce qui a pour but de nous
familiariser avec une situation concrète que nous serons amenés à rencontrer régulièrement dans
notre futur métier. La principale contrainte à laquelle nous avons dû faire face était la taille du robot
et la gestion du temps.

-Un robot suiveur de ligne est un robot qui a pour but de suivre sa ligne à l’aide des
capteurs infrarouges.

Il est très utilisé dans les différents applications dans le domaine industriel .Par
exemple on peut le trouver dans les stocks pour déplacer des produits qui ont un
grand poids.

Parmi les avantages d’un robot suiveur de ligne.

-Une bonne fiabilité mécanique.

-Un faible cout de fabrication.

-Simple pour la réalisation.


I ) DESCRIPTION DU ROBOT :
-Notre robot est un petit véhicule muni de deux roues activées par deux motos réductrices. Il est
piloté par un module programmable auquel on peut adjoindre différents capteurs.

Le module de pilotage dispose de :

• Huit entrées pour des capteurs.

• Quatre sorties annexes qui s’ajoutent à celles utilisées pour la commande des moteurs.

1) direction :
Il peut se déplacer dans toutes les directions.

2) outils: Il est prévu pour accueillir plusieurs outils pour notre robot :

•Détecteur de ligne Un détecteur est un dispositif technique


:
(instrument, substance, matière) qui change d'état en présence de
l'élément ou de la situation pour lequel il a été spécifiquement conçu.

Des fonctions supplémentaires peuvent apporter des précisions


qualitatives ou quantitatives sur la nature du phénomène observé.
•Arduino : Ce sont des cartes électroniques programmables
(donc dotées d'un processeur et de mémoire) sur lesquelles nous
pouvons brancher des capteurs de température, d'humidité, de
vibration ou de lumière, une caméra, des boutons, des
potentiomètres de réglage, des contacts électriques…

• Deux moteurs

•Sparkfun dual H-bridge motor drivers L298 : Le L298 est un


pilote a double pont complet à haute tension et courant élevé conçu pour
accepter les niveaux logiques TTL standard et piloter charges inductives
telles que relais solénoïdes .
•les roues : cercle qui tourne autour d’un axe, disque plein ou évidé
tournant sur un axe et utilisé comme un organe de déplacement
•moteurs
3 ) Support :

II) MONTAGE – CÂBLAGES :

Motoréducteur sur la sortie : moto C (4,5) et Motoréducteur sur la sortie : Moto D (6,7)

1) Connexions du circuit pour le pilote de moteur à pont en H


L298N :
 Les fils du moteur A sont connectés aux bornes 1 et 2 du moteur de L298N,
tandis que les fils du moteur B sont connectés aux bornes 3 et 4 du moteur. IN1,
IN2, IN3 et IN4 sont connectés aux broches 2, 3, 4, 7 respectivement.
 Maintenant, l'activation du moteur A et du moteur B doit être connectée aux
bornes de l'arduino qui ont le signe ~, afin que la vitesse de ces moteurs puisse
être contrôlée à l'aide de PWM. Ici, ils ont été connectés aux broches 5 et 6.
 D'autres connexions ressortent clairement du schéma.

2) Nos etapes :

Étape 1 : Connectez le circuit


Étape 2 : Utilisez l'IDE Arduino pour écrire votre propre code.
Étape 3 : Téléchargez votre code sur l'Arduino et connectez-le aux batteries ou
vous pouvez même utiliser une banque d'alimentation pour faire fonctionner
l'Arduino.
Étape 4 : Testez-le sur un chemin noir.

3) Les annexes :
*a :le shema :

*b) le code :

III) programation :
#define enA 10//Enable1 L298 Pin enA
#define in1 9 //Motor1 L298 Pin in1
#define in2 8 //Motor1 L298 Pin in1
#define in3 7 //Motor2 L298 Pin in1
#define in4 6 //Motor2 L298 Pin in1
#define enB 5 //Enable2 L298 Pin enB

#define R_S A0 //ir sensor Right

void setup(){ // put your setup code here, to run once

pinMode(R_S, INPUT); // declare if sensor as input

pinMode(enA, OUTPUT); // declare as output for L298 Pin enA


pinMode(in1, OUTPUT); // declare as output for L298 Pin in1
pinMode(in2, OUTPUT); // declare as output for L298 Pin in2
pinMode(in3, OUTPUT); // declare as output for L298 Pin in3
pinMode(in4, OUTPUT); // declare as output for L298 Pin in4
pinMode(enB, OUTPUT); // declare as output for L298 Pin enB

analogWrite(enA, 150); // Write The Duty Cycle 0 to 255 Enable Pin A for Motor1 Speed
analogWrite(enB, 150); // Write The Duty Cycle 0 to 255 Enable Pin B for Motor2 Speed
delay(1000);
}
void loop(){
if((digitalRead(R_S) == 1)){forword();} //if Right Sensor and Left Sensor are at White color then it
will call forword function

if((digitalRead(R_S) == 0)){Stop();} //if Right Sensor and Left Sensor are at Black color then it will call
Stop function
}

void forword(){ //forword


digitalWrite(in1, HIGH); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, HIGH); //Left Motor forword Pin
}

void turnRight(){ //turnRight


digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, HIGH); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, HIGH); //Left Motor forword Pin
}

void turnLeft(){ //turnLeft


digitalWrite(in1, HIGH); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, HIGH); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
}
void Stop(){ //stop
digitalWrite(in1, LOW); //Right Motor forword Pin
digitalWrite(in2, LOW); //Right Motor backword Pin
digitalWrite(in3, LOW); //Left Motor backword Pin
digitalWrite(in4, LOW); //Left Motor forword Pin
}
3.1) GÉNÉRALITÉS
La programmation du module de pilotage permet de diriger le robot dans des
environnements variés. Il est possible de créer des programmes simples pour faire évoluer le
robot selon un parcours préétabli, ou plus élaborés grâce à ses différents capteurs qui
fourniront des informations sur l’environnement dans lequel il évolue. On peut à titre
d’exemple créer les programmes suivants :.
• Suivre une ligne.
• Évoluer sur une piste délimitée par des lignes.
• Faire une course de vitesse sur une piste.
• Faire un concours de plots à abattre.
3.1.1) Logiciel de programmation
Pour programmer la carte Aduino, nous avons utilisé le logiciel Arduino prévu à cet effet.
C’est un logiciel libre et gratuit développé pour Windows, Mac et Linux. Ce logiciel présente
une interface épurée et permet de développer facilement des programmes qui peuvent être
transférés sur la carte en branchant celle-ci sur un port USB. Le langage utilisé par le logiciel
est basé sur le C, auquel s’ajoutent des instructions spécifiques au langage Arduino. Le
logiciel dispos d’une banque d’exemple très riche qui permet d’utiliser des morceaux de
codes pré-écrit.
3.1.2) l’algorithme
*les spécifiques du language arduino :
Un programme Arduino doit impérativement être divisé en 2 parties : une fonction setup et
une fonction loop. Ces deux fonctions sont de type void, c’est à dire qu’elles ne peuvent pas
prendre de valeurs. La fonction setup est la fonction qui se lance au début du programme.
Elle permet d’initialiser les variables et de définir les broches de la carte Arduino qui seront
utilisées. La fonction loop se lance après la fonction setup et, comme son nom l’indique, fait
une boucle jusqu’à ce que la carte soit débranchée.
3.1.3) les constantes du programme
Pour notre programme, nous avons utilisé de nombreuses constantes globales, définies en
tout début de programme. Toutes ces constantes sont de type entier. Elles représentent
deux choses : ou bien les valeurs des broches et leur nom associé, ou bien des valeurs de
constantes utilisées dans le programme, comme par exemple le délai de temporisation, la
valeur de seuil de déclenchement du capteur ou bien les différentes vitesses utilisées pour
les moteurs
3.1.4) Chargement des programmes
Les programmes sont transférés en quelque secondes dans le module de pilotage en
connectant l’ordinateur au robot à l’aide d’un câble approprié. Le module reçoit le
programme dans sa mémoire (Flash Prom) et est reprogrammable à volonté.
3.2) INTRODUCTION À LA PROGRAMMATION :
Notre robot est un petit système automatisé dont la simplicité de fonctionnement permet
une approche ludique de l’automatisme.

3.2.1) Qu’est-ce qu’un microcontrôleur :


Un microcontrôleur est un circuit intégré qui contient :
• de la mémoire de programme (qui contient un programme),
• des registres (mémoires) qui contiennent des données temporaires utilisées par le
programme,
• un microprocesseur (qui exécute les instructions du programme),
• des entrées pour connecter des capteurs (micro rupteurs, phototransistors, . . . )
• des sorties pour connecter (en général au travers d’interfaces appropriées) des effecteurs
(moteurs, émetteur ultrason . . .).
3.2.2) Qu’est-ce qu’un programme
Un programme est constitué d’une série d’instructions qui sont interprétées et exécutées les
unes après les autres par le microcontrôleur.
Pour fonctionner, le programme doit être écrit dans un langage compris par le
microcontrôleur. Ce langage obéit à des règles strictes de syntaxe propres au
microcontrôleur.
L’exécution du programme est cadencée par une horloge interne au microcontrôleur. On
peut retenir comme ordre de grandeur que le microcontrôleur utilisé peut exécuter un
million d’instructions de base par seconde.
Le langage de base du microcontrôleur est composé d’instructions rudimentaires (langage
machine ou assembleur). Afin de rendre la programmation plus conviviale, l’environnement
«LOGICATOR» permet de définir un diagramme de programmation. Ce diagramme est dans
un premier temps converti en un langage évolué, puis dans un deuxième temps en langage
machine qui est chargé dans le microcontrôleur.
AVIS et prespectives :
Ayoub Srerho : Ce projet a été pour moi une occasion de découvrir une discipline différente
de ce que j’avais l’habitude d’étudier, car concevoir un robot du début à la fin au sein d’un
groupe restreins a été pour moi un défi très productif. Je retiendrai beaucoup de chose de ce
projet semestriel, mais ce que j’ai le plus apprécié reste la résolution des problèmes que l’on
rencontrai au fur et à mesure de l’avancement de notre robot. Pour ma part, je dois dire que
les travaux manuels inhérents à la réalisation du robot m’ont également beaucoup plus. Ce
fut donc une expérience scientifiques et collective très intéressante.
Alae Lakhal : Ce projet a été pour moi l’occasion de découvrir un milieu qui m’intéresse, à
savoir la robotique. C’est un domaine qui semble compliqué à aborder seul et le fait de
l’avoir fait en groupe et accompagné d’un professeur m’a permis d’apprendre de nombreuse
chose. Je suis très fier du résultat obtenu, qui est le fruit d’un travail de collaboration entre
tous les membres du groupe. Bien que le projet ait été ponctué de haut et de bas, nous
avons su redoubler d’efforts pour parvenir au résultat souhaité, à savoir faire en sorte que
notre robot suive une ligne. Ce projet m’a donc apporté beaucoup : j’ai appris des choses
dans de nombreux domaines, et j’ai su trouver ma place au sein d’un groupe afin d’aboutir à
notre robot.
Aboubakr Ait Seghir : Pendant ce projet, j’ai découvert les principales étapes de la
fabrication d’un robot. J’ai également appris l’importance d’une bonne communication dans
un groupe, surtout quand plusieurs phases de la fabrication sont éffectuées simultanément.
Enfin, j’ai appris à faire face aux imprévus auxquels nous avons dû faire face. H

Conclusion :
A travers ce projet nous avons pu réinvestir la majorité des notions apprises ces 2 années
sein de l’EMSI. En effet ce projet demandait des notions à la fois d'électronique,
d'informatique, et de mécanique, nous avons donc dû faire preuve d'une certaine agilité en
termes de compétences. Le projet nous a également permis de consolider des bases dans
certains domaines ainsi que de découvrir de nouvelles façons de faire ou l'utilisation de
nouveaux outils tel que Orcad que nous n'avions pas encore eu à exploiter. Nous avons été
confrontés à un planning très serré en regard de la charge de travail, mais cela nous a permis
de faire face à la pression par moment et à des situations proches de celles que nous
pourrions rencontrer dans le milieu professionnel. Nous avons quand même quelques
regrets concernant le temps justement car nous avions divers obstacles tout au long du
parcours et certains ne pourront pas être effectués faute de temps. Malgré cela le fait de
mener un projet de bout en bout en partant de zéro a été une expérience enrichissante et
motivante pour nous.
.
On tiens a remercier notre comite de juge et remercier mr « omar bouazizi »pour
cette expérience et pour le soutien dont vous avez fait preuve tout au long de ce
semestre scolaire.
on vous souhaite une bonne continuation et on vous prie de croire, Monsieur omar à
l’expression de notre considération véritable.

Merci .

Vous aimerez peut-être aussi