WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et réalisation d'un robot mobile à  base d'arduino

( Télécharger le fichier original )
par Hocine TAKHI
Université Amar Telidji - Instrumentation 2014
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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 :

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

Conclusion générale

:

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






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Ceux qui vivent sont ceux qui luttent"   Victor Hugo