Support de Cours Robotique Industrielle

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 57

Année : 2020/2021

Robotique Industrielle

Module : Mécatronique
Filière : RIM : Risque Industriel et Maintenance
Classe: 4 ème Année RIM 3

Semestre: S7

Cours Animé par: Pr. M.LARAKI


I- Chapitre 1: Mécatronique et Robotique Industrielle V- Chapitre 5: Cas Pratique de Robots en
I.1- Définition de la Mécatronique Environnement Arduino (Suite)
I.2- Définition de la Robotique Industrielle
V.4 - Descriptions et fonctions : Capteurs Intelligents
II- Chapitre 2: Robots Industriels V.5 - Capteurs : principes de fonctionnement
II.1- Principe de fonctionnement d’un Robot Industriel V.6 – Mécatronique : Programmation de l’ensemble du
II.2- Exemple de types de Robots Industriels Système Embarqué et Mécatronique du Robot (Kit
II.3- L’utilité de la robotisation Voiture) sous le logiciel ARDUINO IDE
II.4- Exemples d’applications de la robotisation industrielle

III- Chapitre 3: Langage SysML


III.1- SysML : Définitions
III.2- Les diagrammes SysML
III.3- Les symboles et liaisons SysML

IV- Chapitre 4: Robots et systèmes Embarqués


IV.1- Systèmes Embarqués : Définitions et généralités
IV.2- Système Embarqués en Environnement Arduino

V- Chapitre 5: Cas Pratique de Robots en Environnement Arduino


V.1- Robot Mobile ( Kit Voiture ) : Cahier de charge
V.2- Robot Mobile ( Kit Voiture commandé par une carte Arduino)
V.3- Descriptions : Partie Commande et Partie Opératrice

2
Matière: Robotique Industrielle
Module : Mécatronique
Filière : RIM : Risque Industriel et Maintenance
Classe: 4 ème Année RIM
Semestre : S7

Objectif du Cours :
- Présentation de la Mécatronique et de la Robotique Industrielle.
- Comprendre le Langage de modélisation spécifique au domaine de l'ingénierie SysML.
- Comprendre les notions liées aux systèmes embarqués en environnement Industriel.
- Robotique et Systèmes Embarqués en environnement Arduino et Programmation Arduino IDE.

Répartition volume horaire :


Cours Magistral et TD: 10h
TP : 5h

Mode d’évaluation :
Examen, TP

Ouvrages: Liste à consulter en Annexe en dernière page du support de cours.

3
I- Chapitre1 : Introduction
I.1- Définition de la Mécatronique

Mécatronique
La mécatronique est la combinaison synergique et systémique de la mécanique, de l'électronique et de
l'informatique temps réel.

4
I- Chapitre1 : Introduction
I.1- Définition de la Robotique Industrielle

Automate
Un automate est une machine
programmée pour effectuer
une tâche précise dans un
environnement donné.

Mécatronique Robot
La mécatronique est la Un robot est un automate doté de capteurs lui
combinaison synergique et donnant une capacité d'adaptation et de
systémique de la mécanique, de déplacement proche de l'autonomie.
l'électronique et de l'informatique Un robot est un agent physique réalisant des
temps réel. tâches dans l'environnement dans lequel il évolue.

5
I- Chapitre1 : Introduction
I.2- Définition de la Robotique Industrielle

Définition de la robotique Industrielle:

La robotique industrielle est officiellement définie par l'Organisation Internationale de Normalisation (ISO)
comme étant un système commandé automatiquement, multi-applicatif, reprogrammable, polyvalent,
manipulateur et programmable sur trois axes ou plus.

Les applications typiques incluent les robots de soudage, de peinture et d'assemblage.

L'avantage de la robotique industrielle est sa rapidité d'exécution et sa précision ainsi que la répétition de
cette précision dans le temps.

Les robots industriels sont très utilisés dans le secteur de l'automobile.

Leur conception nécessite une bonne connaissance technique et un très haut niveau dans le domaine de
l'ingénierie.

6
II- Chapitre 2 : Robots Industriels
II.1- Principe de Fonctionnement d’un Robot Industriel

Pour fonctionner, un robot a besoin de plusieurs éléments :

Le composant mécanique :

il s’agit d’un élément très important puisqu’il définit la précision, la rapidité et la charge maximale du robot.

Le composant électronique :

se caractérise par le système de commande qui permet de piloter tous les moteurs et recevoir des informations
sur l’environnement du robot grâce à des capteurs.

Le composant informatique :

permet au robot de collaborer avec l’utilisateur et son environnement.

7
II- Chapitre 2 : Robots Industriels
II.2- Exemple de types de Robots Industriels

A- Robots Poly articulés: Les robots poly articulés offrent une grande souplesse d'utilisation et d'adaptation
en fonction du produit que vous souhaitez manipuler.

