Vous êtes sur la page 1sur 43

Projet Informatique 2023

UNIVERSITE CHEIKH ANTA


DIOP

ECOLE SUPERIEURE
POLYTECHNIQUE

GENIE MECANIQUE

Projet Informatique
Interfaçage Matlab Arduino

ROBOT POMPIER

AUTEURS: PROFESSEUR :
Dr.CESAIRE NGOR NDIAYE
MOUHAMAD NDOUR
FAMA GUEYE
MODOU GUEYE

Année-académique :2022-2023

1
Projet Informatique 2023

TABLES DES MATIERES  :

I. INTRODUCTION GENERALE :...............7
a) Diagramme Fast du robot :.................................................................................................9
b) Grafcet fonctionnel du robot :............................................................................................9

II.........CONCEPTION ET PROTOTYPAGE :
10
A. La Carte Arduino :.....................................................................................................................11
1. Choie du type de carte :........................................................................................................12
2. Composantes de la carte Arduino UNO :..............................................................................13
B. Moteur DC................................................................................................................................13
a) Généralité sur les machines à courant continu.................................................................14
b) La différence entre Moteur DC et Moteur AC...................................................................14
c) Constitution d’un moteur DC............................................................................................15
d) Fonctionnement d’un moteur DC.....................................................................................15
C. Le circuit de pilotage des moteurs : le L298 en double Pont H.................................................17
1. Principe de fonctionnement du L298 :..................................................................................19
2. Le pont en H :.......................................................................................................................20
3. Caractéristiques du pont en H :............................................................................................21
D. Batterie :...................................................................................................................................22
E. POMPE SUBMERSIBLE..............................................................................................................22
F. CAPTEUR DE FLAMME :............................................................................................................23
1. Présentation du module :.....................................................................................................23
2. Connexion du capteur :........................................................................................................24
G. SERVOMOTEUR :......................................................................................................................24
1. Composition d’un servomoteur :..........................................................................................25
a) Connexion du capteur :.....................................................................................................25

III.ETUDES NUMERIQUES DES


COMPOSANTS :..........................................26
2
Projet Informatique 2023

A. Premiers pas : initialisation en Arduino avec Matlab (Allumer une LED)..................................26


B. Deuxième pas : utiliser un capteur Ultra-son...........................................................................28
1. Le code Matlab du capteur :.................................................................................................28
2. Dernier pas : simulation du robot :.......................................................................................30
a) Schéma électrique du Robot :...........................................................................................30

IV.............REALISATION DU CODE SOUS


MATLAB :....................................................30
A. MATLAB :..................................................................................................................................30
1. PRESENTATION :...................................................................................................................30
2. UTILISER ARDUINO SUR MATLAB :........................................................................................31
3. INSTALATION DES SUPPORTS PACKAGE ARDUINO...............................................................31
B. Interfaçage du moteur à courant continu avec Arduino à l'aide de L298N :.............................34
Figure 25 : connexion L298 avec la carte arduino............................................................................34
1. Moteur à courant continu interfaçant avec MATLAB :.........................................................34
2. Code du bouton dans le sens inverse des aiguilles d'une montre :........................................37
3. Code du bouton d'arrêt :......................................................................................................37
4. Code curseur Matlab :...........................................................................................................37
a) PROBLEME RENCONTRER :...............................................................................................38
C. CODE MATLAB :........................................................................................................................39
1. IDEE GENERALE DU CODE :...................................................................................................39
a) CODE MATLAB :................................................................................................................39

V......................CONCLUSION GENERALE :
43

3
Projet Informatique 2023

LISTE DES FIGURES :


