Vous êtes sur la page 1sur 71

ECOLE SUPERIEURE DE TECHNOLOGIE

- KENITRA

Mémoire de Projet de Fin d’Études présenté à

L’ECOLE SUPERIEURE DE TECHNOLOGIE DE KENITRA

Filière : « Electronique Embarquée pour l’Automobile »

Réalisé par

HAITHAM MESRAR

MOHAMMED REDA ZAKKAR

ZAKARIAE TAIDI

Sous le thème

ROBOT VOITURE EVITANT LES OBSTACLES

Soutenu le 06 Juin 2022 devant le jury composé de :

Pr. A. MEZOUARI Président.


Pr. A.ZEMMOURI Examinateur.
Pr. K.CHARAFEEDINE Encadrant.

Année Universitaire : 2021/2022


REMERCIEMENT

Nous tenons à remercier au premier lieu le Dieu tout puissant de nous avoir
accordé la force et le courage de mener ce travail à terme

Nous tenons à adresser nos sincères remerciements à notre encadrant pour le


thème, Mme KENZA CHARAFFEDINE pour la disponibilité, soutient, lecture,
suggestion et remarques et surtout pour la confiance sans limite mise en nous
tout au long de ce projet.

Veuillez agréer le témoignage de notre profonde gratitude et de notre respect.

Nous présentons également nos sincères remerciements à toute l’équipe


pédagogique de l’école supérieure de technologie Kenitra.
Nous remercions particulièrement nos familles pour leurs soutiens moraux Pour
ce travail, et de nous avoir encouragés, et cru en nous.

Nous remercions aussi nos amis, nos camarades de classe, qui nous ont
encouragés tout au long du projet et qui nous ont été très utiles.

Enfin, nos remerciements aux membres de jury qui ont fait l’honneur d’accepter
de juger ce modeste travail.

Page | 1
TABLE DES MATIERES
TABLE DES MÉTIERS............................................................................................... 2
TABLE DES FIGURES ............................................................................................... 5
CHAPITRE 1: INTRODUCTION ................................................................................ 6
GENERALE .............................................................................................................. 6
1. Généralités Sur Les Robotiques: ..................................................................... 6
2. Généralités Sur Les Systèmes Embarqués: ..................................................... 8
3. Utilisation Des Systèmes Embarquées Dans le secteur automobile: ............ 10
CHAPITRE 2: ......................................................................................................... 13
ETUDE FONCTIONNEL DU PROJET ....................................................................... 13
4. Introduction: ................................................................................................. 13
5. Description Du Système: ............................................................................... 13
6. Faisabilite: ..................................................................................................... 14
7. Graphe Des Interacteurs: .............................................................................. 14
8. Cahier De Charge: ......................................................................................... 16
9. Grafcet Fonctionnel Du Projet: ..................................................................... 16
10. Schema Synoptique Du Projet: ..................................................................... 18
11. Devis: ............................................................................................................. 19
CHAPITRE 3: ......................................................................................................... 20
PARTIE HARDWARE ............................................................................................. 20
12. Introduction: ................................................................................................. 20
13. La Carte Arduino: .......................................................................................... 20
13.1. Comparaison Entre Arduino Et Raspberry Pi ....................................... 21
13.2. Choix Du Type De La Carte :................................................................. 24
13.3. Composants De La Carte Arduino UNO : ............................................. 25
14. Moteur DC:.................................................................................................... 26
14.1. Généralité Sur Les Machines A Courant Continue : ............................ 26
14.2. La différence entre un Moteur DC et AC : ........................................... 27

Page | 2
14.3. La constitution d’un Moteur DC : ........................................................ 28
14.4. Fonctionnement D’un Moteur DC ....................................................... 28
15. Capteur Ultra-son:......................................................................................... 31
15.1. Choix Du Capteur Ultra-son : ............................................................... 31
15.2. Principe De Fonctionnement Du Capteur Ultra-son : .......................... 32
16. Servo-Moteur: ............................................................................................... 34
16.1. Composition D’un Servomoteur : ........................................................ 34
16.2. Principe de fonctionnement d’un servomoteur : ................................ 35
17. Capteur Infrarouge:....................................................................................... 36
17.1. Caractéristiques : ................................................................................. 36
17.2. Composition d’un Capteur Infrarouge : ............................................... 37
18. Module Bluetooth: ........................................................................................ 38
18.1. Composition D’un Module Bluetooth:................................................. 38
19. Moteur Driver: .............................................................................................. 39
19.1. Principe De Fonctionnement : ............................................................. 39
20. Module Chargeur De Batterie Lithium-Ion: .................................................. 40
21. Batterie Lithium-Ion : .................................................................................... 41
CHAPITRE 4: ......................................................................................................... 42
ETAPES DE REALISATION DU MONTAGE ............................................................. 42
22. Schéma Du Montage: .................................................................................... 42
23. Etapes De Réalisation Du Montage : ............................................................. 43
CHAPITRE 5: ......................................................................................................... 47
PARTIE SOFTWARE: ............................................................................................. 47
24. Introduction : ................................................................................................ 47
25. Langage C / Embedded C: ............................................................................. 48
26. Arduino IDE : ................................................................................................. 49
27. Libraires : ....................................................................................................... 50
28. Organigramme algorithmique:...................................................................... 51
29. Programmation : ........................................................................................... 52
Chapitre 6 : .......................................................................................................... 57
Page | 3
Résultat Et Amélioration...................................................................................... 57
30. Planning suivit : ....................................................................................... 57
31...................................................................................................................... 59
32. Future Améliorations : .................................................................................. 60
32.1. Reinforcement Learning : .................................................................... 60
32.2. Q-learning : .......................................................................................... 61
Conclusion Générale............................................................................................ 69

Page | 4
TABLE DES FIGURES

Figure 1: Prototype UNIMATE ............................................................................... 7


Figure 2: Photo De George Devol .......................................................................... 8
Figure 3: D-17 d'Autonetics ................................................................................... 9
Figure 4: Graphe Des Interacteurs ...................................................................... 15
Figure 5: Grafcet Fonctionnel De Notre Robot Evitant Les Obstacles ................. 17
Figure 6: Schéma Synoptique De Notre Robot .................................................... 18
Figure 7: Carte Arduino Uno................................................................................ 21
Figure 8: Carte Raspberry Pi 4 ............................................................................. 22
Figure 9: Les Composants De La Carte Arduino Uno ........................................... 25
Figure 10: Moteur DC .......................................................................................... 27
Figure 11: Schéma Electrique Du Pont H............................................................. 30
Figure 12: Capteur Ultrason ................................................................................ 31
Figure 13: Principe De Fonctionnement Du Cpteur Ultrason.............................. 32
Figure 14: Les Composants Du Servo Moteur ..................................................... 34
Figure 15: Signal de Commande Du Servo Moteur ............................................. 35
Figure 16: Capteur Infrarouge ............................................................................. 36
Figure 17: Les Composants Du Capteur Infrarouge ............................................ 37
Figure 18: Module Bluetooth .............................................................................. 38
Figure 19: Driver Moteur Et Ses E/S .................................................................... 39
Figure 20: Module Chargeur Du Batterie Li/Ion .................................................. 40
Figure 21: Batteries Li/Ion ................................................................................... 41
Figure 22: Schema Du Montage De Notre Robot ................................................ 42
Figure 23: Arduino IDE......................................................................................... 50
Figure 24: Diagramme Algorithmique Du Robot Evitant Les Obstacles .............. 52
Figure 25: Equation De BELLMAN ....................................................................... 66
Figure 26: Algorithme De Q-Learning .................................................................. 67

Page | 5
CHAPITRE 1: INTRODUCTION
GENERALE

1. Généralités Sur Les Robotiques:

Le concept de robot date de plusieurs siècles, mais le terme robot fut