B- Robots Delta : Le Robot Delta est un robot ayant un bras de manipulation formé de
3 parallélogrammes, ce qui, vu sa légèreté, lui permet d'être rapide et de garder sa charge dans la
même orientation.

C- Robots Palettisation : Les robots de palettisation sont des robots industriels palettiseurs rapides, dotés
d’une grande précision et permettant une répétabilité très élevées.

D- Le robot SCARA : C’est un robot qui se déplace suivant les axes X, Y, Z comme le robot cartésien mais
comprend un angle de rotation supplémentaire, qui lui permet de mouvoir l’outil en bout de bras dans plus de
directions.

8
II- Chapitre 2 : Robots Industriels
II.2- Exemple de types de Robots Industriels

Robots Poly articulés Robots Delta Le robot SCARA :

9
II- Chapitre 2 : Robots Industriels
II.3- L’utilité de la Robotisation

Pourquoi robotiser ?

Les robots industriels sont destinés à effectuer plusieurs tâches, en voici quelques exemples en milieu industriel:

- L’ assemblage en secteur automobile.

- Emballage (Packadging).

- Palettisation industrielle.

10
II- Chapitre 2 : Robots Industriels
II.4- Exemples d’application de la robotisation Industrielle

Robots de
Exemples d’applications: Peinture

Pour assurer la mise en peinture, l’usinage,


l’assemblage, manutention, la robotique
industrielle s’intègre dans le secteur Robotique
d’automatisme pour son caractère automatique, Robot de Industrielle Robots
reprogrammable, polyvalent et pratique. manutention
Secteur de d’assemblage

l’Automobile
On distingue des robots industriels
menuiserie, robots de peinture, centre d’usinage
automatique, etc.

Robots
d’Usinage

11
III- Chapitre 3: Langage SYSML
III.1- SYSML : Définition

Systems Modeling Language - SysML

Le SysML est un langage de modélisation destiné au domaine de l'ingénierie système.

Le SysML permet de :

- Spécifier
- Analyser
- Concevoir
- Vérifier
- Valider

de nombreux systèmes et systèmes-de-systèmes.

12
III- Chapitre 3: Langage SYSML
III.1- SYSML : Définition

SysML est un langage graphique, composé de diagrammes qui permettent d’aborder plus facilement les systèmes pluri
techniques. SysML « Systems Modeling Language », veut dire Langage de Modélisation de systèmes.

Les diagrammes SysML permettent de représenter :

- Les exigences du système.


- Les composants du système.
- Les flux de toute nature (matière, énergie et information).
- Le fonctionnement du système.

Les diagrammes SysML :

- Sont utilisés tout au long du cycle de vie du système (conception, analyse…).


- Sont communs à tous les champs disciplinaires.
- Ont leur description propre et sont le plus souvent liés entre eux.
- Remplacent la plupart des autres outils de description auparavant utilisés.

13
III- Chapitre 3: Langage SYSML
III.1- SYSML : Définition

Système réel
Un système technique peut être représenté
par sa chaîne d’information et sa chaîne
d’énergie:

Chaîne d’information : ensemble de


constituants associés de manière structurée
et permettant à partir d’une information
(issue en général d’un capteur) de la traiter
(par programme) et de restituer une
information exploitable par la chaîne
d’énergie (afin de la piloter).
Chaîne d’énergie : Ensemble de
constituants associés de manière structurée
et permettant à partir d’une source
d’énergie d’agir sur une matière, une
énergie, une information.

14
III- Chapitre 3: Langage SYSML
III.1- SYSML : Définition

Système souhaité et système réel

15
III- Chapitre 3: Langage SYSML
III.2- Les Diagrammes SYSML

A- Diagramme Transversal:

- Diagramme des exigences (requirement diagram, Notation SysML: req) :

Ce diagramme décrit les exigences du cahier des charges fonctionnel. Une exigence exprime une capacité ou une
contrainte à satisfaire par un système.
Les exigences servent à établir un contrat entre le client et les réalisateurs du futur système

Les exigences peuvent être reliées entre elles par des relations de :

- Contenance : permet de décomposer une exigence en plusieurs exigences.

- Raffinement ("refine") : permet d’ajouter des précisions à la description technique du système.

- La dérivation ("deriveReqt") : permet de relier des exigences entre eux dans un même système.

16
III- Chapitre 3: Langage SYSML
III.2- Les Diagrammes SYSML

B- Diagrammes comportementaux

- Diagramme de contexte :
le diagramme de contexte permet de définir les limites de l’étude et précisant les différentes interactions externes.

- Diagramme des cas d’utilisation « uc: Use Case Diagram »


Le diagramme des cas d’utilisation, présente les fonctionnalités du système étudié tout en spécifiant les cas
d’utilisation.