Figure 1:DIAGRAMME FAST DU ROBOT.................................................................................................7
Figure 2:Grafcet du robot pompier........................................................................................................8
Figure 3:ROBOT POMPIER......................................................................................................................8
Figure 4: CARTE ARDUINO....................................................................................................................11
Figure 5:MOTEUR A COURANT CONTINUE...........................................................................................12
Figure 6:MOTEUR A COURANT CONTINUE: conversion électromécanique..........................................14
Figure 7:DC MOTOR.............................................................................................................................15
Figure 8:Structure interne du circuit intégré L298...............................................................................16
Figure 9:circuit imprimé et connexion du L298N avec un moteur cc...................................................17
Figure 10:Controle de la rotation dun moteur et freinage par le L298N..............................................18
Figure 11:Schéma du principe de fonctionnement du pont en H.........................................................19
Figure 12: La batterie............................................................................................................................20
Figure 13:La pompe..............................................................................................................................21
Figure 14:connexion capteur et détecteur de flamme sur arduino......................................................22
Figure 15:servomoteur.........................................................................................................................23
Figure 16:Connexion du servomoteur sur la carte arduino..................................................................24
Figure 17:LED clignoter sur la carte arduino.........................................................................................25
Figure 18:Montage reliant un capteur ultra-son et un Arduino...........................................................26
Figure 19:Première réponse du capteur ultra-son...............................................................................27
Figure 20:deuxième réponse du capteur ultra-son..............................................................................28
Figure 21:Montage reliant les différentes composantes du robot.......................................................29
Figure 22:GET HARDWARE SUPPORT PACKAGES.................................................................................30
Figure 23:connexion L298 avec la carte arduino..................................................................................33

4
Projet Informatique 2023

LISTE DES TABLEAUX :


Tableau 1:caractéristique DC MOTOR..................................................................................................15

5
Projet Informatique 2023

I. INTRODUCTION GENERALE :
La robotique est définie comme étant l’ensemble des techniques permettant la
conception et la réalisation de machines automatiques ou de robots, elle est
basée sur les capteurs, des systèmes logiques à base des microprocesseurs et les
actionneurs. Ici, un ROBOT pompier est proposé. Ce robot est muni d'un
capteur d'incendie solitaire utilisé pour détecter un incendie écologique et
alimente les signaux au microcontrôleur afin de déclencher la pompe qui
asperge l'eau afin d'étouffer le feu. Ce robot est conçu pour fonctionner en
utilisant le microcontrôleur Arduino Uno. Il actualise les idées de détection
d'incendie naturel, de contrôle moteur correspondant. Le pilote de moteur est
utilisé pour le contrôle bidirectionnel des moteurs préparés dans le robot.
Chaque guidage pour le contrôle de mouvement est donné au robot avec l'aide
d'un microcontrôleur. Dans ce sens, le robot forme des données à partir de ses
différents composants d'équipement clés, par exemple, capteur d'incendie, carte
ARDUINO Uno (microcontrôleur). La programmation du robot est terminée en
utilisant l'Arduino qui est obtenu à partir de matlab.

1. Description du système :
Au départ, nous devons nous assurer que tous les composants sont connectés et
donnent alimentation par un appareil externe. Ce robot mobile est contrôlé à
l'aide d'un téléphone portable et atteint le feu à l'extrémité émettrice à l'aide d'un
bouton-poussoir, des commandes sont envoyées au récepteur pour contrôler le
mouvement du robot soit vers l'avant, vers l'arrière et vers la gauche ou la droite.
À l'extrémité de réception, quatre moteurs à courant continu sont interfacés avec
le microcontrôleur. Ce robot est équipé d'un module Bluetooth utilisé et
transmet les signaux au microcontrôleur afin de déclencher la pompe qui arrose
l'eau afin d'éteindre le feu.

6
Projet Informatique 2023

a) Diagramme Fast du robot :

Figure 1:DIAGRAMME FAST DU ROBOT

b) Grafcet fonctionnel du robot :

7
Projet Informatique 2023

Figure 2:Grafcet du robot pompier

II. CONCEPTION ET PROTOTYPAGE :

Figure 3:ROBOT POMPIER

⎯ MATERIEL

Le choix des matériaux est une tâche fondamentale et très complexe, et pour
réussir à bien l’aborder, on a posé un groupe de critères qu’on devait les
8
Projet Informatique 2023

satisfaire pour bien réussir notre choix. Les critères imposés sont les suivants :
Au niveau de matériau : caractéristiques mécaniques, esthétiques, thermiques,
électriques, économiques, environnementales, physiques.

