Vous êtes sur la page 1sur 43

Table des matières

Liste des figures ...................................................................................................................................... iii


Liste des tableaux .................................................................................................................................... iv
Introduction générale ............................................................................................................................... 1
Chapitre1 Etude préliminaire..................................................................................................................... 2
Introduction............................................................................................................................................. 2
I. Contexte général du projet..................................................................................................................... 2
II. Etat de l’art........................................................................................................................................... 2
1. La robotique ..................................................................................................................................... 2
2. Les différents types de robots ............................................................................................................ 3
2.1. Bras manipulateurs ..................................................................................................................... 3
2.2. Robots mobiles........................................................................................................................... 4
2.3. Robots volants............................................................................................................................ 4
2.4. Robots marins............................................................................................................................. 5
2.5. Robots terrestres ........................................................................................................................ 5
2.6. Robots à pattes........................................................................................................................... 6
2.7. Robots à chenilles : ..................................................................................................................... 6
2.8. Robots à roues :.......................................................................................................................... 7
II. Critique de l’existant ............................................................................................................................. 8
III. Comment commander un robot à distance ? ......................................................................................... 8
IV. Solution proposée................................................................................................................................ 9
Conclusion ............................................................................................................................................. 10
Chapitre2 Environnement matériel.......................................................................................................... 11
Introduction........................................................................................................................................... 11
I. Partie mécanique ................................................................................................................................. 11
II. Partie électronique ............................................................................................................................. 11
1. La carte Arduino UNO...................................................................................................................... 11
2. Connecteur Bluetooth ..................................................................................................................... 13
2.1. Différentes normes de Bluetooth ............................................................................................... 13
2.2. La technologie Bluetooth IEEE 802.15.1...................................................................................... 14
2.3. Usage ....................................................................................................................................... 14

i
3. Caméra IP (ou Caméra WIFI) ........................................................................................................... 15
3.1. Les adresses IP : ........................................................................................................................ 16
3.2. Les protocoles de transport destinés à la vidéo sur IP :................................................................ 16
3.3. Les protocoles TCP/IP et les ports utilisés dans le cadre de la vidéo sur IP .................................... 16
3.4. Modes de transmission des données ......................................................................................... 16
4. Routeur wifi .................................................................................................................................... 17
4.1. Les différentes normes Wifi ....................................................................................................... 17
4.2. La technologie Wifi IEEE 802.11.b .............................................................................................. 18
5. Module L298N ................................................................................................................................ 18
6. Moteurs à courant continu .............................................................................................................. 18
Chapitre3 Environnement logiciel ............................................................................................................ 20
Introduction........................................................................................................................................... 20
I. Environnement logiciel......................................................................................................................... 20
1. Android....................................................................................................................................... 20
2. App Inventor pour Android .............................................................................................................. 21
3. Arduino .......................................................................................................................................... 22
3.1. Présentation de l’Arduino.......................................................................................................... 22
3.2. Fenêtre générale de l’application Arduino .................................................................................. 23
3.3. Programmation avec Arduino .................................................................................................... 24
3.4. Les fonctions sous Arduino ........................................................................................................ 25
II. Mise en place du projet....................................................................................................................... 26
1. Interface Android : .......................................................................................................................... 26
1.1. Connexion à la carte Arduino ..................................................................................................... 27
1.2. Connexion à la caméra IP........................................................................................................... 28
1.3. Contrôle du robot :................................................................................................................... 28
1.4. Contrôle de la vitesse du mouvement: ....................................................................................... 29
2. Partie Arduino : ........................................................................................................................... 29
Conclusion ............................................................................................................................................. 34
Conclusion générale................................................................................................................................ 35
Annexe .................................................................................................................................................. 36
Bibliographie .......................................................................................................................................... 38

ii
Liste des figures
Figure 1 : Bra Manipulateur ...................................................................................................................... 3
Figure 2 : Robots volants........................................................................................................................... 5
Figure 3 : Robot Marin.............................................................................................................................. 5
Figure 4 : Robots à pattes .......................................................................................................................... 6
Figure 5 : Robots à chenilles...................................................................................................................... 7
Figure 6 : Robots à roues........................................................................................................................... 8
Figure 7 : Relation entre application androïde et robot via wifi .................................................................. 10
Figure 8 : La carte Arduino UNO............................................................................................................. 13
Figure 9 : La portée des réseaux en fonction du débit ................................................................................ 13
Figure 10 : Périphériques informatiques Bluetooth .................................................................................... 14
Figure 11 : Usage mobile de Bluetooth..................................................................................................... 15
Figure 12 : Module Bluetooth .................................................................................................................. 15
Figure 13 : Caméra IP ............................................................................................................................. 17
Figure 14 : Schéma interne d’un moteur à courant continu en rotation ........................................................ 19
Figure 15 : interface de « App Inventor » ................................................................................................. 22
Figure 16 : Programmation avec « App Inventor » .................................................................................... 22
Figure 17 : Fenêtre générale de l’application Arduino ............................................................................... 24
Figure 18 : Structure d’un programme Arduino......................................................................................... 25
Figure 19 : Interface de l’application sur Mit App Inventor........................................................................ 27
Figure 20 : bloc du programme décrivant comment se fait la connexion à la carte Arduino .......................... 27
Figure 21 : Figure de bloc de URL de la camera IP ................................................................................... 28
Figure 22 : Message «forward »............................................................................................................... 29
Figure 23 : Message «première » vitesse .................................................................................................. 29
Figure 24 : Sous programme de marche avant........................................................................................... 31
Figure 25 : Sous programme de vitesse premier ........................................................................................ 31
Figure 26 : Bloc de programme d’initialisation des pins 1 et 2 du moteur ................................................... 32
Figure 27 : commander le robot ............................................................................................................... 33
Figure 28 : contrôle du vitesse ................................................................................................................. 33

iii
Liste des tableaux
Tableau 1 : Matériels utilisés ................................................................................................................... 30
Tableau 2 : Valeurs des différentes variables et actions relatives ................................................................ 31
Tableau 3 : Description de quelques sous-programmes ............................................................................. 32

iv
Introduction générale
La robotique est un domaine multidisciplinaire. Elle englobe principalement les domaines de
la mécanique, de l’électronique, de l’automatique et de l’informatique industrielle. Un robot est un
système mécanique poly-articulé mû par des actionneurs et commandé par un calculateur qui est
destiné à effectuer une grande variété de tâches. C’est une machine pouvant manipuler des objets et
réaliser des tâches par un programme modifiable. Ils sont principalement utilisés dans l’industrie
pour réaliser des manipulations répétitives. L’avantage d’un robot sur l’homme est sa régularité : il
peut exécuter le même mouvement des milliers de fois sans ressentir la moindre fatigue. De plus, les
robots peuvent être construits de manière à pouvoir résister à des conditions qui seraient
dangereuses, voire mortelles pour l’homme.

Le téléphone portable est un objet mondialisé, en effet utiliser son smartphone est devenu du
quotidien .La téléphonie mobile a subit une révolution technologique, et surtout une grande évolution
chez les consommateurs qui sont pour la plupart, connectés en permanence. les smartphone sont
basés sur l'Android et IOS , ce système a été tout d'abord conçu pour eux elles sont pour la plupart
distribuées depuis des plateformes de téléchargement (parfois elles-mêmes contrôlées par les
fabricants de smartphones) telles que l'App Store (plateforme d'Apple), le Google Play (plateforme
de Google / Android), ou encore le Windows Phone Store (plateforme de Microsoft). Les
applications Android peuvent être programmées et conçues comme on l'en désire selon un besoin
bien précis.