- Diagramme de séquence « sd: Sequence Diagram »


Le diagramme de séquence décrit en détail le fonctionnement d’un système tout en précisant l'enchaînement
séquentiel.

- Diagramme d’états « stm : State Machine Diagram »


Le diagramme d’états, permet de décrire le fonctionnement d’un programme.

17
III- Chapitre 3: Langage SYSML
III.2- Les Diagrammes SYSML

C- Diagrammes structurels

Les diagrammes structurels mettent en avant l’agencement des différents composants ainsi que leurs relations.

Deux diagrammes SysML portent sur la structure d’un système :

- Le diagramme de définition de blocs : bdd (SysML Block Definition Diagram)


permet de bien comprendre la façon dont est construit le système, et de décrire ses composants.

- Le diagramme de blocs internes : bdd (SysML Intern Block Diagram)


Permet de préciser les échanges entre différents blocs (des commandes ou des flux pouvant être de l’énergie, de la
matière ou de l’information).

18
III- Chapitre 3: Langage SYSML
III.3- Symboles et liaisons SYSML

Association X Y X utilise Y
(uc, bdd, idb)

Dépendance X Y X dépend de Y
(uc, req, bdd)

Agrégation X Y X entre dans la composition de Y


(req, bdd) sans être indispensable à son fonctionnement

Composition X Y X entre dans la composition de Y


(req, bdd) indispensable à son fonctionnement

Généralisation X Y X est une sorte de Y


(req, bdd, ibd)

Conteneur X Y Y contient X
(req, bdd)
19
IV- Chapitre 4: Robots et systèmes Embarqués
IV.1- Système Embarqués : Définition et généralités

Définitions :

Un système embarqué est défini comme un


système électronique et informatique autonome,
souvent temps réel, spécialisé dans une tâche
précise.

Le terme désigne aussi bien le matériel


informatique que le logiciel utilisé.

Ses ressources sont généralement limitées


spatialement (encombrement réduit)
et énergétiquement (consommation restreinte).

20
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

Les microcontrôleurs de la famille AVR d'Atmel Le microcontrôleur de l'Arduino UNO

Caractéristiques générales

- Technologie CMOS haute vitesse :


rapidité + faible consommation

- Architecture RISC et Harvard


Puissance en Mips = fréquence de l'horloge

- Alimentation entre 1,8 et 5,5V

- 3 mémoires indépendantes :

- Mémoire flash intégrée (10000 cycles écriture)


- Mémoire EEPROM pour le stockage de données semi-
permanente(100000 cycles écriture)
- Mémoire SRAM rapide

21
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

Le microcontrôleur de l'Arduino UNO


Caractéristiques générales de l'Atmega328p

- Nombre de broches : 28
- Mémoire Flash : 32 ko (programmable par interface série)
- Mémoire Données EEPROM : 1 ko
- Mémoire RAM : 2 ko
- 32 registres de travail d'accès rapide pour l'ALU
- Ports parallèles : 3, avec 23 broches E/S
- Fréquence d'horloge : 16 Mhz (maxi tolérée = 20 Mhz)
- donc : 16 cycles d'horloge par micro-seconde
- Périphériques internes
-6 convertisseurs Analogiques/Numériques 10 bits,
comparateur analogique
-1 Timer 16 bits (T1), 2 timers 8 bits(T0,T2)
-6 canaux PWM, 1 WDT (watchdog)
-SPI, USART, TWI (=I2C)
- 26 interruptions •VCC (1), GND (2) ---- E/S (=GPIO) : PORTB (8), PORTC (7), PORTD(8)
- 5 modes d'économie d'énergie •AVCC (1) : alimentation CAN ---- AREF (1) : entrée comparateur analogique

22
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

23
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

24
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

1- Environnement de développement Arduino 2- Etape de Programmation

Arduino fournit un environnement de développement avec un Apres la préparation du programme, il y’a des étapes à faire afin
éditeur de source, les opérations de compilation et de de terminer la programmation, qui sont les suivantes :
chargement dans la mémoire du microcontrôleur étant
ramenées à des clicks sur des boutons dans l'IHM (très simple). - Obtenir une carte Arduino et un câble USB
La communication entre le PC et la carte se fait via le port USB, - Télécharger l'environnement Arduino
moyennant installation d'un driver adapté (fourni par Arduino) - Raccorder la carte à l'ordinateur
- Installation des pilotes du périphérique Série-USB
- Lancer l'application Arduino IDE - GENUINO

3-Charger un programme dans la carte ARDUINO

Etape 1 : lancer le logiciel.


Etape 2 : ouvrir et modifier le programme.
Etape 3 : vérifier le programme.
Etape 4 : connecter la carte à l’ordinateur avec le câble USB.
Etape 5 : transférer le programme vers la carte.
Etape 6 : vérifier le fonctionnement.