Au niveau du procédé : volume, masse, géométrie, taille de la série,


caractéristiques économiques et environnementales.

⎯VUE GLOBALE

Les matériels dont on a besoin pour réaliser ce robot sont :

1. Arduino UNO.

2. L298N

3. Quatre moteurs DC pour piloter les roues du robot.

4. Quatre piles de 3V et des connecteurs pour alimenter les moteurs DC.

5. Une pompe

6. Deux capteurs de flamme

7. Un châssis + roue

8. Des câbles jumper, résistances, LED, une breadboard pour tester le circuit
électronique.

10. Moteur a engrenage

11. Module Bluetooth

12. Relais

13.Pompe

A. La Carte Arduino :

9
Projet Informatique 2023

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.

1. Choie du type de 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

— 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. 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
10
Projet Informatique 2023

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.

Figure 4: CARTE ARDUINO


2. Composantes 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.

B. Moteur DC

11
Projet Informatique 2023

a) Généralité sur les machines à courant continu


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.

Figure 5:MOTEUR A COURANT CONTINUE

• 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.

b) La différence entre Moteur DC et Moteur 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
12
Projet Informatique 2023

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 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.

c) 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.

d) Fonctionnement d’un moteur DC


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). Les moteurs DC à aimant permanent

13
Projet Informatique 2023

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 toute autre connexion simple. Si le moteur doit tourner dans
plusieurs directions, on utilisera un circuit électronique appelé Pont en H (ou
“H-bridge ”). Un moteur à courant continu est une machine électrique. Il s'agit
d'un convertisseur électromécanique permettant la conversion d'énergie
électrique en énergie mécanique. Il est constitué de deux parties : une partie fixe
qui génère un champ magnétique (le stator) et une partie tournante (le rotor).

Figure 6:MOTEUR A COURANT CONTINUE: conversion électromécanique

Les moteurs utilisés dans le robot, pour faire tourner les roues, est de type TT
(Figure II.4)

14
Projet Informatique 2023

Figure 7:DC MOTOR

Tableau 1:caractéristique DC MOTOR

C. Le circuit de pilotage des moteurs : le L298 en


double Pont H
Le L298 (Figure 12) est utilisé pour contrôler la vitesse et le sens de rotation des
moteurs à courant continu. Il peut faire tourner les moteurs en vitesse continue
ou par PWM (pulse width modulation)

15
Projet Informatique 2023

Figure 8:Structure interne du circuit intégré L298

Le L298 est un double pont en H qui permet de faire tourner les moteurs dans un
sens ou dans l’autre sans avoir à modifier les branchements, grâce à sa forme de
H, d’où il tient son nom et qui lui permet de faire passer le courant soit dans un
sens ou dans l’autre*5+.

16
Projet Informatique 2023

Figure 9:circuit imprimé et connexion du L298N avec un moteur cc

1. Principe de fonctionnement du L298 :


Les ports ENA et ENB (Figure 13) permettent de gérer l’amplitude de la tension
délivrée au moteur, grâce à un signal PWM. Les ports In1, In2 pour le moteur A
et In3, In4 pour le moteur B, permettent de contrôler le pont en H et par
conséquent le sens de rotation des moteurs. La (figure 14) illustre un exemple de
control d’un moteur connecte à la sortie A *6+.

17
Projet Informatique 2023

Figure 10:Controle de la rotation d’un moteur et freinage par le L298N


2. Le pont en H :
Le fonctionnement de base du pont en H est relativement simple, il permet
d’alimenter le moteur dans un sens ou dans l’autre.

En effet, lorsque Va=5V et Vb=0V, Q2 et Q3 (transistors) conduisent, la borne


moins du moteur sera connectée à la masse et la borne plus à la tension
d’alimentation faisant ainsi tourner le moteur de B vers A.

Inversement, lorsque Va=0V et Vb=5V, Q1 et Q4 qui conduisent, la borne


moins du moteur sera connectée à la tension d’alimentation et la borne plus à la
masse faisant alors tourner le moteur de A vers B. lorsque les deux tensions de
commande sont à zéro, le courant est nul. Les diodes permettent au courant de
réduire continûment lorsque les transistors sont bloqués.