La mise en place d’un robot en fonction souffre de plusieurs problèmes soit coté
fonctionnement, soit coté commande à distance. La problématique abordée dans notre projet est
comment on pourra commander un robot à distance sans se limiter à la longueur d’un fil, et aussi
comment on pourra contrôler son emplacement dans un certain milieu sans être nécessairement dans
le même emplacement du robot.

Notre solution consiste alors à implémenter une application mobile sous Android assurant la
commande d’un robot à base de carte Arduino, et permettant aussi d’exploiter le milieu qui
l’entourne.

Le présent rapport est organisé comme suit : Le premier chapitre présente l'objectif de notre
projet et une classification des robots mobiles en général. Nous terminons ce chapitre par les
différends problématiques des anciens robots et leurs solutions et à la fin nous exposons la solution
proposée. Le second chapitre est consacré à la description des caractéristiques des différents
composants de notre robot. Dans le dernier chapitre nous nous intéressons à la réalisation réelle du
robot et à la description de l’interface Android de notre application.

1
Chapitre1

Etude préliminaire

Introduction

Ce chapitre est consacré à faire l’étude préliminaire introduisant notre projet. On va essayer
au début de faire l’état de l’art des différents robots existants et d’introduire à la suite les problèmes
liés à l’utilisation de ces robots. Ensuite, on a répondu à la question : comment commander un robot
à distance. Et enfin, on a fini par présenter notre solution proposée.

I. Contexte général du projet

La robotique est au service de l'homme dans de nombreux domaines. En effet de nouveaux


robots voient le jour permettant de voir, d'entendre, de parler et de vous déplacer chez vous depuis
n'importe quel point de la planète.

Le sujet concerne alors le contexte de la robotique, et spécifiquement comment on pourra


commander un robot à distance et afficher ce qui existe dans le champ visuel d’un robot depuis un
téléphone mobile, en se basant sur la liaison Bluetooth et la liaison Wifi. Pour mener à bien ce projet,
on va commencer par présenter les différents robots existants en réalité.

II. Etat de l’art

1. La robotique

Le terme robot est apparu pour la première fois aux années vingt dans une pièce de théâtre du
tchèque K. Tschapek. Le terme a été repris et grandement popularisé par Isaac Asimov "robots" ou
"robota" (travail forcé) et robotnik (ouvrier) .Avec la variété de robots développés aujourd’hui, il est

2
difficile de définir ce terme spécifiquement. Une définition générale consiste à définir un robot
comme un système autonome programmé pour exécuter une ou plusieurs tâches. Dans un cadre
général, la robotique est l’ensemble des techniques permettant la conception et la réalisation de
machines automatiques ou de systèmes robotisés relavant des aspects concernant la mécanique,
l’informatique, et l’électronique, l’automatique .[1]

Un robot est une machine programmable qui imite des actions d’une créature intelligente. Il
peut manipuler des objets et réaliser des mouvements variés dictés par un programme aisément
modifiable. Programmer ces machines consiste, dans un premier temps, à spécifier la séquence des
mouvements à réaliser. Elles prennent actuellement une place importante dans notre vie. On les
trouve dans toutes les entreprises pour accélérer la production ou pour agir là où l’homme ne peut
travailler à cause du danger, à la maison pour aider à la cuisine et aux tâches ménagères, à la guerre
(un missile, ça peut-être considéré comme un robot), dans les services publics : hôpitaux, casernes de
pompiers, police, etc.Ces robots marchent, volent, nagent, parlent, imitent l’être humain et voir le
comprendre. [2]

2. Les différents types de robots

Plusieurs types de robots existent. La classification dépend de la fonction à réaliser par le robot.

2.1. Bras manipulateurs


Il s’agit d’une structure articulée dotée de plusieurs degrés de liberté, il est équipé de moteurs
qu’on appelle aussi actionneurs. Ces derniers peuvent être électriques ou pneumatiques pour les
faibles charges ou hydrauliques pour les fortes charges. Leurs mouvements sont limités par des
butées. Ils sont commandés à l’aide de logique à relais ou pneumatique (séquences fixes), ou par des
automates programmables et cartes à microprocesseur séquence variable. [3]

Figure 1 : Bra Manipulateur

3
L’environnement c’est l’univers dans lequel est immergé le robot, il est limité puisque ce type
des machines est à base fixe. La tâche à la robotique peut être décomposée en une suite de
mouvements. Les robots manipulateurs se sont aujourd’hui généralisés dans l’industrie, rares sont les
applications industrielles qui utilisent des robots mobiles.

2.2. Robots mobiles


De manière générale, on regroupe sous l’appellation robots mobiles l’ensemble des robots à
base mobile, par opposition aux robots manipulateurs. Les applications des robots mobiles peuvent
se trouver dans de nombreuses activités mais également pour des applications ludiques ou de service.
On peut estimer que les robots mobiles à roues constituent le gros des robots mobiles.
Historiquement, leur étude est venue assez tôt, par rapport à celle des robots manipulateurs. Malgré
leur simplicité apparente (mécanismes plans, à actionneurs linéaires), ces systèmes ont soulevé un
grand nombre de problèmes difficiles.

On distingue, sans trop d’ambiguïté, un certain nombre de problèmes en robotique mobile.


Bien évidemment, l’aspect matériel, qui consiste à choisir et dimensionner aussi bien la structure
mécanique du système que sa motorisation. [4]

Le choix des actionneurs et de leur alimentation est généralement assez traditionnel. La


plupart des robots mobiles sont ainsi actionnés par des moteurs électriques à courant continu avec ou
sans collecteur, alimentés par des convertisseurs de puissance fonctionnant sur une batterie. De la
même façon, les architectures de contrôle-commande des robots mobiles ne sont pas différentes de
celles des systèmes automatiques ou robotiques plus classiques. On peut classer les robots mobiles
suivant leur environnement sous trois classes, les robots volants, les robots marins et les robots
terrestres.

2.3. Robots volants


L’emploi des robots volants, appelés aussi des aérobots, est encore limitée à ce jour,
essentiellement à cause des réglementations restreignant ou interdisant leur utilisation au sein de
l’espace aérien. Les applications militaires potentielles sont, par exemple, l’aide au fantassin, la
reconnaissance des zones à risques, la cartographie des régions ou des bâtiments, la localisation des
victimes lors de conflit. On distingue différents types de ces derniers : les ballons dirigeables, les
hélicoptères ou avions miniatures, ainsi que d’autres moins connus tels que les drones à 4, 3 ou 2
rotors. Chaque type de drone a sa propre application (cartographies, missions de surveillance,
détections, transports, etc.). [5]

4
Figure 2 : Robots volants

2.4. Robots marins


Ce domaine de robotique n’est généralement connu que par les militaires et quelques
universités de recherches. Dans le domaine militaire, un robot sous-marin est un navire submersible
capable de se déplacer en surface et sous l’eau. Il se distingue ainsi des autres
bateaux et navires qui se déplacent uniquement à la surface. La plupart des sous-marins sont des
navires de guerre. Dans la littérature, une équipe d’ingénieurs japonais ont créé un robot capable de
nager et de se transformer en véritable sauveteur des mers. Il est capable de nager le crawl et le dos
crawlé. A l’essai, le robot a réalisé le troisième temps mondial des êtres humains sur 100 mètres.

