Communications » History » Version 17

Amaury Bendaoud-Joubert, 03/24/2012 12:15 PM

1 1 Amaury Bendaoud-Joubert
h1. Communications
2 1 Amaury Bendaoud-Joubert
3 1 Amaury Bendaoud-Joubert
Pour permettre l'interaction entre la tablette Android et le drone ou le simulateur, il fallait gérer la communication entre ces deux périphériques. Tout d'abord les deux éléments principaux de cette interaction étaient le routeur et le module WIFI. C’est deux éléments ont des caractéristiques et des configurations bien différentes que nous allons détailler.
4 1 Amaury Bendaoud-Joubert
5 1 Amaury Bendaoud-Joubert
h2. Routeur
6 1 Amaury Bendaoud-Joubert
7 2 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/1246/routeur.jpg!
8 1 Amaury Bendaoud-Joubert
9 1 Amaury Bendaoud-Joubert
Figure 12 : Le routeur
10 1 Amaury Bendaoud-Joubert
11 1 Amaury Bendaoud-Joubert
Nous avons commencé par configurer le routeur afin d'établir un réseau sur lequel l'ensemble des équipements se connectaient.
12 1 Amaury Bendaoud-Joubert
13 1 Amaury Bendaoud-Joubert
Cette configuration s’est faite, après installation via un CD, à partir d'une interface Web. Nous avons donc commencé par préciser quelles adresses IP (fixes) utiliserait chaque périphérique. Ainsi chacun d’entre eux pouvait contacter l’autre. Nous avons donc configuré le routeur de façon à ce que seules ces adresses soient autorisées sur le réseau.
14 2 Amaury Bendaoud-Joubert
15 2 Amaury Bendaoud-Joubert
h2. Module Wi-Fi
16 2 Amaury Bendaoud-Joubert
17 2 Amaury Bendaoud-Joubert
h3. Présentation
18 2 Amaury Bendaoud-Joubert
19 2 Amaury Bendaoud-Joubert
Ce module sans fil est un module WIFI Matchport b/g de Lantronix. Ce module supporte deux versions de la norme IEEE 802.11, les versions b et g. La dernière version est la version n, qui a été conçue pour améliorer le débit de la communication sans fil. Cette dernière version n'est pas supportée par notre module Wi-Fi. Dans notre cas, cela ne pose pas vraiment de problème car nous n'avons pas besoin d'un fort débit pour ce que l'on souhaite réaliser.
20 2 Amaury Bendaoud-Joubert
21 3 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/1247/lantronix.png!
22 2 Amaury Bendaoud-Joubert
23 2 Amaury Bendaoud-Joubert
Figure 13 : Module WIFI Lantronix MatchPort b/g
24 2 Amaury Bendaoud-Joubert
25 2 Amaury Bendaoud-Joubert
Ce module est assez complet, en effet il inclut plusieurs services, comme par exemple un serveur web ou encore un serveur de messagerie. Dans notre contexte nous avons seulement utilisé l'interface web pour mener à bien la configuration de notre module. Il est aussi possible de configurer le module par Telnet via le port série. Pour le configurer nous avons aussi utilisé le logiciel DeviceInstaller.
26 4 Amaury Bendaoud-Joubert
27 4 Amaury Bendaoud-Joubert
h3. Configuration
28 4 Amaury Bendaoud-Joubert
29 4 Amaury Bendaoud-Joubert
Tout d'abord la tablette Android ne supporte pas le réseau Ad-Hoc, donc il a fallu configurer le module en mode infrastructure. De plus il a fallu fixer une adresse IP pour le module WIFI, ainsi la tablette envoie ses informations sur cette adresse directement.
30 4 Amaury Bendaoud-Joubert
Pour débuguer la configuration du module nous avons utilisé l'hyperterminal qui nous permettait d'obtenir les mêmes options que DeviceInstaller.
31 4 Amaury Bendaoud-Joubert
32 5 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/1248/wi1.png!
33 4 Amaury Bendaoud-Joubert
34 4 Amaury Bendaoud-Joubert
Figure 14 : Détails du module Wi-Fi avec DeviceInstaller
35 4 Amaury Bendaoud-Joubert
36 4 Amaury Bendaoud-Joubert
Ici nous pouvons voir l’ensemble de la configuration du module Wi-Fi grâce au logiciel DeviceInstaller.
37 6 Amaury Bendaoud-Joubert
38 6 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/1249/wi2.png!
39 6 Amaury Bendaoud-Joubert
40 6 Amaury Bendaoud-Joubert
41 6 Amaury Bendaoud-Joubert
Figure 15 : Configuration du module Wi-Fi avec DeviceInstaller
42 6 Amaury Bendaoud-Joubert
43 6 Amaury Bendaoud-Joubert
Sur cette page de configuration nous avons pu nommer le Module, fixer son adresse IP. Les autres onglets permettent de modifier les paramètres des channels, de la sécurité ainsi que les autres multiples fonctionnalités du module dont nous ne nous sommes pas servis.
44 7 Amaury Bendaoud-Joubert
45 7 Amaury Bendaoud-Joubert
h3. Le protocole de communication 
46 7 Amaury Bendaoud-Joubert
47 7 Amaury Bendaoud-Joubert
Pour pouvoir analyser les données envoyées par l’application Android, il fallait définir un protocole. Nous avons donc choisi d’utiliser le protocole suivant:
48 7 Amaury Bendaoud-Joubert
49 7 Amaury Bendaoud-Joubert
*LETTRE : Valeur* 
50 7 Amaury Bendaoud-Joubert
51 7 Amaury Bendaoud-Joubert
Figure 16 : Représentation du protocole
52 7 Amaury Bendaoud-Joubert
53 8 Amaury Bendaoud-Joubert
Nous avons utilisé certaine lettre pour représenter un mouvement du drone. Ainsi le Z représente  l’altitude, le Y le  cap (Yaw), le P le  tangage (Pitch) et le R le roulis (Roll). De plus, les deux points permettent de séparer le type de commande des valeurs. Le protocole inclus également le point d’interrogation permettant une demande effectuée par le simulateur à l’application Android. Cet envoi de données par le simulateur n’a pas été géré. Les valeurs sont des inclinaisons (de -10 à 10), correspondant à celles de la tablette ou du smartphone, provenant ses accéléromètres.
54 9 Amaury Bendaoud-Joubert
55 9 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/1250/ypr.jpg!
56 10 Amaury Bendaoud-Joubert
57 10 Amaury Bendaoud-Joubert
Figure 17 : Schéma de représentation des mouvements du drone
58 10 Amaury Bendaoud-Joubert
59 10 Amaury Bendaoud-Joubert
Ce schéma représente les différentes orientations que peut adopter notre drone. Pour gérer ces différents mouvements, nous avons analysé à l’aide d’un parseur les différentes trames envoyées par l’application Android. L’implémentation du parseur a été faite comme indiquée ci-après. 
60 10 Amaury Bendaoud-Joubert
61 11 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/1251/code4.png!
62 10 Amaury Bendaoud-Joubert
63 10 Amaury Bendaoud-Joubert
Figure 18 : Variables d'orientations reçues de l’application Android et envoyées au simulateur
64 12 Amaury Bendaoud-Joubert
65 12 Amaury Bendaoud-Joubert
h2. Différents type de communication
66 12 Amaury Bendaoud-Joubert
67 13 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/1252/sch1.png!
68 12 Amaury Bendaoud-Joubert
69 12 Amaury Bendaoud-Joubert
Figure 19 : Ensemble des communications
70 12 Amaury Bendaoud-Joubert
71 13 Amaury Bendaoud-Joubert
h3. Communication Module Wi-Fi - PC par port série
72 12 Amaury Bendaoud-Joubert
73 12 Amaury Bendaoud-Joubert
La communication par le port série s’est faite par le biais de la reprogrammation d’un hyperterminal en langage C. Nous avons utilisé ce type de communication afin d’envoyer les données récupérées de la tablette grâce au module Wi-Fi par le port série. Ce programme fut complexe à réaliser puisque Windows ne gère pas l’utilisation directe des ports série. Il a donc fallu, après quelques recherches sur Internet, utiliser une structure complexe représentant un port série. 
74 14 Amaury Bendaoud-Joubert
75 15 Amaury Bendaoud-Joubert
!http://forge.clermont-universite.fr/attachments/1253/code1.png!
76 16 Amaury Bendaoud-Joubert
77 16 Amaury Bendaoud-Joubert
78 16 Amaury Bendaoud-Joubert
Figure 20 : Ouverture et initialisation du port série
79 16 Amaury Bendaoud-Joubert
80 16 Amaury Bendaoud-Joubert
Dans le code ci-dessus, nous pouvons voir l’ouverture et surtout la configuration du port série (COM 4) en langage C sous Windows. L’étape principale a été l’initialisation de la structure DCB permettant de respecter la configuration de l’envoi des données par le module Wi-Fi. Comme par exemple l’initialisation à 9600 bauds pour la vitesse de réception des données.
81 17 Amaury Bendaoud-Joubert
82 17 Amaury Bendaoud-Joubert
h3. Communication directe Android-PC
83 17 Amaury Bendaoud-Joubert
84 17 Amaury Bendaoud-Joubert
La communication directe en UDP, sans passer par le module Wi-Fi, permet l'interaction entre l'application Android et le simulateur. Celle-ci, réalisée en langage C, est intégrée au simulateur. En résumé nous avons donc intégré un serveur UDP à Raydium, afin de récupérer les valeurs d’orientation envoyées par la tablette ou le smartphone Android au simulateur. La fonction les récupérant est ensuite appelée par la fonction « step » du simulateur.
85 17 Amaury Bendaoud-Joubert
86 17 Amaury Bendaoud-Joubert
87 17 Amaury Bendaoud-Joubert
88 17 Amaury Bendaoud-Joubert
Figure 21 : Code de la création de la socket non bloquante