18
Projet Informatique 2023

Pour faire varier la vitesse du moteur, il faut appliquer une tension variable aux
bornes de celui-ci. Pour ce faire, la commutation des transistors est commandée
par un signal PWM (Pulse Width Modulation) de fréquence relativement élevée
(> 10KHz). Le moteur passe ainsi de manière très rapide d’état alimenté a non
alimenté et vice-versa.

La tension moyenne vue par le moteur (charge inductive) sera alors déterminée
par le rapport cyclique du signal PWM utilisé [7].

Figure 11:Schéma du principe de fonctionnement du pont en H

3. Caractéristiques du pont en H :


Les caractéristiques principales du circuit pont en H sont listées comme suit :

 Diodes de protections
 Un dissipateur (pour dissiper la chaleur en cas de forte charge)
 Un sélecteur pour sélectionner la source d'alimentation
 4 Sélecteurs pour les résistances pull up
 Sortie pour 2 moteurs continus
 Indicateur LED pour sens de rotation moteur
 Indicateur LED pour alimentation 5V
19
Projet Informatique 2023

 Composant de contrôle en puissance : L298N


 Alimentation de la charge : de +6V à +35V
 Courant Max (en pointe) : 2A
 Tension de commande logique Vs : de +5 à +7V (alimentation interne de
+5V)
 Courant de commande logique : de 0 à 36mA
 Tensions pour contrôle du sens : bas 0.3V~1.5V, haut : 2.3V~Vss
 Tensions pour contrôle "actif » : 0.3V~1.5V, haut : 2.3V~Vss
 Puissance Max : 25W (Température 75 ℃)
 Température de fonctionnement : de -25℃ à +130℃
 Dimensions : 60mm x 54mm
 Poids : ~48

D. Batterie :
L’alimentation des composants est garantie par six piles de 1.5V (Figure 16)
d’ampérage 3000 milliampère (mAh), embarquées sur notre robot mobile.

Figure 12: La batterie

E. POMPE SUBMERSIBLE
La pompe submersible peut être utilisée pour la circulation d'eau de
refroidissement par ordinateur, la circulation de liquide, le transfert ou toute
autre eau de recyclage. La pompe peut être appliquée dans les modèles
20
Projet Informatique 2023

expérimentaux, les changements d'eau de réservoir de poissons, machine à thé,


machine à café, arrosage régulier, station de pompage d'huile de grain, petite
piscine gonflable, gommage de voiture, etc.

Spécifications :

• Type d’élément : Pompe submersible

• Couleur : comme le montrent les images

• Tension : DC 2,5-6 V

• Actuel : 130-220MA

• Ascenseur : 40-110cm

• Débits : 80-120L/H

• Puissance : 0,4-1,5 W

• Sortie d’eau : 5 mm/0,1 po

• Taille : environ 56 * 24 * 33 mm/2,2 * 0,9 * 1,2 pouces

• Poids du colis : environ 30 g

Figure 13:La pompe


21
Projet Informatique 2023

F. CAPTEUR DE FLAMME :
1. Présentation du module :
Module didactique basé sur un récepteur IR permettant la détection d'une
flamme ou d'autres sources lumineuses.

Alimentation: 5 Vcc

Plage de mesure: 760 à 1100 nm

Sorties: A0, Gnd, Vcc et D0

Température de service: -40 °C à +85 °C

Humidité de service: 30 à 90 % RH

Dimensions: 42 x 16 x 15 mm

2. Connexion du capteur :
Branchez le capteur aux broches de la carte Uno comme représenté ci-dessous :

Figure 14:connexion capteur et détecteur de flamme sur arduino

G. SERVOMOTEUR :

22
Projet Informatique 2023

Figure 15:servomoteur
Un servomoteur est un système asservie (ou système bouclé) ; il s’agit d’un
moteur à courant continu enfermé dans un boîtier de petite taille avec des
constituants électroniques et mécanique. Sa fonctionnalité est de tenir une
position angulaire donnée fournie au système en entrée sous forme d’un signal
électrique.

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