Un autre projet qui s’appelle EMILY (Emergency Integrated Life saving lanYard) a été conçu
par la société Hydronalix pour assister les maîtres-nageurs-sauveteurs. Avec une autonomie de 130
km, il est capable de rejoindre une personne en danger à une allure de 45 km/h, et de s’orienter à
l’aide d’un sonar. [6]

Figure 3 : Robot Marin

2.5. Robots terrestres


L’avantage pris par les drones aériens s’explique par le fait qu’ils se déplacent dans un milieu
homogène « le ciel », ce qui n’est pas le cas des robots terrestres qui doivent affronter un milieu plus
difficile. La nature du sol, le relief, les obstacles etc, des difficultés que doivent prendre en compte
les ingénieurs qui développent ces engins sont infinis. Dont le but est de protéger l’humain, c’est-à-
dire lui faire ce qui est dangereux pour l’homme, d’apporter un plus tactique, à savoir voir, sentir,
écouter, agir plus loin que ne peut le faire, pour réaliser une tâche précise : exploration planétaire,
aide à la recherche dans les catastrophes, surveillance. Pour trouver de nouveaux moyens de

5
locomotion, certains chercheurs s’inspirent des êtres vivants et des humains, on trouve généralement
les robots à pattes, à roues et à chaînes. [7]

2.6. Robots à pattes


Des chercheurs scientifiques étudient la locomotion des animaux dotés de nombreuses pattes :
crabes, fourmis, cafards, mille-pattes, geckos et ils sont utilisés pour la réalisation des robots à pattes.
L’idée première est que les pattes permettent de franchir les obstacles que les roues refusent. Mais
les robots à pattes se révèlent compliqués, lents et il leur faut souvent un terrain assez plat et dur.

Figure 4 : Robots à pattes

Les robots à deux pattes plus performantes sont représentés par le Honda Asimo, très abouti
avec sa forme humanoïde imitant à la perfection la marche et la course de l’homme.
Il monte et descend les escaliers mais s’il tombe, il semble ne pas pouvoir se relever mais les progrès
peuvent être rapides. [8]

2.7. Robots à chenilles :


La chenille est tendue sur une série de roues alignées mais suspendues indépendamment,
l’entraînement est réalisé par une roue spéciale, un engrenage nommé « barbotin ». La surface de
contact (bande de roulement) avec le sol est également très supérieure à celle des roues, ce qui
permet d’avoir une meilleure adhérence, les chenilles permettent également de pouvoir se déplacer
dans un environnement délicat car le poids du robot est plus réparti. Et bien sûr de franchir les
obstacles du relief, comme les chars d’assaut, bien que plusieurs innovations tirent parti d’une
mécanique particulière des robots pour franchir des obstacles. [9]

6
Figure 5 : Robots à chenilles

2.8. Robots à roues :


On distingue sans trop d’ambiguïté un certain nombre de problèmes en robotique mo bile.
Bien évidemment, l’aspect matériel, qui consiste à choisir et dimensionner aussi bien la structure
mécanique du système que sa motorisation, son alimentation et l’architecture informatique de son
système de contrôle-commande apparaît comme le premier point à traiter. Le choix de la structure est
souvent effectué parmi un panel de solutions connues et pour lesquelles on a déjà résolu les
problèmes de modélisation, planification et commande.
Le choix des actionneurs et de leur alimentation est généralement assez traditionnel. La plupart des
robots mobiles sont ainsi actionnés par des moteurs électriques à courant continu avec ou sans
collecteur, alimentés par des convertisseurs de puissance fonction nant sur batterie. De la même
façon, les architectures de contrôle-commande des robots mobiles ne sont pas différentes de celles
des systèmes automatiques ou robotiques plus classiques. [10]

Il existe plusieurs classes de robots à roues déterminées, principalement, par la position et le


nombre de roues utilisées. Le 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’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.

Le robot à quatre roues est constitué de deux roues placées sur un même axe et de deux roues
centrées orientables placées elles aussi sur un même axe. Ce robot de type voiture est cependant plus
stable puisqu’il possède un point d’appui supplémentaire.

7
Figure 6 : Robots à roues

Il s’agit d’un robot autonome qui est capable de se déplacer seul sans assistance externe. Ceci
implique qu’il doit être capable à s’adapter aux conditions du terrain.

II. Critique de l’existant

La mise en place d’un robot en fonction souffre plusieurs problèmes soit coté
fonctionnement, soit coté commande à distance. Dans cette partie on va citer certains de ces
problèmes :

 La durée de fonctionnement des robots à base des batteries est très courte.
 Absence de détection d'erreur
 Très complexe au changement de canaux et des modes
 Il faut mettre la fréquence d'émetteur à la même fréquence du récepteur
 Risque de collision (dans le cas de même fréquence)
 Porté limité par la longueur de fil.
 Pas d’exploitation du milieu qui en tourne le robot.

Parmi les problèmes les plus embarrassants est la liaison filaire avec le robot pour le
commander. Les solutions de commande à distance (sas fil) pourront répondre à un tel problème.

III. Comment commander un robot à distance ?

Si on ne veut pas garder son robot "en laisse" au bout d'un câble mais le commander à
distance, on peut utiliser plusieurs outils à savoir: [11]

 Une télécommande infra rouge de télévision : facile et pas cher


 Une liaison radio : on trouve des petits modules émetteurs/récepteurs du genre de ceux
employés en modélisme par exemple:

8
o Radiometrix (vendus par Lextronic)
o Easyradio (vendus par DEVANTECH: Easyrobotics)
o XBEE

 Une liaison bluetooth : les magasins de robotique en proposent, on en trouve aussi une
vendue par Parallax pour s'enficher sur ses modules Boe BoT ou autres
 Une liaison wifi : si on a installé une carte de PC, voire un PC portable, sur le robot (voir le
site des Fribotte). Un tel montage permet facilement de contrôler un robot à distance mais
aussi de transmettre facilement les images d'une webcam fixée sur le robot. Dans ce cas on
peut aussi choisir d'installer un serveur internet sur le robot pour pouvoir l'interroger et le
contrôler. Alors un programme tel que Webcam32 permet de placer les images de la caméra
du robot dans une page du serveur internet.
 Une solution facile à mettre en œuvre mais un peu lourde à l'usage est d'utiliser le
programme Netmeeting pour commander le robot sur un réseau Wifi : on peut alors accéder
aux commandes du robot et aux images de sa caméra embarquée.

IV. Solution proposée

Notre solution proposée intervient à plusieurs niveaux à savoir :

 Utilisation des batteries Li-Po (Lithium-ion Polymère) : sert à alimenter tous les appareils
électriques d’un véhicule automobile. Comme avantage de cette batterie, la densité
énergétique est plus élevée que d’autre batterie et de faible poids que d’autres ce qui est
nécessaire à la fabrication du robot. Ce type de batteries va résoudre le problème de durée
courte de fonctionnement.
 Utilisation de la technique Bluetooth : qui est un système de transmission de données sans fil
