Promotion : 2014-2015
|
République Algérienne Démocratique et
Populaire Ministère de l'Enseignement Supérieur et de la
Recherche Scientifique
Université Amar Telidji- Laghouat
|
|
FACULTE DE TECHNOLOGIE
DEPARTEMENT D'ELECTRONIQUE
MEMOIRE DE MASTER
Présenté par : 1-TAKHI Hocine
2-ATTACHI Redouane Cherif
DOMAINE : Sciences et Technologies FILIERE : Electronique
OPTION : Instrumentation
Thème
Conception et réalisation d'un robot mobile
à base
d'Arduino
Jury de soutenance :
Nom et Prénom Grade qualité
KADRI Mustapha Président
BELKHEIRI Ahmed Examinateur
CHELLALI Safouane Examinateur
BIRANE Abdelkader Rapporteur
MERAH Lehcene Co-Rapporteur
Remerciment
En préambule à ce mémoire, nous
souhaitons adresser nos remerciements les plus sincères aux personnes
qui nous ont apporté leur aide et qui ont contribué à
l'élaboration de ce mémoire ainsi qu'à la réussite
de cette formidable année universitaire.
Nous tenons à remercier sincèrement Monsieur
BIRANE Abdelkader et MERAH Lehcene qui, en tant que
encadreur et co-encadreur de mémoire, s'est toujours montré
à l'écoutent et très disponibles tout au long de la
réalisation de ce mémoire, ainsi pour l'inspiration, l'aide et le
temps qu'ils a bien voulus nous consacrer et sans qui ce mémoire
n'aurait jamais vu le jour.
Nous tenons à exprimer nos reconnaissances envers
monsieur Hamdi Abdelwaheb qui nous ont donné
le meilleur de lui même en contribuant à augmenter notre savoir
durant nos études. Nous exprimons nos gratitudes à tous les
consultants et internautes rencontrés lors des recherches
effectuées et qui ont accepté de répondre à mes
questions avec gentillesse.
Sans oublie nos parents pour leur contribution, leur soutien et
leur patience.
Enfin, nous adressons nos plus sincères remerciements
à tous nos proches et amis, qui nous ont toujours soutenue et
encouragée au cours de la réalisation de ce mémoire.
Merci à tous et à toutes.
DéDICACE
Je dédie ce modeste travail à :
-Mes très chers parents pour leur soutien infaillible
durant toutes mes années d'études.
-Mes frères et mes soeurs.
-Toute ma famille sans exception.
-mon professeur de lycée madame Bedrina
-Mes chers : Lahrache Abdelkader, Lahrache Allal, Ghilane
Mohamed, Goual Ibrahim, Daoudi youssef et Nouar djeloul
-Tous ceux qui m'aiment.
-Mon binôme Redouane
-Toute la promotion d'instrumentation 2014-2015
T. Hocine
Je dédie ce modeste travail à :
-Mes très chers parents pour leur soutien infaillible
durant toutes mes années d'études.
-Mes frères et mes soeurs.
-Toute ma famille sans exception.
-Tous ceux qui m'aiment.
-Mon binôme Hocine
-Toute la promotion d'instrumentation 2014-2015
A.Redouane
U 14
ÌãÇäÑÈ
ÑíæØÊÈ
|
ÇåÈ
ãßÍÊáÇ æ
|
"æäíæÏÑÇ
|
"
|
ÉíäæÑÊßá
Å
|
ÉÞÇ ØÈÈ
|
ÇåáíÕæÊ
ãÊí
|
ÊáÇÌÚ
|
ËáÇË ìáÚ
ÉßÑÍÊã ÉáÂ
ãíãÕÊ æå
áãÚáÇ ÇÐå äã
ÏåáÇ
|
äÅ
|
.ÇåÆÇØÅ æ
|
Çã ÑÇä
ÚÈäã ÏíÏÍÊ
íå ÉááÂÇ åÐå
Éãåã
ÈæÓÇÍáÇ
ìæÊÓã ìáÚ
|
"æäíæÏÑÇ
|
"
|
ßÑÍÊã
ÊæÈæÑæäíæÏÑÇ
: 4pLÊta CILo15
Résumé
Ce projet concerne la conception, la réalisation et la
commande d'un robot mobile à trois roues a l'aide d'une carte
électronique" Arduino" adapté pour pouvoir la relier au robot
après avoir développé le programme en logiciel Arduino
,son rôle est de détecter une source de flamme quelconque et
l'éteindre.
Mots clés :robot mobile -Arduino -
Abstract
This project involves the design, implementation and controlling
of a mobile robot with three wheels with an electronic card "Arduino" adapted
to be able to connect to the robot after developing the program in Arduino
software, its role is to detect any source of flame and extinguish it.
Key Words: mobile robot -Arduino -
Sommaire
Liste des figures I
Liste des tableaux VI
Introduction général 1
Chapitre 1 : Généralité sur les
robots
1. Introduction 2
2. Historique de l'évolution de la robotique et les
robots 2
3. Définition 6
4. Les composants de Robots 7
5. Les types des robots 9
5.1. Les robots manipulateurs 9
5.2. Les robots mobiles 11
6. Domaine d'utilisation des robots 14
7. Avantages et inconvénients des robots 15
8. Conclusion 17 Chapitre 2 : Capteurs et
Actionneurs
1. Introduction 18
2. Les capteurs 19
2.1. Définition d'un capteur 19
2.2. Chaine de mesure 20
2.3. Classification des capteurs 20
2.4. Les principes physiques des capteurs 21
2.5. Caractéristiques métrologique 24
2.6. Erreurs et incertitudes dans les capteurs 26
2.7. Etalonnage des capteurs 28
3. Les actionneurs 28
3.1. L'actionneur 28
3.2. Mode de fonctionnement des actionneurs et des moteurs
29
3.3. Les familles d'actionneurs 30
3.4. Les actionneurs électriques 31
4. Conclusion 38 Chapitre 3 : Microcontrôleur
et Arduino
1. Introduction 39
2. Historique 39
3. Définition de microcontrôleur 40
3.1. Les composants internes d'un microcontrôleur 40
3.2. Les types des microcontrôleurs 42
3.3. Langage de programmation d'un microcontrôleur 43
3.4. Domaines d'applications des microcontrôleurs 44
4. Arduino 46
4.1. C'est quoi l'Arduino? 46
4.2. Bref historique de l'Arduino 46
4.3. Matériel arduino 46
4.4. Logiciel Arduino 47
4.5. Les avantages de l'arduino 49
5. Conclusion 49 Chapitre 4 :
Réalisation
1. Introduction: 50
2. La conception de robot : 50
2.1. La structure de base du robot : 50
2.2. Détail de chaque bloc : 50
2.3. La programmation 63
2.3.1. Définition de programme 63
2.3.2. L'algorithme de programme 63
3. La réalisation 64
3.1. La réalisation des circuits 64
3.2. La réalisation de carcasse du robot 65
5. Le teste de robot 74
6. Conclusion: 76
Conclusion générale: 78
Annexe A : Les tableaux d'étalonnage 79
Annexe B : Algorithme et programme 88
Bibliographie I
Liste des figures
Liste des figures
Figure 1.1 : L'horloge de Ctésibios (
http://ichbiah.online.fr/extraits/robots/histoire-des-robots.htm).
Figure 1.2 : L'automate d'Al Jazari (Cours de robotique
fondamental) (
http://ichbiah.online.fr/extraits/robots/histoire-des-robots.htm).
Figure 1.3 : Le canard développé par Jacques de
Vaucanson (
http://ichbiah.online.fr/extraits/robots/histoire-des-robots.htm).
Figure 1.4 : Machine à tisser (
http://ichbiah.online.fr/extraits/robots/histoire-des-robots.htm).
Figure 1.5 : Le premier ordinateur.
(
http://ichbiah.online.fr/extraits/robots/histoire-des-robots.htm)
Figure 1.6 : Les différents types des robots (Introduction
à la robotique) (
http://ligmembres.imag.fr/aycard/html/Enseignement/intro-robotique.pdf)
Figure 1.7 : Un bras manipulateur (
http://michel.llibre.pagesperso-orange.fr/)
Figure 1.8 : Effecteur finale d'un manipulateur (
http://www.snipview.com/q/Robot
end effector)
Figure1.9 : Différents actionneurs d'un robot
(
http://www.robotshop.com/blog/en/files/actuators.jpg)
Figure 1.10 : Différents capteurs d'un robot
(
http://www.societyofrobots.com/images/sensors_reference.jpg)
Figure 1.11 : Un contrôleur utiliser pur commander un robot
(
http://arduino.cc/en/Main/arduinoBoardMega)
Figure1.12 : Le logiciel qui commande le robot
(
http://www.societyofrobots.com/step_by_step_robot_step1.shtml)
Figure 1.13 : L'espace de travaille de robot cylindrique
(Computer Aided Manufacturing) Figure 1. 14: L'espace de travaille de robot
rectiligne (Computer Aided Manufacturing) Figure 1.15 : L'espace de travaille
de robot sphérique (Computer Aided Manufacturing) Figure 1.16 : L'espace
de travaille de robot articulé (Computer Aided Manufacturing)
Figure 1.17 : L'espace de travaille de robot SCARA (
http://www.societyofrobots.com/robot_arm_tutorial.shtml)
Figure 1.18 : L'architecture d'un robot mobile (SLIMANE
Noureddine, "SYSTEME DE LOCALISATION POUR ROBOTS MOBILES" Mémoire pour
l'obtention du grade de docteur d'état en robotique. Université
de Batna)
II
Figure1.19 : Robot de type unicycle (Belkhadria Khemisti,
"commande d'un robot mobile par réseaux de neurones artificiels"
Mémoire en vue de l'obtention du diplôme de magister en
électronique. Option : Robotique. Université El Hadj Lakhdar
Batna)
Figure1.20 : Robot de type tricycle (Belkhadria Khemisti,
"commande d'un robot mobile par réseaux de neurones artificiels"
Mémoire en vue de l'obtention du diplôme de magister en
électronique. Option : Robotique. Université El Hadj Lakhdar
Batna)
Figure1.21 : Robot de type voiture (Belkhadria Khemisti,
"commande d'un robot mobile par réseaux de neurones artificiels"
Mémoire en vue de l'obtention du diplôme de magister en
électronique. Option : Robotique. Université El Hadj Lakhdar
Batna)
Figure1.22 : Robot de type omnidirectionnel (Belkhadria Khemisti,
"commande d'un robot mobile par réseaux de neurones artificiels"
Mémoire en vue de l'obtention du diplôme de magister en
électronique. Option : Robotique. Université El Hadj Lakhdar
Batna)
Figure 1.23 : Robot chirurgical Da Vinci (
http://www.chirurgie-robotisee.ch/)
Figure 1.24 : Le robot infirmier RIBA (
http://www.engadget.com/2011/08/02/riba-ii-healthcare-robot-now-stronger-smarter-still-a-bear/)
Figure 1.25 : Le robot patient Hanako Showa (
http://www.scriptol.fr/robotique/robots/medical.php)
Figure 2.1 : Les différents étages d'un system
automatisé (Sensors and Actuators: Control System Instrumentation)
Figure 2.2 : Chaine d'action d'un capteur
Figure 2.3 : Schéma d'un capteur composite (Les capteurs
en instrumentation industrielle (par Georges Asch))
Figure 2.4 : Quelque effet physique d'un capteur actif : a)
thermoélectrique, b) pyroélectrique, c)
piézoélectrique, d) indiction électromagnétique, e)
photoélectricité, f) effet Hall (Les capteurs en instrumentation
industrielle (par Georges Asch))
Figure 2.5 : Les trois domaines de fonctionnement d'un capteur
(Chapitre_01_668_H14)
Figure 2.6 : La sensibilité d'un capteur (Sensor
Technologies: Healthcare, Wellness and Environmental Applications (Par Michael
J. McGrath,Cliodhna Ni Scanaill))
Figure 2.7: hystérésis d'un capteur (Resistive,
Capacitive, Inductive, and Magnetic Sensor Technologies (Par Winncy Y. Du))
Figure 2.8 temps de réponse d'un capteur
Figure 2.9 temps de récupération
Figure 2.10 : L'erreur du zéro (Chapitre_01_668_H14)
Figure 2.11 : L'erreur liée à l'étalonnage
(Chapitre_01_668_H14)
Figure 2.12 Schéma fonctionnel et symboles des
actionneurs
III
Figure 2.13 Principe de la commande de vitesse en boucle
fermée
Figure 2.14 : Actionneur hydraulique
(
http://www.coastersworld.fr/index.php?page=reportage_safetybar)
Figure 2.15 : Actionneur piézoélectrique (
https://www.elprocus.com/piezoelectric-ultrasonic-motor-technology/)
Figure 2.16 : Vue en couple simplifiée
(
http://stigen.branly.amiens.free.fr/fiches%20elec/moteur.pdf)
Figure 2.17 : Perspective de l'induit simplifiée
(
http://stigen.branly.amiens.free.fr/fiches%20elec/moteur.pdf)
Figure 2.18 : Règle de la main droite
(
http://physique.vije.net/1STI/electricite_m.php?page=force_magnetique2)
Figure 2.19 : Les couples d'un moteur
(
http://stigen.branly.amiens.free.fr/fiches%20elec/moteur.pdf)
Figure 2.20 : Bilan de puissance (
http://www4.ac-nancy-metz.fr/lyc-loritz-nancy/pre
bac/ssi/cours/electrotechnique/MoteursDC/equations.htm)
Figure 2.21 : a)Symbole d'un moteur à excitation
indépendant ; b) à excitation shunt
Figure 2.22 : Symbole d'un moteur à excitation
série (
http://christophe.bleja.free.fr/cours/ch6/moteurserie-I.htm)
Figure 2.23 : Symbole d'un moteur à excitation compound
Figure 2.24 : Structure de moteur à balais et moteur sans
balais
(file:///C:/Users/Hocine/Downloads/la_machine_synchrone_monophasee_et_biphasee_dans_les_aut
omatismes j.f hilaire%20(1).pdf)
Figure 2.25 : Un servomoteur
(
http://www.mysti2d.net/polynesie//SIN/08/ServoLent/ServoLent.html?Servomoteur.html)
Figure 2.26 : Moteur à aimants permanant (
http://www.mdpmotor.fr/documentation/lexique/pas-a-pas/composition.html)
Figure 2.27 : Moteur hybride (
http://www.mdpmotor.fr/documentation/lexique/pas-a-pas/composition.html)
Figure 2.28 : Moteur à réluctance variable (
http://www.mdpmotor.fr/documentation/lexique/pas-a-pas/composition.html)
Figure 3.1 : Schéma des éléments principaux
d'un microcontrôleur (Microcontrollers: Fundamentals and Applications
with PIC (Par Fernando E. Valdes-Perez,Ramon Pallas-Areny))
Figure 3.2 : Symbole d'un convertisseur
numérique/analogique (
http://www.physagreg.fr/capes-physique-montage-8-conversion-analogique-numerique.php)
IV
Figure 3.3 : Signal analogique par la technique PWM ([35])
Figure 3.4 : Les types des microcontrôleurs ([31])
Figure 3.5 : L'architecture d'un microcontrôleur
(Microcontroller (Par V. Udayashankara))
Figure 3.6 : Les appareils de communication
(
http://www.rueducommerce.fr/Destockage/Telephonie/Telephones-fixe-sans-fil/ICREATION/4899593-Telephone-portable-DECT-Bluetooth-I650-noir.htm)
Figure 3.7 : Appareil médicale (
http://buzz-esante.com/2015/01/06/freestylelibre-patch-connecte-pour-la-mesure-de-la-glycemie/)
Figure 3.8 : Appareil de sécurité (
http://www.climatisation-alarme-var.fr/alarmes-surveillance-vidauban).
Figure 3.9 : Les appareils industriels (
http://www.cogniscotech.com/default.aspx)
Figure 3.10 : Les moyens de transports (
http://blogvoyages.fr/se-deplacer-en-france/)
Figure 3.11: TV, video, HIFI (
http://www.speedpcservices.net/produits.html)
Figure 3.12 : Enregistreur de données géographiques
à pile et système de fixation (
http://hitech.bfh.ch/fr/archives/hitech_32009/geolocalisateur.html)
Figure 3.13 : Déférent types des capteurs pour
l'arduino (
http://www.trossenrobotics.com/c/arduino-sensors.aspx)
Figure 3.14 : Déférents actionneurs pour l'arduino
(
http://technopengl.free.fr/index.php?page=Actionneurs)
Figure 3.15 : Déférent types des cartes arduino
(
https://www.sparkfun.com/categories/103?page=all)
Figure 3.16 : Interface de logiciel arduino
(
http://www.louisreynier.com/fichiers/KesacoArduino.pdf)
Figure 3.17: Détail de barre de bouton (
http://www.louisreynier.com/fichiers/KesacoArduino.pdf)
Figure 4.1 : La structure générale du robot
Figure 4.2 : Le placement des capteurs infrarouge dans le
robot
Figure 4.3 : Schéma du capteur infrarouge
Figure 4.4 : L'opération d'étalonnage
Figure 4.5 : La valeur maximale en fonction de distance
Figure 4.6 : L'opération d'étalonnage angulaire
Figure 4.7 : La valeur maximale en fonction de l'angle
Figure 4.8 : L'effet de la fente sur le capteur
V
Figure 4.9 : La valeur de capteur de précision en
fonction de distance
Figure 4.10 : La valeur de précision en fonction de
l'angle
Figure 4.11 : Courbe d'étalonnage de thermistance
Figure 4.12 : Schéma de capteur de
température
Figure 4.13 : Capteur ultrason HC-SR04
Figure 4.14 : L'opération d'étalonnage de
capteur de distance
Figure 4.15 : Étalonnage de capteur de distance
HC-SR04
Figure 4.16 : La carte Arduino Mega
Figure 4.17 : Le moteur DC utilisé
Figure 4.18 : Schéma de circuit de commande du
moteur
Figure 4.19 : L'opération d'étalonnage de
circuit de commande
Figure 4.20 : L'étalonnage de circuit de commande
Figure 4.21 : Schéma de circuit de commande de la
pompe
Figure 4.22 : Schéma de circuit d'alimentation
Figure 4.23 : Solid Edge
Figure 4.24 : La forme sous du robot
Figure 4.25 : Les cotés principales du robot
Figure 4.26 : Le châssis du robot sous Solid Edge
Figure 4.27 : Le châssis du robot
réalisé
Figure 4.28 : Le cadre du robot sous Solid Edge
Figure 4.29 : Le cadre de robot réalisé
Figure 4.30 Mauvaise fonctionnement du robot
Figure 4.31 Les anciens circuits de commande
Figure 4.32 L'ancien cadre
Figure 4.33 Bonne fonctionnement du robot
Figure 4.34 : L'icone de l'application QuickRemote
Figure 4.35 : La télécommande crée
Figure 4.36 : L'opération de teste
Liste des tableaux
VI
Liste des tableaux
Tableau 1.1 Les avantages et des inconvénients des
différents types de robots à roues
Tableau 2.1 : quelque domaine d'utilisation des capteurs et
des actionneurs
Tableau 2.2 : L'influence des mesurande sur les
propriétés électriques de matériaux.
Tableau 2.3 : comparaison des différents types de
moteurs pas à pas
Tableau 3.1 : Les développements historiques dans les
produits de microprocesseurs
Tableau 4.1 : L'étalonnage de distance des capteurs
infrarouge
Tableau 4.2 : L'étalonnage angulaire des capteurs
infrarouge
Tableau 4.3 : L'étalonnage de distance du capteur de
précision
Tableau 4.4 : L'étalonnage angulaire du capteur de
précision
Tableau 4.5 : Tableau d'étalonnage de capteur de
distance
Tableau 4.6 : Etalonnage de circuit de commande
Tableau 4.7 : Les circuits de robot
Tableau 4.8 : Les pièces du robot
Introduction générale
1
Introduction général
L'homme a toujours souhaité se libérer du
travail dans ce qu'il a d'astreignant, de fatiguant, d'inintéressant.
Les progrès qu'on connue les technologies depuis un demis siècle
sont a même de répondre en bonne parti à son désir
par l'intermédiaire de deux outils générique: l'ordinateur
pour les travaux mentaux et le robot pour les travaux physiques. Le premier a
pris une certaine avance sur le second grâce à la
découverte des semi-conducteurs, ces matériaux solides qui
peuvent trier des informations sans mobilité mécanique. Le second
est toujours tributaire de la vieille mécanique aux pièces
fragiles et mobiles et au cout significatif.
Malgré son aspect récent, la robotique tire ses
origines des civilisations les plus antiques. Il est peut être même
vrai que toutes les autres sciences ont existé juste pour permettre
à la robotique de se développer afin d'aider l'Homme à
créer ce « esclave » qui appliquera ses ordres au doigt et
à l'oeil et qui le libérera à jamais du travail.
De l'Homme préhistorique qui s'empressa d'inventer des
extensions technologiques de ses membres afin de faciliter son travail, comme
la massue par exemple, jusqu'au robot mobile autonome le plus performant, la
robotique mobile n'a cessé de connaître des progrès
spectaculaires. En effet, les générations de robots mobiles se
sont vite succédé offrant à chaque fois plus de
performances en matière de perception, d'autonomie et de pouvoir
décisionnel. Ces progrès étaient un résultat
inévitable des développements qu'ont connu la mécanique,
la microélectronique et l'informatique. C'est pour cela qu'en
très peu de temps, les générations de robots se
succèdent pour voir naître une branche de la robotique visant de
plus amples horizons : c'est l'ère de la robotique mobile.
L'objectif principal de notre travail est de réaliser
un robot mobile on utilisant une carte électronique Arduino. La tache
principale du robot est de détecter et éteindre la flamme
même il peut éviter les obstacles et le forage.
Ce travail est alors organisé en quatre chapitres de la
manière suivante :
Le premier chapitre présente certaines
généralités concernant la robotique et les
différents types des robots et robots mobiles.
Le second chapitre introduit quelques composants du robot
comme les capteurs, les actionneurs et d'autres concepts liés à
leurs utilisations.
Le troisième chapitre est consacré au
microcontrôleur, langages de programmation et en particulier l'IDE de
l'Arduino.
Le quatrième chapitre traite la partie pratique
Chapitre 1 :
Généralité sur les
robots
1. 2
Introduction
Les robots aujourd'hui ont un impact considérable sur
de nombreux aspects de la vie moderne, de la fabrication industrielle aux soins
de santé, le transport et l'exploration de l'espace et le profond de la
mer. Demain, des robots seront aussi omniprésents et personnelle comme
les ordinateurs personnels.
Le rêve de créer des machines qui sont
qualifiés et intelligentes a fait partie de l'humanité depuis le
début du temps. Ce rêve est en train de devenir une partie de la
réalité de notre monde. [4]
Quand les chercheurs ont commencé à
réfléchir sur la conception de robots, on appelait «
robotique » la science des robots et/ou l'art de concevoir et fabriquer
des robots. Les succès des robots industriels, qui travaillaient
initialement en poste isolé et qui ont été
intégrés à des chaînes de production comme des
machines parmi d'autres, ont conduit le public à élargir le sens
du terme « robotique » et à le rendre désormais presque
synonyme d'automatisation. Le correspondant de robotique devrait naturellement
être « automatique » mais ce n'est pas le cas dans le langage
courant. Pour compenser ce hiatus se sont créés le mot «
robotisation » et le verbe « robotiser » pour désigner la
plupart des automatisations et leur mise en oeuvre, même en l'absence de
véritables robots. Dans certains champs d'applications, des mots
calqués sur robotique sont apparus. Il en est ainsi de « domotique
» qui désigne tout ce qui concerne l'automatisation dans l'habitat
ou « productique » pour tout ce qui a trait aux moyens de production.
[1]
Aujourd'hui, la robotique est donc l'art d'automatiser des
systèmes plus ou moins complexes mais en s'appuyant sur le savoir-faire
acquis par les études sur la conception de robots, savoir-faire issu des
développements d'une branche de l'automatique générale.
[2]
En effet, on constate a posteriori que la structure d'une
machine ou d'un système n'a pas besoin d'adopter la forme physique de ce
qu'on appelle généralement robot pour que son contrôle
adopte les mêmes composants que ces machines, à savoir : des
capteurs internes pour la régulation, des capteurs externes pour
connaître l'environnement, des moyens d'action motorisés, ainsi
qu'une informatique de commande pouvant faire appel à la programmation
et aux techniques de l'intelligence artificielle. Tous ces composants et leurs
actions peuvent être distribués dans l'espace au lieu d'être
rassemblés ou de provenir d'une seule structure. Par ailleurs, une
collaboration de divers ensembles est possible aboutissant donc à un
système robotisé.
2. Historique de l'évolution de la robotique et
les robots
Durant plusieurs millénaires, les automates ont
reposé sur des ressorts, engrenages et autres mécanismes, ce qui
ne les a pas empêchés d'atteindre une grâce qui force
l'admiration. Et puis l'informatique est venue changer la donne en permettant
de stocker de très larges quantités d'informations et de
séquences d'actions dans une petite puce. Le robot est ainsi
arrivé à une sophistication telle qu'il peut désormais
tenter de trouver par lui-même la solution de certains problèmes.
[3]
L'histoire des robots a ainsi traversé les étapes
suivantes : Les masques et statues animés de
l'antiquité
3
L'origine des masques et statues animés remonte
à l'Egypte ancienne où l'on a recensé un masque à
l'effigie de Thot (tête d'Ibis) ou d'Horus (tête de faucon) qui
pareillement semblent doués de mouvement. Ce qui caractérise ces
divers artefacts, c'est que l'automatisme y est caché, mis à
profit par des castes religieuses pour assurer leur pouvoir sur le peuple comme
sur les souverains. [3]
L'horloge
C'est en 246 avant J.C. que nous trouvons la trace du premier
inventeur d'envergure, un dénommé Ctésibios qui habite la
ville d'Alexandrie. Ctésibios est parvenu à créer une
horloge si précise que son cadran fait exactement un tour par
année solaire ! Pour la première fois, il existe une parfaite
concordance entre un instrument de mesure humain et un phénomène
issu du monde physique extérieur. [3]
Figure 1.1 L'horloge de Ctésibios
Des automates de l'orient aux jacquemarts
européens
Les arabes sont les premiers à mettre en pratique
à une grande échelle les techniques décrites par le
mathématicien et mécanicien grec Héron d'Alexandrie (et
aussi par Phylon de Byzance). Dès 809, Charlemagne reçoit de la
part du sultan Haroun Al Rachid un automate mécanique. [3]
Puis, lors des huit expéditions en Orient menées
à l'occasion des Croisades - de 1096 à 1291 - les
européens découvrent de visu l'étonnant raffinement des
horloges à eau réalisées par Al Jazari pour le compte de
ce même Haroun Al Rachid.
Pour obtenir un écoulement constant de l'eau, Al Jazari
a développé un système d'une rare
ingéniosité, inspiré d'un système inventé
par Archimède. La plus grande de ses horloges mesure 3,3 mètres
de hauteur et 1,35 mètre de largeur. [3]
4
Figure 1.2 L'automate d'Al Jazari
Vers l'âge d'or des automates
Le 18ème siècle apparaît comme l'âge
d'or des automates. L'un des grands inventeurs d'engins mécaniques de
l'époque est le protégé du roi Louis XV, Jacques de
Vaucanson (1709 - 1792). Il développe un " canard mécanique " qui
force l'admiration. Celui ci " allonge le cou pour aller prendre le grain dans
la main, l'avale, le digère " Après avoir transformé
l'aliment en bouillie, il le rejette par les voies ordinaires, pleinement
digéré. Les créations que réalise Vaucanson tel le
joueur de flûte qui exécute onze airs différents et aussi
celle de ses disciples séduisent l'Europe entière et s'exportent
aux Etats-Unis. [3]
Figure 1.3 Le canard développé par Jacques de
Vaucanson La première machine programmable
La mode veut que l'on s'habille à la chinoise, avec des
tenues de soie bardées de motifs complexes. Pour les tisserands
lyonnais, la réalisation de telles étoffes représente un
casse-tête de taille.
Basile Bouchon se penche sur le problème, et il a
réussi de développé une machine à tisser dont son
mécanisme utilise une bande de papier perforé pour
contrôler le passage des aiguilles dans le tissu. Ce
procédé mis au point en 1729 est automatisé par Vaucanson
en 1745.
Le tisserand Joseph-Marie Jacquard a ensuite l'idée de
séparer les cartes perforées portant le modèle à
réaliser, de la machine elle-même.
5
Produit en milliers d'exemplaires, le métier à
tisser Jacquard qu'il inaugure en 1801 devient la première machine
automatisant le traitement de l'information et opérant une distinction
entre la machine et le programme qu'elle utilise. Il ouvre ainsi la voie aux
ordinateurs et robots capables d'opérer par eux-mêmes. [3]
Figure 1.4 Machine à tisser
L'ordinateur, potentielle intelligence du robot
?
Niels Bohr a décrit dans ses travaux publiés
vers 1913 que l'électron peut déplacer d'un atome à
l'autre une vitesse vertigineuse. D'où l'idée de créer des
circuits exploitant cette incroyable mobilité. En 1937, Turing
énonce les principes d'une machine qui calculerait à la vitesse
de l'électronique, et serait donc capable de traiter d'énormes
volumes d'informations codées sous la forme booléenne (0 et
1).L'arrivée des ordinateurs est appelée à jouer un
rôle majeur dans l'élaboration des machines intelligentes que sont
les robots.
Sous l'impulsion de Turing, un premier ordinateur
apparaît en 1943. Sa puissance de calcul est mise à contribution
dans la guerre et joue un rôle décisif en facilitant le
décryptage du code Enigma mis au point par les nazis pour leurs
échanges de messages. [3]
Figure 1.5 Le premier ordinateur
Le premier bras
télé-opéré
C'est en Lorraine en 1954, à Argonne qu'un chercheur du
nom de Raymond Goertz a l'idée de rationaliser les bras de
télé-opération en assujettissant leurs articulations
à des moteurs électriques. Grâce à un tel
système, l'opérateur peut désormais se trouver à
plusieurs centaines de mètres du lieu
6
où il manipule des éléments dangereux :
les commandes qu'il transmet à la pince sont transmises par les fils
électriques. [3]
3. Définition
Écrivain tchèque, Karel Capek, dans son drame,
introduit le mot robot au monde en 1921. Il est dérivé du mot
tchèque robota qui signifie "travailleur forcé". Isaac Asimov
l'écrivain russe de la science-fiction, a inventé le mot
robotique dans son histoire "Habillage", publié en 1942, pour
désigner la science consacrée à l'étude des robots.
[5]
Avant définir qu'est ce qu'un robot nous citerons les
trois lois qui ont été développés par Isaac Asimov,
et qui sont régissant le comportement d'un robot
Les trois lois de la robotique
? Un robot ne peut blesser un humain ni, par son inaction,
permettre qu'un humain soit blessé. ? Un robot doit obéir aux
ordres donnés par les humains, sauf si de tels ordres se trouvent en
contradiction avec la première loi.
? Un robot doit protéger sa propre existence aussi
longtemps qu'une telle protection n'est pas en contradiction ni avec la
première et/ou ni avec la deuxième loi. [6]
Le robot
C'est une machine pouvant manipuler des objets en
réalisant des mouvements variés dictés par un programme
aisément modifiable.
Programmer un robot consiste, dans ut premier temps, à
lui spécifier la séquence des mouvements qu'il devra
réaliser.
Certains robots sont dotés de "sens" ;
c'est-à-dire d'un ensemble plus ou moins important d'instruments de
mesure et d'appréciation caméra, thermomètre,
télémètre, ...) permettant au programme du robot de
décider du mouvement le mieux adapté aux conditions
extérieures. Par exemple: si un robot mobile muni d'une caméra ut
amené à se déplacer dans un local inconnu, on peut le
programmer pour qu'il contourne tout obstacle qui entraverait sa route.
On essaie également de doter des robots d'un dispositif
d'intelligence artificielle afin qu'ils puissent faire face a des situations
imprévues et nouvelles (le robot pourrait acquérir une certaine
"expérience").
Figure 1.6 Les différents types des robots
7
4. Les composants de Robots
Un robot, en tant que système, se compose des
éléments, qui sont intégrés ensemble pour former un
ensemble. La plus par des robots contient les éléments
suivants:
4.1. Manipulateur: c'est le corps principal du
robot qui comprend les jonctions, les articulations, et d'autres
éléments de structure du robot. Il convient de noter ici que le
manipulateur seul n'est pas un robot. [11]
Figure 1.7 Un bras manipulateur
4.2. Effecteur finale: cette partie est
reliée à la dernière jonction (main) d'un manipulateur qui
gère généralement les objets, établit des
connexions à d'autres machines ou effectue les tâches requises.
[11]
Figure 1.8 Effecteur finale d'un manipulateur
4.3. Actionneurs: les actionneurs sont les
«muscles» de manipulateurs. Le contrôleur envoie des signaux
aux actionneurs, qui, à son tour, déplacent les articulations du
robot et des jonctions, les types communs des actionneurs sont les
servomoteurs, les moteurs pas à pas, les actionneurs pneumatiques et les
vérins hydrauliques. Les actionneurs sont sous le contrôle du
contrôleur. [11]
Figure1.9 Différents actionneurs d'un robot
4.4. Capteurs: les capteurs sont
utilisés pour recueillir des informations sur l'état interne du
robot ou pour communiquer avec l'environnement extérieur. Comme chez
l'humain, le dispositif de commande de robot doit connaître l'emplacement
de chaque lien du robot afin de connaître la configuration du robot.
Toujours comme vos principaux sens de la vue, le toucher, l'ouïe, le
goût, et
8
la parole, les robots sont équipés de
dispositifs sensoriels externes comme un système de vision, le toucher
et les capteurs tactiles, synthétiseur de parole, et grâce
à eux le robot peut communiquer avec le monde extérieur. [11]
Figure 1.10 Différents capteurs d'un robot
4.5. Contrôleur: le contrôleur
est plutôt proche de votre cervelet; même si elle n'a pas la
puissance du cerveau; il contrôle toujours vos mouvements. Le
contrôleur reçoit les données de l'ordinateur (le cerveau
du système), commande les mouvements des actionneurs, et coordonne les
mouvements avec les informations envoyées par les capteurs.
4.6. Processeur: le processeur est le cerveau
du robot. Il calcule les mouvements des articulations du robot,
détermine combien et à quelle vitesse chaque joint doit se
déplacer pour atteindre l'emplacement et la vitesse souhaitée, et
supervise les actions coordonnées du contrôleur et les capteurs.
Dans certains systèmes, le contrôleur et le processeur sont
intégrés ensemble en une seule unité, et dans d'autres
cas, ce sont des unités séparées. [11]
Figure 1.11 Un contrôleur utiliser pur commander un
robot
4.7. Logiciel: trois groupes de logiciels
sont utilisés dans un robot. L'un est le système d'exploitation
qui exploite le processeur. Le second est le logiciel robotique qui calcule la
motion nécessaire de chaque joint du robot basée sur des
équations cinématiques. Ces informations sont envoyées au
dispositif de commande. Ce logiciel peut être à différents
niveaux, de la langue de la machine aux langues sophistiqués
utilisés par les robots modernes. Les troisième groupes est la
collection d'application - orientée les routines et les programmes
développés pour utiliser le robot ou ses
périphériques pour des tâches spécifiques telles que
l'assemblage, le chargement de machines, la manutention et les routines de
vision. [11]
9
Figure1.12 Le logiciel qui commande le robot
5. Les types des robots
Il existe deux grandes familles de robots sont :
· Les robots manipulateurs.
· Les robots mobiles.
5.1. Les robots manipulateurs
Un robot manipulateur est en forme d'un bras et se composent
d'un certain nombre de segments qui est conçu pour manipuler ou
déplacer des matériaux, outils et pièces sans contact
humain direct. Ils sont des dispositifs qui permettent aux humains d'interagir
avec des objets dans un environnement en toute sécurité. Les
robots manipulateurs sont utilisés dans des applications industrielles
pour s'effectuer efficacement des tâches telles que l'assemblage,
soudage, traitement de surface, et le forage.
Les types des robots manipulateurs
Les robots manipulateurs viennent sous plusieurs formes. Les
formes se répartissent en en cinq grandes catégories :
· Robots cylindriques
· Robots rectilignes
· Robots sphériques
· Robots articulés
· Robots SCARA
a) Robots cylindriques
Le robot cylindrique a deux axes de mouvement, un pour le
mouvement en haut et bas. La rotation se fait par la jonction à la base.
De plus, le bras horizontal peut se déplacer à l'intérieur
et à l'extérieur, ce qui donne un troisième axe de
mouvement limitée. [9]
10
Figure 1.13 L'espace de travaille de robot cylindrique
b) Robots rectilignes
Les robots rectilignes a trois axes de mouvement (x, y, z).
Pour cette raison, le robot rectiligne est parfois appelé Robot
cartésien. Ces robots sont exploités par vérin
pneumatique. [9]
Figure 1.14 L'espace de travaille de robot rectiligne
c) Robots sphériques
Le robot sphérique est de grande taille avec un bras
télescopique qui assure un mouvement à l'intérieur ou
à l'extérieur. Les mouvements de base du robot sphérique
sont de rotation (à la base) et angulairement en haut ou en bas (sur le
bras). [9]
Figure 1.15 L'espace de travaille de robot sphérique
d) Robots articulés
Le bras articulé du robot ressemble à un bras
humain. Il se compose de deux éléments, nommés
l'avant-bras et le bras supérieur. Ce type de robot n'a
généralement pas besoin d'un lieu séparé. [10]
11
Figure 1.16 L'espace de travaille de robot articulé
e) Robots SCARA
Un robot SCARA est défini dans la norme ISO 8373: 1994,
No.3.15.6, en tant que «robot comporte deux liaisons pivots
parallèles pour fournir conformément à un plan
sélectionné».et peut être considérée
comme un cas particulier d'un robot cylindrique. Le terme «SCARA»
signifie «Selective Compliance Arm for Robot Assembly». (Autre
interprétation comprennent «Selective Compliance Articulated for
Robot Assembly».). [8]
Figure 1.17 L'espace de travaille de robot SCARA
5.2. Les robots mobiles
Un robot mobile est celui qui peut se déplacer dans son
environnement de façon indépendante. Pour ce faire, le robot doit
pouvoir naviguer, et la portée et la précision de navigation
requise varie en fonction de la taille du robot et du type de sa
tâche.
5.2.1. L'architecture des robots mobiles
L'architecture des robots mobiles se structure en quatre
éléments :
? La structure mécanique et la motricité
? Les organes de sécurité
? Le système de traitement des informations et gestion des
tâches. ? Le système de localisation.
12
Figure 1.18 Architecture d'un robot mobile
5.2.2. Les robots à roues
Il existe plusieurs classes de robots à roues
déterminées, principalement, par la position et le nombre de
roues utilisées.
Nous citerons ici les quatre classes principales de robots
à roues.
a) Robot unicycle
Un robot de type unicycle est actionné par deux roues
indépendantes, il possède éventuellement des roues folles
pour assurer sa stabilité. Son centre de rotation est situé sur
l'axe reliant les deux roues motrices.
C'est un robot non-holonome, en effet il est impossible de le
déplacer dans une direction perpendiculaire aux roues de locomotion.
Sa commande peut être très simple, il est en effet
assez facile de le déplacer d'un point a un autre par une suite de
rotations simples et de lignes droites. [7]
Figure1.19 Robot de type unicycle
b) Robot tricycle
Un robot de type tricycle est constitué de deux roues
fixes placées sur un même axe et d'une roue centrée
orientable placée sur l'axe longitudinal. Le mouvement du robot est
donné par la vitesse des deux roues fixes et par l'orientation de la
roue orientable. Son centre de rotation est situé à
l'intersection de l'axe contenant les roues fixes et de l'axe de la roue
orientable.
13
C'est un robot non-holonome. En effet, il est impossible de le
déplacer dans une direction perpendiculaire aux roues fixes. Sa commande
est plus compliquée. Il est en général impossible
d'effectuer des rotations simples à cause d'un rayon de braquage
limité de la roue orientable. [7]
Figure1.20 Robot de type tricycle
c) Robot voiture
Un robot de type voiture est semblable au tricycle, il est
constitué de deux roues fixes placées sur un même axe et de
deux roues centrées orientables placées elles aussi sur un
même axe.
Le robot de type voiture est cependant plus stable puisqu'il
possède un point d'appui supplémentaire.
Toutes les autres propriétés du robot voiture sont
identiques au robot tricycle, le deuxièmes pouvant être
ramené au premier en remplaçant les deux roues avant par une
seule placée au centre de l'axe, et ceci de manière à
laisser le centre de rotation inchangé. [7]
Figure1.21 Robot de type voiture
d) Robot omnidirectionnel
Un robot omnidirectionnel est un robot qui peut se
déplacer librement dans toutes les directions. Il est en
général constitué de trois roues décentrées
orientables placées en triangle équilatéral.
L'énorme avantage du robot omnidirectionnel est qu'il
est holonome puisqu'il peut se déplacer dans toutes les directions. Mais
ceci se fait au dépend d'une complexité mécanique bien
plus grande. [7]
Figure1.22 Robot de type omnidirectionnel Comparaison des
différents types
Nous pouvons observer dans le tableau ci-dessous un
récapitulatif des avantages et des inconvénients des
différents types de robots à roues
Tableau 1.1 Les avantages et des inconvénients des
différents types de robots à roues
Type du robot
|
Avantage
|
Inconvénient
|
unicycle
|
* Stable
* Rotation sur soi-même
* Complexité mécanique faible
|
* Non-holonome
|
Tricycle
|
* Complexité mécanique
modérée
|
* Non-holonome
* Peu stable
* Pas de rotation sur soi-même
|
Voiture
|
* Stable
* Complexité mécanique modérée
|
* Non-holonome
* Pas de rotation sur soi-même
|
Omnidirectionnel
|
* Holonome
* Stable
* Rotation sur soi-même
|
* Complexité mécanique
importante
|
6. Domaine d'utilisation des robots
Les robots industriels : robots industriels
sont des robots utilisés dans un environnement de fabrication
industrielle. Ils sont utilisés dans la fabrication des automobiles, des
composants et des pièces électroniques, des médicaments et
de nombreux produits
Robots domestiques ou ménagers :
Robots utilisés à la maison. Ce type de robots comprend
de nombreux appareils très différents, tels que les aspirateurs
robotiques, robots nettoyeurs de piscines, balayeuses, nettoyeurs
gouttières et autres robots qui peuvent faire différentes
tâches. En outre, certains robots de surveillance et de
téléprésence pouvaient être
considérées comme des robots ménagers se il est
utilisé dans cet environnement.
Robots en médecine et chirurgie : Les
robots semblent avoir de l'avenir à l'hôpital. Robodoc aide
à réaliser certaines opérations de chirurgie. Le robot
infirmier est encore en projet. Le cybersquelette HAL aide les personnes
à se déplacer. Et le robot patient permet aux futurs chirurgiens
dentistes d'apprendre à soigner sans faire de dégâts...
14
Le système chirurgical Da Vinci : Le robot chirurgien
permet d'opérer à distance, soit dans la même pièce
avec une machine comme intermédiaire, soit d'un endroit très
éloigné, ce qui peut être très utile souvent.
15
Figure 1.23 Robot chirurgical Da Vinci
Les infirmiers du futur : Les infirmiers qui portent et
déplacent les malades seront des robots. En fait, ils ne sont pas
prévus pour un avenir si lointain: ils fonctionnent
déjà!
Le robot infirmier peut prendre un patient dans ses bras, le
porter et le déposer dans un fauteuil.
Figure 1.24 Robot infirmier RIBA
Le robot patient : L'actroïde Simroid assez
réaliste réagit quand l'opérateur le touche à un
endroit sensible. Il permet ainsi de réaliser un apprentissage du
métier sans frais.
Hanako Showa est une initiative similaire. Grâce
à des capteurs implémentés dans ses dents artificielle, le
robot peut réagir aux actes du praticien novice, émettre des
gémissements ou bouger les bras quand on lui "fait mal". Il peut
même communiquer grâce à un procédé de
synthèse vocal.
Figure 1.25 Robot patient Hanako Showa
7. Avantages et inconvénients des
robots
Un système robotique consiste non seulement des robots
mais aussi d'autres dispositifs et systèmes qui sont utilisés
avec le robot pour effectuer la tâche nécessaire. Les avantages
des robots sont: [12]
Robotique et automatisation peut dans de nombreuses situations
d'accroître la productivité, la sécurité,
l'efficacité, la qualité et la cohérence des produits.
Les robots peuvent travailler dans un environnement dangereux,
sans le besoin de soutien de la vie, ou les préoccupations concernant la
sécurité.
Robots n'ont pas besoin de l'éclairage, la climatisation,
de ventilation et de protection contre le bruit.
16
Robots travailler continuellement, sans ressentir une fatigue
ou l'ennui, et ne nécessitent pas une assurance médicale ou de
vacances.
Les robots sont de précision répétable
à tous les moments, sauf si quelque chose arrive à eux ou ils
s'usent.
Les robots peuvent être beaucoup plus précis que
les humains. Précision linéaire d'un robot typiquement est de 20
à 10 microns.
L'inconvénient des robots est qu'ils manquent de
capacité de réagir en cas d'urgence, à moins que les
situations comprises et les réponses sont inclut dans le système.
Les mesures de sécurité nécessaires pour s'assurer qu'ils
ne lèsent pas les opérateurs et n'endommagent les machines qui
travaillent avec eux. Inconvénients des robots comprennent: [12]
? Réponse inadéquate ou mal,
? Le manque de pouvoirs prendre une décision,
? Consommation de l'énergie
? Ils peuvent causer des dommages à des autres appareils,
et la blessure de l'homme
Bien que les robots ont de bonnes certaines
caractéristiques mais aussi ont ces caractéristiques
limités comme la capacité à degré de
liberté, la dextérité, capteurs, système de vision
et la réponse en temps réel. Les robots sont coûteux en
raison du: coût initial de l'équipement, le coût
d'installation, le besoin de périphériques, le besoin de
formation et la nécessité de la programmation.
17
8. Conclusion
A travers ce chapitre on peut dire que dans le cadre de la
robotique, la robotique mobile joue un rôle à part. Contrairement
aux robots industriels manipulateurs qui travaillent de façon autonome
dans un grand nombre d'usines automatisées, les robots mobiles sont
très peu répandus. Cette situation n'est pas due au manque
d'applications possibles, mais dés qu'on dispose de la mobilité,
on peut imaginer des robots facteurs, nettoyeurs, gardiens, démineurs,
explorateurs, jardiniers et beaucoup d'autres. La faible diffusion est surtout
due au fait que ces tâches ont une complexité bien
supérieure à celles effectuées par des robots
manipulateurs industriels. Le monde dans lequel un robot mobile doit se
déplacer est souvent très vaste, partiellement ou totalement
inconnu, difficilement caractérisable géométriquement et
ayant une dynamique propre.
Chapitre 2 :
Capteurs et Actionneurs
18
1. Introduction
Ce chapitre discute sur les composants du robot. Se n'est pas
tout les composants qui sont mentionnés dans le chapitre
précédant, mais plus précisément, le chapitre
traite les capteurs, actionneurs, et d'autre concepts sur ces deux termes.
Le système de commande est un système dynamique
qui contient un dispositif de commande en tant que partie intégrante. Le
but du contrôleur est de générer des signaux de commande,
qui conduira le processus pour être contrôlé. Les
actionneurs sont nécessaires pour effectuer les actions de
contrôle, les capteurs et transducteurs aussi sont nécessaires
pour mesurer les signaux de sortie (réponses de processus) et de mesurer
les signaux d'entrée pour la commande anticipatrice, et pour diverses
autres fins). Parmi les différents types et les niveaux de signaux sont
présents dans un système de contrôle, la modification du
signale (y compris le conditionnement du signal et la conversion du signal) est
en effet joue un rôle crucial à tout système de
contrôle. En particulier, la modification du signal est une
considération importante dans l'interfaçage des composants. Il
est clair que le sujet du système de contrôle doit contenir des
capteurs, des transducteurs, actionneurs, modification du signal, et
l'interconnexion des composants. En particulier, le sujet de l'identification
des composants du système de commande doit respecter les fonctions, le
fonctionnement et l'interaction, la bonne sélection et
l'interfaçage de ces composants pour diverses applications de
contrôle. La sélection des paramètres (y compris les
réglages du système) aussi est une étape importante. La
conception est une partie nécessaire de l'instrumentation du
système de contrôle, car c'est elle qui nous permet de construire
un système de contrôle qui répond aux exigences de
performance "on commence, peut-être, avec des composants de base tels que
les capteurs, les actionneurs, les contrôleurs, les compensateurs, et
appareils de modification de signal."
Les ingénieurs de contrôle devraient être
en mesure d'identifier ou de sélectionner des composants, en particulier
les capteurs et actionneurs, pour un système de contrôle, le
modéliser et analyser les différents composants et les
systèmes globaux, et de choisir les valeurs des paramètres afin
que le système peut effectuer certaines fonctions en conformité
avec les spécifications.
L'identification, l'analyse, la sélection
correspondante et l'interfaçage des composants, et le réglage du
système intégré (cet est à dire, le réglage
des paramètres pour obtenir la réponse requise du système)
sont des tâches essentielles dans l'instrumentation et la conception du
système de contrôle. [13]
Les capteurs et les actionneurs utilisés dans certain
domaine sont indiqués dans le tableau suivant: [13]
Tableau 2.1 quelque domaine d'utilisation des capteurs et des
actionneurs
processus
|
Les capteurs utilisés
|
Les actionneurs utilisés
|
Avion
|
déplacement, vitesse, accélération,
l'altitude, la position, force, pression,
température, débit de fluide, la tension, le
courant, le système de positionnement mondial (GPS)
|
Moteurs à courant continu,
moteurs pas à pas, relais,
actionneurs de vannes,
pompes, sources de chaleur, les moteurs à
réaction
|
Automobile
|
déplacement, vitesse, force, pression,
température, débit de fluide, niveau de liquide, la tension, le
courant
|
Moteurs à courant continu, moteurs pas à pas, les
relais,
actionneurs de vannes, les
|
19
|
|
pompes, les sources de
chaleur
|
Système de chauffage domestique
|
pression, température, débit de fluide
|
Moteurs, pompes, sources de chaleur
|
Fraiseuse
|
déplacement, vitesse, force, pression,
température, la tension, le courant, l'acoustique
|
Moteurs à courant continu, moteurs à courant
alternatif
|
Robot
|
image optique, déplacement, vitesse, force, la tension,
le courant, couple motrice
|
Moteurs à courant continu, moteurs à courant
alternatif, des actionneurs hydrauliques, des servomoteurs
|
Four de séchage du bois
|
La température, l'humidité relative, taux
d'humidité et le débit d'air
|
Moteurs à courant continu, moteurs à courant
alternatif, pompes, sources de chaleur
|
Figure 2.1 Les différents étages d'un system
automatisé
2. Les capteurs
Avant de donner la définition d'un capteur, il est
nécessaire de connaître quelques définitions de
métrologie.
Le mesurande : c'est l'objet de la mesure ou plus simplement la
grandeur à mesurer. Le mesurage : c'est l'ensemble des opérations
pour déterminer la valeur du mesurande. La mesure c'est le
résultat d'u mesurage. Autrement dit c'est la valeur du mesurande.
2.1. Définition d'un capteur
Un capteur est un dispositif convertissant une grandeur
physique analogique (pression, température, déplacement,
débit,...) en un signal analogique rendu transmissible et exploitable
par un système de conditionnement (courant électrique, radiation
lumineuse, radiofréquence). Le capteur est la partie d'une chaine de
mesure qui se trouve au contact direct du mesurande.
20
Dans l'immense majorité des cas, le signal de sortie
est électrique en raison de la facilité de transmission de
l'information sous cette forme (câblage), même si les signaux
optiques transmis par fibre sont de plus en plus fréquents. La tension
ou l'intensité de ce signal est alors l'image de mesurande par une loi
continue qu'on souhaite idéalement linéaire ou affine, telle que
: [14]
Figure 2.2 Chaine d'action d'un capteur
2.2. Chaine de mesure
Généralement, le signal de sortie de capteur
n'est pas directement utilisable. On appelle chaine de mesure l'ensemble des
circuits ou appareils qui amplifient, adaptent, convertissent,
linéarisent, digitalisent le signal avant sa lecture sur le support de
sortie.
Pour obtenir une image d'une grandeur physique, la chaine de
mesure peut faite intervenir plusieurs phénomènes
différents. Par exemple, la mesure d'un débit peut se faire en
plusieurs étapes :
Transformation du débit en une pression
différentielle.
Transformation de la pression différentielle en la
déformation mécanique d'une membrane.
Transformation de la déformation mécanique en
une grandeur électrique (à l'aide d'un
piézoélectrique) via un circuit électrique
associé.
2.3. Classification des capteurs
On peut classer les capteurs de plusieurs manières :
? Par le mesurande qu'il traduit (capteur de position, de
température, de pression, etc.)
? Par son rôle dans le processus industriel (contrôle
de produit finis, de sécurité, etc.)
? Par le signal qu'il fournit en sortie qui peut être
numérique, analogique, logique ou digital.
? Par leur principe de traduction du mesurande (capteur
résistif, piézoélectrique, etc.)
? Par leur principe de fonctionnement : capteur Actif ou
Passif.
Toutes ces classifications permettent d'avoir une vue
d'ensemble des capteurs et bien sur aucune des méthodes de
classification n'est meilleure que l'autre car toutes présentent des
avantages et des inconvénients.
21
2.3.1. Capteur actif
Fonctionnant en générateur, un capteur actif est
généralement fondé dans son principe sur un effet physique
qui assure la conversion en énergie électrique de la forme
d'énergie propre au mesurande : énergie thermique,
mécanique ou de rayonnement. [15]
2.3.2. Capteur passif
Il s'agit d'impédance dans l'un de ce paramètres
déterminants est sensible au mesurande. [15]
2.3.3. Capteur composite
Un capteur composite est un capteur constitué d'un
corps d'épreuve et d'un capteur actif ou passif. Le corps
d'épreuve quant à lui est un capteur qui soumis au mesurande
donne une grandeur physique non électrique appelée mesurande
secondaire qui elle va être traduit en une grandeur électrique par
un capteur. Le schéma d'un capteur composite est le suivant :
Figure 2.3 Schéma d'un capteur composite
2.3.4. Capteur intégré
Un capteur intégré est un capteur qui utilise la
microélectronique. Ce capteur est constitué d'une plaque en
silicium dans lequel on a fixé le capteur, le corps d'épreuve si
besoin et d'autres composants électroniques qui peuvent servir à
linéariser, amplifier, convertir le courant en tension, etc.
Ce type de capteur est très utile vu qu'il fournit un
signal linéaire avec une grande sensibilité, une miniaturisation
et un coût faible.
2.4. Les principes physiques des capteurs
2.4.1. Les principes de fonctionnement des capteurs actif
[15]
Effet thermoélectrique : un circuit formé de deux
conducteurs de nature chimique différente dont les
jonctions sont à des températures T1 et T2 est le
siège d'une force électromotrice .
Effet pyroélectrique : certains cristaux dits
pyroélectrique, le sulfate de triglycine par exemple, ont une
polarisation électrique spontanée qui dépend de leur
température ; ils portent en surface des charge électrique
proportionnelles à cette polarisation et de signes contraires sur les
faces opposées.
Effet piézoélectrique : l'application d'une
force et plus généralement d'une contrainte mécanique
à certains matériaux dits piézoélectriques, le
quartz par exemple, entraine une déformation qui suscite l'apparition de
charges électriques égales et de signes contraires sur les faces
opposées.
Effet d'induction électromagnétique : lorsqu'un
conducteur se déplace dans un champ d'induction fixe, il est le
siège d'une force électromotrice proportionnelle au flux coupe
par unité de temps, donc à sa vitesse de déplacement. De
même, lorsqu'un circuit fermé est soumis à un flux
d'induction variable du fait de son déplacement ou de celui de la source
de l'induction (aimant par
22
exemple), la force électromotrice dont il est le
siège est égale et de signe contraire à la vitesse de
variation du flux d'induction.
Effets photoélectrique : on en distingue plusieurs, qui
différent par leur manifestations mais qui ont pour origine commune la
libération de charge électrique dans la matière sous
l'influence d'un rayonnement lumineux ou plus généralement
électromagnétique, dont la longueur d'onde est inférieure
à une valeur seuil, caractéristique du matériau.
Effet photoémissif : les électrons
libérés sont émis hors de la cible éclairée
et forment un courant collecté par application d'un champ
électrique.
Effet photovoltaïque : des électrons et des trous
sont libérés au voisinage d'une jonction de semiconducteurs P et
N illuminée ; leur déplacement dans le champ électrique de
la jonction modifie la tension à ses bornes.
Effet photoélectromagnétique : l'application
d'un champ magnétique perpendiculaire au rayonnement provoque dans le
matériau éclairé l'application d'une tension
électrique dans la direction normale au champ et au rayonnement.
Effet Hall : un matériau généralement
semi-conducteur et sous forme de plaquette, est parcouru par un courant I et
soumis à une induction B faisant un angle 8 avec le courant. Il
apparait, dans une direction perpendiculaire à l'induction et au courant
une tension vHqui a pour expression :
Où KH dépend de
matériaux et des démentions de la plaquette.
Figure 2.4 Quelque effet physique d'un capteur actif : a)
thermoélectrique, b) pyroélectrique,
c) piézoélectrique, d) indiction
électromagnétique, e) photoélectricité, f) effet
Hall
2.4.2. Les principes de fonctionnement des capteurs passif
[15]
Le capteur passif est une impédance dans l'un de ces
paramètres déterminants est sensible au mesurande. Dans
l'expression littérale d'une impédance sont présents des
termes liés :
23
D'une part à sa géométrie et ses
dimensions. D'autres part aux propriétés électriques des
matériaux : résistivité , perméabilité
magnétique , constante diélectrique .
? La variation d'impédance peut donc être due
à l'action de mesurande :
? Soit sur les caractéristiques
géométriques ou dimensionnelles.
? Soit sur les propriétés électriques des
matériaux.
? Soit plus rarement sur les deux simultanément.
? La Variation des paramètres
géométriques ou dimensionnels :
? Si le capteur contient un élément mobile :
chaque position de l'élément mobile correspond une valeur de
l'impédance et la mesure de celle-ci permet de connaitre la position
(c'est le principe de grand nombre de capteurs de position ou de
déplacement : potentiomètre, inductance à noyau mobile,
condensateur à armature mobile).
? Si le capteur contient un élément
déformable : la déformation résulte de forces ou de
grandeurs s'y ramenant (pression, accélération) applique soit
directement soit indirectement au capteur : armature d'un condensateur soumise
à une pression différentielle jauge d'extensomètre
liée rigidement à une structure soumise à contrainte. La
modification d'impédance qu'entraine la déformation du capteur
est liée aux efforts auxquels celui-ci ou la structure
intermédiaire se trouve soumis et elle en assure une traduction
électrique.
Les propriétés électrique des
matériaux, selon la nature des ces derniers, peuvent être
sensibles à des grandeurs physiques variées : température,
éclairement, pression, humidité... Si l'une de ces grandeurs est
susceptible d'évolution, toutes les autres étant maintenues
constantes il s'établit une correspondance univoque entre la valeur de
cette grandeur et celle de l'impédance du capteur.
Le tableau suivant est un aperçu des divers mesurande
susceptibles de modifier les propriétés électriques de
matériaux.
Tableau 2.2 L'influence des mesurande sur les
propriétés électriques de matériaux.
Mesurande
|
Caractéristique électrique
sensible
|
Types de matériaux utilisés
|
Température
|
Résistivité
|
Métaux, platine, nickel,
cuivre, semi-conducteurs
|
Très basse température
|
Constante diélectrique
|
Verres
|
Flux de rayonnement optique
|
Résistivité
|
Semi-conducteurs
|
Déformation
|
Résistivité
Perméabilité magnétique
|
Alliage de nickel, silicium
dopé
Alliages ferromagnétiques
|
Position (aimant)
|
Résistivité
|
Matériaux
magnétorésistances :
bismuth, antimoniure d'indium
|
Humidité
|
Résistivité
Constante diélectrique
|
Chlorure de lithium Alumine, polymères
|
Niveau
|
Constante diélectrique
|
Liquides isolants
|
Remarque : l'impédance d'un capteur passif et ses
variations ne sont pas mesurable qu'en intégrant le capteur dans un
circuit électrique, par ailleurs alimenté et qui est son
conditionneur.
24
2.5. Caractéristiques métrologique
Il existe plusieurs propriétés associées
à un capteur qui sont critiques pour les performances du capteur. Les
plus importantes sont :
· Limites d'utilisation d'un capteur et étendue de
mesure.
· Caractéristique entrée-sortie
· Sensibilité
· Résolution
· Finesse
· Fidélité - Justesse - Précision
· Hystérésis ou
réversibilité
· Reproductibilité ou
répétabilité
· Temps de réponse
2.5.1. Limites d'utilisation d'un capteur et étendue
de mesure
Les capteurs doivent être utilisés correctement en
respectant les consignes du conducteur. On peut ainsi définir quatre
domaines d'utilisation :
Le domaine nominal ou domaine normal des valeurs du mesurande.
Le domaine de non détérioration dans lequel se
produit une altération réversible des propriétés du
capteur.
Le domaine de détérioration ou de non destruction
dans lequel il se produit une altération irréversible et
permanente du capteur.
Le domaine de destruction ou le capteur est hors d'usage.
Figure 2.5 Les trois domaines de fonctionnement d'un capteur
L'étendu de mesure : l'étendu de mesure d'un
capteur correspond à l'intervalle entre la valeur minimale et la valeur
maximale du mesurande.
2.5.2. Caractéristique entrée-sortie
Elle renseigne sur l'évolution de grandeur de sortie en
fonction de la grandeur d'entrée. [18]
2.5.3. Sensibilité
C'est la pente de la tangente à la courbe issue de la
caractéristique de capteur. [18]
25
Figure 2.6 La sensibilité d'un capteur
2.5.4. Résolution
Résolution : correspond à la plus petite variation
de la grandeur physique à mesurer que le capteur est susceptible de
déceler. [18]
2.5.5. Finesse
C'est l'aptitude d'un capteur à
délivrer, pour une même valeur de la grandeur mesurée, des
mesures répétitives concordantes entre elles.
2.5.6. Fidélité - Justesse -
Précision
Fidélité : c'est l'aptitude d'un capteur à
délivrer le même résultat lors d'une mesure
répétitive de la même grandeur. [18]
Justesse : indique la fiabilité ou l'exactitude d'un
résultat; il peut aussi être définie comme la fraction de
résultats valides obtenus à partir de tous les résultats.
[21]
Précision : indique le plus petit changement qui peut
être enregistrée avec précision. [20]
2.5.7. Hystérésis
Hystérésis: d'un capteur peut produire des
résultats différents lors de la mesure de la même
quantité en fonction de la "direction" dans laquelle la valeur a
été approchée. [19]
Figure 2.7 hystérésis d'un capteur
26
2.5.8. Reproductibilité
(répétabilité)
C'est la capacité du capteur pour produire la même
sortie lorsque la même entrée est appliquée. [17]
2.5.9. Temps de réponse - Le temps de
récupération
Le temps de réponse: est le temps qu'il faut pour que
le capteur atteindre 90% de sa valeur à l'état d'équilibre
après l'introduction de la mesurande. [16]
Figure 2.8 temps de réponse d'un capteur
Le temps de récupération: est le temps qu'il
faut au capteur d'être à moins de 10% de la valeur qu'elle avait
avant l'enlèvement de la mesurande. [16]
Figure 2.9 temps de récupération
2.6. Erreurs et incertitudes dans les capteurs
2.6.1. Les erreurs de mesure dans les capteurs
Les erreurs de mesure ont des causes systématiques que
l'opérateur peut corriger ou non. Ces erreurs ont des causes clairement
identifiées et prévisibles.
L'erreur sur le zéro (zéro offset) :
appelée aussi `dérive' est généralement due au
vieillissement des composantes d'un capteur et aux variations de
température. Elle se traduit par un décalage de la grandeur de
sortie indépendante du mesurande.
Figure 2.10 L'erreur du zéro
27
L'erreur liée à l'étalonnage : L'erreur
liée à l'étalonnage du capteur est due à la
qualité de l'opération d'étalonnage. Si cette
opération n'est pas effectuée correctement, cela se traduit par
une erreur dans la pente de la caractéristique du capteur. Il est
recommandé de toujours étalonner un capteur avec un étalon
de référence au moins 4 fois plus précis.
Figure 2.11 L'erreur liée à
l'étalonnage
Les erreurs dues aux grandeurs d'influence : Les grandeurs
d'influence provoquent sur le capteur des variations de ses
caractéristiques métrologique. L'erreur sur le zéro
mentionnée précédemment est un très bon exemple de
ces variations.
L'erreur sur la sensibilité est aussi une erreur due
aux grandeurs d'influence. Toutes les grandeurs physiques connues peuvent agir
comme grandeur d'influence. Pour minimiser l'effet de ces grandeurs
d'influence, il faut utiliser soit la compensation, soit la stabilisation.
Les erreurs dues aux conditions d'alimentation et de
traitement de signal : La grandeur de sortie peut être fortement
dépendante des conditions d'alimentation du capteur. L'alimentation du
capteur est dans certains cas une grandeur modifiante qui peut affecter la
précision d'une mesure.
Les erreurs dues au mode d'utilisation : certaines erreurs
sont simplement dues à une utilisation incorrecte d'un capteur. Par
exemple, on si utilise un capteur pas assez rapide dans un cas ou le mesurande
évolue de façon rapide.
2.6.2. Les incertitudes de mesure dans les capteurs
Les erreurs d'incertitude sont des erreurs de nature
non-déterministes dues à des causes accidentelles que
l'opérateur ne peut corriger. Elles sont appelées parfois
`erreurs aléatoires'
Les erreurs liées aux indéterminations
intrinsèques d'un capteur : certaines erreurs aléatoires sont
liées à la non-connaissance de caractéristiques de
capteurs. Ainsi, pour certains capteurs, on ne connait pas de façon
précise des paramètres comme la résolution,
réversibilité, hystérésis,... Par exemple, lorsque
l'on achète un potentiomètre, on ne se pose pas de questions sur
la résolution de ce capteur.
Les erreurs dues à des signaux parasites de
caractère aléatoire : le bruit électrique, si nuisible
à la qualité des mesures, est la source principale des signaux
parasites. Ces signaux sont dus généralement à des
phénomènes d'induction, ce qui fait que l'on recommande de
blinder les conducteurs transportant les signaux de mesure.
Les erreurs de mesure dues aux grandeurs d'influence
non-contrôlées : les grandeurs d'influence
non-contrôlées sont souvent sources d'erreur, car le corps
d'épreuve d'un capteur est généralement sensible à
plus d'une grandeur physique.
28
2.7. Etalonnage des capteurs
L'étalonnage est la relation qui établit la
relation entre le mesurande et la grandeur électrique de sortie. Cette
relation peut dépendre non seulement du mesurande mais aussi des
grandeurs d'influence. S'il n'y a pas de grandeurs d'influence,
l'étalonnage est simple, dans le cas contraire il est multiple.
2.7.1. Etalonnage simple
On distingue deux méthodes possibles :
L'étalonnage direct dans le quel les valeurs du
mesurande sont issues d'étalons ou d'objets de référence
pour lesquels le mesurande est connu avec une incertitude donnée.
L'étalonnage par comparaison dans lequel on compare les
mesures du capteur à étalonner avec celles provenant d'un autre
capteur lui-même préalablement étalonné et
considéré comme étant la référence, ce qui
signifie que son étalonnage est raccordé à étalons
et que l'incertitude correspondante est connue.
2.7.2. Etalonnage multiple
L'existence des grandeurs d'influence susceptibles de varier
au cours des mesures oblige à paramétrer l'étalonnage pour
différentes valeurs de ces grandeurs : c'est étalonne multiple.
Quelques cas particuliers d'étalonnages multiples méritent
d'être mentionnés :
Pour les capteurs présentant une
hystérésis, il est nécessaire de procéder à
l'étalonnage par une succession ordonnée et
spécifiée des valeurs du mesurande.
Pour les capteurs de grandeurs dynamiques, if faut relever la
réponse en fréquence pour un mesurande d'amplitude fixée
et la réponse en amplitude pour une fréquence fixée.
Dans certains cas, notamment pour beaucoup de capteurs
mécaniques et thermiques, lorsque le constructeur ne donne pas
d'indication relative à l'usage du capteur, il est souvent souhaitable
d'effectuer l'étalonnage après son installation sur le site.
3. Les actionneurs 3.1. L'actionneur
Un actionneur est un dispositif qui transforme
l'énergie délivrée par l'interface de puissance, en
énergie utilisable par les effecteurs de processus. Le schéma
fonctionnel d'un actionneur ainsi que les schémas des principaux
actionneurs sont représentés à la figure ci-dessous. Les
moteurs électriques, les vérins pneumatiques ainsi que les
éléments chauffants sont des exemples typiques d'actionneurs
utilisés en automatisation industrielle.
Les effecteurs : un effecteur est un
dispositif qui transforme l'énergie délivrée par un
actionneur, en valeur ajoutée. Selon le cas, un effecteur peut
être séparé ou non de l'actionneur. Quelques exemples
d'effecteurs rencontrés en milieu industriel sont : les ventilateurs,
les broyeurs, les pinces à outils de robots articulés,
dispositifs de transfert de chaleur... [26]
Figure 2.12 Schéma fonctionnel et symboles des
actionneurs
3.2. Mode de fonctionnement des actionneurs et des
moteurs
Mode tout ou rien : l'actionneur ou le moteur
est connecté à une alimentation hydraulique ou pneumatique de
pression constante ou à une alimentation électrique de tension et
fréquence constantes. Sa vitesse de déplacement ou de rotation
dépend de son principe de fonctionnement et des caractéristiques
de son alimentation, mais aussi de la charge (frottement, couple d'usinage,
etc.). Non alimenté, il ne produit plus aucune force ou couple et se
laisse entraine par la charge, généralement, il s'arrête
âpres un temps plus ou moins long sous l'effet des frottements, ou
soudainement sous l'action d'un frein mécanique. La commande est alors
particulièrement simple à réaliser, à l'aide d'un
distributeur pour les entrainements pneumatiques ou hydraulique et d'un
interrupteur pour les entrainements électriques.
Mode contrôlé en vitesse : en
ajustant la pression hydraulique ou pneumatique, la tension électrique
ou la fréquence, il est possible de modifier la vitesse d'un actionneur
ou d'un moteur de manière continue, au moins dans une certaine plage
(par exemple de 20% à 100% de la vitesse nominale). Toutefois la vitesse
reste plus ou moins dépendante de la charge.
Mode réglé en vitesse : le
principe de la régulation est illustré dans la figure ci-dessous
:
l'opérateur ou le programme d'automate choisit une
valeur de consigne en fonction de la
vitesse qu'il souhaite obtenir. La valeur réelle est
mesurée et fournit le signal de contre-
réaction , qui est comparé à la valeur de
consigne. La différence entre ces deux valeur est
appelée écart de régulation s'efforce de
le minimiser en ajustant la grandeur de réglage et, par
l'intermédiaire de l'amplificateur de puissance,
l'alimentation du moteur.
Figure 2.13 Principe de la commande de vitesse en boucle
fermée
29
30
Mode servomoteur-réglé en position :
en ajustant un capteur de position sur l'arbre du moteur ou sur la
charge en mouvement, il est possible de réaliser des déplacements
point à point et d'arrêter le moteur à des positions
très précises.
Mode pas à pas : il est combine le
mode tout ou rien et le mode servomoteur. L'actionneur travaille bien en mode
tout ou rien, mais il est alimenté par une succession d'impulsions. A
chaque impulsion, il avance d'une petite distance appelée pas ou
incrément. La distance parcourue dépend directement du nombre
d'impulsions reçues. La vitesse dépend de la fréquence des
impulsions. De plus, lorsqu'il ne reçoit plus d'impulsions, un tel
actionneur est tenu en place avec une certaine force de maintien.
3.3. Les familles d'actionneurs
Actionneur pneumatique : les actionneurs
pneumatiques sont utilisés principalement pour des mouvements
séquentiels simples ils utilisent de l'air comprimé à 6
bar et permettent de réaliser des vérins dont la force peut
atteindre 50000N. L'air est fourni par un compresseur, complété
de filtres, d'un séparateur d'eau et d'un déshuileur. Il est
souvent produit pour tous les ateliers, et distribué à toutes les
machines. Les actionneurs sont généralement des vérins
linéaires, mais aussi des moteurs rotatifs. On utilise également
des aspirateurs suceurs à vide pour saisir des objets. Ils sont
commandés en tout ou rein par des distributeurs, actionnés
mécaniquement ou électriquement.
Actionneur hydraulique : un actionneur
hydraulique est composé de deux parties : une partie vérin et une
partie valve. Dans un système à commande proportionnelle, on
place dans l'étage de pilotage (valve) une bobine
(solénoïde) qui régule la pression du fluide
proportionnellement à la consigne électrique (courant tension).
[27]
Figure 2.14 Actionneur hydraulique
Actionneur piézoélectrique :
c'est un convertisseur électrique-mécanique non
résonant qui est généralement utilisé pour
engendrer des microdéplacements. On les rencontre principalement en
microélectronique pour le positionnement des circuits
intégrés et en microscopie à effet tunnel pour
cartographier les surfaces des matériaux. En fait, physiquement, tous
les systèmes ont des fréquences de résonance. [23]
Figure 2.15 Actionneur piézoélectrique
31
Actionneur électromécanique :
est un transducteur assurant une conversion d'énergie et
d'information de la forme électrique à la forme mécanique.
Un actionneur électromécanique est aussi appelé moteur.
Selon les applications, l'aspect énergétique ou
la qualité du signal prime. Le rendement énergétique est
parfois déterminant. Dans d'autres cas, c'est le caractère
linéaire de la transformation qui importe. Dans d'autre cas encore,
c'est le temps de réaction ou la fréquence limite qui sont
déterminants. [22]
3.4. Les actionneurs électriques
3.4.1. Moteurs à courant continu Moteur DC à
aimant permanant :
Un moteur à courant continu à aimant permanent se
compose de trois éléments essentiels : Une partie fixe :
l'inducteur (stator) constitué d'un aimant permanent.
Une partie mobile : l'induit (rotor) comportant une ou
plusieurs bobines tournant dans le champ magnétique crée par
l'inducteur.
Le collecteur qui associé aux balais, permet de relier
les enroulements du rotor à l'extérieur du moteur.
Figure 2.16 Vue en couple simplifiée
Principe de fonctionnement :
Rappel : Un conducteur parcouru par un
courant I et placé dans un champ magnétique B est soumis à
une force F appelé force de LAPLACE.
Figure 2.17 Perspective de l'induit simplifiée
Le sens de la force est donné par la règle des
trois doigts de la main droite : INdex INtensité / MAjeur
Magnétique / pouCE forCE
Figure 2.18 Règle de la main droite
Les deux forces de LAPLACE qui s'exercent sur la spire
créent un couple appelé couple
électromagnétique ( ) qui entraîne la
rotation du rotor.
De plus, en tournant dans le champ magnétique uniforme ,
la spire parcourue par le courant embrasse un flux qui varie dans le temps. D
`après la loi de FARADAY, toute variation de flux à travers une
surface entraîne une force électromotrice ( ) induite. Donc une
fem est induite le long de chaque spire.
Pour inverser le sens de rotation, il suffit d'inverser le sens
du courant dans la spire donc d'inverser la polarité de la tension
d'alimentation.
Le model électrique équivalant de l'induit
:
32
R : Résistance des enroulements de
l'induit (a). E : Force électromotrice
induite (V).
I : Courant traversant les spires de l'induit
(A). U : Tension d'alimentation de
l'induit(V). Equation électrique du moteur
:
La force électromotrice E est proportionnelle à la
vitesse de rotation du moteur ? (rad/s).
: est une constante qui dépend de caractéristique
de conception du moteur
Le courant est proportionnel au couple
électromagnétique .
: est une constante Remarque :
33
Couple moteur (couple utile) et couple de
pertes:
Le couple électromagnétique n'est pas égal
au couple moteur (ou couple utile )
disponible sur l'arbre du moteur. Il y a une perte de couple due
aux frottements des diverses
pièces en rotation et aux pertes fer (courants de
Foucault...). Pour un moteur donné est constant :
Figure 2.19 Les couples d'un moteur
Couple résistant:
Le couple résistant est le couple qu'exerce sur l'arbre,
la charge que le moteur doit entraîner en
rotation. Plus la charge est importante plus est important.
Bilan des puissances:
En multipliant par I des deux côtés du signe
égal, l'équation électrique nous donne :
: Puissance électromécanique
: Puissance dissipée par effet Joule
: Puissance électrique fournie au moteur
En multipliant par des deux côtés du signe
égal de l'équation on obtient :
: Pertes collectives
: Puissance électromécanique
: Puissance utile disponible sur l'arbre du moteur
Remarque :
Figure 2.20 Bilan de puissance
Le rendement :
34
Moteurs DC avec un autre mode d'excitation :
Le moteur à courant continu excité par des aimants
permanents n'est pas le seul type possible.
Souvent on remplace les aimants par des électroaimants
fixes (bobines convenablement alimentées en courant continu). Les
bobines sont appelées «bobines d'excitation» ou «bobines
inductrices». On distingue généralement trois types de
moteurs selon le branchement envisagé:
Moteur à courant continu à excitation
séparée ou shunt : La tension appliquée à
l'inducteur, donc le courant d'excitation, est indépendante du courant
d'induit, c'est-à-dire de la charge. Pour un moteur à excitation
séparée, l'inducteur possède son alimentation propre, ce
qui est la configuration la plus courante pour un moteur à courant
continu. Pour un moteur shunt, l'inducteur est branché en
parallèle avec l'induit. [24]
Figure 2.21 a)Symbole d'un moteur à excitation
indépendant ; b) à excitation shunt
Moteur à courant continu à excitation
sérié : Moteur à courant continu est dit à
excitation série lorsque l'inducteur est branché en série
avec l'induit.
Figure 2.22 Symbole d'un moteur à excitation
série
Moteur-compound : Une bobine inductrice est raccordée
directement à la source de courant, tandis que la seconde bobine
inductrice est raccordée en série au rotor. La tension aux bornes
ne doit pas dépasser 10 V.
Figure 2.23 Symbole d'un moteur à excitation
compound.
35
Moteur synchrone sans balais et servomoteur
Moteur synchrone sans balais : Le moteur synchrone sans balais
a une structure inversée par rapport au moteur à courant continu.
Les aimants sont au rotor et les bobinages sont au stator. La
particularité de ce type de moteur est qu'il est conçu
grâce aux capacités de l'électronique moderne. Les phases
de ce type des moteurs sont alimentées successivement par un commutateur
de phases électronique. Par contre, ce n'est plus une horloge
extérieure qui fixe l'instant de commutation, mais la position du rotor
par l'intermédiaire de capteurs. Le couple moteur dépendant pour
chaque phase de la position du rotor par rapport au stator, les capteurs sont
donc placés de manière à obtenir en permanence un couple
maximum.
Figure 2.24 Structure de moteur à balais et moteur sans
balais
Le servomoteur : un servomoteur est, comme son nom l'indique,
un moteur mais avec quelques spécificités en plus. Contrairement
à un moteur classique qui est utilisé pour tourner avec une
vitesse proportionnelle à un courant ou à une tension, pour
obtenir une position. Il effectue une rotation suivant un angle
déterminé. Le plus souvent l'angle est compris entre 0 et
180° puis il garde cette position.
Figure 2.25 Un servomoteur
3.4.2. Moteurs à courant alternatif
Pour les applications de faible et moyenne puissance
(jusqu'à quelques kilowatts), le réseau monophasé standard
suffit. Pour des applications de forte puissance, les moteurs à courant
alternatif sont généralement alimentés par une source de
courants polyphasés. Le système le plus fréquemment
utilisé est alors le triphasé utilisé par les
distributeurs d'électricité.
Ces moteurs alternatifs se déclinent en trois types :
? Les moteurs universels.
? Les moteurs asynchrones. ? Les moteurs synchrones.
Ces deux dernières machines ne diffèrent que par
leur rotor.
36
Le moteur universel c'est un moteur électrique
fonctionnant sur le même principe qu'une machine à courant continu
à excitation série : le rotor est connecté en série
avec l'enroulement inducteur. Le couple de cette machine indépendant du
sens de circulation du courant est proportionnel au carré de son
intensité. Il peut donc être alimenté indifféremment
en courant continu ou en courant alternatif, d'où son nom. Pour limiter
les courants de Foucault qui apparaissent systématiquement dans toutes
les zones métalliques massives soumises à des champs
magnétiques alternatifs, son stator et son rotor sont feuilletés.
Dans la pratique, ces moteurs ont un mauvais rendement, mais un coût de
fabrication très réduit. Leur couple est faible, mais leur
vitesse de rotation est importante. Quand ils sont utilisés dans des
dispositifs exigeant un couple important, ils sont associés à un
réducteur mécanique.
La machine synchrone est souvent utilisée comme
génératrice. On l'appelle alors « alternateur ». Mis
à part pour la réalisation de groupe électrogène de
faible puissance, cette machine est généralement
triphasée. Pour la production d'électricité, les centrales
électriques utilisent des alternateurs dont les puissances peuvent
avoisiner les 1 500 MW.
Comme le nom l'indique, la vitesse de rotation de ces machines
est toujours proportionnelle à la fréquence des courants qui les
traversent. Ce type de machine peut être utilisé pour relever le
facteur de puissance d'une installation. On appelle celle-ci un «
compensateur synchrone ».
La machine asynchrone : connue également sous le terme
d'origine anglo-saxonne de « machine à induction », est une
machine à courant alternatif sans alimentation électrique du
rotor. Le terme anglais provient des courants induits dans le rotor par
induction magnétique. Le terme « asynchrone » provient du fait
que la vitesse de ces machines n'est pas forcément proportionnelle
à la fréquence des courants qui les traversent.
3.4.3. Moteurs pas à pas
Les moteurs pas à pas sont des moteurs spéciaux
utilisés pour commander avec une grande précision le
déplacement et la position d'un objet. Comme leur nom indique, ces
moteurs tournent par incréments discrets. Chaque incrément de
rotation est provoque par une impulsion de courant fournie à l'un des
enroulements du stator.
Selon sa construction, un moteur pas à pas peut avancer
de 90°, 45°, 18°, ou d'une fraction de degré seulement
par impulsion. En faisant varier la fréquence des impulsions, on peut
faire tourner le moteur très lentement, d'un pas à la fois, ou
rapidement à des vitesses aussi élevées que 4000 tr/min.
[25]
On trouve trois types de moteurs pas à pas :
? Le moteur à aimants permanents. ? Le moteur hybride.
? Le moteur à réluctance variable.
Le moteur à aimants permanents : Le nom de ce type de
moteur pas à pas est lié à la conception de son stator :
une tôle magnétique découpée et emboutie. Sur un
diamètre intérieur, les tôles composent une série de
dents qui symbolise les pôles du stator tout en laissant un espace
torique pour une bobine. Chaque sous-ensemble représente une phase
stator. Le rotor est un barreau aimanté radialement ayant plusieurs
paires de pôles N-S.
37
Figure 2.26 Moteur à aimants permanant
Le moteur hybride : Le moteur pas à pas « hybride
» allie le principe du moteur à réluctance variable à
celui du moteur à aimant permanent. Le rotor du moteur hybride comprend
2 structures régulières de dents. Ces 2 blocs sont
décalés d'une 1/2 dent l'un par rapport à l'autre et sont
fixés de part et d'autre d'un aimant permanent magnétisé
axialement. Le circuit magnétique du stator possède plusieurs
pôles constitués de paquets de tôles entourés chacun
d'une bobine ; les paquets de tôles se terminant par des dents. Une phase
est constituée de plusieurs dents ; 4 dans la plupart des cas. Tous les
pôles de la phase sont décalés de façon à
assurer le déphasage de 90° (quadrature).
Figure 2.27 Moteur hybride
Le moteur à réluctance variable : Le principe de
fonctionnement de ce type de moteur pas à pas est proche de celui du
moteur hybride, avec une structure dentée au rotor et au stator. Il n'y
a pas d'aimant au rotor pour renforcer l'action du flux et donc pas de couple
résiduel sans courant. Ce type de moteur pas à pas n'est presque
plus utilisé ni fabriqué.
Figure 2.28 Moteur à réluctance variable
38
Si nous devions comparer les différents types de moteurs
pas à pas : Tableau 2.3 comparaison des différents types de
moteurs pas à pas
|
Aimant permanent
|
Hybride
|
Reluctance variable
|
Cout
|
Bas
|
Haut
|
Moyen/haut
|
Vitesse
|
Bas
|
Très haut
|
Haut
|
Couple résiduel
|
Haut
|
Moyen
|
Minimum
|
Amortissement
|
Bon
|
Moyen/bon
|
Mauvais
|
Inertie rotor
|
Haut
|
Bas
|
Bas
|
Rendement
|
Moyen
|
Très haut
|
Moyen
|
Angle de pas
|
7.5°/15°/18°
|
0.9°/1.8°
|
1.8°
|
Nbrs de pas/tour
|
48/24/20
|
400/200
|
200
|
Précision du pas
|
Bas
|
haut
|
Moyen
|
4. Conclusion
On peut dire à la fin de ce chapitre que toute
système automatisé ou installation industrielle est
équipée d'un ensemble de capteurs et actionneurs dont
l'utilité consiste à contrôler des différents
paramètres physiques telle que: la pression, le débit, la
température,..., etc. Donc la compréhension des principes de
fonctionnement des principaux capteurs et actionneurs utilisés est une
phase très importante lors de l'étude de n'importe qu'el
système automatisé.
Chapitre 3 :
Microcontrôleur et Arduino
1. 39
Introduction
Le terme micro-ordinateur est utilisé pour
décrire un système qui comprend au moins un microprocesseur, une
mémoire de programme(ROM), la mémoire de données (RAM), et
une entrée-sortie (I / O) périphérique. Certains
systèmes de micro-ordinateurs comprennent des composants
supplémentaires tels que des Timers, des compteurs et des convertisseurs
analogique-numérique. Ainsi, un système de micro-ordinateur peut
être existé sous plusieurs sortes à partir d'un gros
ordinateur ayant disques durs, disquettes, imprimantes et à
contrôleur intégré à puce unique.
Dans ce chapitre, nous allons considérer seulement le
type de micro-ordinateurs qui se composent d'une seule puce de silicium. Ces
systèmes de micro-ordinateurs sont aussi appelés
microcontrôleurs, et ils sont utilisés dans de nombreux produits
ménagers tels que les fours à micro-ondes, unités de
contrôle à distance d'un TV, cuisinières,
équipements HIFI, lecteurs CD, ordinateurs personnels, et les
réfrigérateurs. De nombreux microcontrôleurs sont
disponibles au marché. [28]
2. Historique
Depuis la création de microprocesseurs, 4, 8, 16, 32
bits. Les microprocesseurs/microcontrôleurs ont développé
et sont apparu sur le marché. Intel 4004 était le premier
processeur à 4 bits qui est apparu en 1971. Ces instructions sont de 8
bits, mais ces données traitées sont de 4 bits. Il avait
mémoires externes séparés, pour le programme (4K) et les
données (1K). Il y avait 46 instructions et la fréquence
d'horloge est de 740 kHz. Puis, en 1972, Intel 4040, la version
améliorée de 4004. 4040 avaient 14 instructions de plus avec
mémoire 8K du programme et des possibilités d'interruption.
En 1974, Texas Instruments a présenté le premier
microcontrôleur TMS 1000. TMS 1000 avait dans la même puce une RAM,
une ROM, et les I / Os. Intel 8080 a ensuite été introduit en
1974, c'est la version améliorée de 8008, qui est
également apparu en 1972. Intel 8085 a été
élaboré en 1976. Cela pourrait fonctionner sur +5V et
fréquence de 3 MHz. Dans la même année, Zilog Z-80 est
apparu comme une amélioration par rapport Intel Z80 8080. Z80 fonctione
à 2,5 MHz, et dans la version CMOS (Complementary Metal Oxide
Semiconductor), fonctionne à 10MHz.
Immédiatement après Intel 8080, en 1975,
Motorola a lancé son 6800, suivi plus tard par le 6502 et 6809, etc.
Ensuite, Intel 8084 a été développé comme un
microcontrôleur autour de 1976. C'est la famille MCS-48. Il est possible
de stocker les données sur la même puce, mais le code a
été stocké dans la mémoire externe de
programme. il est immédiatement
remplacé par le MCS-51 famille de microcontrôleurs en 1980. Intel
MCS-51 utilise plus souple des instructions de 2 octets. Sur une seule puce il
procède (RAM / EPROM ROM RAM). En 1982, Motorola a
présenté microcontrôleur 6805. Le PIC (Peripheral interface
controller) est né à l'Université Harvard en 1975. Les
familles de microcontrôleurs PIC a été introduit vers 1985,
par Microchip. PIC utilise l'architecture de Harvard, et il dispose d'un jeu
d'instructions réduit. Intel 8086 a été
développé en 1978, c'est un processeur de 16 bits. Après,
Motorola a présenté un microprocesseur 68000 16-bit, et Zilog
introduit Z8000, un microprocesseur 16 bits. Les développements
historiques dans les produits de microprocesseurs sont listés dans le
tableau suivant :
Tableau 3.1 Les développements historiques dans les
produits de microprocesseurs
Année
|
Microprocesseur / microcontrôleur
|
remarque
|
1971
|
Intel 4004
|
Microprocesseur à 4-bit
|
40
1972
|
Intel 4040
|
Microprocesseur à 4-bit
|
1974
|
Intel 8080
|
Microprocesseur à 8-bit
|
|
TMS 1000
|
Microcontrôleur à 8-bit
|
1975
|
Motorola 6800
|
Microprocesseur à 8-bit
|
1976
|
MCS-48
|
Microcontrôleur à 8-bit
|
|
Intel 8085
|
Microprocesseur à 8-bit
|
1978
|
8086, Motorola 68000, Zilog Z-8000
|
Microprocesseur à 16-bit
|
1980
|
8051
|
Microcontrôleur à 8-bit
|
1982
|
68010,6805
|
Microcontrôleur
|
|
80186, 80188, 80286
|
Microprocesseur à 16-bit
|
|
8096 (MCS-96)
|
Microcontrôleur à 16-bit
|
1984
|
86020
|
Microprocesseur à 32-bit
|
1985
|
80386
|
Microprocesseur à 32-bit
|
|
PIC microcontrollers by Microchip
|
Microcontrôleur à 8-bit
|
1987
|
Z280
|
Microprocesseur à 16-bit
|
1989
|
80386sx, 80486
|
Microprocesseur à 32-bit
|
1993
|
Pentium
|
Microprocesseur à 32-bit
|
1997
|
Atmel 8-bit AVR family
|
Microcontrôleur RISC à 8-bit
|
En Juin 1997, les microcontrôleurs ATMEL 8 bits AVR ont
été introduites qui ont également le jeu d'instructions
réduit. Aujourd'hui, nous voyons un certain nombre de familles de
microcontrôleurs, de sources multiples et dans de nombreuses versions.
[29]
3. Définition de microcontrôleur
Un microcontrôleur est un circuit hautement
intégré qui rassemble, sur une puce, la plus part ou tout les
parties nécessaire d'un ordinateur. Le microcontrôleur comprend
généralement: CPU (Central Processing Unit), la mémoire
RAM (Random Access Memory), EPROM / PROM / ROM (programmable effaçable
Read Only Memory), I / O (entrée / sortie), des timers. [30]
Figure 3.1 Schéma des éléments principaux
d'un microcontrôleur
3.1. Les composants internes d'un microcontrôleur
Un microcontrôleur le plus simple qu'il soit,
possède au minimum les éléments suivants :
Une unité centrale qui est le coeur de système,
également appelé CPU (Central Processing Unit) dans cette
unité centrale nous retrouverons plusieurs éléments telle
que l'unité arithmétique et logique (UAL).
41
Une mémoire contenant le programme à
exécuter par le microcontrôleur, généralement
appelée mémoire morte ou ROM, mémoire à lecture
seule. Cette mémoire a la particularité de sauvegarder en
permanence les informations qu'elle contient, même en absence de tension
(ce qui est primordiale, sino il faudrait reprogrammer le microcontrôleur
à chaque remise sous tension !).
Une mémoire vive (RAM), cette mémoire permet de
sauvegarder temporairement des informations. Il est à noter que le
contenu d'une RAM n'est sauvegardé que pendant la phase d'alimentation
du circuit. Le microcontrôleur pourra utiliser cette mémoire pour
stoker des variables temporaires ou faire des calculs intermédiaires.
Un port d'entrées/sorties permettant au
microcontrôleur de dialoguer avec l'extérieur pour par exemple
prendre l'état d'un capteur, d'un interrupteur ou bien pour allumer une
LED ou piloter un relais (via un transistor bien sur).
Une base de temps : elle peut être assurée par un
cristal de quartz externe, un oscillateur programmable, un résonateur
céramique, ou d'une base de temps interne. [35]
Des bus internes permettent la communication entres les
différents éléments intégrés au
microcontrôleur.
Et pour certains microcontrôleurs les plus
sophistiqués peuvent contenir des éléments
supplémentaires, tels que :
Convertisseur analogique-numérique (CAN): un
convertisseur analogique-numérique a une tension d'entrée
analogique et produit une sortie binaire représentative de sa valeur.
Dans un CAN linéaire, la plage de valeurs d'entrée analogiques
est divisé en intervalles spatiaux de façon égale; dont
chacune est affectée a un mot de code binaire. [33]
Un convertisseur numérique-analogique (CNA): un CNA
accepte un mot d'entrée de n bits b1, b2, b3, ..., bn en binaire et
produire un signal proportionnel analogique à elles. La figure
ci-dessous montre son symbole. [34]
Figure 3.2 Symbole d'un convertisseur
numérique/analogique
Le PWM (Pulse Width Modulation) : est une technique pour
obtenir des résultats analogiques avec des moyens numériques. La
commande numérique est utilisée pour créer une onde
carrée, le signal se varier entre 1 et 0. Par le changement de la
durée du moment où le signal est en 1 par rapport au
période du signale carré on peut obtenir des tensions entre les
deux valeurs 5 Volts et 0 Volts
42
Figure 3.3 Signal analogique par la technique PWM
3.2. Les types des microcontrôleurs
Les microcontrôleurs peuvent être classés
selon la largeur des bus interne, l'architecture de la mémoire et de jeu
d'instructions.
Figure 3.4 Les types des microcontrôleurs Les
microcontrôleurs de 8, 16 et 32 bits
Lorsque l'UAL effectue des opérations
arithmétiques et logiques sur un octet (8 bits) à une
instruction, on dit qu'il est un microcontrôleur de 8 bits. Son bus
interne est de largeur de 8 bits.
Lorsque l'UAL effectue des opérations
arithmétiques et logiques sur un octet (16 bits) à une
instruction, on dit qu'il est un microcontrôleur de 16 bits. Son bus
interne est de largeur de 16 bits. Ses performances et la capacité de
calcul sont renforcées avec une plus grande précision par rapport
aux microcontrôleurs 8 bits.
Lorsque l'UAL effectue des opérations
arithmétiques et logiques sur un octet (32 bits) à une
instruction, on dit qu'il est un microcontrôleur de 32 bits. Son bus
interne est de largeur de 32 bits. Ses performances et la capacité de
calcul sont plus grandes et plus précis par rapport aux
microcontrôleurs 16 bits.
Les microcontrôleurs de mémoires
embarqués et de mémoires externes
Quand un système embarqué comporte un UC ou tous
les blocs fonctionnels en une seule unité, donc il est appelé un
microcontrôleur intégré. [32]
43
Quand un système embarqué comporte une
unité de microcontrôleur qui n'a pas tous les blocs fonctionnels
disponibles sur une seule puce, il est appelé un microcontrôleur
de mémoire externe. [31]
L'architecture des microcontrôleurs
Architecture de Von Neumann-(Princeton): quand un UC a une
mémoire commune utilisé pour le programme et les données,
on dit qu'il a l'architecture Princeton de mémoire dans le
processeur.
Architecture de Harvard: quand la mémoire de programme
se distincte de la mémoire de données, le UC a l'architecture de
Harvard dans son processeur. Alors l'accès à chacune des deux
mémoires se fait via un chemin distinct. Cette organisation permet de
transférer une instruction et des données simultanément,
ce qui améliore les performances.
Figure 3.5 L'architecture d'un microcontrôleur
RISC et CISC l'architecture des
microcontrôleurs
l'architecture RISC (Reduced Instruction Set Computer) des
microcontrôleurs: quand un microcontrôleur a un jeu d'instructions
qui prend moins de modes d'adressage pour les instructions arithmétique
et logique et pour les instructions de transfert de données, le
microcontrôleur est dit être de l'architecture RISC. [31]
l'architecture CISC (instruction Complicated Set Computer) des
microcontrôleurs: quand un MCU a un jeu d'instructions qui prend de
nombreux modes d'adressage pour les instructions arithmétique et
logiques et pour l'accès à la mémoire et des instructions
de transfert de données de le UC est dit être de l'architecture
CISC. [32]
3.3. Langage de programmation d'un
microcontrôleur
Le C : le c est un langage de programmation
impératif conçu pour la programmation système.
Inventé au début des années 1970 avec UNIX, C est devenu
un des langages les plus utilisés. De nombreux langage lus modernes
comme C++, Java et PHP reprennent des aspects de C. [36]
Toutefois, les professionnels placent le langage C en tête
de liste pour plusieurs raisons : [37]
? Il est souple et puissant.
? Lorsqu'il nouvelle architecture (nouveau processeur, nouveau
système d'exploitation...) apparait, le premier langage disponible est
généralement le C car contrairement à d'autres, il est
facile porter. De plus, un compilateur est souvent disponible sur les
ordinateurs.
? Avec la norme ANSI, le C est devenu un langage portable.
Cela signifie qu'un programme C écrit pour un type d'ordinateur (un PC
IBM, par exemple) peut être compilé pour tourner sur un autre
système.
44
? Le langage C contient peu de mots.
? Le langage C est modulaire. Son code peut être
écrit sous forme de sous programme appelés fonctions.
Le C++ : dans les années 80 B.
Stroustrup propose d'appeler C++ un nouveau langage, conçu non pas comme
un remplaçant mais comme une amélioration du langage C. [38]
Comme le C, C++ adopte une vision très proche de la
machine. Il à été destiné en premier lieu à
l'écriture de systèmes d'exploitation mais ses
caractéristiques lui ont ouvert d'autres perspectives.
Il est formé d'instructions très explicites,
courtes, dont la durée d'exécution peut être prévue
à l'avance, au moment de l'écriture du programme.
Son nombre d'instructions et de notations étant
volontairement limité les interprétations des constructions
sémantiques sont multiples et c'est sans doute ce que le concepteur du
langage C++ désigne sous le terme d'expressivité. [39]
Le Java : Java est un langage de
programmation informatique de haut niveau. Langages de haut niveau, comme Java,
permettent aux programmeurs d'écrire des instructions en utilisant des
commandes en anglais. Chaque instruction dans un langage de haut niveau
correspond à de nombreuses instructions dans la langue de la machine.
Java a été crée au début des années 1990 par
une équipe de Sun Microsystems dirigée par James Gosling. Les
concepteurs de Java ont commencé avec la syntaxe de base des langages
comme C, C ++ et Smalltalk. Java a été initialement conçu
pour une utilisation dans des dispositifs tels que les téléphones
cellulaires, cependant, dans quelques années, Sun Microsystems a
été utilisé Java pour fournir l'animation et de
l'interactivité sur le Web. IBM a adopté Java comme son principal
langage de développement. De nombreuses interfaces de réseau et
des serveurs Web sont maintenant basés sur Java. [40]
L'assembleur : Le langage assembleur est
très proche du langage machine (c'est-à-dire le langage
qu'utilise l'ordinateur : des informations en binaire, soit des 0 et des 1). Il
dépend donc fortement du type de processeur. Ainsi il n'existe pas un
langage assembleur, mais un langage assembleur par type de processeur.
3.4. Domaines d'applications des microcontrôleurs
Système de communication: Les microcontrôleurs 8
bits sont souvent utilisés pour les téléphones portables
simples et la téléphonie fixe alors que les
microcontrôleurs 32 bits se retrouvent plutôt dans les Smartphones
et les PDA.
Figure 3.6 Les appareils de communication
45
Technique médicinale: Les instruments de mesure (par
exemple mesure de la glycémie), les organes artificiels, etc.
Figure 3.7 Appareil médicale
Les technologies de la sécurité: Les
systèmes pour gérer la sécurité dans les moyes de
transport (par exemple : les passages à niveau), dans les
bâtiments (par exemple: alarme incendie, effractions) etc.
Figure 3.8 Appareil de sécurité
Mécatronique et automation industrielle : Installation
pour la production de biens, pour la logistique, etc.
Figure 3.9 Les appareils industriels
Moyens de transport: Autos, avions, vélo électrique
etc.
46
Figure 3.10 Les moyens de transports
Electronique de consommation: Appareil hifi, TV, vidéo,
télécommande etc.
Figure 3.11 TV, vidéo, HIFI
Application basse consommations : Les appareils à
piles, tels que ceux développés par la HESB pour la station
ornithologique suisse, qui permettent d'enregistre des données spatiales
et télémétriques.
Figure 3.12 Enregistreur de données géographiques
à pile et système de fixation
4. Arduino
4.1. C'est quoi l'Arduino?
Elle est considérée comme un grand
équipement électronique pour les amateurs ainsi que les
professionnels, l'Arduino est un puissant ordinateur à carte unique avec
une utilisation facile à adapter. C'est une open source, ce qui signifie
que vous devez payer son matériel et le logiciel requis est gratuit. Son
logiciel est basé sur la puce ATMega. [42]
4.2. Bref historique de l'Arduino
Arduino a été crée en 2005 dans
l'institut de Design Interaction d'Ivrea en Italie, comme une plate-forme open
source de. Les fondateurs du projet, Massimo Banzi et David Cuartielles.
Hernando Barragan, pour sa thèse de fin d'études avait entrepris
le développement d'une carte électronique dénommée
Wiring, accompagnée d'un environnement de programmation libre et ouvert.
[41]
Pour ce travail, Hernando Barragan réutilisait les
sources du projet Processing. Basée sur un langage de programmation
facile d'accès et adaptée aux développements de projets de
designers, la carte Wiring a donc inspiré le projet Arduino (2005).
Comme pour Wiring, l'objectif était d'arriver à un dispositif
simple à utiliser, dont les coûts seraient peu
élevés, les codes et les plans « libres ».
4.3. Matériel arduino
La carte Arduino repose sur un circuit intégré
(un microcontrôleur) associée à des entrées et
sorties qui permettent à l'utilisateur de brancher différents
types d'éléments externes :
47
Côté entrées, des capteurs qui collectent
des informations sur leur environnement comme la variation de
température via une sonde thermique, le mouvement via un
détecteur de présence ou un accéléromètre,
le contact via un bouton-poussoir, etc...
Figure 3.13 Différent types des capteurs pour
l'arduino
Côté sorties, des actionneurs qui agissent sur le
mode physique telle une petite lampe, un moteur, haut parleur...
Figure 3.14 Différent s actionneurs pour l'arduino
Comme le logiciel arduino, le circuit électronique de
cette plaquette est libre et ses plans sont disponibles sur l'internet. On peut
donc les étudier et créer des dérivés. Plusieurs
constructeurs proposent ainsi différents modèles de circuits
électroniques programmables et utilisables avec le logiciel Arduino.
"Seule le nom « arduino » n'est pas utilisable
librement. De telle sort à toujours pouvoir identifier le projet de ses
dérivés."
Il existe plusieurs variétés de cartes Arduino.
Ces cartes peuvent être autonome et fonctionner sans ordinateur ou servir
d'interface avec celui-ci.
Figure 3.15 Différent types des cartes arduino
4.4. Logiciel Arduino
Le logiciel arduino est gratuit (open source) et se
télécharger sur le site officiel d'Arduino, à l'adresse
http://Arduino.cc/en
/Main/Software
48
Plusieurs fichiers différents vous sont proposés
en téléchargement, vous devez faire votre choix en fonction du
système d'exploitation de votre ordinateur : Windows, MacOs X, Linux. La
dernière version officielle est généralement celle qu'il
faut sélectionner, bien que pour les cartes les plus récents il
faille parfois préférer les versions « beta » du
logiciel, c'est-à-dire des versions non éprouvées et
perfectibles, mais tout de même fonctionnelles. [44]
IDE (Integrated Development Environment) est un programme
spécial exécutable sur votre ordinateur qui vous permet
d'écrire des esquisses pour la carte Arduino dans un langage simple sur
le modèle du langage de traitement. La magie se produit lorsque vous
appuyez sur le bouton qui télécharge l'esquisse à la
carte: le code que vous avez écrit est traduit dans la langue de C (qui
est généralement assez difficile pour un débutant
d'utiliser), et est passé au compilateur avr-gcc, une pièce
importante du logiciel open source qui fait la traduction finale dans la langue
comprise par le microcontrôleur. Cette dernière étape est
très importante, parce que c'est là où Arduino rend votre
vie simple en cachant autant que possible de la complexité de la
programmation des microcontrôleurs. [45]
L'interface de logiciel:
Double-click sur l'icone IDE Arduino est on obtien la fenetre
vierge ci-dessous :
Figure 3.16 Interface de logiciel arduino.
Cette fenêtre vide sera remplie de mots et de chiffres
et d'autres textes. Cette fenêtre est comme tout autre logiciel que vous
avez utilisé. Elle contient des menus, des boutons, des alertes
spéciales, et toutes sortes de contrôles: Ouvrir, Enregistrer, et
le bouton du moniteur de série à l'extrême droite.
Nouveau: crée une nouvelle esquisse.
Ouvert: présente un menu de tous les croquis dans votre
dossier de croquis. Cliquez sur l'un va ouvrir dans la fenêtre
actuelle.
Enregistrer: enregistre votre croquis.
49
Vérifiez: ce bouton vous permet de vous assurer que votre
logiciel est exempt d'erreurs de syntaxe.
Envoyez: ce bouton peut à la fois vérifier et
télécharger un croquis à l'Arduino si aucune erreur
d'orthographe ou de mise en forme n'est trouvée.
Serial Monitor: ce bouton vous permet d'ouvrir le moniteur de
série et d'afficher les informations en provenance du port série
sur l'Arduino. Le moniteur de série est comme un outil pour "parler avec
l'Arduino et vous l'utilisez pour voir les choses d'intérêt.
[46]
Figure 3.17 Détail de barre de bouton
4.5. Les avantages de l'arduino
· Elle n'est pas cher!
· Environnement de programmation clair et simple.
· Multiplateforme : tourne sous Windows, Macintosh et
Linux.
· Nombreuses librairies disponibles avec diverses fonctions
implémentées.
· Logiciel et matériel open source et extensible.
· Nombreux conseils, tutoriaux et exemples en ligne
(forums, site personnel etc...)
· Existence de « shield » : ce sont des cartes
supplémentaires qui se connectent sur le module Arduino pour augmenter
les possibilités comme par exemple : afficheur graphique couleur,
interface ethernet, GPS, etc...
5. Conclusion
À travers ce chapitre on peut dire que lors de la
conception d'un circuit électronique, si celui-ci nécessite une
unité de calcul, l'implantation de celle-ci est soit un assemblage de
portes logiques (programmation matérielle), soit un
microcontrôleur comme le cas de notre travail (programmation logicielle).
Les premiers ont un très faible coût de fabrication s'ils sont
produits en très grande quantité. L'avantage des seconds est
qu'ils sont de toute manière fabriqués en masse afin de les
rendre le plus accessible possible en réduisant au maximum leur prix, et
il suffit d'y embarquer un logiciel pour qu'ils puissent accomplir une
tâche spécifique, l'un de ses logiciels est l'arduino, qui
représente un logiciel de programmation par code basé sur des
cartes électroniques a microcontrôleur open source et qui peut
être utilisé pour construire des objets interactifs
indépendants (prototypage rapide), ou bien peut être
connecté à un ordinateur pour communiquer et superviser en
utilisant des logiciels de programmation (flash, labview, etc).
Chapitre 4 :
Réalisation
1. 50
Introduction:
Le but essentiel de notre travail est d'utiliser l'arduino pour
commander le robot mobile. On doit construire un prototype de ce robot qui
contient un petit cadre d'aluminium clôturer de tel sort qu'on va obtenir
a la fin un boitier qui circule a l'aide des trois roues, et pour pouvoir
commander ce boitier on doit le connecter a des circuits d'alimentation, de
commande et des capteurs puis a une carte arduino contient le programme qui
nous permet de gérer tout les applications de ce robot.
2. La conception de robot : 2.1. La structure de base du
robot :
Figure 4.1 La structure générale du robot
2.2. Détail de chaque bloc :
2.2.1. Les Capteurs :
Tout d'abord et puisque la tache principale de ce robot c'est
la détection et l'extinction de l'incendie, elle est besoin d'un capteur
de flamme, le problème qui se pose comment il se sent de la
présence du feu.
Parmi plusieurs capteurs qui peuvent effectuer la tâche
nous avons choisi un capteur infrarouge a base d'un phototransistor, a cause de
sa disponibilité, son schéma et sa réalisation n'est pas
compliqué et bien sur de l'autre côté que leur cout n'est
pas cher.
On a utilisé 5 capteurs, quatre pour déterminer
de quelle coté provient le signal de la flamme, de l'avant, de
l'arrière, du droit ou de la gauche d'une coté et de l'autre
coté ils sont pris comme un référence par la mesure de
l'intensité de la lumière avant l'existence de la flamme (au
début de démarrage), de cette dernière on peut programme
le robot à partir quelle grandeur il doit réagi. Le
cinquième est mis en avant et utiliser pour déterminer la
direction vers la flamme avec grande précision.
51
Figure 4.2 Le placement des capteurs infrarouge dans le robot
Le schéma du capteur infrarouge :
Figure 4.3 Schéma du capteur infrarouge
L'étalonnage de capteur infrarouge:
Dans cette étalonnage on mesure dans le premier cas on
absence de flamme la valeur maximale entre les 4 capteurs qui sont utiliser
pour les cotes, nous avons choisi la valeur maximale pour assurer que chaque
capteur ne dépasse pas cette valeur à cause de leurs
incertitudes. Puis on mesure la valeur maximale de ces 4 capteurs approprie
à une distance bien déifiée, cette distance variée
par un pas de 5 cm de 5 à 150 cm. On répète
l'étalonnage plusieurs fois en variant l'intensité de la
lumière ambiante. (Remarque : la valeur mesurée c'est une valeur
numérique, au lieu de mesurer la
52
valeur du capteur en Volt puis on converti en valeur
numérique pour la programmation on prend directement la valeur
numérique mesurée par l'arduino. (Annexe A).
Figure 4.4 L'opération d'étalonnage
Figure 4.5 La valeur maximale en fonction de distance
On remarque que :
? Les graphes d'étalonnage des capteurs commence a
prend la même forme a partir d'une intensité lumineuse ambiante
approprier à la valeur 571.
? La variation de la valeur mesurée et la distance sont
proportionnelle.
? Entre 5cm et 25cm la valeur mesurée a peu pris stable il
subit à une petite variation.
? Entre 25cm et 45 la relation entre la distance et la valeur
mesurée est une relation à peu pris linière
53
? Entre 70 et 150 la valeur mesurée est subit à des
petites variations, il existe aussi à cet intervalle une relation
à peu pris linière.
La deuxième partie d'étalonnage de ce capteur
c'est l'étalonnage angulaire. Tout comme le précédent on
mesure la valeur maximale de 4 capteur des cotés en absence de flamme,
puis on mesure la valeur maximale de 4 capteur à un angle bien
défini, l'intervalle angulaire se varie de - 30° à +30°
par un pas de 5°. On répète l'étalonnage plusieurs
fois en variant l'intensité de la lumière ambiante.(Annexe A).
Figure 4.6 L'opération d'étalonnage angulaire
Figure 4.7 La valeur maximale en fonction de l'angle
En remarque que :
? Les graphes d'étalonnage des capteurs commence a prend
la même forme a partir d'une intensité lumineuse ambiante
approprier à la valeur 751.
? Le pic maximale dans la plus par des graphes se situer en
angle de Ø° par rapport au capteur si que signifie que le capteur
attendre sa repense maximale quand la source de flamme se situer en face de
lui.
À partir de l'étalonnage on remarque que ce
capteur a un intervalle angulaire très large ce qui ne nous aidons pas
à dirigé le robot vers la flamme avec précision, pour
sortir de cette cas on utilise une fente qui réduit l'intervalle
angulaire comme le montre dans la figure ci-dessous.
54
Figure 4.8 L'effet de la fente sur le capteur
? L'étalonnage de capteur avec la fente ?
L'étalonnage de distance
Dans cet étalonnage on prend les mêmes conditions
que le précédant, mais on mesure seulement la valeur du capteur
de précision où on ajoute la fente, puisque rien ne change pour
les autre capteurs (annexe A).
Figure 4.9 La valeur de capteur de précision en fonction
de distance
55
Dans cette graphe on a les même remarque que le
précédant (Figure 4.5), La chose qui est claire ici est l'absence
totale des fluctuations. Et bien sûr, cela résulte de
l'utilisation de la fente.
Figure 4.10 La valeur de précision en fonction de
l'angle
On remarque a partir de cet graphe que :
? Toutes les courbes ont la même forme
? Contrairement au graph précisant, il y a un changement
régulier des valeurs mesurées, elles
commencent à augmenter jusqu'à ce qu'ils
atteignent la valeur maximale à 0°, puis elles
commencent à diminuer jusqu'à la dernière
valeur
? Chaque courbe prend sa valeur maximale au 0°.
? Par rapport le graph précédant il y a une grande
déférence entre la valeur maximale et les
autres valeurs
Mais ce capteur n'est pas la solution parfaite, tout
simplement il ne suffit pas seulement le capteur infrarouge, car s'il y a une
flamme le capteur fonctionne bien, le problème apparut avec l'existence
d'une autre source de la lumière infrarouge (une LED par exemple)
puisqu'il considère cette source comme une flamme.
Pour résoudre totalement le problème de
l'existence de la flamme on utilise un capteur de température pour
mesurer la température de la source. Aussi ce problème a
plusieurs solutions et parmi ces solutions nous avons choisi un capteur
à base d'une thermistance parce qu'elle est aussi largement disponible,
pas cher et facile a réalisé. Comme les autres composants en
électronique il n'existe pas un seul type de thermistance, mais il y a
deux types les CTP (coefficient de température positif)
ou PTC et les CTN (coefficient de température
négatif) ou NTC.
Nous avons pris notre décision d'utilise le CTN a
partir de la courbe d'étalonnage des deux thermistances apparu au figure
ci-dessous puisque la courbe de CTN a une forme exponentielle.
Figure 4.11 Courbe d'étalonnage de thermistance
On utilise cette thermistance comme un thermostat, on
s'intéresse a une seule valeur qui représente la tension
appropriée à la chaleur du feu puisque l'information que nous
voulons c'est s'il y a une flamme ou non, et bien sur s'elle existe sa
température sera trop élevée par rapport a la
température ambiante, et cela simplifie beaucoup la tâche.
Le schéma du capteur de température
:
Figure 4.12 Schéma de capteur de température
Pour l'étalonnage on n'a pas besoin de le faire car on
ne s'intéresse pas à la valeur exacte de température mais
du changement important de la valeur de sortie dans une durée bien
définie, et d'une autre part on a remarqué que le temps de
repense de la thermistance est très grand.
Maintenant parce que le robot peut se déplacer dans des
différents lieux et des différents espaces, il peut être
entravé par des obstacles et de forage, alors l'utilisation d'un capteur
de distance devient nécessaire. Nous avons choisi le capteur ultrason
HC-SR04.
56
Figure 4.13 Capteur ultrason HC-SR04
57
Pourquoi se module parce que tout ce qu'il faut pour un capteur
ultrason est intégré dans une seule petite pièce. Ce
module dispose simplement de 4 pins de sortie : VCC, TRIG, ECHO, GND. Il est
donc très facile de l'interfacer à un microcontrôleur.
Le processus complet est le suivant: Mettre le pin "TRIG" une
impulsion de niveau haut (5V) durant au moins 10us et le module démarre
sa lecture; A la fin de la mesure, s'il détecte un objet devant lui, le
pin "ECHO" passe au niveau haut (5V). Et, la distance où se situe
l'obstacle est proportionnelle à la durée de cette impulsion. Il
est donc très facile de calculer cette distance avec la
formule suivante:
Les caractéristiques de capteur HC-SR04
:
· La tension de fonctionnement : 5V
· Le courant de fonctionnement : 15mA
· Fréquence de fonctionnement : 40Hz
· La distance de détection : de 2cm à
450cm
· L'intervalle angulaire de capture : de -7,5°
à +7,5°
· Signale de détection : impulsion de 10us TTL
· Signale d'écho : sortie TTL PWL
L'étalonnage de capteur de distance :
Dans cet étalonnage nous utilisons une plaque de bois
qui à été séparée de capteur par une
distance bien définie, et nous mesurons la distance captée. A
chaque fois on varie la distance et on relève la valeur
mesurée.(Annexe A).
Figure 4.14 L'opération d'étalonnage de capteur
de distance
58
Figure 4.15 Étalonnage de capteur de distance HC-SR04
On remarque que :
? Il commence à fonctionner a partir de 2cm
? Le capteur est linéaire
? A l'intervalle [2 9,5] il ya a des petites fluctuations ce
que signifie que la sensibilité de ce capteur est de 1cm
Ceci est tout sur la première partie du robot qui est
les capteurs, qui représente leur sens. Mais la partie suivante est le
cerveau de robot, que nous allons parler maintenant.
2.2.2. Le contrôleur :
Comme il est indique au figure de la structure
générale du robot notre contrôleur est ATmega 2560 inclue
dans la carte arduino Mega.
Figure 4.16 La carte Arduino Mega
L'Arduino Mega 2560 est une carte microcontrôleur
basée sur le Microcontrôleurs. Il est doté de 54 broches
d'entrée/sortie numériques (dont 14 peuvent être
utilisées comme sorties PWM), de 16 entrées analogiques, de 4
émetteurs-récepteurs universels asynchrones (UART, ports de
série de matériel), d'un oscillateur en cristal de 16 MHz, d'une
connexion USB, d'une prise de courant, d'une embase ICSP et d'un bouton de
réinitialisation. Il contient tout ce qui est nécessaire pour
prendre en charge le microcontrôleur...
Chacune des 54 broches numériques sur le Mega peuvent
être utilisées en tant qu'entrée ou sortie, en utilisant
les fonctions pinMode(), digitalWrite(), et digitalRead() Il dispose
également de 16 entrées analogiques, chacune d'elles disposant de
10 bits de résolution (c'est à dire 1 024 valeurs
différentes).
59
L'Arduino Mega2560 dispose d'un certain nombre de moyens pour
communiquer avec un ordinateur, un autre Arduino, ou d'autres
microcontrôleurs. L'ATMEGA2560 fournit quatre UART physiques pour des
communications sérielles de type TTL (5 V). Un ATmega8U2 sur la carte
canalise l'un d'eux sur l'USB et fournit un port COM virtuel pour le logiciel
sur l'ordinateur.
Les caractéristiques d'arduino Mega :
· Microcontrôleur : ATmega2560
· Tension de fonctionnement : 5 V
· Tension d'entrée (recommandée) : 7 à
12 V
· Tension d'entrée (limites) : 6 à 20 V
· Broches E/S numériques : 54 (dont 14 fournissent
la sortie PWM)
· Broches d'entrée analogiques : 16
· Courant alternatif par broche d'E/S : 40 mA
· Courant continu pour la broche de 3,3 V : 50 mA
· Mémoire Flash : 256 Ko (dont 8 Ko utilisés
par le chargeur initial de programme)
· SRAM : 8 Ko
· EEPROM : 4 Ko
· Vitesse de l'horloge : 16 MHz
Voilà tout ce que nous pouvons dire sur le
contrôleur, maintenant nous passons à la partie qui permet au
robot de réagir selon les informations qu'il reçoit de
l'environnement à partir de ses capteurs, les résultats de
traitement de ces informations. Cette partie représente les
actionneurs.
2.2.3. Les actionneurs :
Afin que le robot soit capable de se déplacer il est
nécessaire d'utiliser les moteurs, et parce qu'on est
décidé de réaliser un robot tricycle alors on utilise de
moteur DC pour commander les deux roues arrière. L'utilisation de deux
moteurs a été causé par le coût n'est cher par
rapport un servomoteur, il n'y a pas beaucoup de vibrations, faible
consommation d'énergie et plus rapide par rapport un moteur pas à
pas.
Figure 4.17 Le moteur DC utilisé Les
caractéristiques du moteur :
· Numéro de modèle: EM-529 RS445PA14233R
· Tension d'alimentation: 12-42V
· Courant, alimentation: 60mA - 1.5A
? Puissance: 7.78W
? Couple: 81,8 m.Nm
? Diamètre de l'arbre: 3.17mm
? Diamètre du moteur: 30mm
? La longueur du moteur: 67mm
On remarque d'appris les caractéristiques que le moteur
est alimenter par une tension supérieur ou égal a 12V, ceci nous
oblige à utiliser un étage entre le contrôleur et le moteur
qui joue le rôle de circuit de puissance ou de commande, parmi plusieurs
solution on a choisi le circuit L298N puisqu'il est disponible, facile à
réaliser et ça coûte pas cher, d'une part et d'une autre
part un seul circuit c'est suffisant pour commander les deux moteurs.
Le schéma du circuit de commande :
Figure 4.18 Schéma de circuit de commande du moteur
L'étalonnage du circuit de commande :
Dans le processus d'étalonnage de ce circuit, nous
avons connecté ses entrées par les sorties d'arduino qui donne
des tensions analogique pour commander les sorties de circuit, et nous avons
connecté les entrées OUT1, OUT2 par un moteur et OUT3, OUT4 par
le deuxième moteur.
A chaque fois on donne une valeur analogique par l'arduino et
on mesure la tension aux bornes de chaque moteur et sa vitesse
Remarque : puisque on a utilisé l'arduino, on la donne
une valeur de 0 à 255 et elle convertie on valeur de 0 à 5V,
chaque valeur numérique est proportionnelle à une valeur
analogique par la
relation suivante :
60
Donc pour le tableau suivant on donne les valeurs
numériques au lieu des valeur analogique.
61
Figure 4.19 L'opération d'étalonnage de circuit de
commande Tableau 4.6 Etalonnage de circuit de commande
Figure 4.20 L'étalonnage de circuit de commande
On remarque que :
? La variation de tension aux bornes de chaque moteur est
proportionnelle à la variation de valeur numérique.
? A peu pris à partir de la valeur numérique 37
la variation de la vitesse de chaque moteur est proportionnel à la
variation de valeur numérique.
? Les courbes de tension et de vitesse des deux moteurs ont la
même forme, mais ils ne sont pas identiques.
? Les courbes de tension et de vitesse des deux moteurs
commencent à prend une variation presque linière à partir
de la valeur numérique 206.
Et pour la pompe nous ne se soucient seulement que par deux
cas qui sont soit alimentée ou non, donc sa circuit de commande se n'est
qu'une interrupteur à base d'un transistor.
Le schéma de circuit de commande de la pompe :
Dans le schéma suivant le pole (+) de la pompe se connecter
directement au pole (+) du la batterie, et le pole (-) de la pompe se connecter
au branche MT du circuit. Pour commander la pompe on connecter la sortie de
commande de l'arduino au branche AR du circuit.
62
Figure 4.21 Schéma de circuit de commande de la pompe
Remarque : Parce que, il doit toujours y avoir la
quantité d'eau en prévision de feu, il est nécessaire de
connaître la quantité d'eau restante dans le réservoir,
donc nous avons besoin d'ajouter un capteur de niveau, et en raison que le
budget ne suffit pas, nous devons trouver une autre façon de
résoudre ce problème. Nous avons réfléchir à
une solution qui est de calculer le temps T1 nécessaire pour que la
pompe vider le réservoir, et pour savoir la quantité restante
nous calculons le temps T2 de fonctionnement de la pompe, et en fin la
différence entre T1 et 2 avec la quantité est proportionnelle
restante.
En fin de compte, nous ne devons pas oublier que le circuit
principal qui est le circuit d'alimentation de tous les circuits dans le robot.
La plupart des circuits d'alimentation contient de nombreux étages, y
compris: l'étage de transformation (généralement
transformateur abaisseur), l'étage de redressement et l'étage de
régulation. Mais dans notre cas, nous utilisons un seul étage qui
est l'étage de régulation. Parce que notre source
d'énergie est une batterie, donc l'existence de l'étage de
transformation n'a aucun sens car la tension de la source de basse et
égale 12V, fait également pour l'étage de redressement
puisque la tension de la batterie est constante.
par contre l'utilisation de l'étage de
régulation est nécessaire, pour alimenter le contrôleur on
utilise le régulateur 7809 pour abaisse la tension de 12V à 9V,
régulateur 7805 pour abaisse la tension de
63
12V à 5V pour le circuit de capteur, et pour tout les
parties qui sont besoin de 12V nous ne sommes pas obligés d'utiliser un
régulateur, mains on les broche directement à la batterie.
Le schéma de circuit d'alimentation :
Figure 4.22 Schéma de circuit d'alimentation
Nous avons discuté dans ce qu'il passé presque
sur tout ce qu'il comprend notre robot comme des matériels. Maintenant
nous passons à l'étape de programmation.
2.3. La programmation
2.3.1. Définition de programme
Pour faciliter la programmation, nous allons créer des
fonctions au lieu que les répéter à chaque fois.
Le robot reçoit la commande, selon cette
dernière il fonctionne soit automatiquement ou manuellement. Dans le
fonctionnement automatique il vérifie si il y a une flamme ou non, si
oui il va se dirigé vers la source puis il avancer jusqu'à qu'il
elle arrive, puis éteint la flamme, si non il continue à marcher.
Mais avant de faire n'importe quelle action, il assure qu'il n'y a pas
d'obstacles ou de forage. En ce qui concerne le fonctionnement manuel, il
reçoit l'ordre puis il agir selon lui. Les ordres sont: avancer,
reculer, marcher à droite ou à gauche, mise à jour de la
valeur nominale pour les capteurs infrarouge, le capteur de température
ou le niveau d'eau dans le réservoir, ici aussi il assure toujours qu'il
n'y a pas d'obstacles ou de forage. Thermistance
2.3.2. L'algorithme de programme
Dans le programme on a crée les fonctions suivant :
reception() : pour la réception des ordres de télécommande
marcher_manu() : pour commander le robot manuellement marcher_auto() : pour le
robot marche automatiquement Verifier_obstacle() : pour vérifier les
obstacles et les forage devant le robot
Verifier_flamme() : pour la confirmation de l'existence
de la flamme
64
faire(String action) : pour faire les différents
actions
Mise_a_jour(String capteur) : pour la mise à jour les
valeurs des capteurs et le niveau de réservoir Positionner(String
direct) : pour positionner vers la source de la lumière infrarouge
Et pour beaucoup de détail voir l'annexe B
3. La réalisation
3.1. La réalisation des circuits
? Le circuit de commande de moteur
Le schéma de circuit
Le circuit imprimé
Le circuit réalisé
Le circuit réaliser
Le schéma de circuit
Le circuit imprimé
? Le circuit des capteurs
65
? Le circuit de commande de la pompe :
Le circuit réalisé
Le circuit imprimé
Le schéma de circuit
? Le circuit d'alimentation :
Le schéma de circuit
Le circuit imprimé
Le circuit réalisé
Tableau 4.7 Les circuits de robot
3.2. La réalisation de carcasse du robot
Avant de commencer la construction, il est nécessaire
de concevoir un design que nous allons réaliser. Pour sa nous avons
utilisé le logiciel Solid Edge qui nous permet de crée des
différentes pièces et les assembler.
66
Figure 4.23 Solid Edge
Au début, nous avons choisi la forme sous laquelle il
sera le robot, ceci est illustré dans la figure ci-dessous.
Figure 4.24 La forme sous du robot
Et maintenant, selon nos matières premières,
nous avons divisé la structure en trois parties principales: le
côté droit, le côté gauche et le côté
arrière, comme illustré dans la figure suivante:
Figure 4.25 Les cotés principales du robot
Support de roulement
Roulement
roue avant
La coté de droit et de la
gauche
La coté de arrière et de
milieu
Plaque du bas
Plaque du coté
Plaque du haut
Plaque de l'avant
La pièce
pignon
Axe
La pièce conçue
La pièce réalisée
67
Parce que la forme devient maintenant claire, nous pouvons
commencer à la concevoir sous le logiciel et aussi les autres
pièces.
Après le processus de conception, nous pouvons commencer
à réalise les pièces selon le plan.
3.2.1. Conception et réalisation des pièces
4. Tableau 4.8 Les pièces du robot
roue arrière
moteur
Pompe d'eau
batterie
boutie d'eau
68
4.1.1. L'assemblage du robot ? Châssis sous le
logiciel
Figure 4.26 Le châssis du robot sous Solid Edge
? Châssis réalisé
Figure 4.27 Le châssis du robot réalisé
69
? Le cadre sous le logiciel
Face en avant Face en arrière
Face de haut Face de bas
Face de l'arrière droit Face de l'avant
gauche
Figure 4.28 Le cadre du robot sous Solid Edge
? Le cadre réalisé
Face en avant Face en arrière
70
Face de haut Face de bas
Face de l'arrière droit Face de l'avant
gauche
Figure 4.29 Le cadre de robot réalisé
Remarque :
Après assemblage du cadre, et le test du robot nous avons
trouvé un problème dans sa fonctionnement qui est, il ne marche
pas tout droit.
71
Figure 4.30 Mauvaise fonctionnement du robot
Nous avons pensé à la cause du problème, et
nous avons remarqué d'après l'étalonnage de circuit de
commande, que les sorties liées au moteur 1 sont toujours
élevé par rapport les sorties liées au moteur 2, donc nous
changeons le circuit de commande trois fois, mais le problème reste
comme il est.
Figure 4.31 Les anciens circuits de commande
Puis nous avons pensé que le problème peut
être du cadre lui même, et quand nous avons le
vérifié, effectivement nous avons constaté que la
côté arrière est inferieur de la côté avant
par 1.3 cm, de nouveau nous avons reconstruire le cadre encore une fois. Mais
cela ne résout pas complètement le problème, mais
légèrement amélioré.
72
Figure 4.32 L'ancien cadre
En fin et après une réflexion profondé nous
avons atteint une solution mathématique qui est comme suit, nous avons
remarqué que dans l'intervalle [206 , 255] de chaque courbe
d'étalonnage de circuit de commande, la variations est presque
linéaire, nous avons extrait la fonction linéaire pour chacun des
deux courbes l'aide de Microsoft Office Excel, et puisque la fonction du moteur
2 est toujours petit devant la fonction du moteur 1, donc nous avons
fixé la valeur de sortie du moteur 2, et nous avons extrait la valeur de
sortie du moteur 1 de sa fonction linéaire. Et comme ça le
problème est résolu définitivement.
73
Figure 4.33 Bonne fonctionnement du robot
Nous notons ici que le temps que nous avons passé pour
trouver une solution pour dépasser deux mois.
Contrôle à distance
Pour contrôler le robot à distance nous avons
utilisé l'application QuickRemote de téléphone mobile pour
crée un télécommande spéciale pour le robot.
Figure 4.34 L'icone de l'application QuickRemote
La création d'une nouvelle télécommande
se fait par l'ajout des touches nécessaire puis configuration les ordres
émis par chaque touche
74
Figure 4.35 La télécommande crée
En fin de compte, il ne reste que la programmation du robot et le
testé.
5. Le teste de robot
Le démarrage du robot
Le robot se dirige vers la source
Le robot va vers la flamme
Le robot atteint à la source
Le robot commence à éteindre la flamme
La flamme est éteinte
Figure 4.36 L'opération de teste
75
76
6. Conclusion:
Dans ce dernier chapitre, nous avons explicité les
différentes étapes qui nous ont permis de réaliser ce
robot, ces composants utilisés et leurs tâches, on a
présenté aussi une description général du programme
arduino implémenté sur la carte électronique.
Conclusion générale
78
Nous avons donc pu réaliser l'objectif de notre projet
qui est l'utilisation de logiciel et carte électronique arduino pour
manipuler un robot mobile a trois roues. Nous avons étudié tout
d'abord les principales caractéristiques d'un robot et en particulier le
robot mobile. On a ensuite essayé de parler des différents
composants utilisés pour construire se robot: de moteurs vers les
capteurs jusqu' arduino et microcontrôleurs pour mieux comprendre son
fonctionnement et pouvoir ensuite générer les signaux de
commandes qui seront envoyés a partir de la carte
électronique.
Ce projet pourra plutôt servir de base pour commander
d'autres systèmes ou d'autres robots qu'ils ont des différents
taches et applications selon le besoin.
Annexe A :
Les tableaux d'étalonnage
Annexe A : Les tableaux d'étalonnage
Tableau 4.1 L'étalonnage de distance des capteurs
infrarouge
Valeur ambiante
|
Distance
|
Valeur maximale
|
870
|
5
|
881
|
870
|
10
|
877
|
870
|
15
|
879
|
870
|
20
|
873
|
870
|
25
|
877
|
870
|
30
|
875
|
870
|
35
|
872
|
870
|
40
|
875
|
870
|
45
|
875
|
870
|
50
|
871
|
870
|
55
|
871
|
870
|
60
|
871
|
870
|
65
|
871
|
870
|
70
|
875
|
870
|
75
|
871
|
870
|
80
|
874
|
870
|
85
|
870
|
870
|
90
|
870
|
870
|
95
|
875
|
870
|
100
|
870
|
870
|
105
|
871
|
870
|
110
|
871
|
870
|
115
|
875
|
870
|
120
|
874
|
870
|
125
|
871
|
870
|
130
|
875
|
870
|
135
|
871
|
870
|
140
|
871
|
870
|
145
|
875
|
870
|
150
|
871
|
Valeur ambiante
|
Distance
|
Valeur maximale
|
808
|
5
|
875
|
808
|
10
|
875
|
808
|
15
|
871
|
808
|
20
|
869
|
808
|
25
|
868
|
808
|
30
|
868
|
808
|
35
|
869
|
808
|
40
|
866
|
808
|
45
|
863
|
808
|
50
|
862
|
808
|
55
|
865
|
808
|
60
|
861
|
808
|
65
|
862
|
808
|
70
|
858
|
808
|
75
|
859
|
808
|
80
|
861
|
808
|
85
|
856
|
808
|
90
|
859
|
808
|
95
|
855
|
808
|
100
|
859
|
808
|
105
|
853
|
808
|
110
|
854
|
808
|
115
|
852
|
808
|
120
|
850
|
808
|
125
|
851
|
808
|
130
|
852
|
808
|
135
|
853
|
808
|
140
|
851
|
808
|
145
|
849
|
808
|
150
|
850
|
Valeur ambiante
|
Distance
|
Valeur maximale
|
772
|
5
|
873
|
772
|
10
|
877
|
772
|
15
|
875
|
772
|
20
|
875
|
772
|
25
|
869
|
772
|
30
|
866
|
772
|
35
|
869
|
772
|
40
|
863
|
772
|
45
|
868
|
772
|
50
|
866
|
772
|
55
|
866
|
772
|
60
|
858
|
772
|
65
|
859
|
772
|
70
|
859
|
772
|
75
|
857
|
772
|
80
|
861
|
772
|
85
|
856
|
772
|
90
|
857
|
772
|
95
|
859
|
772
|
100
|
849
|
772
|
105
|
848
|
772
|
110
|
843
|
772
|
115
|
841
|
772
|
120
|
844
|
772
|
125
|
836
|
772
|
130
|
799
|
772
|
135
|
835
|
772
|
140
|
824
|
772
|
145
|
809
|
772
|
150
|
841
|
79
Valeur ambiante
|
Distance
|
Valeur maximale
|
|
Valeur ambiante
|
Distance
|
Valeur maximale
|
|
Valeur ambiante
|
Distance
|
Valeur maximale
|
571
|
5
|
867
|
344
|
5
|
869
|
210
|
5
|
871
|
571
|
10
|
872
|
344
|
10
|
871
|
210
|
10
|
870
|
571
|
15
|
868
|
344
|
15
|
869
|
210
|
15
|
867
|
571
|
20
|
870
|
344
|
20
|
859
|
210
|
20
|
863
|
571
|
25
|
868
|
344
|
25
|
855
|
210
|
25
|
859
|
571
|
30
|
865
|
344
|
30
|
835
|
210
|
30
|
854
|
571
|
35
|
863
|
344
|
35
|
733
|
210
|
35
|
617
|
571
|
40
|
858
|
344
|
40
|
608
|
210
|
40
|
580
|
571
|
45
|
861
|
344
|
45
|
618
|
210
|
45
|
582
|
571
|
50
|
858
|
344
|
50
|
600
|
210
|
50
|
505
|
571
|
55
|
853
|
344
|
55
|
586
|
210
|
55
|
463
|
571
|
60
|
849
|
344
|
60
|
569
|
210
|
60
|
396
|
571
|
65
|
837
|
344
|
65
|
501
|
210
|
65
|
390
|
571
|
70
|
784
|
344
|
70
|
508
|
210
|
70
|
394
|
571
|
75
|
783
|
344
|
75
|
520
|
210
|
75
|
381
|
571
|
80
|
768
|
344
|
80
|
467
|
210
|
80
|
354
|
Valeur ambiante
|
Distance
|
Valeur maximale
|
|
|
|
|
|
|
|
|
|
|
|
108
|
5
|
862
|
108
|
10
|
863
|
108
|
15
|
867
|
108
|
20
|
856
|
108
|
25
|
847
|
108
|
30
|
651
|
108
|
35
|
492
|
108
|
40
|
464
|
108
|
45
|
354
|
108
|
50
|
324
|
108
|
55
|
281
|
108
|
60
|
302
|
108
|
65
|
261
|
108
|
70
|
229
|
108
|
75
|
220
|
108
|
80
|
194
|
108
|
85
|
188
|
108
|
90
|
211
|
108
|
95
|
190
|
108
|
100
|
188
|
108
|
105
|
200
|
108
|
110
|
176
|
108
|
115
|
149
|
108
|
120
|
172
|
108
|
125
|
170
|
108
|
130
|
169
|
108
|
135
|
144
|
108
|
140
|
143
|
108
|
145
|
151
|
108
|
150
|
146
|
Valeur ambiante
|
Distance
|
Valeur maximale
|
43
|
5
|
866
|
43
|
10
|
864
|
43
|
15
|
861
|
43
|
20
|
846
|
43
|
25
|
679
|
43
|
30
|
507
|
43
|
35
|
371
|
43
|
40
|
258
|
43
|
45
|
208
|
43
|
50
|
201
|
43
|
55
|
200
|
43
|
60
|
198
|
43
|
65
|
167
|
43
|
70
|
125
|
43
|
75
|
152
|
43
|
80
|
109
|
43
|
85
|
101
|
43
|
90
|
87
|
43
|
95
|
106
|
43
|
100
|
86
|
43
|
105
|
97
|
43
|
110
|
98
|
43
|
115
|
78
|
43
|
120
|
71
|
43
|
125
|
84
|
43
|
130
|
75
|
43
|
135
|
70
|
43
|
140
|
62
|
43
|
145
|
77
|
43
|
150
|
65
|
Valeur ambiante
|
Distance
|
Valeur maximale
|
25
|
5
|
864
|
25
|
10
|
860
|
25
|
15
|
856
|
25
|
20
|
641
|
25
|
25
|
465
|
25
|
30
|
365
|
25
|
35
|
241
|
25
|
40
|
211
|
25
|
45
|
240
|
25
|
50
|
186
|
25
|
55
|
156
|
25
|
60
|
114
|
25
|
65
|
129
|
25
|
70
|
101
|
25
|
75
|
90
|
25
|
80
|
110
|
25
|
85
|
74
|
25
|
90
|
73
|
25
|
95
|
66
|
25
|
100
|
66
|
25
|
105
|
56
|
25
|
110
|
49
|
25
|
115
|
53
|
25
|
120
|
50
|
25
|
125
|
51
|
25
|
130
|
46
|
25
|
135
|
50
|
25
|
140
|
45
|
25
|
145
|
43
|
25
|
150
|
45
|
80
571
|
85
|
716
|
|
344
|
85
|
473
|
|
210
|
85
|
337
|
571
|
90
|
729
|
344
|
90
|
457
|
210
|
90
|
334
|
571
|
95
|
718
|
344
|
95
|
438
|
210
|
95
|
339
|
571
|
100
|
737
|
344
|
100
|
439
|
210
|
100
|
334
|
571
|
105
|
694
|
344
|
105
|
452
|
210
|
105
|
315
|
571
|
110
|
696
|
344
|
110
|
431
|
210
|
110
|
314
|
571
|
115
|
694
|
344
|
115
|
443
|
210
|
115
|
303
|
571
|
120
|
682
|
344
|
120
|
431
|
210
|
120
|
300
|
571
|
125
|
677
|
344
|
125
|
416
|
210
|
125
|
297
|
571
|
130
|
663
|
344
|
130
|
418
|
210
|
130
|
295
|
571
|
135
|
668
|
344
|
135
|
408
|
210
|
135
|
286
|
571
|
140
|
666
|
344
|
140
|
403
|
210
|
140
|
277
|
571
|
145
|
670
|
344
|
145
|
400
|
210
|
145
|
295
|
571
|
150
|
665
|
344
|
150
|
407
|
210
|
150
|
279
|
Tableau 4.2 L'étalonnage angulaire des capteurs
infrarouge
Valeur ambiante
|
Angle
|
Valeur maximale
|
870
|
-30
|
867
|
870
|
-25
|
867
|
870
|
-20
|
867
|
870
|
-15
|
871
|
870
|
-10
|
867
|
870
|
-5
|
871
|
870
|
0
|
867
|
870
|
5
|
870
|
870
|
10
|
866
|
870
|
15
|
870
|
870
|
20
|
870
|
870
|
25
|
870
|
870
|
30
|
870
|
Valeur ambiante
|
Angle
|
Valeur maximale
|
234
|
-30
|
269
|
234
|
-25
|
283
|
234
|
-20
|
302
|
234
|
-15
|
312
|
234
|
-10
|
320
|
234
|
-5
|
311
|
234
|
0
|
312
|
234
|
5
|
297
|
234
|
10
|
311
|
234
|
15
|
317
|
234
|
20
|
301
|
234
|
25
|
277
|
234
|
30
|
269
|
Valeur ambiante
|
Angle
|
Valeur maximale
|
751
|
-30
|
801
|
751
|
-25
|
822
|
751
|
-20
|
827
|
751
|
-15
|
838
|
751
|
-10
|
837
|
751
|
-5
|
839
|
751
|
0
|
851
|
751
|
5
|
822
|
751
|
10
|
826
|
751
|
15
|
810
|
751
|
20
|
819
|
751
|
25
|
788
|
751
|
30
|
777
|
Valeur ambiante
|
Angle
|
Valeur maximale
|
187
|
-30
|
190
|
187
|
-25
|
204
|
187
|
-20
|
217
|
187
|
-15
|
235
|
187
|
-10
|
254
|
187
|
-5
|
243
|
187
|
0
|
262
|
187
|
5
|
259
|
187
|
10
|
245
|
187
|
15
|
251
|
187
|
20
|
235
|
187
|
25
|
233
|
187
|
30
|
228
|
Valeur ambiante
|
Angle
|
Valeur maximale
|
472
|
-30
|
513
|
472
|
-25
|
530
|
472
|
-20
|
553
|
472
|
-15
|
578
|
472
|
-10
|
573
|
472
|
-5
|
566
|
472
|
0
|
592
|
472
|
5
|
562
|
472
|
10
|
549
|
472
|
15
|
567
|
472
|
20
|
540
|
472
|
25
|
531
|
472
|
30
|
535
|
Valeur ambiante
|
Angle
|
Valeur maximale
|
19
|
-30
|
40
|
19
|
-25
|
59
|
19
|
-20
|
80
|
19
|
-15
|
84
|
19
|
-10
|
91
|
19
|
-5
|
82
|
19
|
0
|
104
|
19
|
5
|
64
|
19
|
10
|
73
|
19
|
15
|
88
|
19
|
20
|
62
|
19
|
25
|
53
|
19
|
30
|
45
|
81
Tableau 4.3 L'étalonnage de distance du capteur de
précision
Valeur ambiante
|
Distance
|
Valeur de précision
|
|
Valeur ambiante
|
Distance
|
Valeur de précision
|
|
Valeur ambiante
|
Distance
|
Valeur de précision
|
870
|
5
|
639
|
808
|
5
|
879
|
772
|
5
|
861
|
870
|
10
|
871
|
808
|
10
|
878
|
772
|
10
|
879
|
870
|
15
|
876
|
808
|
15
|
870
|
772
|
15
|
875
|
870
|
20
|
865
|
808
|
20
|
865
|
772
|
20
|
872
|
870
|
25
|
868
|
808
|
25
|
858
|
772
|
25
|
861
|
870
|
30
|
842
|
808
|
30
|
853
|
772
|
30
|
713
|
870
|
35
|
756
|
808
|
35
|
555
|
772
|
35
|
572
|
870
|
40
|
683
|
808
|
40
|
369
|
772
|
40
|
448
|
870
|
45
|
581
|
808
|
45
|
398
|
772
|
45
|
470
|
870
|
50
|
543
|
808
|
50
|
353
|
772
|
50
|
371
|
870
|
55
|
527
|
808
|
55
|
332
|
772
|
55
|
368
|
870
|
60
|
490
|
808
|
60
|
298
|
772
|
60
|
247
|
870
|
65
|
476
|
808
|
65
|
233
|
772
|
65
|
251
|
Valeur ambiante
|
Distance
|
Valeur de précision
|
|
|
|
|
|
|
|
|
|
|
|
571
|
5
|
871
|
571
|
10
|
876
|
571
|
15
|
865
|
571
|
20
|
859
|
571
|
25
|
649
|
571
|
30
|
465
|
571
|
35
|
369
|
571
|
40
|
333
|
571
|
45
|
309
|
571
|
50
|
264
|
571
|
55
|
225
|
571
|
60
|
209
|
571
|
65
|
193
|
571
|
70
|
158
|
571
|
75
|
152
|
571
|
80
|
147
|
571
|
85
|
122
|
571
|
90
|
128
|
571
|
95
|
122
|
571
|
100
|
128
|
571
|
105
|
114
|
571
|
110
|
112
|
571
|
115
|
108
|
571
|
120
|
104
|
571
|
125
|
102
|
571
|
130
|
94
|
571
|
135
|
97
|
571
|
140
|
96
|
571
|
145
|
97
|
571
|
150
|
95
|
Valeur ambiante
|
Distance
|
Valeur de précision
|
344
|
5
|
871
|
344
|
10
|
875
|
344
|
15
|
868
|
344
|
20
|
624
|
344
|
25
|
459
|
344
|
30
|
349
|
344
|
35
|
252
|
344
|
40
|
163
|
344
|
45
|
169
|
344
|
50
|
159
|
344
|
55
|
149
|
344
|
60
|
140
|
344
|
65
|
100
|
344
|
70
|
103
|
344
|
75
|
108
|
344
|
80
|
84
|
344
|
85
|
85
|
344
|
90
|
79
|
344
|
95
|
70
|
344
|
100
|
70
|
344
|
105
|
75
|
344
|
110
|
66
|
344
|
115
|
71
|
344
|
120
|
67
|
344
|
125
|
58
|
344
|
130
|
59
|
344
|
135
|
55
|
344
|
140
|
54
|
344
|
145
|
52
|
344
|
150
|
56
|
Valeur ambiante
|
Distance
|
Valeur de précision
|
210
|
5
|
876
|
210
|
10
|
873
|
210
|
15
|
866
|
210
|
20
|
856
|
210
|
25
|
565
|
210
|
30
|
461
|
210
|
35
|
229
|
210
|
40
|
202
|
210
|
45
|
193
|
210
|
50
|
149
|
210
|
55
|
126
|
210
|
60
|
89
|
210
|
65
|
85
|
210
|
70
|
90
|
210
|
75
|
83
|
210
|
80
|
69
|
210
|
85
|
63
|
210
|
90
|
60
|
210
|
95
|
61
|
210
|
100
|
56
|
210
|
105
|
53
|
210
|
110
|
51
|
210
|
115
|
47
|
210
|
120
|
44
|
210
|
125
|
45
|
210
|
130
|
44
|
210
|
135
|
40
|
210
|
140
|
36
|
210
|
145
|
45
|
210
|
150
|
37
|
82
870
|
70
|
464
|
|
808
|
70
|
227
|
|
772
|
70
|
197
|
870
|
75
|
456
|
808
|
75
|
218
|
772
|
75
|
223
|
870
|
80
|
446
|
808
|
80
|
215
|
772
|
80
|
222
|
870
|
85
|
442
|
808
|
85
|
183
|
772
|
85
|
171
|
870
|
90
|
438
|
808
|
90
|
183
|
772
|
90
|
183
|
870
|
95
|
446
|
808
|
95
|
176
|
772
|
95
|
183
|
870
|
100
|
444
|
808
|
100
|
174
|
772
|
100
|
155
|
870
|
105
|
449
|
808
|
105
|
157
|
772
|
105
|
151
|
870
|
110
|
464
|
808
|
110
|
165
|
772
|
110
|
140
|
870
|
115
|
464
|
808
|
115
|
150
|
772
|
115
|
132
|
870
|
120
|
457
|
808
|
120
|
138
|
772
|
120
|
135
|
870
|
125
|
459
|
808
|
125
|
142
|
772
|
125
|
128
|
870
|
130
|
464
|
808
|
130
|
149
|
772
|
130
|
107
|
870
|
135
|
450
|
808
|
135
|
136
|
772
|
135
|
125
|
870
|
140
|
447
|
808
|
140
|
141
|
772
|
140
|
119
|
870
|
145
|
457
|
808
|
145
|
133
|
772
|
145
|
114
|
870
|
150
|
446
|
808
|
150
|
137
|
772
|
150
|
120
|
Valeur ambiante
|
Distance
|
Valeur de précision
|
108
|
5
|
873
|
108
|
10
|
869
|
108
|
15
|
868
|
108
|
20
|
795
|
108
|
25
|
560
|
108
|
30
|
360
|
108
|
35
|
222
|
108
|
40
|
201
|
108
|
45
|
131
|
108
|
50
|
111
|
108
|
55
|
84
|
108
|
60
|
92
|
108
|
65
|
71
|
108
|
70
|
55
|
108
|
75
|
53
|
108
|
80
|
41
|
108
|
85
|
38
|
108
|
90
|
47
|
108
|
95
|
38
|
108
|
100
|
36
|
108
|
105
|
41
|
108
|
110
|
31
|
108
|
115
|
23
|
108
|
120
|
30
|
108
|
125
|
29
|
108
|
130
|
28
|
108
|
135
|
19
|
108
|
140
|
19
|
108
|
145
|
22
|
108
|
150
|
20
|
Valeur ambiante
|
Distance
|
Valeur de précision
|
43
|
5
|
693
|
43
|
10
|
871
|
43
|
15
|
863
|
43
|
20
|
752
|
43
|
25
|
473
|
43
|
30
|
297
|
43
|
35
|
186
|
43
|
40
|
122
|
43
|
45
|
86
|
43
|
50
|
79
|
43
|
55
|
71
|
43
|
60
|
68
|
43
|
65
|
49
|
43
|
70
|
38
|
43
|
75
|
43
|
43
|
80
|
31
|
43
|
85
|
26
|
43
|
90
|
21
|
43
|
95
|
26
|
43
|
100
|
18
|
43
|
105
|
19
|
43
|
110
|
18
|
43
|
115
|
13
|
43
|
120
|
13
|
43
|
125
|
15
|
43
|
130
|
10
|
43
|
135
|
11
|
43
|
140
|
9
|
43
|
145
|
11
|
43
|
150
|
9
|
Valeur ambiante
|
Distance
|
Valeur de précision
|
25
|
5
|
872
|
25
|
10
|
869
|
25
|
15
|
861
|
25
|
20
|
533
|
25
|
25
|
313
|
25
|
30
|
209
|
25
|
35
|
121
|
25
|
40
|
98
|
25
|
45
|
110
|
25
|
50
|
73
|
25
|
55
|
59
|
25
|
60
|
38
|
25
|
65
|
46
|
25
|
70
|
32
|
25
|
75
|
25
|
25
|
80
|
34
|
25
|
85
|
18
|
25
|
90
|
18
|
25
|
95
|
16
|
25
|
100
|
66
|
25
|
105
|
10
|
25
|
110
|
9
|
25
|
115
|
10
|
25
|
120
|
8
|
25
|
125
|
9
|
25
|
130
|
7
|
25
|
135
|
8
|
25
|
140
|
6
|
25
|
145
|
5
|
25
|
150
|
6
|
Valeur ambiante
|
Angle
|
Valeur de précision
|
870
|
-30
|
228
|
870
|
-25
|
231
|
870
|
-20
|
234
|
870
|
-15
|
241
|
870
|
-10
|
256
|
870
|
-5
|
261
|
870
|
0
|
280
|
870
|
5
|
256
|
870
|
10
|
242
|
870
|
15
|
231
|
870
|
20
|
229
|
870
|
25
|
230
|
870
|
30
|
227
|
Valeur ambiante
|
Angle
|
Valeur de précision
|
751
|
-30
|
95
|
751
|
-25
|
97
|
751
|
-20
|
100
|
751
|
-15
|
106
|
751
|
-10
|
116
|
751
|
-5
|
128
|
751
|
0
|
145
|
751
|
5
|
114
|
751
|
10
|
107
|
751
|
15
|
95
|
751
|
20
|
95
|
751
|
25
|
92
|
751
|
30
|
92
|
Valeur ambiante
|
Angle
|
Valeur de précision
|
472
|
-30
|
54
|
472
|
-25
|
55
|
472
|
-20
|
57
|
472
|
-15
|
66
|
472
|
-10
|
75
|
472
|
-5
|
82
|
472
|
0
|
97
|
472
|
5
|
77
|
472
|
10
|
64
|
472
|
15
|
59
|
472
|
20
|
55
|
472
|
25
|
54
|
472
|
30
|
55
|
83
Tableau 4.4 L'étalonnage angulaire du capteur de
précision
Valeur ambiante
|
Angle
|
Valeur de précision
|
234
|
-30
|
23
|
234
|
-25
|
24
|
234
|
-20
|
26
|
234
|
-15
|
31
|
234
|
-10
|
42
|
234
|
-5
|
46
|
234
|
0
|
49
|
234
|
5
|
39
|
234
|
10
|
34
|
234
|
15
|
28
|
234
|
20
|
26
|
234
|
25
|
24
|
234
|
30
|
24
|
Valeur ambiante
|
Angle
|
Valeur de précision
|
187
|
-30
|
16
|
187
|
-25
|
17
|
187
|
-20
|
18
|
187
|
-15
|
22
|
187
|
-10
|
37
|
187
|
-5
|
41
|
187
|
0
|
50
|
187
|
5
|
40
|
187
|
10
|
27
|
187
|
15
|
24
|
187
|
20
|
21
|
187
|
25
|
21
|
187
|
30
|
21
|
Valeur ambiante
|
Angle
|
Valeur de précision
|
19
|
-30
|
1
|
19
|
-25
|
1
|
19
|
-20
|
3
|
19
|
-15
|
5
|
19
|
-10
|
14
|
19
|
-5
|
21
|
19
|
0
|
28
|
19
|
5
|
11
|
19
|
10
|
8
|
19
|
15
|
5
|
19
|
20
|
2
|
19
|
25
|
2
|
19
|
30
|
2
|
Distance réel (cm)
|
Distance mesurée (cm)
|
2
|
2
|
2.5
|
3
|
3
|
3
|
3.5
|
3
|
4
|
4
|
4.5
|
4
|
5
|
5
|
5.5
|
5
|
6
|
6
|
6.5
|
6
|
7
|
7
|
7.5
|
7
|
8
|
8
|
8.5
|
8
|
9
|
9
|
Distance réel (cm)
|
Distance mesurée (cm)
|
9.5
|
9
|
10
|
10
|
11
|
11
|
12
|
12
|
13
|
13
|
14
|
14
|
15
|
15
|
16
|
16
|
17
|
17
|
18
|
18
|
19
|
19
|
20
|
20
|
25
|
25
|
30
|
30
|
35
|
35
|
Distance réel (cm)
|
Distance mesurée (cm)
|
40
|
40
|
45
|
45
|
50
|
50
|
55
|
55
|
60
|
60
|
65
|
65
|
70
|
70
|
75
|
75
|
80
|
80
|
85
|
85
|
90
|
90
|
95
|
95
|
100
|
100
|
Tableau 4.6 Etalonnage de circuit de commande
Valeur numérique
|
Tension de moteur
1 (V)
|
Tension de moteur
2 (V)
|
Vitesse
de moteur
1
(tr/min)
|
Vitesse
de moteur
2
(tr/min)
|
0
|
0,0117
|
0,0137
|
0
|
0
|
1
|
0,0154
|
0,0045
|
0
|
0
|
2
|
0,021
|
0,0022
|
0
|
0
|
3
|
0,0298
|
0,0106
|
0
|
0
|
4
|
0,0408
|
0,0207
|
0
|
0
|
5
|
0,0537
|
0,032
|
0
|
0
|
6
|
0,069
|
0,0449
|
0
|
0
|
7
|
0,0872
|
0,0587
|
0
|
0
|
Valeur numérique
|
Tension de moteur 1(V)
|
Tension de moteur 2 (V)
|
Vitesse
de moteur
1
(tr/min)
|
Vitesse
de moteur
2
(tr/min)
|
128
|
6,19
|
5,95
|
877
|
796
|
129
|
6,23
|
5,97
|
882
|
803
|
130
|
6,27
|
6,01
|
886
|
808
|
131
|
6,31
|
6,06
|
890
|
812
|
132
|
6,33
|
6,09
|
893
|
817
|
133
|
6,39
|
6,12
|
898
|
827
|
134
|
6,43
|
6,17
|
903
|
848
|
135
|
6,46
|
6,21
|
909
|
843
|
84
Tableau 4.5 Tableau d'étalonnage de capteur de distance
85
8
|
0,106
|
0,0753
|
0
|
0
|
|
136
|
6,64
|
6,18
|
907
|
847
|
9
|
0,1252
|
0,0911
|
0
|
0
|
137
|
6,51
|
6,23
|
910
|
851
|
10
|
0,145
|
0,11
|
0
|
0
|
138
|
6,57
|
6,31
|
913
|
856
|
11
|
0,166
|
0,1256
|
0
|
0
|
139
|
6,62
|
6,35
|
915
|
860
|
12
|
0,188
|
0,1435
|
0
|
0
|
140
|
6,64
|
6,37
|
920
|
865
|
13
|
0,21
|
0,163
|
0
|
0
|
141
|
6,7
|
6,43
|
927
|
870
|
14
|
0,242
|
0,183
|
0
|
0
|
142
|
6,73
|
6,64
|
934
|
873
|
15
|
0,265
|
0,204
|
0
|
0
|
143
|
6,76
|
6,53
|
949
|
880
|
16
|
0,29
|
0,226
|
0
|
0
|
144
|
6,82
|
6,59
|
955
|
887
|
17
|
0,315
|
0,248
|
0
|
0
|
145
|
6,88
|
6,65
|
960
|
893
|
18
|
0,344
|
0,27
|
0
|
0
|
146
|
6,9
|
6,69
|
973
|
908
|
19
|
0,372
|
0,292
|
0
|
0
|
147
|
6,94
|
6,66
|
978
|
914
|
20
|
0,4
|
0,316
|
0
|
0
|
148
|
6,98
|
6,7
|
981
|
918
|
21
|
0,45
|
0,34
|
0
|
0
|
149
|
7
|
6,82
|
986
|
929
|
22
|
0,48
|
0,366
|
0
|
0
|
150
|
7,06
|
6,83
|
997
|
936
|
23
|
0,505
|
0,383
|
0
|
0
|
151
|
7,11
|
6,86
|
1009
|
940
|
24
|
0,55
|
0,412
|
0
|
0
|
152
|
7,12
|
6,85
|
1015
|
944
|
25
|
0,58
|
0,42
|
0
|
0
|
153
|
7,14
|
6,86
|
1020
|
946
|
26
|
0,632
|
0,442
|
0
|
0
|
154
|
7,17
|
6,89
|
1024
|
951
|
27
|
0,678
|
0,469
|
0
|
0
|
155
|
7,19
|
6,91
|
1031
|
957
|
28
|
0,748
|
0,495
|
0
|
0
|
156
|
7,22
|
6,97
|
1036
|
963
|
29
|
0,834
|
0,52
|
5
|
0
|
157
|
7,24
|
6,95
|
1041
|
965
|
30
|
0,942
|
0,544
|
6
|
0
|
158
|
7,27
|
6,99
|
1045
|
970
|
31
|
1,084
|
0,567
|
43
|
0
|
159
|
7,3
|
7,06
|
1048
|
976
|
32
|
1,185
|
0,581
|
58
|
0
|
160
|
7,32
|
7,03
|
1053
|
982
|
33
|
1,247
|
0,691
|
60
|
0
|
161
|
7,41
|
7,15
|
1060
|
986
|
34
|
1,32
|
0,714
|
68
|
0
|
162
|
7,45
|
7,16
|
1064
|
990
|
35
|
1,4
|
0,79
|
81
|
0
|
163
|
7,42
|
7,15
|
1069
|
994
|
36
|
1,477
|
0,867
|
92
|
1
|
164
|
7,48
|
7,18
|
1071
|
999
|
37
|
1,51
|
1,018
|
100
|
8
|
165
|
7,52
|
7,21
|
1075
|
1002
|
38
|
1,612
|
1,13
|
113
|
29
|
166
|
7,56
|
7,27
|
1079
|
1010
|
39
|
1,696
|
1,23
|
128
|
50
|
167
|
7,61
|
7,3
|
1084
|
1017
|
40
|
1,78
|
1,277
|
138
|
61
|
168
|
7,65
|
7,33
|
1089
|
1021
|
41
|
1,86
|
1,363
|
158
|
79
|
169
|
7,69
|
7,38
|
1092
|
1026
|
42
|
1,93
|
1,441
|
165
|
86
|
170
|
7,72
|
7,46
|
1096
|
1030
|
43
|
2
|
1,525
|
173
|
93
|
171
|
7,74
|
7,44
|
1100
|
1033
|
44
|
2,06
|
1,634
|
202
|
109
|
172
|
7,78
|
7,47
|
1104
|
1038
|
45
|
2,15
|
1,7
|
207
|
129
|
173
|
7,84
|
7,58
|
1109
|
1042
|
46
|
2,18
|
1,78
|
211
|
132
|
174
|
7,87
|
7,59
|
1112
|
1046
|
47
|
2,25
|
1,82
|
214
|
137
|
175
|
7,89
|
7,62
|
1116
|
1049
|
48
|
2,3
|
1,907
|
219
|
149
|
176
|
7,91
|
7,66
|
1121
|
1055
|
49
|
2,36
|
1,957
|
225
|
158
|
177
|
7,93
|
7,69
|
1125
|
1060
|
50
|
2,42
|
2,06
|
233
|
168
|
178
|
7,96
|
7,7
|
1130
|
1064
|
51
|
2,48
|
2,08
|
240
|
183
|
179
|
8
|
7,76
|
1138
|
1066
|
52
|
2,53
|
2,17
|
247
|
197
|
180
|
8,04
|
7,78
|
1143
|
1070
|
53
|
2,57
|
2,23
|
254
|
215
|
181
|
8,08
|
7,81
|
1148
|
1074
|
54
|
2,63
|
2,28
|
261
|
221
|
182
|
8,12
|
7,87
|
1154
|
1078
|
55
|
2,68
|
2,34
|
268
|
230
|
183
|
8,17
|
7,9
|
1159
|
1082
|
56
|
2,73
|
2,4
|
278
|
236
|
184
|
8,19
|
7,92
|
1163
|
1085
|
57
|
2,79
|
2,45
|
286
|
245
|
185
|
8,22
|
7,97
|
1167
|
1089
|
58
|
2,84
|
2,51
|
292
|
258
|
186
|
8,27
|
7,98
|
1173
|
1092
|
59
|
2,9
|
2,56
|
305
|
270
|
187
|
8,29
|
8
|
1178
|
1092
|
86
60
|
2,94
|
2,61
|
310
|
285
|
|
188
|
8,33
|
8,04
|
1184
|
1096
|
61
|
3
|
2,65
|
313
|
285
|
189
|
8,36
|
8,08
|
1187
|
1104
|
62
|
3,04
|
2,73
|
315
|
290
|
190
|
8,38
|
8,1
|
1191
|
1108
|
63
|
3,08
|
2,76
|
320
|
296
|
191
|
8,42
|
8,14
|
1196
|
1112
|
64
|
3,15
|
2,83
|
334
|
304
|
192
|
8,45
|
8,19
|
1201
|
1116
|
65
|
3,17
|
2,88
|
345
|
325
|
193
|
8,49
|
8,2
|
1207
|
1120
|
66
|
3,23
|
2,94
|
354
|
334
|
194
|
8,5
|
8,24
|
1210
|
1125
|
67
|
3,29
|
2,97
|
362
|
345
|
195
|
8,53
|
8,26
|
1215
|
1129
|
68
|
3,33
|
3,03
|
371
|
350
|
196
|
8,55
|
8,27
|
1222
|
1132
|
69
|
3,38
|
3,08
|
385
|
357
|
197
|
8,57
|
8,33
|
1224
|
1136
|
70
|
3,42
|
3,15
|
390
|
360
|
198
|
8,6
|
8,34
|
1228
|
1139
|
71
|
3,47
|
3,2
|
396
|
374
|
199
|
8,63
|
8,35
|
1233
|
1143
|
72
|
3,51
|
3,23
|
401
|
377
|
200
|
8,64
|
8,4
|
1236
|
1147
|
73
|
3,56
|
3,33
|
413
|
401
|
201
|
8,68
|
8,41
|
1241
|
1151
|
74
|
3,61
|
3,38
|
423
|
408
|
202
|
8,72
|
8,43
|
1247
|
1158
|
75
|
3,65
|
3,4
|
439
|
402
|
203
|
8,74
|
8,45
|
1251
|
1160
|
76
|
3,7
|
3,45
|
439
|
420
|
204
|
8,76
|
8,47
|
1256
|
1163
|
77
|
3,75
|
3,53
|
445
|
414
|
205
|
8,85
|
8,51
|
1265
|
1167
|
78
|
3,79
|
3,59
|
456
|
426
|
206
|
10,18
|
9,9
|
1440
|
1332
|
79
|
3,83
|
3,61
|
463
|
433
|
207
|
10,21
|
9,9
|
1442
|
1332
|
80
|
3,89
|
3,67
|
483
|
441
|
208
|
10,23
|
9,95
|
1453
|
1333
|
81
|
3,95
|
3,71
|
500
|
468
|
209
|
10,27
|
9,98
|
1457
|
1336
|
82
|
4
|
3,79
|
516
|
472
|
210
|
10,28
|
9,99
|
1461
|
1347
|
83
|
4,04
|
3,82
|
533
|
485
|
211
|
10,29
|
10
|
1465
|
1351
|
84
|
4,08
|
3,88
|
538
|
495
|
212
|
10,3
|
10,02
|
1469
|
1355
|
85
|
4,17
|
3,9
|
545
|
507
|
213
|
10,32
|
10,04
|
1473
|
1360
|
86
|
4,21
|
3,93
|
566
|
512
|
214
|
10,37
|
10,06
|
1477
|
1363
|
87
|
4,24
|
3,96
|
574
|
526
|
215
|
10,35
|
10,08
|
1474
|
1367
|
88
|
4,54
|
4,34
|
589
|
545
|
216
|
10,36
|
10,1
|
1476
|
1372
|
89
|
4,6
|
4,39
|
596
|
554
|
217
|
10,37
|
10,1
|
1477
|
1372
|
90
|
4,64
|
4,43
|
602
|
569
|
218
|
10,39
|
10,12
|
1482
|
1378
|
91
|
4,68
|
4,48
|
611
|
577
|
219
|
10,41
|
10,14
|
1487
|
1383
|
92
|
4,74
|
4,53
|
620
|
595
|
220
|
10,43
|
10,16
|
1494
|
1389
|
93
|
4,78
|
4,57
|
647
|
597
|
221
|
10,46
|
10,21
|
1497
|
1399
|
94
|
4,82
|
4,61
|
654
|
605
|
222
|
10,47
|
10,22
|
1509
|
1408
|
95
|
4,88
|
4,64
|
660
|
609
|
223
|
10,5
|
10,25
|
1513
|
1422
|
96
|
4,92
|
4,68
|
675
|
614
|
224
|
10,52
|
10,26
|
1519
|
1436
|
97
|
4,97
|
4,72
|
681
|
617
|
225
|
10,53
|
10,28
|
1521
|
1442
|
98
|
5,02
|
4,79
|
692
|
624
|
226
|
10,55
|
10,31
|
1526
|
1447
|
99
|
5,06
|
4,84
|
702
|
653
|
227
|
10,57
|
10,34
|
1532
|
1452
|
100
|
5,1
|
4,89
|
711
|
662
|
228
|
10,6
|
10,36
|
1535
|
1461
|
101
|
5,15
|
4,94
|
715
|
666
|
229
|
10,62
|
10,39
|
1540
|
1466
|
102
|
5,19
|
4,9
|
722
|
686
|
230
|
10,64
|
10,43
|
1544
|
1470
|
103
|
5,21
|
4,95
|
724
|
655
|
231
|
10,67
|
10,48
|
1547
|
1475
|
104
|
5,15
|
4,95
|
691
|
633
|
232
|
10,69
|
10,52
|
1552
|
1484
|
105
|
5,22
|
5
|
720
|
635
|
233
|
10,71
|
10,55
|
1558
|
1487
|
106
|
5,28
|
5,06
|
722
|
638
|
234
|
10,73
|
10,58
|
1563
|
1493
|
107
|
5,32
|
5,1
|
724
|
642
|
235
|
10,76
|
10,62
|
1570
|
1501
|
108
|
5,37
|
5,13
|
731
|
659
|
236
|
10,77
|
10,67
|
1575
|
1508
|
109
|
5,41
|
5,19
|
738
|
665
|
237
|
10,8
|
10,71
|
1581
|
1516
|
110
|
5,46
|
5,23
|
743
|
677
|
238
|
10,83
|
10,75
|
1586
|
1521
|
111
|
5,5
|
5,28
|
755
|
685
|
239
|
10,86
|
10,79
|
1589
|
1531
|
87
112
|
5,54
|
5,33
|
768
|
691
|
|
240
|
10,88
|
10,83
|
1592
|
1537
|
113
|
5,58
|
5,36
|
786
|
700
|
241
|
10,91
|
10,86
|
1595
|
1544
|
114
|
5,63
|
5,4
|
794
|
712
|
242
|
10,92
|
10,88
|
1598
|
1549
|
115
|
5,66
|
5,45
|
798
|
719
|
243
|
10,93
|
10,91
|
1600
|
1555
|
116
|
5,71
|
5,46
|
802
|
723
|
244
|
10,96
|
10,95
|
1605
|
1562
|
117
|
5,75
|
5,52
|
807
|
727
|
245
|
11
|
10,99
|
1609
|
1576
|
118
|
5,79
|
5,53
|
813
|
732
|
246
|
11,03
|
11,02
|
1613
|
1585
|
119
|
5,82
|
5,6
|
815
|
738
|
247
|
11,07
|
11,06
|
1617
|
1593
|
120
|
5,87
|
5,63
|
817
|
743
|
248
|
11,11
|
11,1
|
1624
|
1600
|
121
|
5,9
|
5,66
|
819
|
747
|
249
|
11,14
|
11,15
|
1633
|
1606
|
122
|
5,93
|
5,7
|
828
|
755
|
250
|
11,19
|
11,21
|
1640
|
1630
|
123
|
5,98
|
5,74
|
833
|
759
|
251
|
11,24
|
11,25
|
1646
|
1637
|
124
|
6,03
|
5,78
|
840
|
768
|
252
|
11,27
|
11,29
|
1649
|
1641
|
125
|
6,07
|
5,83
|
850
|
783
|
253
|
11,31
|
11,33
|
1661
|
1646
|
126
|
6,12
|
5,9
|
861
|
787
|
254
|
11,36
|
11,38
|
1669
|
1652
|
127
|
6,15
|
5,9
|
875
|
790
|
255
|
11,41
|
11,43
|
1676
|
1672
|
Annexe B :
Algorithme et programme
88
Annexe B : Algorithme et programme Le programme global
:
Algorithme robot ;
Var C : String; Commande : String ='manu' ;
Début
Si (il y a réception) Alors
Commande 4- réception() ;
FinSi
Au cas où (Commande) vau
`manu' : marcher_manu() ;
`auto' : marcher_auto() ;
Fin de cas
Fin
Fin algorithme
La fonction marcher_manu() :
Procédure marcher_manu()
Const en1: Byte=34; en2: Byte=35; in1: Byte=2; in2: Byte=3; in3:
Byte=4; in4: Byte=5; pmp:
Byte=27;
Var Ordre : String; v_if: int ; v_thr: int ; niveau :int ;
Début :
Si (il y a réception) Alors
Ordre 4- réception();
FinSi
Au cas où (Ordre) vau
`Avant' :
Si (Vérifier_obstacle() = 0) Alors
faire(`av') ;
Sinon
faire(`st') ;
FinSi
`Arriérer' :
faire(`ar') ;
`Droit' :
Si (Vérifier_obstacle() = 0) Alors
faire(`dr') ;
Sinon
faire(`st') ;
FinSi
`Gauche' :
Si (Vérifier_obstacle() = 0) Alors
faire(`gc') ;
Sinon
faire(`st') ;
89
FinSi
`Pompe' :
faire(`pmp') ;
`Stop' :
faire(`st') ;
`maj_if :
v_if= Mise_à_jour(`cpif') ;
`maj_thr :
v_thr= Mise_à_jour(`cpthr') ;
`niv' :
niveau= Mise_à_jour(`niv') ;
Fin de cas
Fin
La fonction marcher_auto() :
Procédure marcher_auto()
Var Coté : String;
Début
Si (Vérifier_flamme() = `rien') Alors
Si (Vérifier_obstacle() = 0) Alors
faire (`av') ;
Sinon
Repeter
faire (`dr') ;
Tant que (Vérifier_obstacle() = 1)
faire (`st') ;
FinSi
Sinon
Tant que (Vérifier_flamme() ? `flamme') Faire
Si (Vérifier_obstacle() = 0) Alors
Coté ? Vérifier_flamme() ;
Positionner(Coté) ;
faire (`av') ;
attendre (1000ms) ;
faire (`st') ;
Sinon
Repeter
faire (`dr') ;
Tant que (Vérifier_obstacle() = 1)
faire (`av') ;
attendre(2000ms) ;
faire (`st') ;
FinSi
Tant que (Vérifier_flamme() = `flamme') Faire
faire (`pmp')
90
FinSi
Fin
La fonction Vérifier_obstacle() :
int Fonction Vérifier_obstacle()
Const trig_ob: Byte=22; echo_ob: Byte=23; trig_fr: Byte=24;
echo_fr: Byte=25;dis_nrm_ob: Byte
=24; dis_nrm_fr: Byte =18;
Var dis_ob :long ; temps_ob: long; temps_fr: long; dis_fr :
long;sig_fvo :int ;
Byte rep;
Début
définie trig_ob comme sortie ;
ecrire_numérique(trig_ob, 0) ;
définie echo_ob comme entré ;
définie trig_fr comme sortie ;
ecrire_numérique(trig_fr, 0) ;
définie echo_fr comme entré ;
attender (2us) ;
ecrire_numérique(trig_ob, 1) ;
attender (10us) ;
ecrire_numérique(trig_ob, 0) ;
dis_ob 4- temps de reception en echo_ob ;
attender (2us) ;
ecrire_numérique(trig_fr, 1) ;
attender (10us) ;
ecrire_numérique(trig_fr, 0) ;
dis_fr 4- temps de reception en echo_ob ;
Si ((dis_ob < dis_nrm_ob) ou (dis_fr > dis_nrm_fr))
Alors
sig_fvo=1 ;
Sinon
sig_fvo=0 ;
FinSi
Retourn(sig_fvo) ;
Fin
La fonction Vérifier_flamme() :
Fonction Vérifier_flamme()
Const cif_av :Byte= 0; cif_dr :Byte=1 ; cif_ar :Byte=2 ;
cif_gc :Byte=3 ; cthr:Byte=5 ; val_nrm_if:
int =Mise_à_jour("cpif")+10; val_nrm_thr: int
=Mise_à_jour("cpthr")+20;
Var val_av:int; val_dr:int; val_ar:int; val_gc:int;
val_thr:int;val_max:int;
Var sig_fvf :String;
Début
val_av 4- lire cif_av; val_dr 4- lire cif_dr; val_ar 4- lire
cif_ar; val_gc 4- lire cif_gc;
91
val_pr 4 lire cif_pr;
val_thr 4 lire cif_thr;
val_max 4 max(val_av, val_dr) ;
val_max 4 max(val_max, val_ar) ;
val_max 4 max(val_max, val_gc) ;
val_fnct_if =Mise_à_jour(`cpif') ;
Si( (val_av > val_nrm_if) et (val_av >= val_max)) Alors
Si (val_dr > val_gc) Alors
Sig_fvf = `av_dr' ;
Sinon Si (val_gc > val_dr) Alors
Sig_fvf = `av_gc' ;
Sinon
Sig_fvf= `av' ;
FinSi
Sinon Si ((val_ar > val_nrm_if) et (val_ar >= val_max))
Alors
Si (val_dr > val_gc) Alors
Sig_fvf = `ar_dr' ;
Sinon Si (val_gc > val_dr) Alors
Sig_fvf = `ar_gc' ;
Sinon
Sig_fvf= `ar' ;
FinSi
Sinon Si (val_dr > val_nrm_if) et (val_dr >= val_max))
Alors
Sig_fvf= `dr' ;
Sinon Si (val_gc > val_nrm_if) et (val_gc >= val_max))
Alors
Sig_fvf= `gc' ;
Sinon
Sig_fvf = `rien'
FinSi
Si (val_thr > val_nrm_thr) Alors
Si (Sig_fvf ? rien) Alors
Sig_fvf ='flamme' ;
FinSi FinSi
Fin
La fonction Positionner() :
Procédure Positionner (String direct)
Const cif_av :Byte= 0; cif_pr :Byte=4; cif_ar :Byte=2;
Var val_pr:int; val_av:int; val_ar:int;
Début
val pr 4 lire cif pr ;
Au cas où (direct) vau
`av_dr' :
92
faire(`dr') ;
attendre(20ms) ;
faire(`st') ;
Tant que (val_pr < lire cif_pr) Faire
val_pr F lire cif_pr ;
faire(`dr') ;
attendre(20ms) ;
faire(`st') ;
faire(`gc') ;
attendre(20ms) ;
faire(`st') ; `av_gc' :
faire(`gc') ;
attendre(20ms) ;
faire(`st') ;
Tant que (val_pr < lire cif_pr) Faire
val_pr F lire cif_pr
faire(`gc') ;
attendre(20ms) ;
faire(`st') ;
faire(`dr') ;
attendre(20ms) ;
faire(`st') ;
`ar_dr' :
val_ar F lire cif_ar -20 ;
Tant que (lire cif_av < val_ar) Faire
faire(`dr') ;
faire(`st') ;
Tant que (val_pr < lire cif_pr) Faire
val_pr F lire cif_pr ;
faire(`dr') ;
attendre(20ms) ;
faire(`st') ;
faire(`gc') ;
attendre(20ms) ;
faire(`st') ;
`ar_gc' :
val_ar F lire cif_ar -20 ;
Tant que (lire av < val_ar) Faire
faire(`gc') ;
faire(`st') ;
Tant que (val_pr < lire cif_pr) Faire
val_pr F lire cif_pr ;
faire(`gc') ;
attendre(20ms) ;
faire(`st') ;
93
faire(`dr') ;
attendre(20ms) ; faire(`st') ;
`av' :
faire(`dr') ;
attendre(20ms) ;
faire(`st') ;
Si (val_pr < lire cif_pr) Alors
Tant que (val_pr < lire cif_pr) Faire
val_pr 4 lire cif_pr ;
faire(`dr') ;
attendre(20ms) ;
faire(`st') ;
faire(`gc') ;
attendre(20ms) ;
faire(`st') ;
Sinon Si (val_pr > lire cif_pr) Alors
faire(`gc') ;
attendre(40ms) ;
faire(`st') ;
Tant que (val_pr < lire cif_pr) Faire
val_pr 4 lire cif_pr ;
faire(`gc') ;
attendre(20ms) ;
faire(`st') ;
faire(`dr') ;
attendre(20ms) ;
faire(`st') ;
FinSi
`ar' :
Val_ar 4 lire cif_ar-20
Tant que (lire av < Val_ar) Faire
faire(`dr') ;
faire(`st') ;
Tant que (val_pr < lire cif_pr) Faire
val_pr 4 lire cif_pr ;
faire(`dr') ;
attendre(20ms) ;
faire(`st') ;
faire(`gc') ;
attendre(20ms) ;
faire(`st') ;
Fin de cas
Fin
La fonction faire() :
94
Procédure faire(String action)
Const en1: Byte=34; en2: Byte=35; in1: Byte=2; in2: Byte=3; in3:
Byte=4; in4: Byte=5; pmp:
Byte=27; led_rouge:Byte=42; ig: int=200; id:int
=(((7.0358*ig)-628.21))/4.617; istp: int=90;
Var i:int;act_prcd: String;
Début
définie en1 comme sortie ; définie en2 comme
sortie ; définie in1 comme sortie ; définie in2 comme sortie ;
définie in3 comme sortie ; définie in4 comme sortie ;
définie pmp comme sortie ; ecrire_numérique(en1, 0) ;
ecrire_numérique(en2, 0) ; ecrire_numérique(in1, 0) ;
ecrire_numérique(in2, 0) ; ecrire_numérique(in3, 0) ;
ecrire_numérique(in4, 0) ; ecrire_numérique(pmp, 0) ; Au cas
où (action) vau
`av' :
ecrire_numérique(en1, 1) ; ecrire_numérique(en2,
1) ; ecrire_analogique(in1, id) ; ecrire_numérique(in2, 0) ;
ecrire_analogique(in3, ig) ; ecrire_numérique(in4, 0) ;
`ar' :
`dr' ;
`gc' :
act_prcd ? `av' ;
ecrire_numérique(en1, 1) ; ecrire_numérique(en2,
1) ; ecrire_numérique(in1, 0) ; ecrire_analogique(in2, id) ;
ecrire_numérique(in3, 0) ; ecrire_analogique(in4, ig) ;
act_prcd ? `ar' ;
ecrire_numérique(en1, 0) ; ecrire_numérique(en2,
1) ; ecrire_ numérique (in1, 0) ; ecrire_numérique(in2, 0) ;
ecrire_analogique(in3, ig) ; ecrire_numérique(in4, 0) ;
act_prcd ? `dr' ;
ecrire_numérique(en1, 1) ;
95
ecrire_numérique(en2, 0) ; ecrire_analogique(in1, id) ;
ecrire_numérique(in2, 0) ; ecrire_ numérique(in3, 0) ;
ecrire_numérique(in4, 0) ;
act_prcd ? `gv' ;
`st' :
i=50,
Si (act_prcd = `av') Alors Pour i de 50 à istp pas 1 faire
ecrire_numérique(en1, 1) ;
ecrire_numérique(en2, 1) ; ecrire_numérique(in1,
0) ; ecrire_analogique(in2, i) ; ecrire_numérique(in3, 0) ;
ecrire_analogique(in4, i) ; attendre (20us) ;
FinPour
ecrire_numérique(en1, 0) ;
ecrire_numérique(en2, 0) ; ecrire_numérique(in1,
0) ; ecrire_numérique(in2, 0) ; ecrire_numérique(in3, 0) ;
ecrire_numérique(in4, 0) ;
Sinon Si (act_prcd = `ar') Alors
Pour i de 50 à istp pas 1 faire
ecrire_numérique(en1, 1) ; ecrire_numérique(en2,
1) ; ecrire_analogique(in1, i) ; ecrire_numérique(in2, 0) ;
ecrire_analogique(in3, i) ; ecrire_numérique(in4, 0) ; attendre (20us)
;
FinPour
ecrire_numérique(en1, 0) ;
ecrire_numérique(en2, 0) ; ecrire_numérique(in1,
0) ; ecrire_numérique(in2, 0) ; ecrire_numérique(in3, 0) ;
ecrire_numérique(in4, 0) ;
Sinon Si (act_prcd = `dr') Alors
Pour i de 50 à istp pas 1 faire
ecrire_numérique(en1, 1) ; ecrire_numérique(en2,
0) ; ecrire_numérique (in1, 0) ; ecrire_numérique(in2, 0) ;
96
ecrire_ numérique(in3, 0) ; ecrire_analogique(in4, i) ;
attendre (20us) ;
FinPour
ecrire_numérique(en1, 0) ; ecrire_numérique(en2,
0) ; ecrire_numérique(in1, 0) ; ecrire_numérique(in2, 0) ;
ecrire_numérique(in3, 0) ; ecrire_numérique(in4, 0) ;
Sinon Si (act_prcd = `gc') Alors
Pour i de 50 à istp pas 1 faire
ecrire_numérique(en1, 0) ; ecrire_numérique(en2, 1) ; ecrire_
numérique(in1, 0) ; ecrire_analogique(in2, i) ;
ecrire_numérique(in3, 0) ; ecrire_numérique(in4, 0) attendre
(20us) ;
FinPour
ecrire_numérique(en1, 0) ; ecrire_numérique(en2,
0) ; ecrire_numérique(in1, 0) ; ecrire_numérique(in2, 0) ;
ecrire_numérique(in3, 0) ; ecrire_numérique(in4, 0) ;
Sinon
ecrire_numérique(en1, 0) ;
ecrire_numérique(en2, 0) ; ecrire_numérique(in1,
0) ; ecrire_numérique(in2, 0) ; ecrire_numérique(in3, 0) ;
ecrire_numérique(in4, 0) ;
FinSi
act_prcd 4- `st' ;
`pmp' :
Si (niveau < 120000)
ecrire_numérique(pmp, 1) ; attendre(2000ms) ;
ecrire_numérique(pmp, 0) ; niveau 4- niveau+1 ;
Sinon
ecrire_numérique(led_rouge, 1) ; attendre(500ms) ;
ecrire_numérique(led_rouge, 0) ;
FinSi
97
Fin de cas
Fin
La fonction Mise_à_jour() :
Fonction Mise_à_jour(String capteur)
Const cif_av :Byte= 0; cif_dr :Byte=1 ; cif_ar :Byte=2 ; cif_gc
:Byte=3 ; cthr:Byte=5 ; Var v_cp: int; v_cp1: int; v_av :int; v_ar :int; v_dr
:int; v_gc :int; val_fcnt_if:int=500; Début
Si (capteur ='cpif') Alors
v_av 4 lire cif_av ;
v_ar 4 lire cif_ar ;
v_dr 4 lire cif_dr ;
v_gc 4 lire cif_gc ;
v_cp1=max(v_av , v_ar) ;
v_cp1=max(v_cp, v_dr) ;
v_cp1=max(v_cp, v_gc) ;
Si (v_cp1 < val_fnct_if)
ecrire_numérique(led_rouge, 0) ;
v_cp 4 v_cp1;
Sinon
ecrire_numérique(led_rouge, 1) ;
v_cp 4 10000;
FinSi
Sinon Si (capteur ='cpthr') Alors
v_cp 4 lire cthr ;
Sinon Si (capteur ='niv') Alors
v_cp 4 0 ;
ecrire_numérique(led_rouge, 0) ;
FinSi
returen(v_cp)
Fin
La fonction réception() :
String Fonction réception()
Const in_rc :Byte=30 ;
Var rec : unsigned long ;val_rec :String ;
Début
Si (il y a réception) Alors
rec 4 lire in_rc ;
FinSi ;
Au cas où (rec) vau
2160004084:
val_rec 4 `manu' ;
2160014284:
val_rec 4 `auto' ;
98
2160032644:
val_rec 4 `Avant' ;
2160028564:
val_rec 4 `Arriérer' ;
2160008164:
val_rec 4 `Droit' ;
2160057124:
val_rec 4 `Gauche' ;
2160024484:
val_rec 4 `Pompe' ;
2160061204:
val_rec 4 `maj_if' ;
2160055084:
val_rec 4 `maj_thr' ;
2160046924:
val_rec 4 `niv';
2160016324 :
val_rec 4 `Stop';
4294967295 :
val_rec 4 val_rec ;
Fin de cas
Return(val_rec);
Fin
Le programme
#include <IRremote.h>
const byte in_rc = 30, trig_ob = 22, echo_ob = 23, trig_fr = 24,
echo_fr = 25, cif_av = 0, cif_dr = 1, cif_ar = 2,
cif_gc = 3, cthr = 5, cif_pr = 4, en1 = 34, en2 = 35, in1 = 2,
in2 = 3, in3 = 4, in4 = 5, pmp = 27, led_rouge = 42;
String Commande;
int niveau, val_nrm_if, val_nrm_thr;
IRrecv irrecv(in_rc);
decode_results results;
void setup()
{
irrecv.enableIRIn();
pinMode(led_rouge, OUTPUT);
pinMode(trig_ob, OUTPUT);
digitalWrite(trig_ob, 0);
pinMode(echo_ob, INPUT);
pinMode(trig_fr, OUTPUT);
digitalWrite(trig_fr, 0);
pinMode(echo_fr, INPUT);
pinMode(en1, OUTPUT);
pinMode(en2, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
99
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(pmp, OUTPUT);
pinMode(led_rouge, OUTPUT);
digitalWrite(en1, 0);
digitalWrite(en2, 0);
digitalWrite(in1, 0);
digitalWrite(in2, 0);
digitalWrite(in3, 0);
digitalWrite(in4, 0);
digitalWrite(pmp, 0);
digitalWrite(led_rouge, 0);
niveau = Mise_a_jour("niv");
val_nrm_if = Mise_a_jour("cpif")+10;
val_nrm_thr = Mise_a_jour("cpthr")+20;
}
void loop()
{
if (irrecv.decode(&results))
{
Commande = reception();
irrecv.resume();
}
Commande = Commande;/* */
if (Commande == "auto")
{
marcher_auto();
}
else
{
marcher_manu();
}
}
String reception()
{
unsigned long rec;
String val_rec;
rec = results.value;
switch (rec)
{
case 2160004084 :
val_rec = "manu";
break;
case 2160014284:
val_rec = "auto";
break;
case 2160032644 :
100
val_rec = "Avant";
break;
case 2160028564 :
val_rec = "Arriérer";
break;
case 2160008164 :
val_rec = "Droit";
break;
case 2160057124 :
val_rec = "Gauche";
break;
case 2160024484 :
val_rec = "Pompe";
break;
case 2160061204 :
val_rec = "maj_if";
break;
case 2160055084 :
val_rec = "maj_thr";
break;
case 2160046924:
val_rec = "niv";
break;
case 2160016324:
val_rec = "Stop";
break;
case 4294967295:
val_rec = val_rec;
break;
}
return (val_rec);
}
void marcher_manu()
{
String Ordre;
if (irrecv.decode(&results))
{
Ordre = reception();
irrecv.resume();
}
if (Ordre == "Avant")
{
if (Verifier_obstacle() == 0)
{
faire("av");
}
else
101
{
faire("st");
}
}
else if (Ordre == "Arriérer")
{
faire("ar");
}
else if (Ordre == "Droit")
{
if (Verifier_obstacle() == 0)
{
faire("dr");
}
else
{
faire("st");
}
}
else if (Ordre == "Gauche")
{
if (Verifier_obstacle() == 0)
{
faire("gc");
}
else
{
faire("st");
}
}
else if (Ordre == "Stop")
{
faire("st");
}
else if (Ordre == "Pompe")
{
faire("pmp");
}
else if (Ordre == "maj_if")
{
val_nrm_if = Mise_a_jour("cpif");
}
else if (Ordre == "maj_thr")
{
val_nrm_thr = Mise_a_jour("cpthr");
}
else if (Ordre == "niv")
102
{
niveau = Mise_a_jour("niv");
}
}
void marcher_auto()
{
String Cote;
if (Verifier_flamme() == "rien")
{
if (Verifier_obstacle() == 0)
{
faire("av");
}
else
{
do
{
faire("dr");
} while (Verifier_obstacle() == 1);
faire("st");
}
}
else
{
while (Verifier_flamme() != "flamme")
{
if (Verifier_obstacle() == 0)
{
Cote = Verifier_flamme();
Positionner(Cote) ;
faire ("av") ;
delay(1000) ;
faire("st") ;
}
else
{
do
{
faire("dr");
} while (Verifier_obstacle() == 1);
faire ("av") ;
delay(2000) ;
faire("st") ;
}
}
while (Verifier_flamme() == "flamme")
{
103
faire("pmp");
}
}
}
int Verifier_obstacle()
{
const byte dis_nrm_ob = 24, dis_nrm_fr = 18;
long temps_ob, dis_ob, temps_fr, dis_fr;
int sig_fvo;
byte rep;
delayMicroseconds(2);
digitalWrite(trig_ob, 1);
delayMicroseconds(10);
digitalWrite(trig_ob, 0);
temps_ob = pulseIn(echo_ob, 1);
delayMicroseconds(2);
digitalWrite(trig_fr, 1);
delayMicroseconds(10);
digitalWrite(trig_fr, 0);
temps_fr = pulseIn(echo_fr, 1);
dis_ob = temps_ob * 340 / 20000;
dis_fr = temps_fr * 340 / 20000;
if ((dis_ob < dis_nrm_ob) || (dis_fr > dis_nrm_fr))
{
sig_fvo = 1;
}
else
{
sig_fvo = 0;
}
return (sig_fvo);
}
String Verifier_flamme()
{
int val av, val ar, val dr, val gc, val thr, val
max;
String sig_fvf;
val_av = analogRead(cif_av);
val_ar = analogRead(cif_ar);
val_dr = analogRead(cif_dr);
val_gc = analogRead(cif_gc);
val_thr = analogRead(cthr);
val_max = max(val_av, val_ar);
val_max = max(val_max, val_dr);
val_max = max(val_max, val_gc);
if ((val_av > val_nrm_if) && (val_av >=
val_max))
{
104
if (val_dr > val_gc)
{
sig_fvf = "av_dr";
}
else if (val_gc > val_dr)
{
sig_fvf = "av_gc";
}
else
{
sig_fvf = "av";
}
}
else if ((val_ar > val_nrm_if) && (val_ar >=
val_max))
{
if (val_dr > val_gc)
{
sig_fvf = "ar_dr";
}
else if (val_gc > val_dr)
{
sig_fvf = "ar_gc";
}
else
{
sig_fvf = "ar";
}
}
else if ((val_dr > val_nrm_if) && (val_dr >=
val_max))
{
sig_fvf = "dr";
}
else if ((val_gc > val_nrm_if) && (val_gc >=
val_max))
{
sig_fvf = "gc";
}
else
{
sig_fvf = "rien";
}
if ((val_thr > val_nrm_thr))
{
if (sig_fvf != "rien")
{
sig_fvf = "flamme";
}
}
105
return (sig_fvf);
}
void faire(String action)
{
const int ig = 200, id = ((7.0358 * ig) - 628.21) / 4.617,
istp = 90;
String act_prcd;
int i;
if (action == "av")
{
digitalWrite(en1, 1);
digitalWrite(en2, 1);
analogWrite(in1, id);
digitalWrite(in2, 0);
analogWrite(in3, ig);
digitalWrite(in4, 0);
act_prcd = "av";
}
else if (action == "ar")
{
digitalWrite(en1, 1);
digitalWrite(en2, 1);
digitalWrite(in1, 0);
analogWrite(in2, id);
digitalWrite(in3, 0);
analogWrite(in4, ig);
act_prcd = "ar";
}
else if (action == "dr")
{
digitalWrite(en1, 0);
digitalWrite(en2, 1);
digitalWrite(in1, 0);
digitalWrite(in2, 0);
analogWrite(in3, ig);
digitalWrite(in4, 0);
act_prcd = "dr";
}
else if (action == "gc")
{
digitalWrite(en1, 1);
digitalWrite(en2, 0);
analogWrite(in1, id);
digitalWrite(in2, 0);
digitalWrite(in3, 0);
digitalWrite(in4, 0);
act_prcd = "gc";
}
106
else if (action == "st") {
if (act_prcd == "av") {
for (i = 50; i <= istp; i++) {
digitalWrite(en1, 1); digitalWrite(en2, 1); digitalWrite(in1, 0);
analogWrite(in2, i); digitalWrite(in3, 0); analogWrite(in4, i);
delayMicroseconds(20); }
digitalWrite(en1, 0); digitalWrite(en2, 0); digitalWrite(in1, 0);
digitalWrite(in2, 0); digitalWrite(in3, 0); digitalWrite(in4, 0); }
else if (act_prcd == "ar") {
for (i = 50; i <= istp; i++) {
digitalWrite(en1, 1); digitalWrite(en2, 1); analogWrite(in1, i);
digitalWrite(in2, 0); analogWrite(in3, i); digitalWrite(in4, 0);
delayMicroseconds(50); }
digitalWrite(en1, 0); digitalWrite(en2, 0); digitalWrite(in1, 0);
digitalWrite(in2, 0); digitalWrite(in3, 0); digitalWrite(in4, 0); }
else if (act_prcd == "dr") {
for (i = 50; i <= istp; i++) {
digitalWrite(en1, 1); digitalWrite(en2, 1); digitalWrite(in1,
0);
107
digitalWrite(in2, 0); digitalWrite(in3, 0); analogWrite(in4,
i); delayMicroseconds(50);
}
digitalWrite(en1, 0); digitalWrite(en2, 0); digitalWrite(in1, 0);
digitalWrite(in2, 0); digitalWrite(in3, 0); digitalWrite(in4, 0); }
else if (act_prcd == "gc") {
for (i = 50; i <= istp; i++) {
digitalWrite(en1, 1); digitalWrite(en2, 1); digitalWrite(in1, 0);
analogWrite(in2, i); digitalWrite(in3, 0); digitalWrite(in4, 0);
delayMicroseconds(50); }
digitalWrite(en1, 0); digitalWrite(en2, 0); digitalWrite(in1, 0);
digitalWrite(in2, 0); digitalWrite(in3, 0); digitalWrite(in4, 0); }
else
{
digitalWrite(en1, 0); digitalWrite(en2, 0); digitalWrite(in1, 0);
digitalWrite(in2, 0); digitalWrite(in3, 0); digitalWrite(in4, 0);
digitalWrite(pmp, 0); }
act_prcd == "st"; }
else if (action == "pmp") {
if (niveau < 120000)
108
{
digitalWrite(pmp, 1);
delay(2000);
digitalWrite(pmp, 0);
delay(1000);
niveau++;
}
else
{
digitalWrite(led_rouge, 1);
delay(500);
digitalWrite(led_rouge, 0);
delay(500);
}
}
}
int Mise_a_jour(String capteur)
{
const int val_fcnt_if = 500;
int v_cp, v_cp1, v_av, v_ar, v_dr, v_gc;
if (capteur == "cpif")
{
v_av = analogRead(cif_av);
v_ar = analogRead(cif_ar);
v_dr = analogRead(cif_dr);
v_gc = analogRead(cif_gc);
v_cp1 = max(v_av, v_ar);
v_cp1 = max(v_cp, v_dr);
v_cp1 = max(v_cp, v_gc);
if (v_cp1 < val_fcnt_if)
{
v_cp = v_cp1;
digitalWrite(led_rouge, 0);
}
else
{
v_cp = 10000;
digitalWrite(led_rouge, 1);
}
}
else if (capteur == "cpthr")
{
v_cp = analogRead(cthr);
}
else if (capteur == "niv")
{
109
v_cp = 0;
digitalWrite(led_rouge, 0);
}
return (v_cp);
}
void Positionner(String direct)
{
int val_pr, val_av, val_ar;
val_pr = analogRead(cif_pr);
if (direct == "av_dr")
{
faire("dr");
delay(20);
faire("st");
while (val_pr < analogRead(cif_pr))
{
val_pr = analogRead(cif_pr);
faire("dr");
delay(20);
faire("st");
}
faire("gc");
delay(20);
faire("st");
}
else if (direct == "av_gc")
{
faire("gc");
delay(20);
faire("st");
while (val_pr < analogRead(cif_pr))
{
val_pr = analogRead(cif_pr);
faire("gc");
delay(20);
faire("st");
}
faire("dr");
delay(20);
faire("st");
}
else if (direct == "ar_dr")
{
val_ar = analogRead(cif_ar) - 20;
while (analogRead(cif_av < val_ar))
{
faire("dr");
110
}
faire("st");
while (val_pr < analogRead(cif_pr))
{
val_pr = analogRead(cif_pr);
faire("dr");
delay(20);
faire("st");
}
faire("gc");
delay(20);
faire("st");
}
else if (direct == "ar_gc")
{
val_ar = analogRead(cif_ar) - 20;
while (analogRead(cif_av < val_ar))
{
faire("gc");
}
faire("st");
while (val_pr < analogRead(cif_pr))
{
val_pr = analogRead(cif_pr);
faire("gc");
delay(20);
faire("st");
}
faire("dr");
delay(20);
faire("st");
}
else if (direct == "av")
{
faire("dr");
delay(20);
faire("st");
if (val_pr < analogRead(cif_pr))
{
while (val_pr < analogRead(cif_pr))
{
val_pr = analogRead(cif_pr);
faire("dr");
delay(20);
faire("st");
}
faire("gc");
111
delay(20);
faire("st");
}
else if (val_pr > analogRead(cif_pr))
{
faire("gc");
delay(40);
faire("st");
while (val_pr < analogRead(cif_pr))
{
val_pr = analogRead(cif_pr);
faire("gc");
delay(20);
faire("st");
}
faire("dr");
delay(20);
faire("st");
}
}
else if (direct == "ar")
{
val_ar = analogRead(cif_ar) - 20;
while (analogRead(cif_av < val_ar))
{
faire("dr");
}
faire("st");
while (val_pr < analogRead(cif_pr))
{
val_pr = analogRead(cif_pr);
faire("dr");
delay(20);
faire("st");
}
faire("gc");
delay(20);
faire("st");
}
}
Bibliographie
[1] 10 questions à Philippe Coiffet sur les robots ;
Auteur : Philippe Coiffet, Editions Le Manuscrit, 2009 ; ISBN
978-2-304-02880-5
[2] Robotics: Modelling, Planning and Control; Auteur: Bruno
Siciliano, Lorenzo Sciavicco,Luigi Villani,Giuseppe Oriolo
[3] Robots, genèse d'un peuple artificie; Auteur: Daniel
Ichbiah
[4] Springer Handbook of Robotics; Auteur: Bruno
Siciliano,Oussama Khatib
[5] Robotics and control; Auteur: Mittal & Nagrath, ISBN
0-07-048293-4
[6] La double contrainte: L'influence des paradoxes de Bateson
en Sciences humaines; Auteur : Jean-Jacques Wittezaele
[7] Belkhadria Khemisti, "commande d'un robot mobile par
réseaux de neurones artificiels" Mémoire en vue de l'obtention du
diplôme de magister en électronique. Option: Robotique.
Université El Hadj Lakhdar Batna
[8] Robotics for Electronics Manufacturing: Principles and
Applications in cleanroom automation; Auteur: Karl Mathia,
ISBN978-0-521-87652-0Hardback
[9] Mechatronics; Auteur: V.S.Bagad, ISBN9788184314908, Edition
2008.
[10] Computer Aided Manufacturing; C. Elanchezhian,G. Shanmuga
Sundar; First Edition 2005, Second Edition 2007.
[11] Introduction to robotics: analysis, control, applications;
Auteur: Saeed B.Niku
[12] Robotics (par Appuu Kuttan) ; Auteur : Appuu Kuttan,
ISBN978-81-89866-38-9
[13] Sensors and Actuators: Control System Instrumentation (Par
Clarence W. de Silva); Auteur : Clarence W. de Silva
[14] Abrégé de mesure physique (par Aurelien
Pierre); Auteur : Aurélien PIERRE ; 2éme Edition
ISBN979-10-92277-01-2
[15] Les capteurs en instrumentation industrielle (par Georges
Asch) ; Auteur : Georges Asch,
7éme Edition
[16] Introduction to Sensors (Par John Vetelino,Aravind Reghu);
Auteur: John Vetelino,Aravind Reghu.
[17] Sensor Technologies: Healthcare, Wellness and Environmental
Applications (Par Michael J. McGrath,Cliodhna Ni Scanaill) ; Auteur : Michael
J. McGrath,Cliodhna Ni Scanaill.
[18] Précis de physique et électricité
appliquées: sections de technicien ... (Par Albert Terras); Auteur:
Albert Terras; ISBN2-7495-0087-7
[19] Resistive, Capacitive, Inductive, and Magnetic Sensor
Technologies (Par Winncy Y. Du); Auteur: Winncy Y. Du
[20] Field Measurements for Forest Carbon Monitoring: A
Landscape-Scale Approach ( par Coeli
M. Hoover); Auteur: Coeli M. Hoover
[21] Handbook of Sensor Networks: Compact Wireless and Wired
Sensing Systems (par Mohammad Ilyas,Imad Mahgoub); Auteur: Mohammad Ilyas,Imad
Mahgoub
[22] Electromécanique (Par Marcel Jufer); Auteur : Marcel
Jufer; ISBN2-88074-285-4
[23] Matériaux piézoélectriques:
caractérisation, modélisation et vibration (Par Michel Brissaud);
Auteur: Michel Brissaud ; ISBN978-2-88074-692-6,1er Edition
[24] Entraînements à Courant Continu (Par
Géza Joos,Edward D. Goodman) ; Auteur : Géza Joos,Edward D.
Goodman
[25] Electrotechnique (Par Théodore Wildi,Gilbert
Sybille) ;Auteur : Théodore Wildi,Gilbert Sybille ;3éme
Edition
[26] Informatique et automation: automatismes programmables
contrôlés par ordinateur (Par Jean Mbihi) ; Auteur : Jean Mbihi;
ISBN2553007981
[27] Théorie élémentaire et pratique de la
commande par les régimes glissants (Par Pierre Lopez,Ahmed Saïd
Nouri) ; Auteur : Pierre Lopez,Ahmed Saïd Nouri,ISBN10 3-540-31003-7
[28] Advanced PIC Microcontroller Projects in C: From USB to
RTOS with the PIC ... (Par Dogan Ibrahim); Auteur: Dogan Ibrahim
[29] Microcontrollers: Theory and Applications (Par Ajay V
Deshmukh); Auteur: Ajay V Deshmukh, ISBN0-07-058595-4
[30] Microcontrollers: Features and Applications (Par D. S.
Yadav,A. K. Singh); Auteur: D. S. Yadav,A. K. Singh
[31] Microcontroller and Embedded System (Par A.K. Singh);
Auteur: A.K. Singh
[32] Microcontrollers: Architecture, Programming, Interfacing
and System Design (Par Raj Kamal); Auteur: Raj Kamal, ISBN978-81-317-0697-8
[33] Embedded Systems Interfacing for Engineers Using the
Freescale HCS08 ... (Par Douglas Summerville); Auteur: Douglas Summerville,
ISBN9781608450053
[34] Microprocessor & Microcontroller (Par
A.P.Godse,D.A.Godse) ; Auteur : A.P.Godse,D.A.Godse,ISBN9788184317695
[35] Microcontrollers Fundamentals for Engineers and Scientists
(Par Steven Frank Barrett,Daniel J. Pack); Auteur: Steven Frank Barrett,Daniel
J. Pack, First Edition
[36] Le Chemin De Réussite En Programmation
Structurée Algorithmiques & Langage C (Par Samir ELACHOURI) ; Auteur
: Samir ELACHOURI
[37] Le langage C (Par Peter Aitken, Bradley Jones); Auteur :
Peter Aitken, Bradley Jones
[38] Le langage C++ (Par Marius Vasiliu); Auteur : Marius
Vasiliu,ISBN2-7440-7098-X
[39] Langage C++ (Par Brice-Arnaud Guérin) ; Auteur :
Brice-Arnaud Guérin, ISBN :2-7460-2611-
2
[40] Java Programming: Comprehensive Concepts and Techniques
(Par Gary Shelly,Thomas J. Cashman,Joy Starks,Michael Mick); Auteur: Gary
Shelly,Thomas J. Cashman,Joy Starks,Michael Mick
[41] Arduino and Kinect Projects: Design, Build, Blow Their
Minds (Par Enrique Ramos Melgar, Ciriaco Castro Diez); Auteur: Enrique Ramos
Melgar, Ciriaco Castro Diez
[42] Arduino: A Complete Guide (Par Tech Guru) ; Auteur : Tech
Guru
[43] Make: Arduino Bots and Gadgets: Six Embedded Projects with
Open Source ... (Par Tero Karvinen,Kimmo Karvinen) ;Auteur : Tero
Karvinen,Kimmo Karvinen, ISBN978-1-449-38971-0
[44] Projets créatifs avec Arduino (Par Bruno
Affagard,Jean-Michel Géridan,Jean-Noël
Lafargue) ;Auteur : Bruno Affagard,Jean-Michel
Géridan,Jean-Noël Lafargue,ISBN978-2-7440-2617-1
[45] Getting Started with Arduino (Par Massimo Banzi); Auteur:
Massimo Banzi,ISBN978-1-449-309879,First Edition
[46] Arduino Adventures: Escape from Gemini Station (Par James
Floyd Kelly,Harold Timmis); Auteur: James Floyd Kelly,Harold Timmis
|