Projet

Général

Profil

Communications » Historique » Version 19

Anonyme, 24/03/2012 12:17

1 1 Anonyme
h1. Communications
2
3
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
5
h2. Routeur
6
7 2 Anonyme
!http://forge.clermont-universite.fr/attachments/1246/routeur.jpg!
8 1 Anonyme
9
Figure 12 : Le routeur
10
11
Nous avons commencé par configurer le routeur afin d'établir un réseau sur lequel l'ensemble des équipements se connectaient.
12
13
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 Anonyme
15
h2. Module Wi-Fi
16
17
h3. Présentation
18
19
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
21 3 Anonyme
!http://forge.clermont-universite.fr/attachments/1247/lantronix.png!
22 2 Anonyme
23
Figure 13 : Module WIFI Lantronix MatchPort b/g
24
25
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 Anonyme
27
h3. Configuration
28
29
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
Pour débuguer la configuration du module nous avons utilisé l'hyperterminal qui nous permettait d'obtenir les mêmes options que DeviceInstaller.
31
32 5 Anonyme
!http://forge.clermont-universite.fr/attachments/1248/wi1.png!
33 4 Anonyme
34
Figure 14 : Détails du module Wi-Fi avec DeviceInstaller
35
36
Ici nous pouvons voir l’ensemble de la configuration du module Wi-Fi grâce au logiciel DeviceInstaller.
37 6 Anonyme
38
!http://forge.clermont-universite.fr/attachments/1249/wi2.png!
39
40
41
Figure 15 : Configuration du module Wi-Fi avec DeviceInstaller
42
43
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 Anonyme
45
h3. Le protocole de communication 
46
47
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
49
*LETTRE : Valeur* 
50
51
Figure 16 : Représentation du protocole
52
53 8 Anonyme
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 Anonyme
55
!http://forge.clermont-universite.fr/attachments/1250/ypr.jpg!
56 10 Anonyme
57
Figure 17 : Schéma de représentation des mouvements du drone
58
59
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
61 11 Anonyme
!http://forge.clermont-universite.fr/attachments/1251/code4.png!
62 10 Anonyme
63
Figure 18 : Variables d'orientations reçues de l’application Android et envoyées au simulateur
64 12 Anonyme
65
h2. Différents type de communication
66
67 13 Anonyme
!http://forge.clermont-universite.fr/attachments/1252/sch1.png!
68 12 Anonyme
69
Figure 19 : Ensemble des communications
70
71 13 Anonyme
h3. Communication Module Wi-Fi - PC par port série
72 12 Anonyme
73
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 Anonyme
75 15 Anonyme
!http://forge.clermont-universite.fr/attachments/1253/code1.png!
76 16 Anonyme
77
78
Figure 20 : Ouverture et initialisation du port série
79
80
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 Anonyme
82
h3. Communication directe Android-PC
83
84
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
86 18 Anonyme
!http://forge.clermont-universite.fr/attachments/1254/code2.png!
87 17 Anonyme
88
Figure 21 : Code de la création de la socket non bloquante
89 19 Anonyme
90
Les deux lignes de codes précédentes, nous ont permis de créer une socket non bloquante, afin que l’appel à upd_loop() dans le simulateur n’interrompt pas le programme de virtualisation.
91
92
93
h3. Communication, écriture sur le port série du microcontrôleur
94
95
Cette communication permet au simulateur, qui reçoit les données, de les envoyer au microcontrôleur qui ensuite effectuera les calculs pour gérer les mouvements du drone, dans le but d’alléger le simulateur 3D. Ce code est contenu dans le programme du port série mais cette partie n’a pas été intégrée au simulateur.
96
97
h3. Gestion du simulateur par le clavier
98
99
Cette interaction est directement liée au simulateur. Nous pouvons donc commander le drone virtuel directement au clavier. Cette partie a été réalisée par le binôme s’occupant du simulateur.