à courte portée par liaison radio. Ce système fait partie de ce que l’on appelle maintenant les
WPAN pour Wireless Personal Area Network. L’utilisation d’une telle technologie va
résoudre le problème de commande des robots à distance.
 Utilisation de caméra IP : l’avantage le plus évident de la caméra IP est qu’elle ne vous
oblige pas à installer du câblage entre le routeur et les caméras ou entre le Smartphone et
les caméras qui seront installées dans les robots.
 Utilisation de la technique Wifi : qui est un système de transmission de données sans fil .Il
permet de relier des camera IP et Smartphone à une liaison haut débit (11 Mbps ou supérieur)

9
sur un rayon de plusieurs dizaines de mètres en intérieur (généralement entre une vingtaine et
une cinquantaine de mètres) à plusieurs centaines de mètres en environnement ouvert. Ce
système fait partie de ce que l’on appelle maintenant les WLAN « Wireless local Area
Network ». L’utilisation d’une telle technologie va résoudre le problème de visionnage de
caméra

La partie Robot comprend la carte Arduino et la caméra IP. A partir de notre application
proposée on pourra commander le robot à travers la liaison Bluetooth, et en plus on pourra exploiter
le milieu qui l'en tourne à travers une connexion WiFi à la caméra IP. La figure 7 décrit les
différentes entités fonctionnelles de notre application, ainsi que l’interaction entre ces entités.

Figure 7 : Relation entre application androïde et robot via wifi

Conclusion

Durant ce chapitre introductif, on a présenté les critiques liés à l’utilisation des différents robots
et on a présenté à la fin notre solution proposée pouvant surmonter certains de ces critiques. Le
chapitre suivant sera consacré à la présentation de l’environnement matériel qui sera utilisé pour la
mise en place réelle de notre solution.

10
Chapitre2

Environnement matériel

Introduction

Dans ce chapitre, on mettra l’accent sur les caractéristiques des différents composants qui
nous intéressent pour la réalisation de notre projet. Cet environnement comporte une partie
mécanique et une partie électronique.

I. Partie mécanique

Cette partie ne fut que très rapidement abordée. En effet, au vu des composants disponibles
ainsi que la petite taille des composants électroniques, notre choix se porta sur un véhicule basique,
de forme rectangulaire avec d'un côté les deux moteurs assemblés en une pièce et de l'autre une
simple roue pouvant tourner à 360 degré, laissant ainsi la direction aux deux moteurs. L'Arduino,
fixée au circuit électronique, est ensuite attachée à ce rectangle à l'aide de vis et boulons et le tour est
joué. Nous avons donc privilégié la fonctionnalité du robot avant son esthétique qui n'est qu'un
détail.

II. Partie électronique

1. La carte Arduino UNO

La pièce maîtresse du robot est l'Arduino Uno. C’est un circuit imprimé intégré d'un
microcontrôleur programmable afin de produire des signaux électriques. Son utilisation est simple et
les résultats très satisfaisants. De plus, son faible coût en fait une pièce phare de la robotique de nos
jours. Lorsque celui-ci est mis en tension, une LED verte s'allume avec pour intituler (On). [12]

11
La carte Arduino Uno est une carte à microcontrôleur basée sur l'ATmega328. 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)) :
o Communication Série: Broches 0 (RX) et 1 (TX). Utilisées pour recevoir (RX) et
transmettre (TX) les données sériees de niveau TTL. Ces broches sont connectées
aux broches correspondantes du circuit intégré ATmega8U2 programmé en
convertisseur USB-vers-série de la carte, composant qui assure l'interface entre les
niveaux TTL et le port USB de l'ordinateur.
o 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.
o 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().
o 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) disponible avec la librairie pour communication SPI
o 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") .
o 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.

 6 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties


numériques), chacune pouvant fournir une mesure d'une résolution de 10 bits (càd sur
1024 niveaux soit de 0 à 1023) à l'aide de la très utile fonction analogRead() du langage
Arduino. Par défaut, ces broches mesurent entre le 0V (valeur 0) et le 5V (valeur 1023),
mais il est possible de modifier la référence supérieure de la plage de mesure en utilisant
la broche AREF et l'instruction analogReference() du langage Arduino.
 un quartz 16Mhz,
 une connexion USB,
 un connecteur d'alimentation jack,
 un connecteur ICSP,
 un bouton de réinitialisation (reset).

Pour pouvoir l'utiliser et se lancer, il suffit simplement de la connecter à un ordinateur à l'aide


d'un câble USB (qui fournit 5V sous 500mA). L'alimentation externe (non-USB) peut être soit un
adaptateur secteur (pouvant fournir typiquement de 3V à 12V sous 500mA) ou des piles.

12
Figure 8 : La carte Arduino UNO

2. Connecteur Bluetooth

Bluetooth est un standard de communication permettant l'échange bidirectionnel de données à


très courte distance et utilisant des ondes radio UHF. Son objectif est de simplifier les connexions
entre les appareils électroniques en supprimant des liaisons filaires. Elle peut remplacer par exemple
les câbles entre ordinateurs, tablettes, téléphones mobiles entre eux ou avec
des imprimantes, scanneurs, claviers, souris, manettes de jeu vidéo, téléphones portables, appareils
photo numériques, lecteurs de code-barres et bornes publicitaires interactives, etc…

2.1. Différentes normes de Bluetooth


Il existe en fait plusieurs normes (ou versions) Bluetooth. La figure1 représente les différentes
normes des réseaux, leurs portées en fonction de leurs débits théoriques. [13]

Figure 9 : La portée des réseaux en fonction du débit

 IEEE 802.15.1: standard Bluetooth 1.x, débit de 1Mbit/sec.

13
 IEEE 802.15.2 : recommandations pour l’utilisation de la bande de fréquence des 2.4 GHz.
 IEEE 802.15.3 : standard propose du haut débit (20Mb/s) avec la technologie Bluetooth.
 IEEE 802.15.4 : application Bluetooth à bas débit.

2.2. La technologie Bluetooth IEEE 802.15.1


Pour la réalisation de notre projet, on a utilisé la norme IEEE 802.15.1. Cette technologie est
utilisée dans les réseaux personnels sans fil (WPAN, Wireless Personnel Area Network). Elle
possède ces caractéristiques : [14]

 Utilise la fréquence libre standard ISM radio bands de 2.4Ghz : ondes radio situées entre
2400 et 2483.5 Mhz.
 Le débit théorique est de 1 Mb/s et l'envoie des informations s'effectuent par paquets de
données entourées de blocs de contrôle permettant:
o La mise en réseau des appareils à distance permise.
o Le bon acheminement des données et la correction d'éventuelles erreurs de
transmission.
 Possibilité d'avoir 8 appareils chainés pour former un petit réseau picoréseau ou piconet.

2.3. Usage
Aujourd’hui le Bluetooth est utilisé dans de nombreux secteurs à savoir : [15]

 Périphériques informatiques sans fil : On peut désormais utiliser clavier, souris et casque
audio en toute liberté. La figure 2 représente des périphériques informatiques connectés à un
PC via Bluetooth.

Figure 10 : Périphériques informatiques Bluetooth

 Téléphonie mobile : Il est possible de se connecter à partir de son ordinateur portable ou PDA
vers un téléphone GSM avec fonction de modem et obtenir une connexion Internet. Une autre
fonction plus répandue est l’apparition des kits main libre Bluetooth (oreillette). La figure 3
illustre la connexion de mobile via Bluetooth avec des différents équipements.