inventé par le tchèque Karel Capek dans une pièce de théâtre écrite en
1920: "RUR ou les robots universels de Rossum". Ce terme est dérivé du
verbe tchèque "robota" signifiant travail forcé ou corvée.
Il est certain que depuis fort longtemps, les réalisateurs d'automates ont
cherché à pouvoir insuffler à leurs machines des comportements adaptés
aux circonstances. Malheureusement, jusqu'au vingtième siècle, les
techniques étaient trop primitives pour permettre de telles réalisations. Il
fallut attendre 1959 pour que Georges Devol invente une machine originale,
polyvalente et reprogrammable, ce qui a permis au robot d'acquérir une
réalité industrielle. Mais en fait ce ne fut que vers la fin des années 1970 que
les robots industriels de première génération ont vu le jour (figure ci-
dessous).
Depuis l’apparition des premiers robots industriels, leur essor a été
considérable, et chaque année de nouveaux secteurs industriels s'ouvrent à
la robotisation au fur et à mesure que les équipements se diversifient,
deviennent plus adaptables et surtout meilleur marché. Les robots sont
devenus tellement indispensables dans certains secteurs industriels

Page | 6
(l'automobile par exemple), que leur emploi conditionne la survie
économique des entreprises. Il devient donc important de maîtriser leur
technologie.
Le terme robot peut désigner une large variété de réalisations
technologiques, allant du simple dispositif mécanique exécutant des
mouvements répétés, aux machines analogues morphologiquement aux bras
humains et possédant une certaine intelligence.
A titre d'anecdote, la firme Unimation qui construisit le premier robot vers
1960, était pratiquement la seule sur le marché américain quinze ans après,
et n'avait commercialisé que 1000 robots. Alors que le JIRA (association
japonaise de robotique industrielle) annonçait en 1975 65000 robots ?! Il
s'est avéré par la suite que ce que les uns désignaient par simple
automatisme, les autres l'appelaient robot!
Aujourd’hui il existe au Japon plus de 15000 robots industriels, soit environ
près du tiers du parc mondial.

Figure 1: Prototype UNIMATE

Page | 7
Figure 2: Photo De George Devol
Avec Le Premier Robot Industriel.

2. Généralités Sur Les Systèmes Embarqués:

Un système embarqué est un système électronique et informatique


autonome ne possédant pas des entrées/sorties standards comme un clavier
ou un écran d'ordinateur. Il est piloté dans la majorité des cas par un logiciel,
qui est complètement intégré au système qu'il contrôle.
On peut aussi définir un système embarqué comme un système électronique
soumis à diverses contraintes. Les concepteurs des systèmes électroniques
sont aujourd'hui confrontés à la complexité croissante des algorithmes mis
en oeuvre et à la variété des cibles potentielles FPGAs et/ou DSPs.
Actuellement, il n'est pas rare que ces systèmes intègrent plusieurs
douzaines voire des centaines de processeurs. A l'origine, ce sont des
systèmes matériels et logiciels intégrés dans des avions militaires ou des
missiles. Ensuite dans le civil: avions, voitures, machine à laver...! La machine
et le logiciel sont intimement liés et noyés dans le matériel et ne sont pas
Page | 8
aussi facilement discernables comme dans un environnement de travail
classique de type PC. On mentionne les contraintes physiques fortes:
dimensions, poids, taille, autonomie, consommation, fiabilité, contraintes
temporelles (temps réels).
Le premier système embarqué qui a été produit en série est
vraisemblablement le D-17 d'Autonetics (figure1.3). Il servait de système de
contrôle aux missiles nucléaires américains LGM-30 Minuteman, produit à
partir de 1962.

Figure 3: D-17 d'Autonetics

Les systèmes embarqués sont classés de la façon suivante :

 Calcul normal (limite de matériels) qui sont des Application similaire à


une application de bureau mais empaquetés dans un système
embarqué.

 Les systèmes de contrôle par exemple les jeux vidéo set- top box, et TV
box, contrôle de systèmes en temps Réel et les moteur d'automobile,
traitement chimique, traitement nucléaire, système de navigation
aérienne.

Page | 9
 Traitement du signal qui calcule de grandes quantités de données,
radar et sonar, l'appareil de compression vidéo.

 Télécommunications : la transmission d’information et commutation

3. Utilisation Des Systèmes Embarquées Dans le


secteur automobile:

L’automobile est un des secteurs qui utilise énormément de technologies


embarquées. Ce métier, qui mêle informatique pure et dure
(programmation, conception d’applications) et électronique (capteurs,
interfaces etc…) est montré comme un métier d’avenir dans le domaine des
nouvelles technologies.
C’est à la fin des années 80 que l’on commence à parler de microcontrôleurs
dans les voitures. Depuis, leur nombre n’a fait qu’augmenter, apportant au
passage des technologies développées spécifiquement pour l’automobile
comme par exemple le réseau CAN.

Aujourd'hui L’électronique compte pour 30% du prix du véhicule, on


trouve en moyenne entre 40 et 60 calculateurs dans les voitures et jusqu’à
80 pour les modèles haut de gamme. Contrairement à tout ce qu’on peut
croire, il n’y a pas qu’un calculateur mais plusieurs, disséminés dans le
véhicule. Ce secteur utilise des technologies qui sont divisés en deux
électroniques et informatiques Pour l'électronique il y a :

 Les microcontrôleurs qui s’agissent principalement de


microcontrôleurs programmables (en langage C pour la plupart). Ils
sont conçus pour prendre le minimum de place, dégager peu de
chaleur et consommer le moins d’énergie possible.

Page | 10
 Les capteurs Dans une voiture, on retrouve à peu près tous les types
de capteurs que l’on puisse imaginer, cela va du simple capteur de
température au tachymètre (compte-tours) en passant par le capteur
de luminosité, de pluie etc.
 Le transport de l’information : depuis longtemps, les longueurs de fils
déroulées dans les voitures sont impressionnant et forcément coûteux
(environ 800 mètres de câble). Depuis la fin des années 90, des
réseaux ont fait leur apparition dans nos voitures. On retrouve
principalement les réseau CAN et LIN. Le but est d’interconnecter tous
les calculateurs sur une seule boucle et de les faire communiquer
ensemble. Pour information, les réseaux sont dimensionnés de sorte à
être occupé que 20% du temps.

Pour l'Informatique il y a :

 Notion de temps réel : le temps réel, c’est ajouter une notion de


temps d’exécution à une tâche. Sur votre PC sous Windows, le temps
d’exécution n’affectera que votre bonne humeur. Sur votre voiture,
le temps de réaction entre le moment où vous appuyez sur le frein et
celui où vos roues sont ralenties affectera votre vie….

Chaque tâche à une durée limite d’exécution qu’elle ne doit pas


dépasser. Par exemple, entre le moment où vous appuyez sur le bouton
du klaxon et le retentissement du bruit, il peut y avoir au maximum
30ms (PSA).

 La programmation : tout est développée sur des ordinateurs et des


maquettes. Pour compiler le code, le principe de la compilation
croisée est utilisé (cross compilation). Il s’agit de compiler un
programme pour une autre plateforme que celle utilisée pour le
Page | 11
développement. La plupart des microcontrôleurs sont équipés d’une
interface appelée JTAG (Joint Test Action Groupe). Cette interface est
utilisée pour programmer les composants mais aussi pour le
débogage. A partir de ce port et d’un logiciel spécifique, le technicien
peut savoir exactement tout ce qu’il se passe dans le
microcontrôleur, exécuter le programme pas à pas, mettre des points
d’arrêt etc…

Page | 12
CHAPITRE 2:
ETUDE FONCTIONNEL DU PROJET

4. Introduction:

Dans ce chapitre on va faire une étude fonctionnelle qui va nous aider à réaliser
notre projet. On va parler sur notre idée de base qui est un robot qui évite les
obstacles et au cours de notre rapport on va vous montrer tous amélioration
quand on a fait pour enrichir notre projet.

Le robot évité d’obstacle, dans n’importe quel domaine où il est utilisé, doit
nécessairement être accompagné d’une fiche technique qui décrira la totalité
de ses fonctions et qui reflètera une image sur la qualité et la prestation de ses
services. Ceci dit, une étude fonctionnelle devait être mise en place pour
exprimer le besoin de la construction du robot, définir les liens entre ses
composants et rappeler les principales fonctions qu’il doit satisfaire. Les outils
utilisés pour cette analyse fonctionnelle sont le diagramme pieuvre, le
diagramme FAST et le GRAFCET.

