Vous êtes sur la page 1sur 24

Robot détecteur

d’obstacle 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

Vous aimerez peut-être aussi