23
Projet Informatique 2023

a) Connexion du capteur :

Figure 16:Connexion du servomoteur sur la carte arduino

III. ETUDES NUMERIQUES DES COMPOSANTS :

A. Premiers pas : initialisation en Arduino avec


Matlab (Allumer une LED)
Afin de bien maitriser la programmation et l’utilisation de la carte Arduino, on
va tout d’abord commencer par des programmes simples dont le but est de
réaliser un programme optimal pour notre robot. Commençons au début par un
programme assez simple, dans lequel on cherche à allumer puis éteindre une
LED pendant une seconde infiniment de fois.

24
Projet Informatique 2023

Figure 17:LED clignoter sur la carte arduino

Codes Matlab utilisés :

Clear all

Close all

a = arduino('COM6', 'Uno');

>> writeDigitalPin(a, 'D13', 0);

pause(2);

writeDigitalPin(a, 'D13', 1);

>> for i = 1:10

writeDigitalPin(a, 'D13', 0);

pause(0.5);

writeDigitalPin(a, 'D13', 1);

pause(0.5);
25
Projet Informatique 2023

end

B. Deuxième pas : utiliser un capteur Ultra-son


1. Le code Matlab du capteur :
Afin de mettre en évidence le fonctionnement du capteur ultra-son, on réalise la
simulation suivante sur Proteus, on relie le capteur a la carte Arduino avec un
écran d’affichage où on va lire les résultats indiqués par le capteur, on modélise
un obstacle dans notre simulation par un potentiomètre.

Figure 18:Montage reliant un capteur ultra-son et un Arduino

Codes Matlab utilisés :

Clear all

Close all

ArduinoObj = arduino ('COM6','Uno',"Libraries","Ultrasonic");

ultrasonicObj1 = ultrasonic (arduinoObj,'A0','A1');% capteur avant

26
Projet Informatique 2023

d1 = readDistance (ultrasonicObj1)

1. Résultats :

Figure 19:Première réponse du capteur ultra-son

Le potentiomètre en 77%, et le capteur indique 307cm, on change le


pourcentage du potentiomètre à 20% et on remarque que le capteur indique
852cm, ce qu’on peut l’interpréter comme l’éloignement d’obstacle.

27
Projet Informatique 2023

Figure 20:deuxième réponse du capteur ultra-son

C. Dernier pas : simulation du robot :


Après avoir étudié séparément et choisi minutieusement les composants
contribuant dans la construction de notre robot pompier, on les a assimilés tous
ensemble et voilà ce qu’on a obtenu :

28
Projet Informatique 2023

a) Schéma électrique du Robot :

Figure 21:Montage reliant les différentes composantes du robot

IV. REALISATION DU CODE SOUS MATLAB :

A. MATLAB :
1. PRESENTATION :
C’est un logiciel de calcul mathématique pour les ingénieurs et les scientifiques
créé par Mathworks. MATLAB est un environnement de programmation pour le
développement d’algorithme, d’analyse de données, de visualisation, et de calcul
numérique. En utilisant MATLAB, la résolution des problèmes de calcul

29
Projet Informatique 2023

complexes se fait plus rapidement qu’avec des langages de programmation


traditionnels, tels que C, C++, et le Fortran.

2. UTILISER ARDUINO SUR MATLAB :


Pour pouvoir utiliser et commander la carte Arduino avec logiciel MATLAB,
nous devons installer des packages (MATLAB SUPPORT PACKAGE FOR
ARDUINO HARDWARE) permettant à MATLAB de communiquer avec la
carte Arduino. Mais également des bibliothèques pour certains composants
(capteurs), dans notre cas la librairie ultrasonique (HC-SR04).

3. INSTALATION DES SUPPORTS PACKAGE ARDUINO


(1) ETAPE 1

Figure 22:GET HARDWARE SUPPORT PACKAGES

(2) Etape2

Chercher le « support package for arduino »

30
Projet Informatique 2023

(3) Etape 3

Installer le « Package for Arduino Hardware ».

Vous serez invité de créer un compte sur Mathworks, une fois crée l’installation
pourra se poursuivre.