5. Description Du Système:

Notre robot évité d’obstacles utilise un capteur qui mesure la distance qui le
sépare avec les déférents objets qui l’entoure. L’information est traitée par

Page | 13
un microcontrôleur. Le robot avance et lorsqu’il rencontre un obstacle
frontal, il s’arrête quelques instants, et il fait tourner le capteur
respectivement vers la droite puis vers la gauche puis se tourne vers la
direction la plus sûre et il continue en mouvement rectiligne. On a aussi deux
capteurs infrarouge installé au départ du robot pour suivre les lignes traces
dans son chemin son principe de fonctionnement est simple, Le robot suit
une ligne tracée au sol qui représente le chemin à suivre, Tant que les deux
capteurs ne détectent pas la ligne, le robot avance. Lorsqu’un des deux
capteurs détecte la ligne, le robot doit tourner dans la direction de ce
dernier pour se mettre au milieu de la ligne.

6. Faisabilite:
La mise en œuvre de ce projet exige plusieurs connaissances et équipements :

· Les connaissances : la programmation C ou Arduino, les principes de


l'électronique.

· Materiels : les composants électroniques

Pour réaliser notre idée de base qui est d'éviter les obstacles on a installé un
capteur ultra son qui aide à mesurer la distance entre le robot et un obstacle et
qui sert de le guider vers le chemin le plus sûr, et pour notre future
amélioration qui est le stationnement automatique on a premièrement installé
deux capteurs infrarouges pour suivre les lignes traces dans son chemin pour
savoir où la véhicule doit stationner, on a aussi ajouté une caractéristique qui va
nous aide à commander notre robot via une application à l'aide d'un module
Bluetooth HC-05 qui permet de faire de la communication sans fil avec notre
téléphone.

Page | 14
Vu qu’on a étudié la programmation et les principes de l'électronique
numérique et analogique dans la première année, et les systèmes embarqués
dans le troisième semestre, les composants nécessaires sont valables et
disponibles chez les fournisseurs. Ce projet est possible d'être réalisé.

1. Graphe Des Interacteurs:

Fonction Description
FP1 Eviter les obstacles pour servir l’utilisateur
FP2 Capter l’existence d’un obstacle
FP3 Analyser les données fournies par le capteur
FC1 Utiliser une source d’énergie pour alimenter les
composants de robot
FC2 Contrôler le déplacement du robot
FC3 Indiquer l’existence d’un obstacle

Figure 4: Graphe Des Interacteurs

Page | 15
FP : fonction principale.

FC : Fonctions Complémentaires ou Contraintes.

2. Cahier De Charge:
Le cahier de charge d’un projet est une description complète du projet dans
le langage naturel (non technique) compréhensible par toute personne
ingénieur ou non ingénieur. Dans ce cahier, le client fait ressortir l’ensemble
des contraintes que doit respecter son produit : l’encombrement, le temps
réel, la consommation, le coût, etc....

Le cahier des charges de notre robot détecteur d’obstacle est le suivant : la


batterie 12V va transmettre l'énergie au driver moteur pour alimenter les
moteurs, le robot va marcher selon la trajectoire conçue à l'aide des
capteurs infrarouges et des lignes qui sont tracées dans son chemin, Le
robot étant en mouvement quand il détecte l’obstacle, il prend une autre
direction automatiquement. Le servomoteur qui est un moteur à courant
continue va piloter un draver qui va régler constamment son positon, on
parle dans ce cas du système asservi, En utilisant le réducteur qui va
augmenter-le couple des moteurs. Le capteur ultrason permet de mesurer la
distance, l’émetteur envoie une série d'impulsions sonores à 40 kHz une
fréquence inaudible pour l’oreille humaine et en rencontrant l’obstacle le
signal revient sous forme d’un écho au récepteur.

3. Grafcet Fonctionnel Du Projet:


En s’appuyant sur les informations fournies dans le cahier de charge ci-
dessus, On a réalisé le grafcet de niveau 2 suivant :

Page | 16
P : présence de l'obstacle

L : chemin trace

g : la probabilité de trouver un obstacle à gauche plus sûr que le trouver à


droite.

d : la probabilité de trouver un obstacle à droite plus sûr que le trouver à


gauche

Figure 5: Grafcet Fonctionnel De Notre Robot Evitant Les


Obstacles

Page | 17
4. Schema Synoptique Du Projet:
Un synoptique désigne une présentation, en général graphique, qui permet
de saisir d'un simple coup d'œil un ensemble d'informations liées ou un
système complexe.

Figure 6: Schéma Synoptique De Notre Robot

Page | 18
5. Devis:

COMPOSTANT QTE PRIX UNITE PRIX TOT


Arduino UNO 1 125 DH 125 DH
Shield Motor 2 60 DH 120 DH
Motors 4 30 DH 120 DH
Wheel jumper 4 15 DH 60 DH
Cables 6 x 10 5 DH 30 DH
Servo motor 1 40 DH 40 DH
Batteries 4 25 DH 100 DH
Capteur ultrason 1 30 DH 30 DH
605 DH

Page | 19
CHAPITRE 3:
PARTIE HARDWARE

6. Introduction:
Le hardware est la partie physique de l'ordinateur, c'est-à-dire les pièces et
les équipements qui le font fonctionner. Le terme désigne également
l'ensemble des équipements attachés aux ordinateurs (ou autre produit) qui
nécessitent une gestion informatique. Les processeurs sont l'un des
hardwares les plus populaires.

7. La Carte Arduino:
Une carte Arduino est une petite carte électronique équipée d’un
microcontrôleur. Le microcontrôleur permet, à partir d’événements détectés
par des capteurs, de programmer et commander des actionneurs ; la carte
Arduino est donc une interface programmable. Elle peut être programmé
pour analyser et produire des signaux électriques, de manière à effectuer
des tâches très diverses comme le contrôle des appareils domestiques,
éclairage, chauffage, le pilotage d’un robot, de l’informatique embarquée,
etc.

Page | 20
Figure 7: Carte Arduino Uno

7.1. Comparaison Entre Arduino Et Raspberry Pi


a) Raspberry Pi :
Raspberry Pi est un nano-ordinateur mono-carte à processeur ARM de la
taille d'une carte de crédit conçu par des professeurs du département
informatique de l'université de Cambridge dans le cadre de la fondation
Raspberry Pi.

Le Raspberry Pi fut créé afin de démocratiser l'accès aux ordinateurs et


au « digital making ». Cette démocratisation est possible en raison du coût
réduit du Raspberry Pi, mais aussi grâce aux logiciels libres (open source). Le
Raspberry Pi permet l'exécution de plusieurs variantes du système
d'exploitation libre GNU/Linux, notamment Debian, et des logiciels
compatibles. Il fonctionne également avec le système
d'exploitation Microsoft Windows : Windows 10 Iot (Internet Of Things /
internet des objet) Core, Windows 10 on ARM, celui de Google Android Pi et
même une version de l'OS/MVT d'IBM accompagnée du système APL\360.

Page | 21
Figure 8: Carte Raspberry Pi 4

Il existe différentes versions telles que Raspberry Pi A, B, B +. Raspberry Pi B


+ contient le système sur puce Broadcom BCM 2836 (SoC). Les processeurs
et les autres composants sont connectés pour former un système complet.
Le processeur est un processeur basé sur Broadcom BCM 2826 ARM. Les
processeurs ARM sont au cœur de la plupart des périphériques IoT.
Raspberry Pi peut être programmé en utilisant des langages tels que Python,
C++.

b) La différence entre Arduino et Raspberry Pi :

Arduino Raspberry Pi

Arduino est un microcontrôleur à Raspberry Pi est un petit ordinateur


carte unique qui fournit une plate- monocarte développé pour promouvoir
forme open source pour créer un l'enseignement des bases de
environnement matériel et l'informatique dans les écoles et dans les
logiciel.. pays en développement..

Page | 22
Vitesse de traitement

La vitesse de l'Arduino est de 16 La vitesse de Raspberry Pi est de 900


MHz. MHz.

Espace d'adressage