14
Figure 11 : Usage mobile de Bluetooth

Afin de contrôler le robot via le Bluetooth, nous avons utilisé le module HC05 : Le module
utilisé se nomme HC-05 et est trouvable assez facilement pour quelques euros (via des sites d’import
de Chine). Il est aussi gros que le pouce et est en fait un montage d’un module bluetooth sur un petit
PCB. Cela permet de s’affranchir de certaines contraintes comme la soudure du module (qui est très
délicate), la conversion 5V -> 3.3V, la régulation de l’alimentation (3.3V de nouveau) ou encore
l’ajout de LEDs de signal.

Figure 12 : Module Bluetooth

3. Caméra IP (ou Caméra WIFI)

Une caméra IP, appelée également caméra réseau, est une caméra de surveillance qui utilise
Internet afin de permettre la transmission d’images et de signaux de commande à l’aide d’une liaison
Fast Ethernet. En effet, il existe deux types de caméras IP: [ 16]

 Caméras IP centralisés, qui nécessitent un enregistreur vidéo réseau central (NVR) pour gérer
la gestion d'enregistrement de la vidéo.
 Caméras IP décentralisés, qui ne nécessitent pas un NVR central, que les caméras ont une
fonction d'enregistrement intégré et peut ainsi enregistrer directement sur un support de
stockage standard, telles que les cartes SD, NAS (stockage connecté au réseau) ou un PC /
serveur.

15
3.1. Les adresses IP :
Une adresse IP (adresse de protocole Internet) est un numéro unique permettant aux
équipements de s‘identifier et de communiquer entre eux sur les réseaux utilisant la norme liée au
protocole Internet. Une adresse IP se compose de quatre nombres, séparés par un point. Elle se
subdivise encore en une partie réseau et une partie hôte, la séparation entre ces deux parties étant
déterminée par la longueur du masque réseau ou du préfixe. [17]

3.2. Les protocoles de transport destinés à la vidéo sur IP :


Le protocole le plus courant pour la transmission des données sur réseaux informatiques est
TCP/IP qui sert de "transporteur" pour de nombreux autres protocoles, en particulier pour le
protocole HTTP (Hyper Text Transfer Protocol) qui permet de consulter les pages des serveurs dans
le monde entier via Internet.

3.3. Les protocoles TCP/IP et les ports utilisés dans le cadre de la vidéo sur IP
Les protocoles les plus courants dans le cadre de la transmission des flux vidéo sur IP et leurs
numéros de ports correspondants sont [ 18]:

 FTP (File Transfer Protocol) : de port 21 qui transfert d’image ou de vidéo de la caméra
réseau/serveur vidéo vers un serveur FTP ou une application
 SMTP (Simple Mail Transfer Protocol) : de port 25 dans laquelle Une caméra
réseau/serveur vidéo peut envoyer des images ou notifications d’alarme à l’aide de son
client e-mail intégré
 HTTP (Hyper Text Transfer Protocol) : de port 80 ce La manière la plus courante pour
transmettre des flux vidéo d’une caméra réseau/serveur vidéo. L’appareil de vidéo sur IP
agit comme un serveur web, rendant la vidéo disponible à l’utilisateur ou au serveur
applicatif
 HTTPS (HyperText Transfer Protocol over Secure Socket Layer) : de port 443 utilisé
pour La transmission vidéo sécurisée depuis les caméras réseau/serveurs vidéo peut
aussi être utilisée pour authentifier la caméra à l’aide des certificats numériques X.509.

3.4. Modes de transmission des données


Il existe différents modes de transmission des données sur un réseau informatique :

 Diffusion individuelle (Unicast) :l’émetteur et le récepteur communiquent entre eux via


une liaison point-à-point. Les paquets de données sont adressés à un seul récepteur.
Aucun autre ordinateur du réseau n’a besoin de traiter ces informations.

16
 Multidiffusion (Multicast) : communication entre un seul émetteur et plusieurs récepteurs
sur un réseau. Les technologies de multidiffusion permettent de réduire le trafic sur le
réseau lorsque plusieurs récepteurs souhaitent visualiser une même source en même
temps. Un seul flux d’information peut ainsi être envoyé à des centaines de récepteurs. La
différence majeure par rapport à la diffusion individuelle est que le flux vidéo ne doit être
envoyé qu’une seule fois. La multidiffusion est fréquemment utilisée en conjonction avec
les transmissions RTP.
 Radiodiffusion (Broadcast) : type de transmission de un à tous. Sur un réseau LAN, le
Broadcast est en principe limité à certains segments spécifiques et ne s’applique pas en
pratique aux transmissions vidéo sur IP.

Figure 13 : Caméra IP

4. Routeur wifi

Un routeur est un élément intermédiaire dans un réseau informatique assurant le routage des paquets.
Son rôle est de faire transiter des paquets d'une interface réseau vers une autre, au mieux, selon un
ensemble de règles. Le Wifi est un ensemble de protocoles de communication sans fil régis par les
normes du groupe IEEE 802.11. [ 19]

4.1. Les différentes normes Wifi


La norme IEEE 802.11 est en réalité la norme initiale offrant des débits de 1 ou 2 Mbps. Des
révisions ont été apportées à la norme originale afin d'optimiser le débit (c'est le cas des normes
802.11a, 802.11b et 802.11g, appelées normes 802.11 physiques) ou bien préciser des éléments afin
d'assurer une meilleure sécurité ou une meilleure interopérabilité.

 IEEE 802.1.a: date de normalisation est janvier 1997, protocole à débit de 54Mbit/s
 IEEE 802.11.b: recommandations pour l’utilisation de la bande de fréquence des 2.4 GHz et
de taux de transfert maximale 11Mb/s.

17
 IEEE 802.11.g: débit de 54 Mb/s, portée moyenne à l’intérieur est 35 m et à l’extérieur 100m
 IEEE 802.11.n : protocole à haute débit de 450Mb/s portée moyenne à l’intérieur est 50 m et
à l’extérieur 125m
 IEEE 802.11.ac : date de normalisation est janvier 2014, protocole à très haute débit de
1300Mb/s portée moyenne à l’intérieur est 20 m et à l’extérieur 50m

4.2. La technologie Wifi IEEE 802.11.b


Cette norme utilise la méthode d'accès au media CSMA/CA spécifiée dans le standard de
base IEEE 802.11 et relative à la sous-couche MAC de la couche liaison de données du modèle OSI.

La norme 802.11b est la norme la plus répandue actuellement. Elle propose un débit
théorique de 11 Mbps (6 Mbps réels) avec une portée pouvant aller jusqu'à 300 mètres dans un
environnement dégagé. La plage des fréquences opérationnelles va de 2,4 à 2,4835 GHz, avec 3
canaux radio disponibles .

5. Module L298N

Le module L298N permet de commander séparément 2 moteurs à courant continu DC de 3 à


30 V, ou un moteur pas à pas bipolaire (2 phase step motor). Il fonctionne avec une interface de
commande TTL 5V (donc compatible avec Arduino ou avec de nombreux autres micro-contrôleurs
en basse tension). Ce module permet de faire varier la vitesse de rotation (en modulation PWM) et
d'inverser le sens de rotation des moteurs. Ce composant est idéal pour piloter un robot à deux roues
motrices, en faisant varier la vitesse de rotation d'une roue par rapport à l'autre pour tourner. [20]