(4) Etape4

Accepter les conditions d’utilisation

31
Projet Informatique 2023

(5) Etape 5

Attendre que l’installation se termine en acceptent toutes les demandes


d’autorisation d’installer de MATLAB durant le processus

(6) Etape 6

Une fois l’installation terminée, dès que la carte arduino est connectée, des
messages s’affiche sur le « commande Windows » comme suit :
32
Projet Informatique 2023

B. Interfaçage du moteur à courant continu avec


Arduino à l'aide de L298N :

Figure 23:connexion L298 avec la carte arduino

1. Moteur à courant continu interfaçant avec MATLAB  :


Nous allons maintenant créer une interface graphique pour le moteur
à courant continu dans MATLAB. Ainsi, le premier guide de type et
l’interface graphique apparaîtront. Nous allons maintenant concevoir
notre interface graphique :

33
Projet Informatique 2023

J'ai besoin de trois boutons pour cette interface graphique , donc si


j'appuie sur le premier bouton, le moteur doit tourner dans le sens des
aiguilles d'une montre, si j'appuie sur le deuxième bouton, le moteur doit
tourner dans le sens inverse des aiguilles d'une montre, et si j'appuie sur le
troisième, le moteur doit s'arrêter. Maintenant, pour créer ces boutons,
sélectionnez simplement le bouton et faites-le glisser et cliquez sur le
bouton et vous pouvez changer le titre et la balise du bouton comme
expliqué dans mon précédent tutoriel de contrôle des LED. Modifiez les
noms du bouton en sens horaire, antihoraire et stop.

Nous allons également contrôler la vitesse du moteur. Donc, je vais utiliser un


curseur et la vitesse du moteur peut être vue dans la zone de texte à côté du
curseur, c'est tout, et je vais apporter quelques modifications au curseur pour que
la valeur maximale soit de 5 pour la glissière.

34
Projet Informatique 2023

Ensuite, nous allons enregistrer l'interface graphique en cliquant sur le bouton


enregistrer dans l'interface graphique avec le nom dc_motor et cliquer sur le
bouton enregistrer.
Après avoir cliqué sur le bouton Enregistrer, le code apparaîtra.

La première chose, nous devons initialiser certaines variables, donc, quelle que
soit la fonction précédente qui est dans la mémoire qui sera effacée si je donne
la fonction Clear all, et je vais affecter une variable globale et cette variable
globale aura Arduino.

35
Projet Informatique 2023

1.Code du bouton dans le sens des aiguilles d'une montre :

2. Code du bouton dans le sens inverse des aiguilles d'une


montre :

3. Code du bouton d'arrêt :

4. Code curseur Matlab :

36
Projet Informatique 2023

Maintenant, lorsque nous cliquons sur le bouton d'exécution, l’interface


graphique s'ouvre et lorsque nous cliquons sur le bouton dans le sens des
aiguilles d'une montre, le moteur se déplace dans le sens des aiguilles d'une
montre et lorsque nous cliquons sur le bouton dans le sens inverse des aiguilles
d'une montre, le moteur change de direction. Lorsque nous cliquons sur le
bouton d'arrêt, le moteur s'arrête et nous pouvons également modifier la vitesse
du moteur via le curseur. La zone de texte affichera la vitesse actuelle du
moteur.
a) PROBLEME RENCONTRER :
Vérifier le COM choisi sur Windows rechercher « gestionnaire de périphérique
» et vérifier la liste des COM

37
Projet Informatique 2023

Le bon port COM est le « COM6.

(2) Erreur liée à Arduino :

Faire un « clear all » dans « Command Windows » pour nettoyer le «


Workspace ».

(3) Pompe défectueuse :

- mauvaise alimentation : la tension d’alimentation n’était pas stable ou


suffisante ce qui a entrainé une surchauffe et une panne de la pompe.

C. CODE MATLAB :
1. IDEE GENERALE DU CODE :
 Le robot reste initialement inactif

 Commencer à tourner à 360 degrés à l’aide du module Bluetooth pour