Arduino a un espace d'adressage Raspberry Pi prend en charge un espace


inférieur car il s'agit d'un d'adressage plus important car il dispose
microcontrôleur 8 bits. d'un processeur 32 bits.

Niveaux de tension d'entrée-sortie

Les niveaux de tension de sortie Niveau de tension de sortie pour le


pour Arduino sont 0V et 5V. Raspberry Pi: 0V et 3,3V.

Mémoire

Arduino a 32K Flash, 2K SRAM et Raspberry Pi a 4 Go de Flash, 512K SRAM


1K EEPROM. et micro SD.

système d'exploitation

Arduino ne fonctionne pas sur un Raspberry Pi fonctionne sur un système


système d'exploitation. d'exploitation.

Page | 23
7.2. Choix Du Type De La Carte :

Il existe plusieurs types de cartes Arduino, on s’est orienté uniquement vers


le type le plus fréquent qui est la carte Arduino UNO Pour réaliser ce
montage, on doit assurer la liaison entre chaque composante électronique
et notre carte Arduino 15 — Le Shield a besoin de 6 broches numériques
dont deux PWM et une GND sans oublier l’alimentation. — Le capteur ultra
son a besoin également à être alimenté, d’une GND, et 2 broches le suffit. —
Le servo moteur a besoin également d’être alimenté puis d’une GND qui
prendra seulement une entrée analogique Donc en totale on aura besoin
d’une carte Arduino qui contient au moins 9 broches numérique dont deux
PWM, et aussi qui sera capable d’exécuter le plus vite possible l’algorithme
gravé dans sa mémoire. En revanche, la carte Arduino UNO est la carte la
plus convenable à cette situation vue qu’elle possède 14 broches
numériques (dont 6 avec PWM) et 6 broches d’entrée analogique. La carte
UNO ainsi que les autres types cartes Arduino (Micro et Méga) ont chacune
leur propre capacité de traitement, parlons à présent de leurs
fréquences/vitesses d’horloge respectives. La fréquence/vitesse d’horloge
de ces cartes indique simplement la vitesse avec laquelle elles peuvent
exécuter une commande. Les trois cartes possèdent toutes la même vitesse
d’horloge, soit 16 MHz. Au niveau de la mémoire La UNO et la MICRO
possèdent toutes les deux une mémoire Flash de 32 ko, tandis que la MEGA
2560 en propose 256 ko, soit 8 fois plus d’espace mémoire ! La mémoire
Flash représente simplement la taille maximale du code ou du modèle que
vous pouvez charger sur votre Arduino. Si votre code est lourd, la MEGA
2560 est donc la solution idéale.

Page | 24
7.3. Composants De La Carte Arduino UNO :
Une carte Arduino UNO se compose essentiellement de :

 Prise jack : Permet de brancher une alimentation (pile, batterie,


adaptateur secteur, + au centre Vin 7 à 12 V).
 Microcontrôleur : stocke le programme et l’exécute.
 Entrées analogiques : Permet de brancher des capteurs et des
détecteurs analogiques.
 Connexion USB (Universal Serial Bus) : Permet d’alimenter la carte en
énergie électrique (5V). Permet de téléverser le programme dans la
carte.
 Entrées et sorties numériques (Digital) : Permet de brancher des
actionneurs. Permet de brancher des détecteurs

Figure 9: Les Composants De La Carte Arduino Uno

Page | 25
8. Moteur DC:
8.1. Généralité Sur Les Machines A Courant Continue :

Une machine à courant continu est une machine électrique Inventée par
Zénobe Gramme et présentée à l’Académie des Sciences, à Paris, en 1871,
c’était au départ un simple générateur de courant continu (pour applications
galvanoplastiques : une technique électrolytique d’orfèvrerie).
Il s’agit d’un convertisseur électromécanique permettant la conversion
bidirectionnelle d’énergie entre une installation électrique parcourue par un
courant continu et un dispositif mécanique ; selon la source d’énergie.
• En fonctionnement moteur, l’énergie électrique est transformée en
énergie mécanique.
• En fonctionnement générateur, l’énergie mécanique est transformée en
énergie électrique (elle peut se comporter comme un frein). Dans ce cas elle
est aussi appelée dynamo.
Cependant, la machine à courant continu étant réversible et susceptible de
se comporter soit en « moteur » soit en « générateur » dans les quatre
quadrants du plan couple-vitesse, la distinction moteur/générateur se fait «
communément » par rapport à l’usage final de la machine.

Page | 26
Figure 10: Moteur DC

8.2. La différence entre un Moteur DC et AC :

Alors que les moteurs AC et DC servent la même fonction de convertir


l’énergie électrique en énergie mécanique, ils sont alimentés, construits et
contrôlés différemment. La source la plus fondamentale est la source
d’alimentation. Les moteurs à courant alternatif sont alimentés à partir du
courant alternatif (AC), tandis que les moteurs à courant continu sont
alimentés par courant continu (DC), tels que des batteries, des alimentations
CC ou un convertisseur AC-DC.

Les moteurs de champ à enroulement DC sont construits avec des


balais et un collecteur, qui ajoutent à la maintenance, limitent la vitesse et
réduisent généralement l’espérance de vie des moteurs à courant continu
brossé. Les moteurs à induction à courant alternatif n’utilisent pas de
brosses ; Ils sont très robustes et ont de longues espérances de vie. La
dernière différence de base est le contrôle de la vitesse. La vitesse d’un

Page | 27
moteur à courant continu est contrôlée en faisant varier le courant de
l’enroulement de l’induit tandis que la vitesse d’un moteur à courant
alternatif est contrôlée en faisant varier la fréquence, ce qui n’est pas
évident, généralement effectué avec une commande de commande de
fréquence réglable.

8.3. La constitution d’un Moteur DC :

Un moteur électrique à courant continu est constitué :


• D’un stator qui est à l’origine de la circulation d’un flux magnétique
longitudinal fixe créer soit par des enroulements statoriques (bobinage)
soit par des aimants permanents.
• D’un rotor bobiné relié à un collecteur rotatif inversant la polarité de
chaque enroulement rotorique au moins une fois par tour de façon à faire
circuler un flux magnétique transversal en quadrature avec le flux
statorique.

8.4. Fonctionnement D’un Moteur DC

c) Partie Théorique :

Les moteurs DC avec des aimants permanents sont très courants dans
différentes applications, avec de petites dimensions, lorsqu’on recherche
beaucoup de puissance à bas prix. A cause de leur vitesse assez importante,
ils sont utilisés dans plusieurs sortes de transmission (pour obtenir beaucoup
de couple avec peu de vitesse).

Page | 28
Les moteurs DC à aimant permanent sont d’une fabrication assez simple et
les commander est assez élémentaire. Bien que les contrôler soit assez
simple, leur vitesse n’est pas déterminée précisément par le signal de
contrôle parce qu’il dépend de nombreux autres facteurs. La relation entre
le couple et la vitesse d’un moteur DC parfait est linéaire, ce qui signifie que :
plus grand est l’effort sur l’arbre, plus petite est la vitesse de l’arbre et plus
grand est le courant dans la bobine.

Les moteurs DC utilisent la tension DC et ne nécessitent pas de contrôle


électronique supplémentaire puisque toutes les communications nécessaires
sont faites dans le moteur. Lorsque le moteur fonctionne, deux broches
statiques glissent dans le commutateur de rotation et garde la tension dans
la bobine. La direction de la rotation du moteur est déterminée par la
polarité du courant appliqué. Si le moteur ne doit tourner que dans une
seule direction, alors le courant peut passer à travers un relai ou tout autre
connexion simple. Si le moteur doit tourner dans plusieurs directions, on
utilisera un circuit électronique appelé Pont en H (ou “H-bridge ”)

Utilisation de Pont en H avec les moteurs DC

Le pont en H permet de réaliser 2 fonctions qui sont d’inverser le sens de


rotation du moteur en inversant le courant aux bornes du moteur et la
variation de la vitesse du moteur en modulant la tension aux bornes du
moteur.

De plus, le pont en H permet d’effectuer un freinage magnétique s’il est


