Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Robot détecteur d’o sta le contrôlé par Zigbee RAPPORT DU PROGET ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Table de matières : Remerciement Introduction I. Présentation du projet 1. But de projet 2. Cahier des charges II. Etude théorique 1. Généralités sur le Xbee et le protocole Zigbee 2. Fonctionnement du Robot 3. Choix des composants - Arduino Duemilanove - SERVOMOTEURS - CAPTEUR ULTRASONS HC-SR04 - Wireless A/V Camera - Xbee S1 III. Réalisation pratique 1. Modification des servos moteurs 2. Simulation sur Proteus 8 3. Programmation du robot 4. Configuration de Xbee 5. Test et réglages Conclusion 1 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Remerciement : Nous profitons par le biais de ce rapport, pour exprimer nos vifs remerciements à toute l’équipe pédagogique de l’Ecole National des Sciences Appliquées de Khouribga pour avoir assuré la partie théorique de notre parcours scolaire. Un merci bien particulier adressé également à nos professeurs Mr. Lagrat, et Mr. Massour, qui nous ont donné de leurs temps et expériences pour nous guider tout le long de ce projet. Merci de nous avoir tant soutenus et couragé durant le processus de réalisation de ce projet. Que Dieu vous bénisse. 2 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Introduction : La Robotique fait partie des sciences des objets et des systèmes artificiels. Elle peut être vue comme la science de la perception et du mouvement et de leur intégration en une machine physique, mécanique et informatique. Un robot est donc un système matériel possédant des capacités de perception, d’action, de décision et de communication, parfois capable d’améliorer ses propres performances par apprentissage automatique ou supervisé par des humains, pour : - agir dans un environnement ouvert ou confiné, dynamique et imparfaitement modélisé, voire inconnu, à des échelles allant du nanomonde au macromonde ; - exécuter de façon autonome ou en relation avec un humain, des tâches d’observation, d’exploration, de modélisation, de manipulation et/ou d’intervention sur l’environnement ; - interagir le cas échéant avec d’autres machines ou avec des humains, matériellement ou virtuellement. Au plan scientifique, la Robotique est dotée de plusieurs grands journaux internationaux (IEEE Trans. on Robotics 3, Int. Journal of Robotics Research, Int. Journal of Robotics and Autonomous Systems) (à moindre titre : Int. Journal of Advanced Robotics Systems, Int. Journal of Robotics and Mecatronics,) et de plusieurs conférences internationales dont les deux plus importantes: IEEE Int. Conf. on Robotics and Automation, IEEE/RSJ Int. Conf. on Intelligent Robots and Systems. Si la Robotique non manufacturière a été longtemps considérée comme un champ scientifique très prospectif dont les applications, en dehors de la conquête spatiale, semblaient futuristes, les progrès scientifiques et technologiques importants intervenus dans les grandes disciplines invoquées par la Robotique (mécanique, électronique, automatique, informatique) ont considérablement ouvert le spectre de ses applications, de plus en plus tangibles et crédibles. 3 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE I. Présentation du projet 1. But du projet : Ce projet vise la réalisation d’un robot détecteur d’obstacle, contrôlé par une carte Arduino. Le guidage du robot sera fait à distance en « temps réel » grâce à des modules sans fil Xbee, qui utilisent le protocole Zigbee comme moyen de communication. Ainsi, le robot va disposer d’une caméra sans fil, avec laquelle on aura une acquisition de données sous formes d’image en « temps réel » aussi. Ceci va nous permettre d’exploiter les critères de la communication en « temps réel » avec le microcontrôleur, ainsi de découvrir les problèmes qu’on peut rencontrer durant le couplage de la carte Arduino avec les modules Xbee. 2. Cahier de charges : -Réalisation d’un robot détecteur d’obstacles. -commande à distance à l’aide du module Xbee. -Supervision à l’aide d’une caméra sans fil A/V. II. Etude théorique : 1. Généralités sur le Xbee et le protocole Zigbee Les produits MaxStream XBee sont des modules de communication sans fil très populaires fabriqués par l’entreprise Digi International. Ils ont été certifiés par la communauté industrielle ZigBee Alliance en 2006 après le rachat de MaxStream par Digi International. La certification Zigbee se base sur le standard IEEE 802.15.4 qui définit les fonctionnalités et spécifications des réseaux sans fil à dimension personnelle (Wireless Personal Area Networks : WPANs). Nous verrons plus loin chacun des termes qui peuvent poser problème. Les principales caractéristiques du XBee : – fréquence porteuse : 2.4Ghz 4 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE – portées variées : assez faible pour les XBee 1 et 2 (10 100m), grande pour le XBee Pro (1000m) – faible débit : 250kbps – faible consommation : 3.3V @ 50mA – entrées/sorties : 6 10-bit ADC input pins, 8 digital IO pins – sécurité : communication fiable avec une clé de chiffrement de 128-bits – faible coût : ˜ 25€ – simplicité d’utilisation : communication via le port série – ensemble de commandes AT et API – flexibilité du réseau : sa capacité à faire face à un noeud hors service ou à intégrer de nouveaux nœuds rapidement – grand nombre de noeuds dans le réseau : 65000 – topologies de réseaux variées : maillé, point à point, point à multipoint Les modules Xbee utilisent le protocole Zigbee comme protocole de communication. Ce protocole qui est de haut niveau permet la communication de petites radios, à consommation réduite, basée sur la norme IEEE 802.15.4 pour les réseaux à dimension personnelle (Wireless Personal Area Networks : WPAN). Ratifiées le 14 décembre 2004, les spécifications de ZigBee 1.0 sont disponibles auprès des membres de la communauté industrielle ZigBee Alliance. Cette technologie a pour but la communication de courte distance telle que le propose déjà la technologie Bluetooth, tout en étant moins chère et plus simple. À titre d’exemple, les nœuds ZigBee classiques nécessitent environ 10% du code nécessaire à la mise en œuvre de nœuds Bluetooth ou de réseaux sans fil, et les nœuds ZigBee les plus élémentaires peuvent ainsi descendre jusqu’à 2%. Le ZigBee semble avoir été conçu pour réaliser ce qu’on appelle l’Internet des objets, un ensemble d’objets communiquants voir "autonomes", une extension d’Internet aux objets physiques. La domotique est l’exemple le plus parlant. 5 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Une autre application peut s’avérer très utile : programmer à distance une carte Arduino. En effet, d’habitude on relie sa carte avec câble USB, mais comment faire quand la carte est située à trois mètres de hauteur? La programmation à distance est donc la solution. 2. Fonctionnement du robot : Pendant ce projet, on réalisera un robot détecteur d’obstacles. Le robot utilise constamment une sonde à ultrasons pour détecter la présence d'un obstacle devant lui. Selon les valeurs données au programme, si aucun obstacle n'est détecté à 6 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE moins de d’une distance donnée devant lui, il continue d'avancer en ligne droite. Si un obstacle est détecté à cette distance ou moins, il tourne sur lui-même jusqu'à ce que la voie soit libre sur la distance assignée. 3. Choix des composantes : 3.1 Arduino Duemilanove : La carte Arduino Duemilanove("2009") est une carte à microcontrôleur basée sur l'ATmega168 pour les premières version ou sur l'ATmega328 pour les versions actuelles. Elle dispose :  de 14 broches numériques d'entrées/sorties (dont 6 peuvent être utilisées en sorties PWM (largeur d'impulsion modulée)),  de 6 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties numériques),  d'un quartz 16Mhz,  d'une connexion USB,  d'un connecteur d'alimentation jack,  d'un connecteur ICSP (programmation "in-circuit"),  et d'un bouton de réinitialisation (reset). Elle contient tout ce qui est nécessaire pour le fonctionnement du microcontrôleur; Pour pouvoir l'utiliser, 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). 7 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE "Duemilanove" signifie 2009 en Italien et ce nom est donné d'après l'année de sa sortie. La Duemilanove est la dernière-née dans la série des cartes Arduino USB; son brochage se présente comme ceci : Chacune des 14 broches numériques de la carte Duemilanove (numérotées des 0 à 13) peut être utilisée soit comme une entrée numérique, soit comme une sortie numérique, en utilisant les instructions pinMode(), digitalWrite() et digitalRead() du langage Arduino. Ces broches fonctionnent en 5V. Chaque broche peut fournir ou recevoir un maximum de 40mA d'intensité et dispose d'une résistance interne de "rappel au plus" (pull-up) (déconnectée par défaut) de 20-50 KOhms. Cette résistance interne s'active sur une broche en entrée à l'aide de l'instructiondigitalWrite(broche, HIGH). De plus, certaines broches ont des fonctions spécialisées :     Communication Serie: Broches 0 (RX) et 1 (TX). Utilisées pour recevoir (RX) et transmettre (TX) les données séries de niveau TTL. Ces broches sont connectées aux broches correspondantes du circuit intégré FTDI de la carte, composant qui assure l'interface entre les niveaux TTL et le port USB de l'ordinateur. Interruptions Externes: Broches 2 et 3. Ces broches peuvent être configurées pour déclencher une interruption sur une valeur basse, sur un front montant ou descendant, ou sur un changement de valeur. Voir l'instruction attachInterrupt() pour plus de détails. Impulsion PWM (largeur d'impulsion modulée): Broches 3, 5, 6, 9, 10, et 11. Fournissent une impulsion PWM 8-bits à l'aide de l'instruction analogWrite(). SPI (Interface Série Périphérique): Broches 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ces broches supportent la communication SPI (Interface Série Périphérique) qui, bien que disponible d'un point de vue matériel, n'est pas actuellement inclut dans le langage Arduino. Une librairie pour communication SPI est cependant disponible. 8 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE   I2C: Broches 4 (SDA) et 5 (SCL). Supportent les communications de protocole I2C (ou interface TWI (Two Wire Interface - Interface "2 fils"), disponible en utilisant la librairie Wire/I2C (ou TWI - Two-Wire interface - interface "2 fils") . LED: Broche 13. Il y a une LED incluse dans la carte connectée à la broche 13. Lorsque la broche est au niveau HAUT, la LED est allumée, lorsque la broche est au niveau BAS, la LED est éteinte. 3.2 Les servomoteurs : Un servomoteur (souvent abrégé en « servo », provenant du latin servus qui signifie « esclave ») est un moteur capable de maintenir une opposition à un effort statique et dont la position est vérifiée en continu et corrigée en fonction de la mesure. C'est donc un système asservi. Le terme servomoteur désigne également de manière abusive le préactionneur, la plupart du temps pneumatique (système membrane/ressort), plus rarement hydraulique ou électrique d'une vanne de régulation. Dans ce cas l'asservissement de position est toujours effectué par un organe distinct nommé positionneur. Un servomoteur est un système motorisé capable d'atteindre des positions prédéterminées, puis de les maintenir. La position est : dans le cas d’un moteur rotatif, une valeur d'angle et, dans le cas d’un moteur linéaire une distance. On utilise des moteurs électriques (continu, asynchrone, brushless) aussi bien que des moteurs hydrauliques. Le démarrage et la conservation de la position prédéterminée sont commandés par un système de réglage. Pour un ajustement précis de la position, le moteur et son réglage sont équipés d'un système de mesure qui détermine la position courante (p. ex. l'angle de rotation parcouru relatif à une position de départ) du moteur. Cette mesure est effectuée sur un réglage rotatif, p. ex. un résolveur, un réglage incrémental ou un réglage absolu (réalisable p. ex. par un potentiomètre). Le système de réglage souvent électronique compare le signal à une valeur prescrite de la position de consigne. S’il y a une déviation, le moteur est commandé dans la direction qui garantit le plus petit chemin à effectuer pour arriver à la valeur de consigne. Cela a pour conséquence de faire diminuer l'écart. La procédure se répète aussi longtemps et, jusqu'à ce que la valeur courante se trouve incrémentiellement ou par l'intermédiaire d’une approximation dans les seuils de tolérance de la valeur consigne. Alternativement, la position du moteur peut être saisie aussi numériquement et comparée via un ordinateur approprié à une valeur prescrite. Dans une certaine mesure, ces moteurs peuvent être remplacés par des moteurs pas-à-pas qui occasionnent moins de dépenses. Mais les moteurs pas-à-pas peuvent toutefois, dans certaines conditions, commettre des erreurs de mise en position (sauter des pas). De plus, les servomoteurs – 9 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE généralement avec boîte de vitesses – peuvent délivrer des couples plus élevés et être actionnés avec des vitesses de rotation plus importantes, ce qui est favorable lors des applications dynamiques qui exigent particulièrement une sécurité de travail élevée ou des temps d'ajustage rapides. Un moteur électrique à courant alternatif ou continu est jumelé à un train d'engrenages démultipliant qui entraîne un axe avec une grande force de torsion. Généralement, la rotation de cet axe est restreinte à seulement 180 degrés par un mécanisme interne. Des composants électroniques détectent la position réelle de l'axe et contrôlent la rotationdu moteur électrique tant que la position de l'axe ne se conforme pas à celle requise par la commande externe. Il existe une vaste gamme de servomoteurs : des gros modèles industriels de plusieurs kilogrammes à courant alternatif, avec des boîtiers et carters d'engrenages en métal, jusqu'aux minuscules servomoteurs en plastique de quelques grammes à courant continu que l'on retrouve en modélisme dans les avions, les bateaux, les voitures et les hélicoptères modèles réduits. Les servomoteurs utilisés dans ce projet sont du type MG996R pour le mouvement des roues du robot, et un servomoteur SG90 pour le mouvement du capteur ultrasons. 3.3 Capteur ultrasons : Les capteurs à ultrasons ont établi de nouvelles références en automatisation Le principe des ultrasons: Un capteur à ultrasons émet à intervalles réguliers de courtes impulsions sonores à haute fréquence. Ces impulsions se propagent dans l’air à la vitesse du son. Lorsqu’elles rencontrent un objet, elles se réfléchissent et reviennent sous forme d’écho au capteur. Celui-ci calcule alors la distance le séparant de la cible sur la base du temps écoulé entre l’émission du signal et la réception de l’écho. La distance étant déterminée par le temps de propagation des ultrasons et non par leur intensité, les capteurs à ultrasons conviennent parfaitement à une suppression d’arrière-plan. 10 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Pratiquement tous les matériaux réfléchissant le son peuvent être détectés, quelle que soit leur couleur. Même les objets transparents ou films minces ne posent aucun problème à un capteur à ultrasons. Les capteurs à ultrasons microsonic sont disponibles pour des portées de 20 mm à 10 m et, du fait même de leur principe, donnent la valeur mesurée au millimètre près. Certains capteurs peuvent même atteindre une précision de 0,025 mm. Les capteurs avec une zone morte de 20 mm seulement et un faisceau sonore extrêmement étroit permettent aujourd'hui des applications entièrement nouvelles : Des mesures de niveau de remplissage dans des puits de plaques de microtitration et des tubes à essais ainsi que le palpage de petits flacons dans l'industrie de l'emballage peuvent être effectués sans problèmes. Ils détectent également avec fiabilité les fils minces. Pour ce projet, on utilisera un capteur ultrasons HC-SR04 qui se présente comme ceci : 3.4 Camera A/V sans fil : Comme son nom indique, il s’agit d’une caméra dont l’émission du signal se fait sans fil (par wifi). Cette caméra est principalement utilisée pour les organes de sécurité et surveillance. III. Réalisation pratique : 1. Modification des servomoteurs : Il y a 3 modifications à apporter au servomoteur d'origine · modifier le potentiomètre pour une rotation complète · rajouter 2 résistances sur le circuit imprimé · couper l'ergot sur le pignon de sortie 11 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Démonter le servomoteur A l'aide d'un petit tournevis cruciforme on dévisse les 4 vis du boîtier. On a obtenu ceci Extraire le circuit imprimé On décompose les roues dentées et le roulement à bille en repérant bien la position de montage. 12 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Modification du potentiomètre On va garder juste la fonction mécanique du potentiomètre comme l'axe de ce dernier est le support du pignon de sortie. Il faut que le potentiomètre puisse effectuer un tour complet. En ce qui concerne la fonction électrique on va remplacer le potentiomètre par deux résistances fixes. On dévisse l'écrou de fixation du potentiomètre et on le retire du boîtier. On ouvre le potentiomètre en dépliant les 3 languettes à l'aide d'un petit tournevis. On modifie le potentiomètre afin que son axe puisse faire une rotation complète. A l'aide d'une petite pince coupante couper la butée du capot et la plier vers l'extérieur. On coupe le contact à pression au ras du disque afin que l'axe du potentiomètre puisse effectuer un tour complet sans frottement. On coupe également les 2 contacts à pression du couvercle, ceci diminue les frottements. 13 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE On renferme le potentiomètre en resserrant les languettes avec une pince. On dessoude les fils rouge, jaune et bleu du potentiomètre et du circuit imprimé. On utilise un petit fer à souder surtout pour le circuit imprimé. Pour nettoyer les trous pastillées, on utilise de la tresse à dessouder. On Remet le potentiomètre en place. A effectuer uniquement sur un des 2 servomoteurs. On dessoude les 2 fils du moteur CC et les croiser. Ceci afin que les 2 servomoteurs tournent dans le même sens pour une même impulsion. Mise en place des résistances On prend 4 résistances de 1,5 K et on les soude comme indiqué sur la photo au plus près du circuit imprimé. 14 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Modification du pignon de sortie Couper l'ergot du pignon de sortie. On remet les pignons en place et on vérifiez que le pignon de sortie puisse effectuer un tour complet. On remet le circuit imprimé en place, puis on renferme le boîtier. 15 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE 2. Simulation sur ISIS : Pour mieux prédire le comportement de notre robot la simulation est exigée, on a réalisé ce schéma suivant pour la version basic (détecteur d’obstacle): Cette méthode basée sur un entête de détection dynamique afin de garantir la précision ainsi une décision un peu intelligente par rapport au methode classique. 16 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Après l’intégration du Xbee on utilise ce schéma de commande suivant : Donc on pratique, on obtiendra le montage suivant : 17 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE 3. Programmation du robot et réalisation de l’interface LabView : Ce code arduino n’est pas à ça version final : 18 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE L’interface LabView est réalisée à l’aide du bloc VISA, ce dernier ce immédiatement avec arduino : Cette interface est encore en développement : 19 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE 4. Configuration de Xbee Cette partie s’intéresse à la configuration des XBee ’series 1’, il est bon d’avoir une carte qui fasse la liaison avec un ordinateur sous Windows pour utiliser le logiciel de configuration distribué par Digi : X-CTU. Une fois familiarisé avec l’interface du logiciel X-CTU, on va configurer deux modules pour qu’ils communiquent entre eux. Il suffit de retenir les deux principes suivants : - utiliser un identifiant de réseau (PAN ID) unique (changer la valeur par défaut) - toujours avoir au moins un module et un seul en rôle coordinateur, et tous les autres en routeurs. On suit ces étapes pour la configuration : 20 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Le même ID : 21 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE 5. Test et réglages La version finale de projet : Dès la première fois le fonctionnement du robot connu certain défauts, il est nécessaire de modifier le code ainsi l’interface de commande et l’emplacement de quelques composantes. 22 ROBOT DÉTECTEUR D’OBSTACLE CONTRÔLÉ PAR ZIGBEE Conclusion : La réalisation de ce robot a donc passé par deux phases principales: La première a consisté à réaliser la commande du robot détecteur d'obstacle par le microcontrôleur Arduino, par la suite, on a pu intégrer le module Xbee dans le système, et ainsi commander l'arduino à distance en utilisant le protocole Zigbee compatible avec le module Xbee. Durant le processus de réalisation du robot, on a rencontré pas mal d'obstacles, voir l'indisponibilité de quelques composantes, ainsi que la contrainte du temps, mais à l'issu de ce projet, on a pu comprendre l'importance des études théoriques qui doivent être faites avant toute entamassions du côté pratique, ainsi que la nécessité du travail en groupe et l'esprit d'équipe. 23