6. Moteurs à courant continu

Un moteur à courant continu s'agit d'un convertisseur électromécanique permettant la


conversion d'énergie électrique en énergie mécanique utilisant un courant continu. L'avantage
principal des moteurs à courant continu réside dans leur adaptation simple aux moyens permettant
de régler ou de faire varier leur vitesse, leur couple et leur sens de rotation : les variateurs de
vitesse, voire leur raccordement direct à la source d'énergie : batteries d'accumulateur, piles, etc. Ils
ne nécessitent pas d’électronique pour les piloter, et peuvent être branchés directement sur une
alimentation, des batteries, un variateur de vitesse, ou une carte de positionnement associée à un
signal de recopie. La figure 12 illustre le schéma interne d’un moteur à courant continu. [21]

18
Figure 14 : Schéma interne d’un moteur à courant continu en rotation

Conclusion

Dans ce chapitre, on a présenté des différents composants utilisés et qui seront nécessaires
pour la mise en place réelle de notre projet. Dans le chapitre qui suit, on passera à la réalisation qui
comportera deux parties à savoir : l’application mobile Android qui commandera le robot, et la
programmation Arduino de ce robot.

19
Chapitre3

Environnement logiciel

Introduction

Suite à l’étude préliminaire et à la description de l’environnement matériel de notre projet, nous


présentons dans ce chapitre la partie réalisation décrivant la mise en place réelle de la solution
proposée. Mais, tout d’abord nous procéderons à une spécification de l’environnement logiciel du
travail.

I. Environnement logiciel

La mise en place de notre projet nécessite plusieurs outils logiciels à savoir : Android, App
Inventor pour Android et Arduino. Nous allons décrire dans cette partie chaque outil.

1. Android

Android est un système d'exploitation mobile (OS) actuellement développé par Google, basé sur
le noyau Linux et conçu principalement pour les appareils mobiles à écran tactile tels que les
smartphones et les tablettes. L'interface utilisateur d'Android est principalement basée sur la
manipulation directe, en utilisant des gestes tactiles qui correspondent vaguement à des actions dans
le monde réel, telles que glisser, taraudage et pincement, pour manipuler des objets à l'écran, avec un
clavier virtuel pour la saisie de texte. En plus des appareils à écran tactile, Google a développé
Android TV pour les téléviseurs, Auto Android pour les voitures, et Android Wear pour les montres-
bracelets, chacun avec une interface utilisateur spécialisée. Des variantes d'Android sont également
utilisées sur les ordinateurs portables, consoles de jeux, appareils photo numériques et autres
appareils électroniques. [22]

20
Android a la plus grande base installée de tous les systèmes d'exploitation de toute nature.
Android a été le meilleur OS de vente sur les tablettes depuis 2013, et sur les Smartphones, il est
dominant par toute métrique. [23]

Le code source d'Android est libéré par Google sous des licences open source, bien que la plupart
des appareils Android expédient finalement avec une combinaison de l'open source et les logiciels
propriétaires, y compris les logiciels propriétaires requis pour accéder aux services Google. Android
est populaire auprès des entreprises technologiques qui nécessitent un prêt -made, à faible coût et
système d'exploitation personnalisable pour les appareils de haute technologie. Sa nature ouverte a
encouragé une grande communauté de développeurs et d'amateurs d'utiliser le code open-source
comme base pour des projets communautaires, qui ajoutent de nouvelles fonctionnalités pour les
utilisateurs avancés ou apporter Android aux dispositifs initialement livrés avec d'autres systèmes
d'exploitation. Dans le même temps, comme Android n'a pas de système de mise à jour centralisée la
plupart des appareils Android ne parviennent pas à recevoir des mises à jour de sécurité: la recherche
en 2015 a conclu que près de 90% des téléphones Android en usage avait connu, mais des failles de
sécurité non corrigées en raison du manque de mises à jour et de soutien. Le succès d'Android a fait
une cible pour les litiges en matière de brevets dans le cadre de la soi-disant «guerre des
Smartphones" entre les entreprises technologiques [24].

2. App Inventor pour Android

App Inventor pour Android est une application web open-source à l'origine fourni par Google, et
maintenant maintenu par le Massachusetts Institute of Technology (MIT). Il permet aux nouveaux
arrivants à la programmation informatique pour créer des applications logicielles pour le système
d'exploitation Android (OS). Il utilise une interface graphique, très similaire à zéro et l'interface
utilisateur StarLogo TNG, qui permet aux utilisateurs de glisser-déposer des objets visuels pour créer
une application qui peut fonctionner sur les appareils Android. En créant App Inventor, Google a fait
appel à d'importantes recherches avant dans le calcul de l'éducation, ainsi que les travaux effectués
dans Google sur les environnements de développement en ligne. [25]

21
Figure 15 : interface de « App Inventor »
App Inventor et les projets sur lesquels elle se fonde sont informés par les théories
d'apprentissage constructiviste, qui souligne que la programmation peut être un véhicule pour
engager des idées puissantes grâce à l'apprentissage actif. En tant que tel, il fait partie d'un
mouvement continu dans les ordinateurs et l'éducation qui a commencé avec le travail de Seymour
Papert et le Groupe Logo MIT dans les années 1960 et a lui aussi manifesté avec le travail de
Mitchel Resnick sur Lego Mindstorms et StarLogo. [26]

Figure 16 : Programmation avec « App Inventor »

3. Arduino

3.1. Présentation de l’Arduino


Arduino est le terme commun pour une société de logiciels, le projet et la communauté des
utilisateurs qui conçoit et fabrique matériel informatique open-source, un logiciel open-source, et des
kits à base de microcontrôleurs pour la construction d'appareils numériques et des objets interactifs
qui peuvent détecter et contrôler les périphériques physiques. [27]

Le projet est basé sur carte microcontrôleur modèles, produits par plusieurs fournisseurs, en
utilisant différents microcontrôleurs. Ces systèmes fournissent des ensembles de numériques et
analogiques broches E / S qui peuvent interfacer à diverses cartes d'extension (appelé boucliers) et

22
d'autres circuits. Les conseils d'administration disposent d'interfaces de communication série, y
compris Universal Serial Bus (USB) sur certains modèles, pour les programmes de chargement à
partir d'ordinateurs personnels. Pour la programmation des microcontrôleurs, le projet Arduino
fournit un environnement de développement intégré (IDE) basé sur un langage de programmation
appelé traitement, qui prend également en charge les langages C et C ++. [28]

La première Arduino a été introduit en 2005, visant à fournir un faible coût, facile pour les
novices et les professionnels pour créer des dispositifs qui interagissent avec leur environnement en
utilisant des capteurs et des actionneurs. Des exemples courants de ces dispositifs destinés à des
amateurs débutants comprennent des robots simples, les thermostats et les détecteurs de mouvement.

3.2. Fenêtre générale de l’application Arduino

La fenêtre de l’application Arduino comporte les éléments suivants :

1. Un menu
2. Une barre d’actions ;
3. Un ou plusieurs onglets correspondant aux sketches ;
4. Une fenêtre de programmation ;
5. Une console qui affiche les informations et erreurs de compilation et de
téléversement du programme