capable d’en dissiper la puissance générée. Cette opération s’effectue en
actionnant soit les deux commutateurs supérieurs ou inférieurs en même
temps, ce qui court-circuite les bornes du moteur, et le fait par conséquent

Page | 29
freiner. Mieux encore, il est possible avec un peu d’électronique et un
contrôleur perfectionné d’effectuer un freinage.

Figure 11: Schéma Electrique Du Pont H

d) Partie pratique :

On utilise le pont en activant les commutateurs de différentes combinaisons


pour obtenir le branchement voulu. Le tableau suivant résume les
combinaisons permises. Toutes les combinaisons qui ne figurent pas dans le
tableau sont interdites et créent un court-circuit de la source. Le courant de
référence pour la charge est considéré comme étant de gauche à droite.

Le tableau correspond au circuit ci-dessus :

Page | 30
9. Capteur Ultra-son:
9.1. Choix Du Capteur Ultra-son :

L’utilisation d’un capteur est indispensable dans notre projet. En effet, c’est
un outil qui permet la détection et par conséquent l’évitement d’obstacles
qui est la cible de notre étude. Ceci dit, le problème auxquelles on devait
s’imposer était le choix du meilleur capteur à utiliser dans les mesures de
concilier le temps de réponse et le coût de production. Après plusieurs
comparaisons et distinctions des capteurs, on était convaincus que celui
dont on avait besoin était le capteur ultra-son HC-SR04.

Figure 12: Capteur


Ultrason
Page | 31
9.2. Principe De Fonctionnement Du Capteur Ultra-son :

Le capteur ultra-son HC-SR04 est un dispositif chinois qui comme les autres
capteurs ultra-son émet à intervalles réguliers de courtes impulsions sonores
à haute fréquence, qui à leurs tours se propagent dans l’air à la vitesse du
son, et se réfléchissent et reviennent sous forme d’écho lorsqu’elles
rencontrent un objet. Puis, ce dernier calcule la distance le séparant de la
cible sur la base du temps écoulé entre l’émission du signal et la réception
de l’écho.

Figure 13: Principe De Fonctionnement Du


Cpteur Ultrason

Pour déclencher une mesure, il faut présenter une impulsion ”high” (5 V)


d’au moins 10 µs sur l’entrée ”Trig”. Le capteur émet alors une série de 8
impulsions ultrasoniques à 40 kHz, puis il attend le signal réfléchi. Lorsque
celui-ci est détecté, il envoie un signal ”high” sur la sortie ”Echo”, dont la
durée est proportionnelle à la distance mesurée.

Nous utilisons la relation d = v.t avec d pour la distance, v pour la vitesse et t


pour le temps. On connait la vitesse d’impulsion qui est égale à 10µs. Le son

Page | 32
doit effectuer un aller (en partant du capteur) pour ensuite rebondir sur
l’obstacle et revenir à ce point de départ. Nous diviserons donc son temps
par deux. Le HC-SR04 donne une durée d’impulsion en dizaines de µs. Il faut
donc multiplier la valeur obtenue par 10µs pour obtenir le temps t. La
vitesse du son est égale à environ 340m/s ce qui nous donnes :

Donc

La formule d = dure/58cm figure dans le manuel d’utilisation du HC-SR04 car


la fraction 17/1000 est égale à 1/58.8235.

La particularité du capteur chinois HC-SR04 s’incarne au début dans son prix


qui n’est vraiment pas cher (30 DHs), puis dans ses caractéristiques qui sont
moyennement satisfaisantes. En effet, ce dernier fonctionne avec une
tension d’alimentation de 5 volts, dispose d’un angle de mesure de 15°
environ et permet de faire des mesures de distance d’un mètre à peu près,
une précision de 3mm (en théorie, dans la pratique ce n’est pas tout à fait
exact), et c’est ce qui va nous permettre de rendre le projet plus optimal en
ajoutant 2 autres d’avoir une vision claire des obstacles et de diminuer le
temps de réponses.

Page | 33
10. Servo-Moteur:
10.1. Composition D’un Servomoteur :

Le servomoteur est composé de plusieurs éléments visibles et invisible :

• Un moteur à courant continu

• Des engrenages pour former un réducteur (en plastique ou en métal)

• Un capteur de position de l’angle d’orientation de l’axe (un potentiomètre)

• Une carte électronique pour le contrôle de la position de l’axe et le


pilotage du moteur à courant continu

• Les fils, qui sont au nombre de trois

• L’axe de rotation sur lequel est monté un accessoire en plastique ou en


métal

• Le boitier qui le protège

Figure 14: Les Composants Du Servo Moteur


Page | 34
10.2. Principe de fonctionnement d’un servomoteur :

La plupart des 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 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.

Figure 15: Signal de Commande Du Servo


Moteur

Page | 35
11. Capteur Infrarouge:

Le module de capteurs de proximité infrarouge pour éviter les obstacles est


doté d'un émetteur et d'un récepteur IR intégrés qui envoient de l'énergie IR et
recherchent l'énergie IR réfléchie pour détecter la présence de tout obstacle
devant le module de capteur. Le module dispose d'un potentiomètre intégré
qui permet à l'utilisateur de régler la plage de détection. Le capteur a une
réponse très bonne et stable même dans la lumière ambiante ou dans
l'obscurité totale.

Le module de capteur peut être interfacé avec Arduino, Raspberry Pi ou tout


microcontrôleur ayant un niveau de tension IO de 3,3 V à 5 V.

Figure 16: Capteur Infrarouge

11.1. Caractéristiques :
 Le circuit de détection basé sur le comparateur LM393 est très stable
et précis.

Page | 36
 Le potentiomètre embarqué définit la plage de détection d'obstacles.
 Indicateur LED d'alimentation à bord.
 Indicateur LED de détection d'obstacles intégré.
 Trou de montage de 3,0 mm pour un montage facile du capteur.
 Embase mâle pour une connexion facile.
 Bonne précision : grâce à l'utilisation d'un émetteur LED infrarouge, le
module fonctionne bien dans la lumière ambiante.

11.2. Composition d’un Capteur Infrarouge :

VCC - Broche d'entrée d'alimentation de 3,3 à 5 Vcc


GND - Broche d'entrée de masse
Sortie de signal - Broche de sortie numérique. BAS lorsqu'un obstacle est à
portée
LED d'alimentation – S'allume lorsque l'alimentation est appliquée
LED de signal – S'allume lorsqu'un obstacle est détecté
Résistance variable – Ajuste la distance de détection. CCW diminue la
distance ou CW augmente la distance.

Figure 17: Les Composants Du Capteur Infrarouge

Page | 37
12. Module Bluetooth:

Le module Bluetooth HC-05 permet de faire de la communication sans fil


avec un ordinateur, smartphone ou un autre module Bluetooth.

Figure 18: Module Bluetooth

12.1. Composition D’un Module Bluetooth:

Le module Bluetooth HC-05 présente 6 broches pour permettre d’établir la


connexion.
 VCC broche d’alimentation. Typiquement connectée à la broche 5V de
l’Arduino.
 GND masse. Typiquement connectée à la broche GND de l’Arduino
 RX broche de réception. Typiquement connecté à la broche de transmission
(TX) de l’Arduino
 TX broche de transmission. Typiquement connecté à la broche de réception
(RX) de l’Arduino
 State retourne 1 lorsque le module est connecté

Page | 38
Key ou EN doit être alimentée pour entrer dans le mode de configuration et
ne doit pas être connecté pour être en mode communication.

13. Moteur Driver:

Le module L298N est une carte de développement basé sur le circuit intégré
L298N permettant le pilotage de moteur à courant continu ou d’un moteur
pas-à-pas. Nous avons déjà vu l’utilisation du pont en H. Il peut être trouvé
sous forme de module pratique à utiliser avec des performances différentes
selon les composants utilisés. Nous allons voir dans ce tutoriel l’utilisation du
module L298N avec un microcontrôleur Arduino.

13.1. Principe De Fonctionnement :