détecter la présence d'un objet à l'aide d'un capteur de flamme.

 Avancer s’il y’a la présence de la flamme devant lui !

 positionner près de la flamme et activer la pompe pour éteindre le feu

 Reculer et tourner à gauche ou droite pour retourner à sa position initiale

a) CODE MATLAB :
% Projet informatique ESP/UCAD/GENIE MECANIQUE L3 EM
% MOUHAMAD NDOUR
% MODOU GUEYE

38
Projet Informatique 2023

% FAMA GUEYE
function varargout = DCcontrol(varargin)
% DCCONTROL MATLAB code for DCcontrol.fig
%      DCCONTROL, by itself, creates a new DCCONTROL or raises the existing
%      singleton*.
%
%      H = DCCONTROL returns the handle to a new DCCONTROL or the handle to
%      the existing singleton*.
%
%      DCCONTROL('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in DCCONTROL.M with the given input
arguments.
%
%      DCCONTROL('Property','Value',...) creates a new DCCONTROL or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before DCcontrol_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to DCcontrol_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help DCcontrol

% Last Modified by GUIDE v2.5 26-Jan-2023 18:55:27

% Begin initialization code - DO NOT EDIT


gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @DCcontrol_OpeningFcn, ...
                   'gui_OutputFcn',  @DCcontrol_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before DCcontrol is made visible.


function DCcontrol_OpeningFcn(hObject, eventdata, handles, varargin)

39
Projet Informatique 2023

% This function has no output args, see OutputFcn.


% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to DCcontrol (see VARARGIN)

% Choose default command line output for DCcontrol


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes DCcontrol wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = DCcontrol_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure


varargout{1} = handles.output;
clear all;
global a;
a=arduino;

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata, handles)
global a;
writeDigitalPin(a,'D6',0);
writeDigitalPin(a,'D7',1);
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton2.


function pushbutton2_Callback(hObject, eventdata, handles)
global a;
writeDigitalPin(a,'D6',1);
writeDigitalPin(a,'D7',0);

% hObject    handle to pushbutton2 (see GCBO)


% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

40
Projet Informatique 2023

% --- Executes on button press in pushbutton3.


function pushbutton3_Callback(hObject, eventdata, handles)
global a;
writeDigitalPin(a,'D6',0);
writeDigitalPin(a,'D7',0);

% hObject    handle to pushbutton3 (see GCBO)


% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton4.


function pushbutton4_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% --- Executes on slider movement.


function slider1_Callback(hObject, eventdata, handles)
global a;
slider=get(hObject,'Value')
slider1=slider *20;
set(handles,edit1,'String',num2str(slider1));
writePWMVoltage(a,'D8',slider);
guidata(hObject,handles);
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider


%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider

% --- Executes during object creation, after setting all properties.


function slider1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.


if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end

function edit1_Callback(hObject, eventdata, handles)


% hObject    handle to edit1 (see GCBO)

41
Projet Informatique 2023

% eventdata  reserved - to be defined in a future version of MATLAB


% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


%        str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.


%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

% --- Executes on button press in pushbutton5.


function pushbutton5_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

V. CONCLUSION GENERALE :
Ce projet décrit le robot de lutte contre les incendies en temps réel qui se
déplace à une vitesse constante, identifie le feu puis l'éteint à l'aide d'un
mécanisme de pompage. Il présente des caractéristiques avantageuses telles que
la capacité de détecter automatiquement l'emplacement d'un incendie en plus
d'avoir un corps compact et une structure légère. Le robot peut être utilisé dans
un endroit qui a une petite entrée ou dans de petits espaces car il a une structure
compacte. Le système peut potentiellement être utile pour accompagner les
pompiers et prévenir une épidémie. L'opérateur est capable d'éteindre le feu à
l'aide d'une télécommande à plus longue distance. Les opérateurs peuvent
également surveiller les conditions environnementales pendant le processus de

42
Projet Informatique 2023

lutte contre l'incendie en utilisant la caméra. D'après les résultats expérimentaux,


le robot peut détecter les fumées et tirer avec précision en peu de temps.

43

Vous aimerez peut-être aussi