25
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

Les tests dans le programme Test Dans le programme


Si … if(condition)
{instructions}
Si … Sinon if(condition)
{instructions}
else
{instructions}
Si … Sinon Si … if(condition)
{instructions}
elseif(condition)
{instructions}
Faire … Tant que… do
{instructions}
while(condition) ;
Tan que … while(condition)
{instructions}
Compteur for(variable ; condition ; comptage)
{instructions}

26
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

Les conditions

Condition Dans le programme


Egale à ==
Supérieur >
Inférieur <
Supérieur ou égal >=
Inférieur ou égal <=
Non égal !=

27
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino
Opérateurs logiques

Dans le
Opérateur logique Exemple
programme
ET logique
Vraie si les deux conditions sont && if(condition 1 && conditions 2)
remplies
OU logique
Vrai si l’une ou l’autre des !! if(condition 1 !! conditions 2)
conditions est remplie

NON logique
! if( ! condition)
Vrai si la condition est fausse

28
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

3- Structure d’un Projet Arduino 4- Notion du Langage ARDUINO

Le langage Arduino est très proche du C et du C++.Pourtant il y


a des différences surtout au niveau de l’écriture des fichiers
- Pas de fonction main
- Deux fonctions sont obligatoires (setup et loop)
- Et bien d’autres points de différences

Un programme Arduino est composé de 3 parties:

- La partie déclaration des variables (optionnelle)

- Fonction setup () : C’est une partie d’initialisation et


configuration des entrées / sorties. Elle est appelée une seule
fois lorsque le programme commence.

- Fonction loop() : C’est la partie principale contenant le


programme. Elle est répétée indéfiniment en boucle infinie

29
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

30
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino
Exemple de Code Arduino

Soit une LED connectée au PIN 12 de la carte Arduino ( ARDUINO Microcontrôleur


ATMéga 328) (Voir figure de droite) :

Question :
Ecrire un programme Arduino permettant de faire clignoter la LED une fois.

Réponse:
Code Arduino:
/* Ce programme fait clignoter une LED branchée sur la broche 12
*/
// declaration de la variable led au niveau du Pin 12 .
# define led 12 // la led est branchée sur la broche 12
void setup() {
pinMode(led, OUTPUT); // la LED est initialisée en sortie
}
void loop() {
digitalWrite(led, HIGH); // Allumer la LED (HIGH is the voltage level)
delay(1000); // Temporisation de 1 seconde
digitalWrite(led, LOW); // Eteindre la LED (LOW is the voltage level)
delay(1000); // Temporisation de 1 seconde
}
31
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino
Programmer avec le logiciel arduino