Le module L298N est basé sur le circuit intégré du même nom. Le circuit
L298N est un double pont en H permettant de modifier la direction et
l’intensité de la tension au borne de deux charges électriques.
Les caractéristiques du module L298N sont:
 Pilotage de moteur de tension nominale de 5 à 35V
 2A courant maximum (peak)
 Tension 5V acceptées sur les broches Input

Figure 19: Driver Moteur Et Ses E/S Page | 39


14. Module Chargeur De Batterie Lithium-Ion:

Ce petit module électronique permet, avec une alimentation 5V raccordée


en Micro USB, de charger une batterie de Lipo ou une pile 18650 (figure 21)
rechargeable. La tension de charge délivrée à la batterie est ajustée à 4,2V,
soit la tension recommandée pour recharger les batteries Lipo 3,7V et des
piles 18650.

Des LEDs montées directement en surface sur le circuit permettent de


connaître l'état de la charge. Une LED rouge indique que la charge est en
cours et une LED verte indique que la charge est terminée (batterie
chargée).

Une fois la batterie chargée, le circuit n'enverra plus qu'un infime courant
(environ 4uA) et ne redémarrera vraiment que si la tension de la batterie
redescend en dessous de 4,0V.

Figure 20: Module Chargeur Du


Batterie Li/Ion

Page | 40
15. Batterie Lithium-Ion :
Une batterie 18650 est une batterie lithium-ion. Le nom dérive des
dimensions spécifiques de la batterie : 18 mm x 65 mm. Pour l'échelle, c'est
plus grand qu'une pile AA. La batterie 18650 a une tension de 3,6 V et a
entre 2600 mAh et 3500 mAh (mili-ampères-heures). Ces batteries sont
utilisées dans les lampes de poche, les ordinateurs portables, les appareils
électroniques et même certaines voitures électriques en raison de leur
fiabilité, de leur longue durée de vie et de leur capacité à être rechargées
des centaines de fois. Les batteries 18650 sont ce qui serait considéré
comme une "batterie à forte consommation". Cela signifie que la batterie est
conçue pour générer une tension et un courant de sortie élevés pour
répondre aux besoins en énergie de l'appareil portable dans lequel elle est
utilisée. C'est pourquoi ces petites batteries puissantes sont utilisées dans
des appareils électroniques plus complexes et gourmands en énergie qui
nécessitent un niveau de puissance constant et élevé pour fonctionner. Il a
également une profondeur de décharge élevée, ce qui signifie que la
batterie peut être déchargée jusqu'à 0 % tout en ayant la capacité de
recharger complètement la batterie. Cependant, cette pratique n'est pas
recommandée, car au fil du temps, cela endommagera la batterie à long
terme et affectera ses performances globales.

Figure 21: Batteries Li/Ion


Page | 41
CHAPITRE 4:
ETAPES DE REALISATION DU MONTAGE

16. Schéma Du Montage:

Figure 22: Schéma Du Montage De Notre Robot

Comme on a mentionné dans le chapitre précèdent (Partie Hardware), la


réalisation de ce projet nécessite plusieurs composants afin de garantir la
meilleure fonctionnalité de notre système d’auto-stationnement et
d’évitement d’obstacles.
Ces composant sont commandées par une carte Arduino, pour cette raison
ils vont être brocher de la manière suivante :

Page | 42
 Les pines IN1, IN2, IN3 et IN4 du driver moteur sont brochées
respectivement avec les pines 4, 5, 6 et 7 de la carte Arduino.
 Les pines OUT des deux capteurs infrarouge sont brochés avec les
pines 12 et 13 de notre carte Arduino.
 Pour le capteur ultrason, Trig et Echo sont brochées respectivement
avec les pines analogiques A0 et A1.
 Les deux pines RXD et TXD du module Bluetooth sont brochées avec
TX et RX de la carte Arduino.
 Pour les 4 moteur DC du robot, les deux à droites sont connecter
avec OUT1 et OUT2 du driver moteur, et les deux à gauches avec
OUT3 et OUT4, et ils sont alimentées par les deux piles Li/Ion et par
le driver moteur comme intermédiaire.
 La carte Arduino est alimentée par les deux piles Li/Ion via la pine Vin

17. Etapes De Réalisation Du Montage :


 Etape 1 : Assemblage Du Châssis :

On a soudé les files avec les 4 moteur DC de notre robot, puis on a fixé les roues
et les moteurs sur le châssis.

Page | 43
Page | 44
 Etape 2 : Fixage Des Composants Sur Le Châssis :

La fixation des composant restants sur le châssis.

Page | 45
 Etape 3 : Montage Des Composants :
Dans cette étape on a monté et brochée les composants
électroniques de notre robot selon le schéma et la description
indiquée ci-dessus.

Page | 46
CHAPITRE 5:
PARTIE SOFTWARE:

18. Introduction :

Un logiciel est un ensemble d'instructions, de données ou de programmes


utilisés pour faire fonctionner des ordinateurs et exécuter des tâches
spécifiques. C'est l'opposé du matériel, qui décrit les aspects physiques d'un
ordinateur. Le logiciel est un terme générique utilisé pour désigner les
applications, les scripts et les programmes qui s'exécutent sur un appareil. Il
peut être considéré comme la partie variable d'un ordinateur, tandis que le
matériel est la partie invariable.

Les deux principales catégories de logiciels sont les logiciels d'application et


les logiciels système :
 Une application est un logiciel qui répond à un besoin spécifique ou
exécute des tâches.
 Le logiciel système est conçu pour exécuter le matériel d'un
ordinateur et fournit une plate-forme sur laquelle les applications
peuvent s'exécuter.

D'autres types de logiciels incluent les logiciels de programmation, qui


fournissent les outils de programmation dont les développeurs de logiciels
ont besoin ; le middleware, qui se situe entre le logiciel système et les

Page | 47
applications et un logiciel pilote, qui fait fonctionner des appareils
informatiques et des périphériques.

19. Langage C / Embedded C:


 Introduction :

Le langage “C” a fait son apparition en 1972 pour le développement du


système d’exploitation Unix. Il est devenu un standard de la norme ANSI en
1983. Lui, ainsi que son petit frère le C++, sont très utilisés pour le
développement d’applications sous station Unix et PC.
Depuis quelques années il a fait son entrée dans le monde des
microcontrôleurs. Il permet de bénéficier d’un langage universel et portable
pratiquement indépendant du processeur utilisé. Il évite les tâches
d’écritures pénibles en langage assembleur et élimine ainsi certaines sources
d’erreurs.

 La Différence Entre Langage C et Embedded C :

Embedded C est généralement une extension du langage C, ils sont plus ou


moins similaires. Cependant, certaines différences existent, tels que:
1. C peut utiliser les ressources d'un PC de bureau comme la mémoire,
système d'exploitation, etc. Alors que, en C embarqué à utiliser avec
des ressources limitées, telles que la RAM, ROM, I/Os sur un
processeur embarqué.
2. C’est généralement utilisé pour les ordinateurs de bureau, tandis que
le C embarqué est de microcontrôleur basé sur les applications.

Page | 48
3. C embarqué comprend des fonctionnalités supplémentaires sur C, tels
que les types de points de, plusieurs zones de mémoire et d'e/S
registre de mappage.
4. Compilateurs de C (ANSI C) génèrent habituellement des OS charge les
fichiers exécutables. C embarqué nécessite des compilateurs de créer
des fichiers à télécharger pour les microcontrôleurs/microprocesseurs
où il a besoin pour fonctionner.

20. Arduino IDE :

Le logiciel Arduino est un Environnement de Développement Intégré (IDE)


open source et gratuit, téléchargeable sur le site officiel Arduino.
L’IDE Arduino nous permet de :
 Ecrire ou bien éditer un programme : des croquis (sketch en Anglais),
les programmes sont écrits en langage C.
 Compiler ce programme dans le langage « machine » de l’Arduino, la
compilation est une traduction du langage C vers le langage du
microcontrôleur. La console donne des informations sur le
déroulement de la compilation et affiche les messages d’erreur.
 Téléverser le programme dans la mémoire de l’Arduino, le