23
Figure 17 : Fenêtre générale de l’application Arduino

3.3. Programmation avec Arduino

L'Arduino IDE prend en charge les langages C et C ++ en utilisant des règles spéciales pour
organiser code. L'Arduino IDE fournit une bibliothèque logicielle appelée Câblage du projet du
câblage, qui fournit de nombreuses procédures d'entrée et de sortie commune. L'exécution d'un
programme Arduino s'effectue de manière séquentielle, c'est-à-dire que les instructions son t
exécutées les unes à la suite des autres. Voyons plus en détail la structure d'un programme écrit en
Arduino. [29]

Un programme Arduino comporte trois parties :

1. la partie déclaration des variables (optionnelle)


2. la partie initialisation et configuration des entrées/sorties : la fonction setup ()
3. la partie principale qui s'exécute en boucle : la fonction loop ()

24
Figure 18 : structure d’un programme Arduino

Lorsque du code est écrit dans l'interface de programmation, certains mots apparaissent en
différentes couleurs qui clarifient le statut des différents éléments :

 En orangé, apparaissent les mots-clés reconnus par le langage Arduino comme


des fonctions existantes. Lorsqu'on sélectionne un mot coloré en orange et qu'on effectue un
clic avec le bouton droit de la souris, l'on a la possibilité de choisir « Find in reference » :
cette commande ouvre directement la documentation de la fonction sélectionnée.
 En bleu, apparaissent les mots-clés reconnus par le langage Arduino comme des constantes.
 En gris, apparaissent les commentaires qui ne seront pas exécutés dans le programme. Il
est utile de bien commenter son code pour s'y retrouver facilement ou pour le transmettre à
d'autres personnes. L'on peut déclarer un commentaire de deux manières différentes :
o dans une ligne de code, tout ce qui se trouve après « // » sera un commentaire.
o l'on peut encadrer des commentaires sur plusieurs lignes entre « /* » et « */ ».

3.4. Les fonctions sous Arduino

Une fonction (également désignée sous le nom de procédure ou de sous-routine) est un bloc
d'instructions que l'on peut appeler à tout endroit du programme. Le langage Arduino est constitué
d'un certain nombre de fonctions, par exemple analogRead(), digitalWrite() ou delay().

25
Il est possible de déclarer ses propres fonctions par exemple :

Void march_av (void ) {


digitaleWrite (motor1_in1,HIGH);
digitaleWrite (motor1_in2,LOW);
analogWrite (motor1_ena,200);

digitaleWrite (motor2_in1,HIGH);
digitaleWrite (motor2_in2,LOW);
analogWrite (motor2_ena,200);
}

Pour exécuter cette fonction, il suffit de taper la commande : march_av ();

II. Mise en place du projet

La mise en place de notre projet comporte deux parties à savoir : la commande du robot par un
Smartphone via une liaison Bluetooth, et l’exploitation du milieu qui en tourne le robot par une
camera IP via le module wifi. Notre application mobile comportera alors une partie de commande du
robot à distance, et une deuxième partie visualisant les images envoyées par la caméra IP installé sur
le robot. Le téléphone mobile contenant l’interface Android et le téléphone mobile fonctionnant en
tant que caméra IP devront être connectés au même réseau local sans fil.

1. Interface Android :

Notre interface mobile (Android) comporte 3 parties à savoir :

 Partie 1 : Bouton pour activer le Bluetooth


 Partie 2 : Champ où on va entrer l’URL de la camera IP
 Partie 3 : Zone d’affichage de la vidéo capturée à partir de la camera IP
 Partie 4 : Boutons pour commander le Robot
 Partie 5 : Boutons pour contrôler la vitesse

26
Figure 19 : Interface de l’application sur Mit App Inventor

1.1. Connexion à la carte Arduino

Quand on clique sur le bouton Bluetooth (Partie 1 de la figure 19), le mobile va se connecter
à la carte Arduino via cette liaison Bluetooth. La figure suivante donne le code correspondant à cette
partie :

Figure 20 : bloc du programme décrivant comment se fait la connexion à la carte Arduino

La partie 1 décrit comment on peut récupérer la liste des périphériques Bluetooth disponibles
sur notre Smartphone. La deuxième partie décrit comment se fait la connexion au périphérique
Bluetooth sélectionné.

27
Côté client, l'utilisateur sélectionne le bouton Connecter « ListPicker » et sélectionne le nom
du périphérique dans la liste des périphériques Bluetooth disponibles (HC-05). Le « ListPicker » est
un composant d'une grande interface pour afficher la liste des périphériques et gérer la sélection.

1.2. Connexion à la caméra IP

Pour se connecter à la caméra IP, il faut :


1- vérifier que l’adresse IP de la caméra soit dans le même sous réseau que le reste du réseau.
2- S’assurer que l‘IP et l‘adresse MAC de la caméra ne soient pas déjà affectées à ‘autres
périphériques de notre réseau.
3- S’assurer que notre routeur accepte les paquets entrants du port 8080
4- Obtenir l’adresse IP de la Caméra IP
5- Consulter notre caméra à distance via Smartphone

Dans la partie 2 de la figure 19, lorsqu’on clique sur le bouton « Go », on se connecte directement à
la caméra IP installée sur le robot. Ensuite la vidéo sera affichée dans la partie 3 de la figure 19 à
l’aide d’un navigateur Web. En premier lieu et avant d'appuyer sur le bouton « Go » on doit entrer
l'URL de Caméra IP. Lorsqu'on fait entrer l’URL, le client Web (navigateur) interroge le serveur de
noms (DNS, Domain Name Server), qui lui indique en retour l'adresse IP de la caméra IP. La figure
20 présente le bloc de code implémenté à ce stade.

Figure 21 : Figure de bloc de URL de la camera IP

1.3. Contrôle du robot :

La partie 4 de la figure 19 présente les boutons nécessaires à commander le robot à distance


via la liaison Bluetooth. Si on clique sur la flèche avant, le robot se déplacera en avant. Un message
« forwad » sera envoyé de l’application Androïde à la carte Arduino. Ceci est décrit dan la capture
de code suivante.

28
Figure 22 : Message «forward »
1.4. Contrôle de la vitesse du mouvement:

La partie 5 de la figure 19 présente les boutons nécessaires à contrôler la vitesse du


mouvement du robot. L’utilisateur a besoin parfois d’avoir une idée bien précise sur le contenu du
champs visuel du robot, il pourra lui activer la première vitesse (la vitesse la plus lente) et activer la
vidéo pour voir ce qui existe avec détails. Si on clique sur le premier bouton à gauche, un message
«première » sera envoyé de l’application Androïde à la carte Arduino. Le bloc du code de la figure
23 décrit comment on a pu programmer ça. Le second bouton présente une vitesse moyenne, et le
dernier bouton à droite présente la vitesse maximale.

Figure 23 : Message «première » vitesse

2. Partie Arduino :

Dans cette partie, on va décrire les différentes étapes de mise en place réelle de notre robot. Le
tableau 1 présente les différents matériels utilisés pour la mise en place réelle du robot.

29
Support de robot Carte Arduino
Module Bluetooth

Shiled moteur(1) Shiled moteur(2) Moteur CC

Fils pour batterie Batterie 9V 2 Roues

Tableau 1 : Matériels utilisés

Les variables relatives au moteur sont initialisées comme suit :

