y robot
DESCRIPTION
Robot Mobile suiveur de ligne et détecteur des obstacles à la base de la carte Arduino Uno réalisation par ( RAOUI Yasser , TAHIRI Youssef)TRANSCRIPT
Remerciement
D’abord on tien à remercier nos professeurs encadrant M. Mohammed Karim ETTOUHAMI et M.RAOUI Younes pour la grande quantité des informations qui nous a donné, pour
pouvoir réaliser ce travail.
On remercie aussi M.Azzouz LOUKDACHE coordonateur de la filière de génie industriel et maintenance, et tous les autres professeurs de cette formation sans exception.
Sans oublier les personnes qui nous a aidé pour la réalisation de ce travail, soit avec leurs informations, leur temps ou leurs moyens.
1
Résumé
Notre projet s’intitule « Etude et réalisation d’un robot mobile suiveur de ligne et détecteur des obstacles à base du module Arduino » en se basant sur ce module qui sert à communiquer avec les servomoteurs et les capteurs infrarouge et le capteur ultrasons (émetteur récepteur) Alimenté avec des piles.
Celui-ci est capable de suivre une ligne noire de manière autonome a l'aide de l'échange des informations entre les capteurs infrarouge et éviter les obstacles avec capteur ultrasons avec l’arduino pour ajuster la vitesse des servomoteurs pour placer le robot sur la ligne noire.
Mot clés:
Arduino – robot mobile – capteur infrarouge – servomoteur-capteur ultrasons.
2
SOMMAITRE
Introduction générale………………………………………………………………………4
Chapitre I : La robotique et Arduino
Introduction…………………………………………………………………………….6
1. Les robots ………………………………………………………………….…...…61.1. Historique ……………………………………………………………………… 61.2. Définition d’un robot… …………………………………………………………6
1.2.1. Utilité d’un robot……………………………........................................... 71.2.2. Composition d’un robot………… ……………………………………….71.2.3. Définition d’un robot mobile……………………………………………...8
1.3. Types de robot …………………………………………………………………...81.4. Fonctionnement des robots évolués………………………………………………8
1.4.1. Perception………………………………………………………………….91.4.2. Décision…………………………………………………………………...91.4.3. Action………………………………………………………………………9
1.5. Robotique Industriel……………………………………………………………....91.6. Les générations des robots…………………………….. …………………………10
2. Carte Arduino…………………………………………………………………………..112.1. Historique …………………………………………………………………………112.2. Définition d’un Arduino …………………………………………………………..122.3. Les cartes Arduino…………………………………………………………………12
2.3.1. La carte Arduino Uno……………………………………………………….122.3.2. La carte Arduino Mega 2560………………………………………………..132.3.3. Les autres carte Arduino…………………………………………………….14
Conclusion…………………………………………………………………………………..14
Chapitre II : Analyse fonctionnelle
II .1. Cahier des charges…………………………………………………………………16II.2. Organigramme………………………………………………………………………17II.3. Analyse fonctionnelle……………………………………………………………….17 II.3.1. Diagramme bête à cornes……………………………………………………17 II.3.2. Diagramme pieuvre………………………………………………………….18 II.3.3. SADT………………………………………………………………………..18 II .3.4. Chaine fonctionnelle………………………………………………………...19 II.3.5. FAST…………………………………………………………………………20 II.4. Schéma de fonctionnement………………………………………………………….21
3
Chapitre III : Etude mécanique
1. Châssis………………………………………………………………………………232. Catia V5R20…………………………………………………………………………23
2.1. Solution possible et solutions retenues ………………………………………….23
2.2. Conception sous CATIA……………………………………………………. ….23
3. Réalisation de la partie mécanique……………………………………………….......27
Chapitre IV : Electronique
1. La carte Arduino…………………………………………………………………….302. Capteurs ……………………………………………………………………………..30
2.1. Capteur ultrasons…………………………………………………………………31
2.2. Capteur de ligne…………………………………………………………………..31
3. Alimentation………………………………………………………………………….324. Servomoteurs ………………………………………………………………………...33
Chapitre V : Partie réalisation
1. Arduino1.0.5 …………………………………………………………………………362. Programmation………………………………………………………………………..37
Conclusion………………………………………………………………………………..43
Annexe………………………………………………………………………………..…44
4
Introduction générale
Notre travail de projet fin d’étude porte sur : étude et réalisation d’un robot suiveur de ligne et détecteur des obstacles d’une façon autonome, dont l’approche de commande
proposée est basée essentiellement sur le module Arduino.
Ce projet est assez complexe car il fait appel à de nombreux domaines techniques différents.
En effet sera entièrement réalisé par nos soins de la partie électronique à la programmation en allant jusqu'à la conception (partie mécanique).
Pour aborder ce thème, on a eu recours à examiner en premier lieu le domaine de la robotique mobile. En deuxième lieu, une étude théorique détaillé portant sur les différentes
cartes électroniques pour un exemple de robot mobile ; architecturé autour du module Arduino, est présentée et discutée.
5
Introduction
Le travail élaboré dans ce premier chapitre, est scindé en deux parties. Dans la première, nous
présentons une étude bibliographies sur la robotique. Une étude détaillée sur Arduino, module très
utilisé dans domaine de la robotique, est consacré dans la deuxième partie.
1. Les robots
1.1. Historique
La robotique est issue des travaux effectués sur les automates, ancêtres des robots. Parmi les
premiers constructeurs d’automates, on peut citer Léonard de Vinci, ou encore le mécanicien français
Jacques de Vaucanson, dont les tentatives de reproduction des fonctions vitales des êtres humains
(circulation, respiration et digestion) au moyen d’automates.
Le terme « robot » est introduit en 1920 par l’écrivain tchèque Karel Čapek dans sa pièce de
théâtre RUR (Rossum’s Universel Robots). Ce terme, provenant du tchèque robot, « travail forcé »,
désigne à l’origine une machine androïde capable de remplacer l’homme dans toutes ses tâches. Au
XIXe siècle apparaissent les premières machines-outils, qui par leurs fonctions peuvent être
considérées comme les précurseurs des robots. Dans les années 1940 et 1950, les progrès de
l’électronique permettent de miniaturiser les circuits électriques (inventions du transistor et du circuit
intégré), ouvrant ainsi de nouvelles voies à la fabrication de robots. Dans les premiers temps de la
robotique, le robot est considéré comme une imitation de l’homme, aussi bien fonctionnelle que
physique. Aujourd’hui, les constructeurs ne tentent plus de reproduire l’aspect humain sur un robot,
privilégiant avant tout sa fonctionnalité.
Les robots sont actuellement très répandus dans l’industrie, en particulier en construction
automobile, et chez la plupart des fabricants d’ordinateurs. Capables d’effectuer rapidement des
travaux répétitifs, ils sont notamment utilisés dans les chaînes de fabrication et de montage. On les
emploie également dans des environnements difficilement supportables par l’homme (conditions
extrêmes de température ou de pression, radioactivité élevée, etc.). L’industrie du nucléaire a ainsi
largement contribué au développement de la robotique (notamment dans la conception de bras
télémanipulateurs).
1.2 Définition d’un robot
Machine, automate à l'aspect humain capable d'agir comme un être humain.Appareil
effectuant, grâce à un système de commande automatique à base de micro-processeur, une tâche
précise, pour laquelle il a été conçu dans le domaine industriel, scientifique ou domestique.
7
1.2.1. Utilité d’un robot
Un robot peut servir à beaucoup de chose, nettoyer une maison, tondre une pelouse, assister
les médecins lors de leurs opérations, faire des tâches répétitives ou dangereuse dans les entreprises. Il
peut aussi être un outil pour l'armée (exemple les robots sous-marins que ECA développe).
1.2.2. Composition d’un robot
Un robot est composé de plusieurs parties, capteurs, actionneurs et une unité de traitement, le
tout lié sur une base mécanique.
Capteur
Il existe de nombreux types de capteurs, du simple interrupteur, au capteur de distance en
passant par les capteurs de température. Ils permettent à votre robot d'avoir des informations sur
l'extérieur.
Figure I.1 : Différents types des capteurs
Les actionneurs
Les actionneurs permettent à votre robot de réagir suivant se que vous lui avez demandé.
Il existe aussi beaucoup d'actionneurs principalement réalisé à base de moteur électrique.
Figure I.2 : Différents types d’actionneurs
8
Unités de traitement
L'unité de traitement permet de traiter les données venant des capteurs, suivant les données,
l'unité de traitement commande les actionneurs. Exemple : pour un suiveur de ligne, on utilise des
capteurs de lignes, si on est en présence d'un virage, l'unité de traitement doit décider d'arrêter ou
ralentir un moteur pour tourner.
1.2.3. Définition d’un robot mobile
Un robot mobile est une machine automatique capable de se mouvoir dans un environnement
donné. On regroupe, sous cette appellation tous les robots autonomes (c’est à dire non télécommandés)
capables de se déplacer, par opposition aux robots attachés à un point fixe, comme les robots
manipulateurs en industrie. Il existe plusieurs types de robots mobiles, et ceux-ci sont en général,
classifiés selon leur type de locomotion (c’est à dire le milieu dans lequel ils évoluent, ainsi que leur
mode de propulsion). Les robots mobiles évolueront donc sur terre, dans les airs ou encore dans l’eau.
Les robots terrestres sont, par exemple, actionnés par des roues, des chenilles ou encore des pattes.
1.3. Types de robots
On peut classer les robots en quatre catégories, par ordre de complexité croissante. Les robots
les plus simples, et les plus courants se contentent de répéter les opérations inscrites dans leurs
programmes. Les robots appartenant au deuxième type, sont capables de reproduire certains
mouvements humains enregistrés sur bande magnétique, tandis que les robots de troisième génération
sont des dispositifs à commande numérique, dont les mouvements sont enregistrés sur une unité de
stockage, et qui peuvent accomplir plusieurs opérations différentes. Enfin, les robots évolués sont plus
complexes, et faisant appel à des capteurs d’environnement et aux techniques d’intelligence
artificielle, sont dotés d’une grande capacité de traitement de l’information. Certains d’entre eux
peuvent, ainsi reconnaître la forme d’objets sur un écran de télévision, ou encore réagir à des paroles
employant un vocabulaire spécifique (voir reconnaissance vocale).
1.4. Fonctionnement des robots évolués
On peut définir un robot évolué, comme une machine agissant physiquement sur son
environnement, en vue d’atteindre un but qui lui a été fixé. Cette machine doit être capable de
percevoir son environnement, et le cas échéant de s’adapter à certaines variations de celui-ci (capacité
d’autonomie). Par exemple, si le but du robot est de se déplacer d’un point à un autre dans une pièce, il
doit être capable de contourner les obstacles qui y sont présents. Il lui faut donc assurer des fonctions
de perception, de décision et d’action. Pour ce faire, un robot est un mélange de mécanique (bras
9
articulé, système hydraulique, pneumatique et électrique, système de déplacement…), d’électronique
(capteurs en tout genre, caméras…), d’informatique (micro-ordinateurs, microprocesseurs) et de
logiciels. Les robots les plus anciens contiennent beaucoup de mécanique et d’électronique et peu
d’informatique et de logiciels. La part de l’informatique tend à augmenter, car c’est elle qui influe sur
les capacités de perception et de décision. Ainsi, le cœur du robot peut être vu comme une boucle
perception-décision-action.
1.4.1. Perception
La perception repose sur un ensemble de capteurs plus ou moins sophistiqués. Les robots sont
de plus en plus équipés de caméras CCD (Charge Couple Device), qui font office d’interfaces
visuelles. Ces capteurs fournissent un ensemble de mesures de bas niveau, que le robot va devoir être
capable d’interpréter à plus haut niveau pour préparer la prise de décision. L’interprétation est très
complexe, et met en jeu des outils mathématiques et informatiques de haut niveau (c’est le cas par
exemple de la vision par ordinateur). La qualité de perception détermine, ainsi les possibilités
d’évolution d’un robot.
1.4.2. Décision
Le processus de décision d’un robot prend en compte d’une part, le but qu’il doit atteindre et
d’autre part, la perception de son environnement. Cette tâche est directement dépendante de la qualité
de la perception. Les modèles de décision peuvent être très complexes, et sont fondés sur des outils
mathématiques et informatiques très évolués, souvent issus de l’intelligence artificielle. La difficulté
majeure de cette opération vient du nombre de l’ensemble des décisions possibles, qui peut être très
grand, et empêche une énumération complète. La prise de décision s’appuie ainsi sur des heuristiques,
qui permettent de déterminer les choix les plus efficaces en fonction de l’objectif visé.
1.4.3. Action
L’action consiste à mettre en application la décision prise. Cela peut être très simple ou
complexe en fonction du domaine considéré. Cette fonction reste très liée à la mécanique et à
l’électronique, et beaucoup moins à l’informatique.
1.5. Robotique Industriels
Le marché de la robotique est aujourd’hui encore dominé par les robots industriels, qui sont
souvent très simples. Selon la commission économique des Nations unies pour l'Europe (CEE-ONU)
et la Fédération internationale de robotique (IFR), il y a, en ce début de XXIe siècle, plus de 800 000
robots industriels dans le monde, dont près de la moitié est détenue par le Japon. Le reste du parc
mondial de robots industriels se répartit principalement entre les États-Unis (100 000), l’Allemagne
10
(100 000), l’Italie (45 000), la république de Corée (40 000), la France (25 000) et le Royaume-Uni
(15 000). L’évolution est globalement à la hausse majoritairement aux États-Unis et en Europe.
La répartition est également différente selon le secteur industriel, les industries automobile et
chimique étant les principales utilisatrices de robots. En moyenne au Japon, il y a 270 robots pour
10 000 salariés du secteur industriel (contre 130 en Allemagne, 120 en république de Corée, 60 en
France, 50 aux États-Unis). Dans le secteur automobile japonais, on compte 1 robot pour 6 salariés.
Une évolution est attendue dans le monde des services (robot aspirateur ou robot tondeuse), mais elle
tarde à se confirmer.
1.6. Les générations des robots
Des progressions s'opèrent dans tous les domaines :
Mécanique,
Micro-informatique,
Energétique,
Capteurs / actionneurs.
A l'heure actuelle, on peut distinguer 3 générations de robots :
Le robot est passif
Il est capable d'exécuter une tâche qui peut être complexe, mais de manière répétitive, il ne doit pas y
avoir de modifications intempestives de l'environnement. L'auto-adaptativité est très faible. De
nombreux robots sont encore de cette génération.
Le robot devient actif
Il devient capable d'avoir une image de son environnement, et donc de choisir le bon comportement
(sachant que les différentes configurations ont été prévues). Le robot peut se calibrer tout seul.
Le robot devient « intelligent »
Le robot est capable d'établir des stratégies, ce qui fait appel à des capteurs sophistiqués, et souvent à
l'intelligence artificielle.
11
2. Cartes Arduino
Suiveur d’une ligne et détecteur des obstaclesPossibilités microcontrôleur PIC16F84A, Arduino unoChoix ArduinoJustification C’est nouvelle technologie avec une manipulation facile des capteurs avec la carte
arduino uno nous a permet de les choisir, le prix des composants ainsi le prix est raisonnable.
2.1. Historique
Le projet Arduino est issu d'une équipe d'enseignants et d'étudiants de l'école de Design
d'Interaction d'Ivrea (Italie). Ils rencontraient un problème majeur à cette période (avant 2003 - 2004) :
les outils nécessaires à la création de projets d'interactivité étaient complexes et onéreux (entre 80 et
100 euros). Ces coûts souvent trop élevés rendaient difficiles le développement par les étudiants de
nombreux projets et ceci ralentissait la mise en œuvre concrète de leur apprentissage.
Jusqu'alors, les outils de prototypage étaient principalement dédiés à l'ingénierie, la robotique
et aux domaines techniques. Ils sont puissants mais leurs processus de développement sont longs, et ils
sont difficiles à apprendre et à utiliser pour les artistes, les designers d'interactions et, plus
généralement, pour les débutants.
Leur préoccupation se concentra alors, sur la réalisation d'un matériel moins cher et plus facile
à utiliser. Ils souhaitaient créer un environnement proche de Processing, ce langage de programmation
développé dès 2001 par Casey Reas et Ben Fry, deux anciens étudiants de John Maeda au M.I.T., lui-
même initiateur du projet DBN.
En 2003, 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. 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 » (c'est-à-dire dont les sources sont ouvertes et
peuvent être modifiées, améliorées, distribuées par les utilisateurs eux-mêmes) et, enfin, « multi-
plates-formes » (indépendant du système d'exploitation utilisé).
Conçu par une équipe de professeurs et d’étudiants (David Mellis, Tom Igoe, Gianluca
Martino, David Cuartielles, Massimo Banzi ainsi que Nicholas Zambetti), l'environnement Arduino est
12
particulièrement adapté à la production artistique, ainsi qu'au développement de conceptions, qui
peuvent trouver leurs réalisations dans la production industrielle.
Le nom Arduino trouve son origine dans le nom du bar dans lequel l’équipe avait l'habitude de
se retrouver. Arduino est aussi le nom d'un roi italien, personnage historique de la ville « Arduin
d’Ivrée », ou encore un prénom italien masculin qui signifie « l'ami fort ».
2.2. Définition d’un Arduino
Le système Arduino est un outil pour fabriquer de petits ordinateurs qui peuvent capter et
contrôler davantage de choses du monde matériel, que votre ordinateur de bureau. C'est une
plateforme open-source d'électronique programmée, qui est basée sur une simple carte à
microcontrôleur (de la famille AVR), et un logiciel, véritable environnement de développement
intégré, pour écrire, compiler et transférer le programme vers la carte à microcontrôleur. Arduino peut
être utilisé, pour développer des objets interactifs, pouvant recevoir des entrées d'une grande variété
d'interrupteurs ou de capteurs, et pouvant contrôler une grande variété de lumières, moteurs ou toutes
autres sorties matérielles. Les projets Arduino peuvent être autonomes, ou bien ils peuvent
communiquer, avec des logiciels tournant sur votre ordinateur (tels que Flash, Processing ou
MaxMSP). Les cartes électroniques peuvent être fabriquées manuellement, ou bien être achetées pré-
assemblées.
2.3. Les cartes Arduino
2.3.1. La carte Arduino UNO
C'est la révision la plus récente de la carte de base Arduino USB. Elle se connecte sur l'ordinateur,
avec un câble USB standard, et contient tout ce dont vous avez besoin pour, programmer et utiliser la carte.
Elle peut être complétée avec toute une variété de circuits : des cartes-femelles personnalisées avec des
caractéristiques spécifiques. Elle est similaire à la carte précédente Due milanove, mais elle dispose d'un
circuit intégré USB-vers-série différent, l'ATMega8U2, ainsi qu'un nouveau design du texte de la carte afin
de rendre les entrées et les sorties plus faciles à identifier.
"Uno" signifie un en Italien, et ce nom marque la venue prochaine de la version 1.0 du logiciel
Arduino. La carte UNO et la version 1.0 du logiciel seront la référence des versions Arduino à venir.
La carte Uno est la dernière d'une série de carte USB Arduino, et le modèle de référence des
plateformes Arduino; pour une comparaison avec les versions précédentes.
13
2.3.2. La carte ArduinoMega 2560
La version de la Mega sortie en même temps que la carte UNO. Cette version est basée sur
l'ATmega2560, qui dispose de deux fois plus de mémoire, et utilise également l'ATMega 8U2 pour la
communication USB-vers-série. Elle contient tout ce qui est nécessaire pour le fonctionnement du
microcontrôleur; Pour pouvoir l'utiliser et se lancer, il suffit simplement de la connecter à un
ordinateur à l'aide d'un câble USB (ou de l'alimenter avec un adaptateur secteur ou une pile, mais ceci
n'est pas indispensable, l'alimentation étant fournie par le port USB). L'ATmega 2560 à 256Ko de
mémoire FLASH pour stocker le programme (dont 8Ko également utilisés par le bootloader).
L'ATmega 2560 a également 8 ko de mémoire SRAM (volatile) et 4Ko d'EEPROM (non volatile -
mémoire qui peut être lue à l'aide de lalibrairie EEPROM).
Le bootloader est un programme préprogrammé une fois pour toute dans l'ATméga et qui
permet la communication entre l'ATmega et le logiciel Arduino via le port USB, notamment lors de
chaque programmation de la carte.
14
Figure I.3 : ArduinoUno
2.3.3. Les autres cartes Arduino
Il existe plusieurs types d’Arduino, on cite à titre d’exemple :
La carte Arduino Bluetooth
La carte ArduinoMini
La carte Arduino Nano
La carte Arduino LilyPad
La carte Arduino Fio
La carte Arduino Pro
La carte Arduino ProMini
Conclusion
La conception d'un robot mobile est de nature multidisciplinaire et nécessite, souvent,
beaucoup d'imagination et de créativité. Cette nature multidisciplinaire s'observe dans l'exploitation de
l'électronique, les actionneurs et la conversion de l'énergie, la commande en temps réel, l'acquisition et
la transmission d'images et du son, la programmation. Les télécommunications, sans oublier la
conception mécanique du châssis et de ses composants. Dans cet esprit, nous consacrons le prochain
15
Figure I.4 : Arduino MEGA
chapitre à l’étude détachée nécessaire pour la conception et le mise en œuvre d’un exemple typique de
robot mobile, dont la commande est architecturé au tour du module Arduino Uno.
Chapitre II
Analyse fonctionnelle
16
II.1) Cahier des charges
Définition
Le cahier des charges est un document qui doit être respecté lors de la réalisation d'un projet.
Elément Nombre fonction
Carte arduino uno 1
Traité les différentes informations reçut par les
capteurs pour élaboré un signale de commande vers le
servomoteur
Servomoteur 2 Faire tourner les deux roues
Capteur ultrason 1 Détecter les obstacles
Capteur de ligne 2 Suivre une ligne noire
Piles 98piles de 1.5 v pour alimenter les servomoteurs et une de 9v pour alimenter la carte arduino
Platine d’expérimentation 1 un dispositif qui permet de
réaliser le prototype d'un circuit électronique
17
II.2) Organigramme
II.3) Analyse fonctionnelle
L’analyse fonctionnelle permet d’utiliser ou d’améliorer ou de créer un produit. Elle est la base de l’établissement du cahier des charges fonctionnel. Selon qu’on s’intéresse aux fonctions de service ou qu’on s’intéresse aux fonctions techniques, on parle, alors, d’analyse fonctionnelle externe ou interne.
II.3.1 Diagramme "Bête à cornes"
Pour énoncer le besoin fondamental d’un produit, on utilise l’outil ou diagramme de "bête à cornes", qui pose 3 questions fondamentales suivantes :
• A qui le produit rend-il service ?
• Sur quoi agit-il ?
• Dans quel but ?
18
Utilisateurs
Le suivre d’un tracé au sol et détecteur des obstacles
Robot suiveur de ligne
et détecteur des obstacles
Suivre un tracé au sol et détecteur des obstacles sans intervention extérieure.
Projet robot didactique suiveur ligne et détecteur
des obstacles
Mécanique Programmation Electronique
Rédaction du rapport
Conception du robot
Choix des solutions techniqueRéalisation du
programme
Assemblage
BrochageSimulation CATIA
V5R20
FC1 FC2
FC3
FC4
II.3.2 Diagramme "Pieuvre"
Cette recherche consiste à faire figurer sur un graphique les éléments environnants le produit.
Liste des fonctions :
FP1 Suivre une ligne tracée au solFP2 Eviter les obstaclesFC1 S’adapter au tracée de la ligneFC2 Déplacement le plus régulierFC3 Respecter l’encombrement imposéFC4 S’adapter à une source d’énergie.FC5 Avoir un aspect et une couleur qui s’adaptent au décor environnant.
II.3.3 SADT: Structured Analysis and Design Technique
SADT (Technique structurée d’analyse et de modélisation) est une démarche systémique permettre l’analyse et la compréhension de système complexes.
19
Obstacle
Robot suiveur et détecteur des obstacles
Précision du déplacement
Ligne tracée sur le sol Encombrement
Déplacement souhaité
Energie FP2
FP1
Esthétique
FC5
Se déplacer dans un trajet en évitant les obstacles inattendus
Mastère d’œuvre en entrée
Mastère d’œuvre en sortie
Énergie électrique
Exploitation Programme Réglage
Robot suiveur et détecteur des obstacles
Robot en
dehors du
trajet
Robot sur le trajet
avec évitement
d’obstacles
II.3.4 Chaine fonctionnelle
L’étude globale des systèmes conduit à distinguer 2 entités :
• La chaîne d’information (qui transfère, stocke, transforme l’information) ;
• La chaîne d’énergie (qui transforme l’énergie et permet d’agir sur le système physique)
20
Capteurs Arduino
Batterie Interrupteur Servomoteur
MOE
MOS
Suivre une
ligne et
éviter l’obsta
cle
II.3.5Diagramme FAST: Function Analysis System Technic.
Lorsque les fonctions de services sont identifiées, cette méthode les ordonne et les décompose suivant une logique fonctionnelle pour aboutir (vers la droite) aux solutions technologiques de réalisation.
21
Déplacer le robot Alimenter
Suivre une ligne et éviter les obstacles
Adapter la trajectoire
Faire tourner les roues
Capter la ligne
Servomoteur
Diriger le robot
Détecter l’obstacle
Batteries
Capteur (Line Hunter)
Arduino UnoR3
Capteur Ultrason
Adapter la trajectoire
ArduinoUnoR3
Gérer le système
Donner les ordres
Contrôler la mise en marche
Interrupteur
Arduino UnoR3
II.4) Schéma de fonctionnement
Schéma de fonctionnement désigne une présentation, en général graphique, qui permet de saisir d'un seul coup d'œil un ensemble d'informations liées ou un système complexe.
22
Chapitre III
Etude mécanique
Un robot est composé de plusieurs parties, capteurs, actionneurs et une unité de traitement, le tout lié sur une base mécanique.
23
III.1) Châssis :
Cette partie est assez complexe car on doit fabriquer le châssis avec des dimensions exactes (largueur, longueur, hauteur).
Le châssis est un cadre rigide en bois, destiné à entourer et supporter tous les composants du robot et permettant de le faire tenir en équilibre en respectant les dimensions.
Pendant le projet, notre principal problème a été de nous assurer que les dimensions du robot soient suffisantes pour que les éléments nécessaires à son fonctionnement puissent être fixés dessus.
III.2) CATIA V5R20
III.2.1) Solutions possibles et solutions retenues
C.A.OPossibilités CATIA - Solide Works- AutocadChoix CATIA V5R20Justification Proposé par notre encadrent
III.2.2) Conception sous CATIA
Pour la partie mécanique, nous avons choisi d’abord de discuter tous ensemble de la forme générale du robot. Nous avons dû prendre en compte les besoins, notamment au niveau de la place nécessaire pour positionner les capteurs et autres composants électroniques. Nous avons d’abord réfléchi sur une feuille sur laquelle nous dessinions les composants, mais il est rapidement apparu qu’il serait plus simple d’utiliser un logiciel nous donnant des valeurs précises en 3 dimensions.
24
Figure III.1 : logo CATIA
Conception de dessus du châssis Conception de la base du châssis
Conception des roues
25
Figure III.2 : le dessus du châssisFigure III.3 : la base du châssis
Conception des cotes
Conception des accouplements
27
Figure III.5 : les cotes
Figure III.6 : les accouplements
Conception des servomoteurs
Assemblage du robot
28
Figure III.7 : Servomoteurs
Figure III.8 : Assemblage du robot
III.2.3) Réalisation de la partie Mécanique
La base du Châssis
Le dessus du châssis
29
Figure III.9 : La base du chûssis
Figure III.10 : Le dessus de châssis
Chapitre IV
Electronique
Probablement la partie ou nous avons passé le plus de temps, c'est également celle ou les recherches ont été les plus longues ainsi que les tests préalables, et c'est aussi malheureusement la partie qui nous a causé le plus de soucis et d'erreurs.
31
IV.1) La carte Arduino
IV.2) Capteurs
Pour la partie électronique, nous avons préalablement étudié l’impact des capteurs afin d’optimiser le déplacement du robot le long de la ligne et détecter les obstacles afin que sa progression soit la plus rapide possible. Nous avons donc étudié le nombre de capteurs ainsi que leur position selon différents cas (ligne droite, virage, obstacle). En fonction de leur nombre et de leur position dépend la taille et l’agencement de la carte électronique. Après l’étude et les conseils de nos encadrent on a décidé de choisir : Capteur ultrasons on le place dans le point le plus haut du châssis , et deux capteurs line hunter dans le point le plus bas du châssis pour mieux communiquer entre le terrain et les capteurs .
32
Figure IV.1 : La carte arduino
IV.2.1) Capteur ultrasons
Son principe de fonctionnement repose comme son nom l'indique sur l'utilisation des ultrasons. Ce sont des ondes acoustiques dont la fréquence est trop élevée pour être audible par l'être humain. Ici, on mesurera un niveau grâce au capteur ultrasonique. On peut utiliser d'autres moyens (la pression hydrostatique exercée par le fluide par exemple) pour déterminer le niveau d'un produit dans une cuve, mais la mesure de niveau par ultrasons permet d'effectuer une mesure sans contact avec le produit.
L'émetteur et le récepteur sont situés dans le même boîtier. L’émetteur envoie un train d'ondes qui va se réfléchir sur l'objet à détecter et ensuite revenir à la source. Le temps mis pour parcourir un aller-retour
permet de déterminer la distance de l'objet par rapport à la source. Plus l'objet sera loin plus il faudra long temps pour que le signal revienne. Pour détecter le niveau (la distance d), on utilise l’équation :
Vitesse = distance / temps distance = vitesse ⋅ temps
IV.2.2) Capteur de ligne (line hunter)
Ce module détecte les lignes noires pour permettre aux robots de suivre une ligne. La sortie est HIGH sur le blanc et LOW sur le noir, avec possibilité de calibrer la sensibilité.
Connecteurs :
GND , VCC,OUT
33
Figure IV.2 : Capteur ultrasons
Figure IV.3 : Capteur line hunter
IV .3) Alimentation
Les servomoteurs sont alimentés par huit piles de 1.5 V qui sont logées dans la porte arrière du robot, vous pouvez simplement les changer.
Et une seule pile de 9v de haute qualité (Duracell Alkaline 9V) pour assurer la stabilité du tension qui passe au niveau de la carte arduino.
Voici les figures suivantes qui présentent les différentes piles utilisées.
Figure
34
Figure IV.4 : Porte Piles 1.5V
Figure IV.5 : Portes Piles 1.5V
Figure
Figure IV.7 : le câble de branchement entre la pile de 9v et la carte arduino
IV.4) Servomoteurs
Un servomoteur est souvent abrégé en « servo ».
C’est un ensemble mécanique et électronique comprenant :
Un moteur à courant continu de très petite taille ;
Un réducteur en sortie de ce moteur diminuant la vitesse mais augmentant le couple ;
Un potentiomètre (faisant fonction de diviseur résistif) qui génère une tension variable,
proportionnelle à l'angle de l'axe de sortie ;
35
Figure IV.6 : DURACEL 9V
Un dispositif électronique d'asservissement ;
Un axe dépassant hors du boîtier avec différents bras ou roues de fixation.
Les servos servent à actionner les parties mobiles du modèle : ailerons, volets et trains pour les avions,
contrôle de direction dans le cas de modélisme automobile… À cette fin, les moteurs sont asservis et
obéissent à une commande externe, généralement transmise par radio.
On a modifier le servomoteur d’une rotation angulaire a une rotation continue.
36
Figure IV.8 : Servomoteurs
Figure IV.9 : Servomoteurs modifié
Chapitre V
Partie réalisation
On est arrivé à la phase de programmation la phase la plus importante dans notre projet.
On a utilisé le programme Arduino 1.0.5 à la base de langage C.
37
V.1) Arduino 1.0.5
Le logiciel de programmation des modules Arduino est une application Java, libre et multi-plateforme,
servant d'éditeur de code et de compilateur, et qui peut transférer le firmware et le programme au
travers de la liaison série (RS-232, Bluetooth ou USB selon le module). Il est également possible de se
passer de l'interface Arduino, et de compiler et uploader les programmes via l'interface en ligne de
commande2.
Le langage de programmation utilisé est le C++, compilé avec avr-g++ 3, et lié à la bibliothèque de
développement Arduino, permettant l'utilisation de la carte et de ses entrées/sorties. La mise en place
de ce langage standard rend aisé le développement de programmes sur les plates-formes Arduino, à
toute personne maîtrisant le C ou le C++.
On a utilisé la dernière version c’est arduino1.0.5.
38Figure V.1 : Interface de logiciel de programmation
V.2) programmation
Programme de suiveur de ligne :
#include<Servo.h>
Servo sG,sD;
bool hG, hD;
void setup() {
sD.attach(5);
sG.attach(6);
pinMode(2, INPUT);
pinMode(3, INPUT);
}
void loop() {
hD= digitalRead(2);
hG= digitalRead(3);
while((hD==LOW)&&(hG==LOW)){
sD.writeMicroseconds(1650);
sG.writeMicroseconds(1350);
hD= digitalRead(2);
hD= digitalRead(3);
}
while((hD==LOW)&&(hG==HIGH)){
sD.writeMicroseconds(1350);
sG.writeMicroseconds(1350);
hD= digitalRead(2);
39
hD= digitalRead(3);
}
while((hD==HIGH)&&(hG==LOW)){
sD.writeMicroseconds(1650);
sG.writeMicroseconds(1650);
hD= digitalRead(2);
hD= digitalRead(3);
}
}
Programme de détecteur des obstacles
#include <Servo.h>
Servo RoueG1,RoueD1;
int distance;
void setup()
{
RoueG1.attach(3);
RoueD1.attach(6);
Serial.begin(9600);
}
void loop()
{
distance = analogRead(A0);
while(distance>=40){
40
distance = analogRead(A0);
AvancerR();}
while ((distance<=40)&&(distance>=13)){
distance = analogRead(A0);
AvancerL();}
while(distance<=13){
Arret();
delay(200);
DroiteL();
delay(400);
AvancerR();
delay(1000);
GaucheL();
delay(500);
AvancerL();
delay(1000);
GaucheL();
delay(400);
distance = analogRead(A0);}
Serial.println(distance);
}
void AvancerL(){
41
RoueD1.writeMicroseconds(1750);
RoueG1.writeMicroseconds(1250);
}
void AvancerR(){
RoueD1.writeMicroseconds(2000);
RoueG1.writeMicroseconds(1000);
}
void ReculerL(){
RoueD1.writeMicroseconds(1250);
RoueG1.writeMicroseconds(1750);
}
void ReculerR(){
RoueD1.writeMicroseconds(1000);
RoueG1.writeMicroseconds(2000);
}
void GaucheL(){
RoueD1.writeMicroseconds(1750);
RoueG1.writeMicroseconds(1750);
}
void DroiteL(){
RoueD1.writeMicroseconds(1250);
RoueG1.writeMicroseconds(1250);
42
}
void GaucheR(){
RoueD1.writeMicroseconds(2000);
RoueG1.writeMicroseconds(2000);
}
void DroiteR(){
RoueD1.writeMicroseconds(1000);
RoueG1.writeMicroseconds(1000);
}
void Arret(){
RoueD1.writeMicroseconds(1500);
RoueG1.writeMicroseconds(1500) ; }
Conclusion
L’objectif de notre projet est d’étudier un robot suiveur de ligne et détecteur des
obstacles mettant en application nos connaissances acquises en cours nous avons choisi notre
matériel en fonction de nos besoins essayé différentes solutions a fin d’arriver aux
fonctionnalités souhaitées.
On peut développée le travail de différentes manière, par exemple, on peut commander le robot à distance à travers un téléphone mobile (avec les ports TX,RX de la carte arduino) en
43
ajoutant le shield à notre carte Arduino. L’équipe Arduino vient de lancer la commercialisation de leur nouveau shield GSM.
44