téléversement (upload) se passe via le port USB de l’ordinateur une
fois dans la mémoire de l’Arduino, le logiciel s’appelle un
micrologiciel. La console donne des informations sur le déroulement
du téléversement et affiche les messages d’erreur.

 Communiquer avec la carte Arduino grâce au terminal (ou moniteur


série). Pendant le fonctionnement du programme en mémoire sur

Page | 49
l’Arduino, il peut communiquer avec l’ordinateur tant que la
connexion est active (câble USB, …)

Figure 23: Arduino IDE

21. Libraires :

En informatique, une bibliothèque ou librairie logicielle (ou encore,


bibliothèque de programmes) est un ensemble de fonctions utilitaires,
regroupées et mises à disposition afin de pouvoir être utilisées sans avoir à
les réécrire. Les fonctions sont regroupées de par leur appartenance à un
même domaine conceptuel (mathématique, graphique, tris, etc). Les
bibliothèques logicielles se distinguent des exécutables dans la mesure où
elles ne représentent pas une application. Elles ne sont pas complètes, elles
ne possèdent pas l'essentiel d'un programme comme une fonction

Page | 50
principale et par conséquent ne peuvent pas être exécutées directement.
Les bibliothèques peuvent regrouper des fonctions simples (par exemple le
calcul d'un cosinus, ou l'inversion d'une matrice) comme des fonctions
complexes avec de nombreuses fonctions internes non accessibles
directement. L'intérêt des bibliothèques réside dans le fait qu'elles
contiennent du code utile que l'on ne désire pas avoir à réécrire à chaque
fois.

Dans projet on va utiliser deux bibliothèques :

 AFMotor : une bibliothèque qui nous permet de contrôler la vitesse et


la direction de jusqu'à quatre moteurs à courant continu en utilisant
un sheild moteur L293D.
 Servo : Permet aux cartes Arduino de contrôler une variété de
servomoteurs. Cette bibliothèque peut contrôler un grand nombre de
servos. Il fait un usage prudent des minuteries : la bibliothèque peut
contrôler 12 servos en utilisant seulement 1 minuterie. Sur l'Arduino
Due, om peut contrôler jusqu'à 60 servos.

22. Organigramme algorithmique:

Page | 51
Figure 24: Diagramme Algorithmique Du Robot Evitant Les
Obstacles

23. Programmation :

 Capteur Ultrason :

Le capteur ultrason sert à mesurer la distance entre notre robot et l’obstacle


possible, pour cela on utilise le code suivant :

Page | 52
 Servomoteur :

Le servomoteur sert à faire tourner notre capteur ultrason 90o à


droite et à gauche pour que ce dernier peut faire les mesures dans
tous les côtés pour cela on utilise le code suivant :
o A gauche :

o A droite :

 Capteur infrarouge :

Page | 53
Ce module détecte la présence d’une couleur donnée. Dans notre cas, on a
besoins de ce capteur pour détecter la couleur noire de la ligne qui va suivre
notre robot, pour cette raison on utilise le code suivant :

 Les Moteurs :
Selon le type du moteur driver utiliser on peut commander les DC moteur en
utilisant un des codes suivants :

o Moteur driver L293D :

Page | 54
Page | 55
o Moteur driver L298n :

Page | 56
Chapitre 6 :
Résultat Et Amélioration

24. Planning Suivie :

Dim Lun Mar Mer Jeu Ven Sam

30 1er Fev 2 3 4 5 6

7 8 9 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 1er Mars 2 3 4 5 6

7 8 9 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 29 30 31 1er Avr 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 1er Mai

2 3 4 5 6 7 8

Page | 57
9 10 11 12 13 14 15

16 17 18 19 20 21 22

23 24 25 26 27 28 29

30 31 1er Juin 2 3 4 5

6 7 8 9 10 11 12

Codage et préparation du matériel et composants nécessaires.

Réalisation du montage et la construction du châssis.

Amélioration du projet si possible et l'écriture du rapport.

Préparations pour le jour de soutenance (speech, répétitions.).

Page | 58
25. Amélioration De Notre Projet :

ALPHA-PARKLY 1.0 est un système qui va aider les conducteurs pour gagner du
temps et de stationner leur véhicule sans intervention de l’être humain. Notre
projet est un système qui va être installé dans le véhicule, et à travers un seul
click sur une application mobile, on peut démarrer le stationnement
automatique.

La réalisation de cette amélioration nécessite les mêmes composants qu’on a


utilisés pour la réalisation de notre idée de base (Robot voiture évitant les
obstacles).

Le changement majeur qu’on a fait c’est l’amélioration de notre code C++, on a


ajouté d’autres fonctionnalités telles que la commande vocale, suivie de ligne et
commande par application mobile.

26. Check List :

 La recherche sur notre idée de base.

 Étude d’idée de base.

 Achetez tous les matériaux pour la réalisation du projet .

 Réalisation du robot.

 Test de la fonctionnalité du robot .

 Élimination de tous défauts .

 La recherche sur des améliorations possibles.

Page | 59
 Montez les dispositifs restant pour réaliser les améliorations .

 Le bon fonctionnement du systeme ALPHA-PARKLY 1.0 .

27. Future Améliorations :


27.1. Reinforcement Learning :

L'apprentissage par renforcement est la formation de modèles


d'apprentissage automatique pour prendre une séquence de décisions.
L'agent apprend à atteindre un objectif dans un environnement incertain et
potentiellement complexe. Dans l'apprentissage par renforcement, une
intelligence artificielle est confrontée à une situation de jeu. L'ordinateur
utilise des essais et des erreurs pour trouver une solution au problème. Pour
que la machine fasse ce que veut le programmeur, l'intelligence artificielle
obtient soit des récompenses, soit des pénalités pour les actions qu'elle
effectue. Son objectif est de maximiser la récompense totale.
Bien que le concepteur définisse la politique de récompense, c'est-à-dire les
règles du jeu, il ne donne au modèle aucune indication ni suggestion sur la
manière de résoudre le jeu. C'est au modèle de déterminer comment
effectuer la tâche pour maximiser la récompense, en commençant par des
essais totalement aléatoires et en terminant par des tactiques sophistiquées
et des compétences surhumaines. En tirant parti de la puissance de la
recherche et de nombreux essais, l'apprentissage par renforcement est
actuellement le moyen le plus efficace de faire allusion à la créativité de la
machine. Contrairement aux êtres humains, l'intelligence artificielle peut
acquérir de l'expérience à partir de milliers de jeux parallèles si un
algorithme d'apprentissage par renforcement est exécuté sur une
infrastructure informatique suffisamment puissante.
Page | 60
o Exemple d’application du « machine Learning »:

L'une des applications d'apprentissage automatique les plus courantes est la


traduction de langues. L'apprentissage automatique joue un rôle important
dans la traduction d'une langue à une autre. On est étonnés de la façon dont
les sites Web peuvent traduire d'une langue à l'autre sans effort et donner
également une signification contextuelle. La technologie derrière l'outil de
traduction s'appelle la "traduction automatique". Elle a permis aux gens
d'interagir avec d'autres personnes du monde entier ; sans elle, la vie ne
serait pas aussi facile qu'elle l'est maintenant. Il a donné confiance aux
voyageurs et aux associés d'affaires pour s'aventurer en toute sécurité dans
des pays étrangers avec la conviction que la langue ne sera plus un obstacle.

27.2. Q-learning :

Q-learning est un algorithme d'apprentissage par renforcement sans


modèle.

Q-learning est un algorithme d'apprentissage basé sur des valeurs. Les


algorithmes basés sur la valeur mettent à jour la fonction de valeur en
fonction d'une équation (en particulier l'équation de Bellman). Alors que
l'autre type, basé sur la politique, estime la valeur de la fonction avec une
politique gourmande obtenue à partir de la dernière amélioration de la
politique.

Q-learning est un apprenant hors politique. Cela signifie qu'il apprend la


valeur de la politique optimale indépendamment des actions de l'agent.

Page | 61
D'autre part, un apprenant sur la politique apprend la valeur de la politique
menée par l'agent, y compris les étapes d'exploration et il trouvera une
politique optimale, en tenant compte de l'exploration inhérente à la
politique.

Le « Q » dans Q-learning signifie la qualité. Elle représente ici l'utilité d'une