Quand on clique sur le bouton « Forward » (avant), l’application Androïde envoie ordonne la
carte Arduino à partir d’un module Bluetooth pour changer la rotation des roues du robot à une
vitesse bien précise (précisée dans le code Arduino).

Tout d’abord on a fait des testes pour les in1 et in2 pour savoir les sens de rotation des moteurs.

30
Figure 24 : Sous programme de marche avant

Avec : * in1 : HIGH c.à.d la valeur 1

* in2 : LOW c.à.d la valeur 0

* ena : 200 (vitesse /250 : vitesse pleine)

Moteur1_in1 Moteur1 _in2 Moteur1 _in1 Moteur2 _in2 Action

1 0 0 1 Tourne dans le sens


horaire

0 1 1 0 Tourne dans le sens


anti-horaire

0 0 0 0 Freinage

1 1 1 1 Freinage

Tableau 2 : Valeurs des différentes variables et actions relatives

Maintenant on va choisir la vitesse du mouvement du robot, par défaut la vitesse est initialisé
à 200, et l’utilisateur peut changer cette vitesse par (première : 130, deuxième 180, troisième : 230).
L’application Androïde pourra commander la carte Arduino à partir d’un module Bluetooth pour
changer la vitesse du robot par le bloc du code suivant :

Figure 25 : Sous programme de vitesse premier

Ensuite on ouvre le port série en 9600 :

31
Puis, on initialise les pins 1 et 2 du moteur

Figure 26 : Bloc de programme d’initialisation des pins 1 et 2 du moteur

Le tableau suivant décrit les étapes de récupération des données suite à la connexion
Bluetooth.

Sous-programme Description

Le programme Arduino reste en attente


(3ms) que les données arrivent, en suite il
récupère les données caractère par caractère.

On obtient un octet de mémoire tampon


série.

On convertit la chaîne readString

On affiche ce qui a été récupéré

Tableau 3 : Description de quelques sous-programmes

Le sous-programme de la figure 26 décrit comment on a programmé les différents boutons


commandant le robot.

32
Figure 27 : commander le robot

Par exemple si la carte Arduino recoit une commande sous le titre « forward » de la part de
l’application Android (utilisateur mobile), la fonction « march_av » déclarée dans le figure 26 sera
implémentée.

Le sous-programme de la figure 27 décrit comment on a contrôlé les différents boutons de la vitesse


du robot :

Figure 28 : contrôle du vitesse

Par exemple si la carte Arduino reçoit une commande sous le titre « premiere » de la part de
l’application Android (utilisateur mobile), la fonction « premiere » déclarée dans le figure 27 sera
implémentée.

33
Conclusion

Ce chapitre est consacré à la description détaillée des étapes de réalisation de notre projet
répondant à la spécification de notre cahier de charge. En effet on a commencé par décrire
l’application Android qui commande le robot, ensuite on a passé à décrire quelques codes Arduino
décrivant le travail cœur de notre projet.

Pour plus de détails sur les étapes de réalisation du robot, voir l’annexe.

34
Conclusion générale

Ce projet de fin d’études, qui s’est déroulé à l’ENIG, avait pour but la réalisation
d’un ROBOT intelligent à Base du système Android pour des buts divers comme la sécurité, la
surveillance, l’exploration etc...

Notre Robot offre une multitude de fonctionnalités dont on peut citer les essentielles :
Visualisation du Streaming Vidéo directement sur le Smartphone de l’utilisateur, Déplacement
avancé et exploration d’endroits inaccessibles, Changer la vitesse du déplacement du robot.

Le rapport a été organisé de la façon suivante : Nous avons tout d’abord établi une étude
préliminaire sur le projet en fixant notre objectif, nous avons aussi établi une étude sur les robots
mobiles en générale. Et à la fin de ce chapitre, nous avons exposé la problématique et la solution
proposée. Après cette étude préliminaire, nous avons présenté dans le deuxième chapitre
l'environnement matériel. Nous avons établi une étude sur tous les composants utilisés dans notre
projet. Dans le dernier chapitre nous avons présenté la réalisation détaillée du robot qu’on a réalisé.
Nous avons exposé une description des codes Arduino et de l’interface Android que nous avons
implémenté.

Notre projet a couvert au bout du compte la majeure partie des fonctionnalités qui nous ont
été demandées au début , mais opportunités d’améliorations de ce projet sont multiples .

D’une part, nous pourrons améliorer l’application pour rendre l’interactivité plus souple et
complète avec l’utilisateur , aussi on peut évoluer même le ROBOT en lui intégrant de
multiples capteurs et détecteurs comme un capteur ultrason qui détecte l’obstacle devant le robot et
en peut ajouter un capteur pour détecter les fuites de gaz (dans la maison et de l'industrie).

D’autre part, nous pourrons penser à lui ajouter un Shield wifi à la place d'un module
Bluetooth HC-05 pour augmenter la couverture de commande du robot.

35
Annexe

36
37
Bibliographie

1. https://fr.wikipedia.org/wiki/Robot
2. http://www.roboticus.org/la-robotique/29- introduction-a-la-robotique.html
3. Livre :Modélisation, Commande et Prototypage d’un Gyropode
4. Livre :Modélisation, Commande et Prototypage d’un Gyropode
5. Livre :Modélisation, Commande et Prototypage d’un Gyropode
6. Livre :Modélisation, Commande et Prototypage d’un Gyropode
7. Livre :Modélisation, Commande et Prototypage d’un Gyropode
8. Livre :Modélisation, Commande et Prototypage d’un Gyropode
9. Livre :Modélisation, Commande et Prototypage d’un Gyropode
10. Livre :Modélisation, Commande et Prototypage d’un Gyropode
11. http://cats92.free.fr/ROBOTS/commandeadistance.htm
12. http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno
13. http://www.nolot.eu/Download/Cours/reseaux/m2pro/RMHD0708/picoreseaux.pdf
14. https://fr.wikipedia.org/wiki/Bluetooth
15. http://www- igm.univ-mlv.fr/~duris/NTREZO/20042005/Nguyen-Vongvilay-Wolowiec-
Bluetooth.pdf
16. http://www.jimilab.com/blog/ip-surveillance-cameras-all- you-need-kno.html
17. https://fr.wikipedia.org/wiki/Adresse_IP
18. Livre :La Guide technique de la vidéo sur IP (Axis)
19. https://fr.wikipedia.org/wiki/Routeur
20. http://tiptopboards.free.fr/arduino_forum/viewtopic.php?f=2&t=34
http://www.instructables.com/id/Control-DC-and-stepper- motors-with-L298N-Dual-
Moto/?ALLSTEPS
21. http://www.energieplus-lesite.be/index.php?id=11530
https://fr.wikipedia.org/wiki/Machine_%C3%A9lectrique
22. https://fr.wikipedia.org/wiki/Android
23. https://fr.wikipedia.org/wiki/Android
24. https://fr.wikipedia.org/wiki/Android
25. https://en.wikipedia.org/wiki/App_Inventor_for_Android
26. https://en.wikipedia.org/wiki/App_Inventor_for_Android

38
27. https://en.wikipedia.org/wiki/Arduino
28. https://en.wikipedia.org/wiki/Arduino
29. http://fr.flossmanuals.net/arduino/programmer-arduino/

39

Vous aimerez peut-être aussi