Le programme s’écrit à l’aide des fonctions décrites dans les pages suivantes. Chaque module électronique utilisé est
connecté à la carte. Le programme est envoyé dans la carte qui gérera les modules comme cela a été programmé.
Les fonctions s’écrivent entre les deux accolades de void loop() du programme de base.
Const int led1 = 13; // LED connectée au Pin 13
Exemple:
void loop() Const int Ir = 7; // Capteur IR connecté au Pin 7
{ void setup() {
lirecapteur(ir); if(barriere<900) pinMode(led1, OUTPUT); // Pin 13 configurée comme sortie
Algorithme pinMode(Ir, INPUT); // Pin 7 configurée comme entrée
{allumer(led1);}
else }
{eteindre(led1);} void loop() {
} digitalRead(Ir);
Traduction if (barriere < 900) {
Programme digitalWrite(led1, HIGH);
ARDUINO }
else{
digitalWrite(led1, LOW);}
32
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino
Module LED ou DEL
La LED ou DEL ( Diode Electroluminescence ) est un actionneur.
Lorsqu’elle est parcourue par un courant électrique, elle émet de
la lumière.

Nom à utiliser dans le


Connecté à la broche
programme
led1 D10
Exemple : faire clignoter une LED Exemple : ( Traduction en Langage Arduino)
connectée à D13
Const int led1 =10;
Fonctions Commentaires void loop()
void setup() {
{
allumer(nom); Allumer LED led1
allumer(led1); pinMode (led1,OUTPUT); }
eteindre(nom); Eteindre LED led1 pendant(1000); void loop() {
eteindre(led1); digitalWrite (led1, HIGH);
pendant(durée); durée est une valeur en pendant(1000); delay(1000);
millisecondes. 1s = 1000 ms } digitalWrite (led1, LOW);
delay(1000);
}

33
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino
Servomoteur
Connecté à la Fonctions Commentaires
Fils
Un servomoteur est un moteur dont broche
on peut commander la position Fil noir Gnd angleservo(angle); angle est compris entre 0
et 180. Il correspond à
angulaire, de 0° à 180° avec précision. Fil rouge 5V l’angle auquel le
Le fil jaune ou blanc se connecte à D9. servomoteur se déplacera.
Fil jaune ou blanc D9

Exemple : // Test utilisation servomoteur SG90 //


#include <Servo.h>
faire tourner le servomoteur de 0° à 45° par pas de 1°
void setup() {
void loop() // Attache le servomoteur à la broche D9
{ monServomoteur.attach(9);}
void loop() {
angleservo(0); // Fait bouger le bras de 0° à 45°
for(int i=0; i<=45; i++) for (int position = 0; position <= 45; position++) {
{ monServomoteur.write(position);
angleservo(i); delay(15);}
pendant(500) ; // Fait bouger le bras de 45° à 0°
} for (int position = 45; position >= 0; position--) {
monServomoteur.write(position); D9
} delay(15); } }

34
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino
Bouton poussoir Fonctions Commentaires

lire(nom); Permet de lire la valeur d’un


Le bouton poussoir est un interrupteur qui ferme le circuit lorsqu’on appuie bouton poussoir.
dessus et l’ouvre lorsqu’on relâche.
If(etat nom==HIGH) Déclenche une action 1 si le
{ACTION 1} bouton poussoir est appuyé. Sinon,
Nom à utiliser dans le else déclenche une autre action 2.
Connecté à la broche
programme HIGH : il est appuyé
{ACTION 2}
bp1 D8 LOW : il est relâché

Exemple : fait tourner le moteur Exemple : (Traduction en Langage


dans un sens si on appuie sur le Arduino)
bouton poussoir connecté à D8
Int bp1 =8;
void loop() Int State1 =0
{ Void setup() {
lire(bp1); pinMode (bp1,INPUT); }
if (etatbp1==HIGH) void loop()
{ avancer(); } { State1 =digitalRead (bp1);
Bouton poussoir if (State1==HIGH)
else
{ arret(); } { avancer(); }
Else { arrêt(); }

35
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

Moteur à courant continu


Le module de commande de moteurs à courant continu est une interface de
puissance qui permet de piloter deux moteurs. On peut les faire tourner dans les
deux sens et les arrêter.

Broches des moteurs Connecté à la broche

Moteur 1 a D1
Moteur 1 b D0
Exemple : Exemple :
Moteur 2 a D4
Si le bouton poussoir est appuyé, Traduction Code Arduino de la fonction Loop
Moteur 2 b D2 les moteurs marchent
void loop()
void loop()
Fonctions Commentaires {
{ State1= digitalRead(bp1);
Fait tourner les moteurs lire(bp1); if (State1==HIGH)
avancer();
dans un sens if (etatbp1==HIGH) { reculer();
Fait tourner les moteurs { reculer(); delay(2000);
reculer();
dans l’autre sens pendant(2000); arrêt();}
arrêt();} Else {
arrêt(); Arrête les moteurs Else { avancer();
durée est une valeur en avancer(); delay(2000);
pendant(durée); millisecondes. 1s = 2000 pendant(2000); arrêt();} }
ms arrêt();}}

36
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino
Buzzer
Le buzzer vibre en émettant un son à la
fréquence du signal électrique qui le parcours. D3 D3

Fils Connecté à la broche

Fil noir Gnd


Fil rouge D3
Fil jaune ou blanc D9

Exemple : Exemple :
Jouer une mélodie préprogrammée et attendre 5 secondes. Traduction en Code Arduino de la fonction Loop

void loop() void loop()


{ {
melodie(); melodie();
pendant(5000); delay(5000);
} }

37
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

Photorésistance (LDR)
La photorésistance est une résistance qui varie en fonction
de la luminosité. La carte renvoie un nombre compris entre 0
(absence de lumière) et 1023 (luminosité maximum).

Nom à utiliser dans le


Connecté à la broche
programme
ldr A0
lumiere -

Fonctions Commentaires Exemple : Exemple :


Allume la LED si la quantité de Traduction en Code Arduino de la
lirecapteur(ldr); Permet de lire une valeur de lumière captée est inférieure au fonction Loop
luminosité. seuil.
void loop()
If(lumiere>=seuil) Déclenche une action si la void loop()
{ACTION 1 luminosité est supérieure ou {
} else inférieure au seuil. Sinon, { lumiere = analogRead(A0) ;
déclenche une autre action lirecapteur(ldr) ;
{ACTION 2} désirée.
if(lumiere<=500)
if(lumiere<=500) {allumer(led1)}
seuil : nombre entre 0
{allumer(led1)} else
(luminosité min.) et 1023
(luminosité max.) Else { {eteindre(led1)}
eteindre(led1)}} }

38
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino
Capteur de température
Le capteur de température permet à la carte de calculer la
température à proximité de ce dernier.

Nom à utiliser dans le


Connecté à la broche
programme
- A2
temperature -
Exemple : Exemple :
Fonctions Commentaires
Allume la LED si la quantité Traduction en Code Arduino de la fonctiion
de lumière captée est Loop
liretemp(); Permet de lire une valeur de luminosité.
inférieure au seuil.

if(temperature>=seuil) Déclenche une action si la température void loop() void loop()


{ est supérieure ou inférieure au seuil. {
{
ACTION 1 Sinon, déclenche une autre action int valeur_brute = analogRead(A0);
désirée. liretemp() ;
} Afficher (temperature)
seuil : float temperature_celcius =
else }
nombre entre 0 et 50 en degré Celius. valeur_brute * (5.0 / 1023.0 * 100.0);
{
Comparaisons possibles : Serial.println(temperature_celcius);
ACTION 2
> ou < ou >= ou <= delay(250);}
}

39
IV- Chapitre 4: Robots et systèmes Embarqués
IV.2- Système Embarqués en Environnement Arduino

Exemple de câblage

Système Embarqué Arduino permettant la lecture et l’affichage


Des données relatives à la température et Humidité

40
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.1- Robot Mobile (Kit Voiture): Cahier de charge

Objectif : Réalisation d’un Robot « Kit Voiture programmable via Arduino » permettant de se déplacer tout
en évitant les obstacles.

La réalisation du “robot car” Arduino passe par 5 étapes :


- Etape 1: L’assemblage du chassie du Robot (Kit Voiture).
- Etape 2: Test et montage des éléments robotiques (Capteurs, moteurs, Carte Arduino)
- Etape 3 : La connexion de tous les éléments à la carte Arduino (processeur).
- Etape 4: Programmation de la Carte Arduino
- Etape 5: Essais et Test de fonctionnement

41
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.2- Robot Mobile (Kit Voiture commandé par une carte Arduino)

Etape 1 : L’assemblage du chassie du Robot (Kit Voiture).

La première étape est d’assembler le châssis de la voiture robot Arduino. Le kit robot
voiture est constitué de

- Les 2 moteurs,
- Les 2 roues avants
- La roue arrière de direction,
- le porte batterie.

NB:
La partie commande sera gérée par
la carte Arduino et Programmée via
Le langage ARDUINO IDE

42
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.3- Description : Partie Commande et Partie Opératrice

Etape 2: Test et Montage des éléments robotiques (Capteurs et modules, moteurs, Carte Arduino)
Etape 2.1- Test des capteurs et modules

A- Moteurs

2 Moteurs DC
Roue

43
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.3- Description : Partie Commande et Partie Opératrice
Schéma d’ensemble

Etape 3 : La connexion de tous les éléments à la carte Arduino (processeur).

Sorties

Entrée (Capteur)

44
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.4- Description et fonctionnement: Capteurs Intelligents

Etape 2: Test et Montage des éléments robotiques (Capteurs et modules, moteurs, Carte Arduino)
Etape 2.1- Test des capteurs et modules
Avant de passer à la prochaine étape , il faut tester tout
d’abord les capteurs et les modules 1 à 1 afin de s'assurer
de leur fonctionnement.
Capteur de distance
B- Le capteur de distance

L’objectif de l’utilisation du capteur de distance :

- Mesurer la distance entre le Kit voiture et un obstacle


en trajet
- Eviter les obstacles soit en marche avant ou arrière

NB: Le branchage est assez simple. 4 fils (courant, terre, écho et


radar). L'écho permet d'envoyer un signal vers les obstacles et le
radar calcule le temps de retour du signal.

45
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.5- Capteurs: principes de fonctionnement

Etape 2: Test et Montage des éléments robotiques (Capteurs et modules, moteurs, Carte Arduino)
Etape 2.1- Test des capteurs et modules
B- Le capteur de distance

Les capteurs de distance à ultrasons utilisent le principe de l’écho


pour déterminer la distance à laquelle se trouve un objet :

On mesure la durée entre l’instant de l’émission et l’instant de la


réception.

Remarque :
Le signal ayant parcouru 2 fois la distance entre le capteur et la
surface (un aller-retour). Etape 1:
Le son est réfléchi par une surface/ ou obstacle et repart
On retrouve alors : en direction du capteur.
Etape 2:
𝑽𝒊𝒕𝒆𝒔𝒔𝒆 𝒙 𝑫𝒖𝒓é𝒆 Le capteur le détecte à son retour.
Distance Mesurée =
𝟐 Fréquence du signal : Environ 40khz

46
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.5- Capteurs: principes de fonctionnement

Etape 2: Test et Montage des éléments robotiques (Capteurs et modules, moteurs, Carte Arduino)
Etape 2.1- Test des capteurs et modules
B- Le capteur de distance
l’Arduino envoie au capteur par un Port Numérique une courte impulsion (10μs environ) à l’entrée « trigger » du capteur
; cela déclenche l’émission d’un signal.

47
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.5- Capteurs: principes de fonctionnement
B- Le capteur de distance (Exemple :Programmation Arduino IDE)
// Réception du signal réfléchi par l’obstacle détecté
// Exemple Programme ARDUINO : Lecture de distance mesurée Kit Car/Obstacle
D = pulseIn(echo, HIGH);
// Déclaration des Pins
const int trig = 11; // Trigger (émission)
// Calcul de la distance
const int echo = 12; // Echo (réception)
D = T*0.034/2;
// Déclaration de Variables
// Affichage de la distance dans le Moniteur Série
long T; // Temps de l'echo
Serial.print("Distance : ");
int D; // Distance mesurée
Serial.print(D);
Serial.println("cm");
void setup() {
}
pinMode(trig, OUTPUT); // Configuration du port du Trigger comme une SORTIE
pinMode(echo, INPUT); // Configuration du port de l'Echo comme une ENTREE
Serial.begin(9600); // Communication série à 9600 bauds
}

void loop() {

// Émission d'un signal de durée 10 microsecondes


digitalWrite(trig, LOW);
delayMicroseconds(5);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
48
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.5- Capteurs: principes de fonctionnement

B- Le capteur de distance (Exemple


:Programmation Arduino IDE) Mesure de Distance
Arrière Via Capteur SR-04
Pourquoi la mesure de distance ?:

La mesure de distance sert comme entrée au


Non Distance Oui
système de contrôle/commande afin de dévier/ou >
éviter les obstacles avant et arrière au cours du D limite
déplacement du Kit Voiture en temps réel
Reculer

Arrêt

Exemple : Organigramme de décision Mécatronique :


(Marche Arrière / Obstacle)

49
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.6- Mécatronique: Programmation de l’ensemble du système Embarqué et Mécatronique du
Robot (Kit voiture) sous le logiciel ARDUINO IDE

Application 1 :
Robot Voiture Arduino

- Robot Voiture Arduino


en Mode : Avancer

50
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.6- Mécatronique: Programmation de l’ensemble du système Embarqué et Mécatronique du
Robot (Kit voiture) sous le logiciel ARDUINO IDE

Code Arduino (Marche) :


//Moteur droit - Définition des ports 7 et 8 comme IN1 et IN2, et le
port 5 comme ENA //Vitesse maximale (255)
#define IN1 7 analogWrite(ENA,255);
#define IN2 8 analogWrite(ENB,255);
#define ENA 5
//Moteur gauche - Définition des ports 9 et 11 comme IN1 et IN2, et le //Mise en marche du moteur droit
port 6 comme ENB digitalWrite(IN1,LOW); //État bas
#define IN3 9 digitalWrite(IN2,HIGH); //État haut
#define IN4 11
#define ENB 6 //Mise en marche du moteur gauche
void setup() digitalWrite(IN3,HIGH); //État haut
{ digitalWrite(IN4,LOW); //État bas
//Configuration des ports comme des ports de sortie
pinMode(IN1,OUTPUT); }
pinMode(IN2,OUTPUT);
pinMode(ENA, OUTPUT); void loop()
pinMode(IN3,OUTPUT); {
pinMode(IN4,OUTPUT); //fonction vide car rien à répéter
pinMode(ENB, OUTPUT); }

51
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.6- Mécatronique: Programmation de l’ensemble du système Embarqué et Mécatronique du
Robot (Kit voiture) sous le logiciel ARDUINO IDE

Application 2 :
Robot Voiture Arduino

- Robot Voiture Arduino


en Mode : Reculer

52
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.6- Mécatronique: Programmation de l’ensemble du système Embarqué et Mécatronique du
Robot (Kit voiture) sous le logiciel ARDUINO IDE

Code Arduino (Recule) :


//Moteur droit - Définition des ports 7 et 8 comme IN1 et IN2, et le
port 5 comme ENA //Vitesse maximale (255)
#define IN1 7 analogWrite(ENA,255);
#define IN2 8 analogWrite(ENB,255);
#define ENA 5
//Moteur gauche - Définition des ports 9 et 11 comme IN1 et IN2, et le //Mise en marche du moteur droit
port 6 comme ENB digitalWrite(IN1,HIGH); //État bas
#define IN3 9 digitalWrite(IN2,LOW); //État haut
#define IN4 11
#define ENB 6 //Mise en marche du moteur gauche
void setup() digitalWrite(IN3,LOW); //État haut
{ digitalWrite(IN4,HIGH); //État bas
//Configuration des ports comme des ports de sortie
pinMode(IN1,OUTPUT); }
pinMode(IN2,OUTPUT);
pinMode(ENA, OUTPUT); void loop()
pinMode(IN3,OUTPUT); {
pinMode(IN4,OUTPUT); //fonction vide car rien à répéter
pinMode(ENB, OUTPUT); }

53
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.6- Mécatronique: Programmation de l’ensemble du système Embarqué et Mécatronique du
Robot (Kit voiture) sous le logiciel ARDUINO IDE

Application 3 :
Robot Voiture Arduino

- Radar de Recule

54
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.6- Mécatronique: Programmation de l’ensemble du système Embarqué et Mécatronique du
Robot (Kit voiture) sous le logiciel ARDUINO IDE

Code Arduino (Marche arrière avec Radar de recul) :

//Moteur droit - Définition des ports 7 et 8 comme IN1 et IN2, et le port 5 //Configuration des ports comme des ports de sortie
comme ENA
#define IN1 7 void setup()
#define IN2 8
#define ENA 5 {
pinMode(IN1, OUTPUT);
//Moteur gauche - Définition des ports 9 et 11 comme IN1 et IN2, et le port pinMode(IN2, OUTPUT);
6 comme ENB pinMode(ENA, OUTPUT);
#define IN3 9 pinMode(IN3, OUTPUT);
#define IN4 11 pinMode(IN4, OUTPUT);
#define ENB 6 pinMode(ENB, OUTPUT);
// Configuration du port du Trigger comme une SORTIE
// Capteur SR-04 - Déclaration des Pins pinMode(trig, OUTPUT);
const int trig = 11; // Trigger (émission) // Configuration du port du ECHO comme une ENTREE
const int echo = 12; // Echo (réception) pinMode(echo, INPUT);
// Communication série à 9600 bauds
// Capteur SR-04 - Déclaration de Variables Serial.begin(9600);
long T; // Temps de l'Echo
int D; // Distance mesurée }

55
V- Chapitre 5 : Cas Pratique de Robots en Environnement Arduino
V.6- Mécatronique: Programmation de l’ensemble du système Embarqué et Mécatronique du
Robot (Kit voiture) sous le logiciel ARDUINO IDE

Code Arduino (Marche arrière avec Radar de recul) :


void loop()
{
//Vitesse maximale (255)
analogWrite(ENA,255);
analogWrite(ENB,255);
if (D >= Dlim) {
// Reculer.
//Mise en marche du moteur droit
digitalWrite(IN1,HIGH); //État Bas
digitalWrite(IN2,LOW); //État haut
//Mise en marche du moteur gauche
digitalWrite(IN3,LOW); //État haut
digitalWrite(IN4,HIGH); //État bas
}
else{
//Mise en Arrêt des moteurs droit et gauche
digitalWrite(IN1,LOW); //État Bas
digitalWrite(IN2,LOW); //État Bas
digitalWrite(IN3,LOW); //État Bas
digitalWrite(IN4,LOW); //État Bas
}
} 56
Bibliographie et Références
• R. Isermann, « Mechatronic systems: concepts and applications », Transactions of the Institute of
Measurement and Control, vol. 22, 2000, p. 29-55.
• Lionel Birglen, Mécatronique, Dunod 2016, 416 p. (ISBN 978-2-10-074478-7)
• NF E 01-010 2008 - AFNOR
• Mécatronique, cours avec exercices corrigés, Lionel Briglen, Dunod.
• Sciences industrielles pour l’ingenieur Tout-en-un (MPSI PCSI PTSI), JD.Mosser, JJ.Marchandeau, J.Tanoh, 2015, Dunod
• Sciences Industrielles, Automatismes et Automatique - 2e édition, Livre, cours et exercices corrigés, Auteur: Jean Yves Fabert, édition :
Ellipses, Classes préparatoires.
• Le grand livre d'Arduino (Français) Broché – 5 mars 2015, Erik Bartmann
• Les Automates Programmables Industriels (Livre), William Bolton, 2 ème édition, Dunod
• Applications des microcontrôleurs PIC - 4e édition - Des PIC 10 aux PIC 18 - 3e édition, Christian Travernier, Dunod

Sites :
• Robot Pédagogique Arduino, Lien : https://robotpedagogique.wordpress.com/
• Capteur de distance, Lien: https://arduino.blaisepascal.fr/capteur-de-distance-a-ultrasons/
• Arduino, Documentation, Lien: https://www.arduino.cc/reference/en/
• Arduino, Lien : https://www.allaboutcircuits.com/technical-articles/understanding-arduino-uno-hardware-design/
• Cours SysML, Lien: http://perso.numericable.fr/starnaud/Analyse/Cours%20sysML.pdf

57

Vous aimerez peut-être aussi