action donnée pour obtenir une récompense future.

o Termes Importants Dans Le Machine Learning :

 STATE :
C'est la situation dans laquelle se trouve le Robot. Ici, pour un robot évitant
les obstacles de base, il y a au total 2 états :
Le premier état est lorsqu'il n'y a pas d'obstacle à proximité et le deuxième
état dans lequel il y a un obstacle devant lui.
 ACTION :
Dans un état particulier, le robot effectue une action particulière. Il y a 4
actions que notre robot peut effectuer dans le 2ème état :
« AVANT », « ARRIÈRE », « GAUCHE », « ARRÊT ».
 NEXT STATE :
C'est l'état dans lequel le robot entre lorsqu'il exécute une
« ACTION » particulière dans son « ÉTAT » actuel. Dans notre cas, l'ÉTAT
SUIVANT peut-être soit un état "CRASHED" ou un état "SURVIVED". (Ici, l'état
de SURVIE est le même que l'état de départ dans lequel se trouve le robot au
début de son épisode.)
 Q-TABLE/Q-MATRIX :

Page | 62
Q-Table une structure de données utilisée pour calculer les récompenses
futures maximales attendues pour l'action à chaque état.
Fondamentalement, ce tableau nous guidera vers la meilleure action à
chaque état. Pour apprendre chaque valeur de la Q-table, l'algorithme Q-
Learning est utilisé.
Ce tableau est formé par le Nombre d'"ÉTATS" et le nombre d'"ACTIONS".

 TERMINAL STATE :
C'est le dernier état dans lequel le robot peut être. Pour le robot évitant des
obstacles, cet état n'existe pas car on a pas d'état terminal et on veut que
notre robot continue d'apprendre pour toujours.
 REWARD MATRIX :
Cette table ou matrice sert à donner des récompenses au robot pour
certaines actions. La récompense est positive ou négative selon la qualité de
l'action.

Page | 63
 ENVIRENMENT :
Cela peut également être supposé ou considéré comme le monde du Robot.
Par exemple, nous, les humains, vivons sur terre, donc la terre est notre
environnement.
 LEARNING RATE :
Le taux d'apprentissage ou la taille de l'étape détermine dans quelle mesure
les informations nouvellement acquises remplacent les anciennes
informations. Un facteur de 0 signifie que l'agent n'apprend rien (exploitant
exclusivement les connaissances antérieures), tandis qu'un facteur de 1
signifie que l'agent ne considère que les informations les plus récentes
(ignorant les connaissances antérieures pour explorer les possibilités). Dans
des environnements entièrement déterministes, un taux d'apprentissage de
ALPHA = 1,0 est optimal. Lorsque le problème est stochastique, l'algorithme
converge sous certaines conditions techniques sur le taux d'apprentissage
qui l'oblige à décroître jusqu'à zéro. En pratique, on utilise souvent un taux
d'apprentissage constant, tel que ALPHA = 0,1 pour tous les scénarios.
 DISCOUNT FACTOR :
Le facteur de remise de 0 détermine l'importance des récompenses futures.
Un facteur de 0 rendra l'agent myope en ne considérant que les

Page | 64
récompenses actuelles, tandis qu'un facteur proche de 1 le fera rechercher
une récompense élevée à long terme. Si le facteur d'actualisation atteint ou
dépasse 1, les valeurs d'action peuvent diverger. Pour GAMMA = 1,0, sans
état terminal, ou si l'agent n'en atteint jamais un, tous les historiques
d'environnement deviennent infiniment longs, et les utilités avec des
récompenses additives non actualisées deviennent généralement infinies.
Même avec un facteur d'actualisation légèrement inférieur à 1,
l'apprentissage de la fonction Q conduit à la propagation d'erreurs et
d'instabilités lorsque la fonction de valeur est approchée avec un réseau de
neurones artificiels. Dans ce cas, commencer avec un facteur d'actualisation
inférieur et l'augmenter vers sa valeur finale accélère l'apprentissage.
 EXPLORATION RATE (TAUX D’EXPLORATION) :
Ce paramètre décide dans quelle mesure le robot doit explorer
l'environnement. Explorer l'environnement signifie effectuer des actions
aléatoires et analyser les résultats à l'aide de valeurs Q. Habituellement,
dans Q Learning (contrairement à SARSA), nous nous débarrassons de ce
paramètre au fur et à mesure que Robot apprend de plus en plus. Mais dans
ce projet, nous n'allons pas nous débarrasser d'Epsilon car nous n'avons
aucun état terminal. Dans ce cas, Epsilon réduira dans une certaine mesure,
puis sera à nouveau réinitialisé lorsqu'il descendra en dessous d'une valeur
seuil. Cela garantira que le robot continue d'explorer jusqu'à sa fin de vie,
tout comme nous, les humains, le faisons.

o Q-fonction :

Page | 65
Figure 25: Equation De BELLMAN
La
fonction Q utilise l'équation de Bellman et prend deux entrées : état (s) et
action (a).
 Q*(s,a) est la valeur attendue (récompense actualisée cumulée) de
faire a dans l'état s puis de suivre la politique optimale.
 Q-learning utilise les Différences Temporelles (TD) pour estimer la
valeur de Q*(s,a). La différence temporelle est un agent apprenant
d'un environnement à travers des épisodes sans connaissance
préalable de l'environnement.
 L'agent maintient une table de Q[S, A], où S est l'ensemble des états
et A est l'ensemble des actions.
 Q[s, a] représente son estimation actuelle de Q*(s,a).

o Algorithme De Q-learning :

Page | 66
Figure 26: Algorithme De Q-Learning

a. Initialisation de la table des valeurs Q(s, a) à 0.0.


b. Observation de l'état actuel, s.
c. Choisir une action, a, pour cet état en fonction de l'une des
politiques de sélection d'action.
d. Effectuer l'action et observer la récompense, r, ainsi que le nouvel
état, s.
e. Mise à jour de la valeur Q pour l'état en utilisant la récompense
observée et la récompense maximale possible pour l'état

suivant. La mise à jour se fait selon la formule et les paramètres


décrits ci-dessus.

Page | 67
f. Définir l'état sur le nouvel état et répétez le processus jusqu'à ce
qu'un état terminal soit atteint.

Page | 68
Conclusion Générale
Le présent rapport est réalisé dans le cadre de notre projet de fin d'études en
vue de l'obtention du Diplôme Universitaire de Technologie en électronique
embarqué pour l’automobile. Ce travail a pour objectif de concevoir et
développer un robot évitant les obstacles.

Pour pouvoir compléter notre mission, nous avons détaillé les différentes
étapes d'analyse, de conception et de réalisation de notre projet.

Le premier chapitre a été consacré au cadre général du projet. On a fait une


généralité sur la robotique et le système embarqué et son utilisation dans le
secteur automobile.

Le deuxième chapitre a été consacré pour la Description De notre Système,


faisabilité, cahier des charges de notre projet et le grafcet.

Le troisième chapitre a été consacré pour les différents composants et


matériels qu’on a utilisés pour réaliser notre robot.

Le quatrième chapitre a été dédié aux étapes de réalisation du montage avec la


description.

Enfin on est terminé par le chapitre cinq qui est dédié à la partie software, c’est-
à-dire le code qu’on a écrit pour notre robot.

Notre projet était à la base un robot évitant les obstacles et on a fait des
améliorations pour que notre robot devenir un système Auto parking, et ce
système on peut le développer pour faire plusieurs fonctions comme auto
pilote sans une intervention du conducteur a base de la même technologie ou
Page | 69
on peut utiliser d’autres composant comme une caméra 360 qui va aider notre
système à se développer, et aussi de faire des changements dans le programme
pour être convenable avec la caméra.

Ce projet était bénéfique pour nous dans plusieurs sens. Il nous ouvrir sur le
monde professionnel qui implique de la responsabilité et de la discipline ainsi
que du travail collaboratif d'équipe, il a été une occasion pour améliorer nos
connaissances dans les environnements de travail et de maitriser les langages
de programmation pour qui seront certes utiles au niveau professionnel.

Page | 70

Vous aimerez peut-être aussi