Projet

Général

Profil

Protocoles de communication » Historique » Version 2

Anonyme, 11/12/2012 21:19

1 1 Anonyme
h1. Protocoles de communication
2
3
4
h2. Protocole Ethernet/Wifi V1
5
6
Le protocole de communication privilégié est l'UDP.
7
8 2 Anonyme
Toutes les valeurs numériques (récupérées depuis un capteur ou transmises comme consigne) doivent être converties de sorte que leurs valeurs varient entre -32000 (valeur min) et 32000 (valeur max). Un champ de valeur aussi important garantissant une précision en principe suffisante pour les calculs à effectuer par la suite.
9
L'usage de int16_t définis dans stdint.h peut donc être pertinent dans le cadre de leur manipulation.
10
Si ce choix semble non pertinent merci de me contacter.
11
12
_(Par ailleurs, de manière plus générale, l'usage des variables définies dans stdint.h pourrait être un gage de portabilité, il me semble donc pertinent d'envisager de les préférer aux variables par défaut.)_
13
14 1 Anonyme
---------------------------------------------------
15
16
Le format de trame sera le suivant :
17
18
<NUM_PAQUET><!><TYPE_TRAME><< ?>|<<:><VAL>[,VAL[,...]]>><CRLF>
19
20
Avec :
21
22
<NUM_PAQUET> : numéro du paquet, auto-incrémental, sur 4 chiffres, non signé, en décimal. 
23
24
<!> : caractère "!" utilisé comme séparateur
25
26
<TYPE_TRAME> : suite de 2 caractères en ASCII indiquant les informations portées par la trame (voir plus bas)
27
28
<< ?>|<<:><VAL>[,VAL[,...]]>> valant soit :
29
       -- "?" dans le cadre de la demande d'une (série de) valeurs
30
       -- : suivi d'une série de valeurs séparés par des virgules
31
32
<CRLF> : caractères "\r\n"
33
34
h2. Liste des TYPE_TRAME
35
36
les TYPES_TRAME sont des suites de 2 caractères ASCII
37
38
h3. TYPE_TRAME commençant par un 0
39
40
Ces types sont réservés à des fins de test et ne doivent pas être utilisé dans le cadre d'une implémentation finale.
41
42
h3. TYPE_TRAME commençant par un 1
43
44
Ces types sont réservés à la transmission des erreurs.
45
46
h3. Capteurs
47
48
"Ca" suivi d'une série de 11 valeurs est utilisé pour envoyer l'ensemble des valeurs des capteurs dans l'ordre suivant :
49 2 Anonyme
accéléro_x, accéléro_y,accéléro_z,gyro_x,gyro_y,gyro_z,magnéto_x,magnéto_y,magnéto_z,baromètre,thermomètre
50 1 Anonyme
51
h4. Accéléromètres
52
53
"Ax" suivi d'une valeur correspond à l'accéléromètre x
54
"Ay" suivi d'une valeur correspond à l'accéléromètre y
55
"Az" suivi d'une valeur correspond à l'accéléromètre z
56
"Aa" suivi de trois valeurs correspond aux valeurs des trois accéléromètres dans l'ordre x,y,z
57
58
h4. Gyroscopes
59
60
"Gx" suivi d'une valeur correspond au gyroscope x
61
"Gy" suivi d'une valeur correspond au gyroscope y
62
"Gz" suivi d'une valeur correspond au gyroscope z
63
"Ga" suivi de trois valeurs correspond aux valeurs des trois gyroscopes dans l'ordre x,y,z
64
65
h4. Magnétomètre
66
67
"Ax" suivi d'une valeur correspond au magnétomètre x
68
"Ay" suivi d'une valeur correspond au magnétomètre y
69
"Az" suivi d'une valeur correspond au magnétomètre z
70
"Aa" suivi de trois valeurs correspond aux valeurs des trois magnétomètres dans l'ordre x,y,z
71
72
h4. Sonars
73
74
"Sf" suivi d'une valeur correspond au sonar avant (front)
75
"Sb" suivi d'une valeur correspond au sonar arrière (back)
76
"Sl" suivi d'une valeur correspond au sonar gauche (left)
77
"Sr" suivi d'une valeur correspond au sonar droit (right)
78
"Su" suivi d'une valeur correspond au sonar haut (up)
79
"Sd" suivi d'une valeur correspond au sonar bas (down)
80
"S6" suivi de 6 valeurs correspond à la valeur des 6 sonars (ordre : avant, arrière, gauche, droite, bas, haut)
81
82
h4. Autres capteurs
83
84
"B0" suivi d'une valeur correspond au baromètre
85 2 Anonyme
"TH" suivi d'une valeur correspond au thermomètre
86 1 Anonyme
"GP" suivi de 8 valeurs correspond aux valeurs du GPS (ordre à définir)
87
88
h3. Moteurs
89
90
91
h4. Du drone vers le contrôleur
92
93
"M1" suivi d'une valeur correspond à la valeur actuelle du moteur 1
94
"M2" suivi d'une valeur correspond à la valeur actuelle du moteur 2
95
"M3" suivi d'une valeur correspond à la valeur actuelle du moteur 3
96
"M4" suivi d'une valeur correspond à la valeur actuelle du moteur 4
97
"Me" suivi de 4 valeurs correspond à la valeur actuelle des 4 moteurs (1,2,3,4)
98
"Mc" suivi d'une valeur correspond à la valeur actuelle de la consigne moteur
99
"M+" suivi de 5 valeurs correspond à la valeur actuelle des 4 moteurs suivi de la consigne moteur
100
101
h4. Du contrôleur vers le drône
102
103
"M1" suivi d'une valeur correspond à la valeur à atteindre pour le moteur 1
104
"M2" suivi d'une valeur correspond à la valeur à atteindre pour le moteur 2
105
"M3" suivi d'une valeur correspond à la valeur à atteindre pour le moteur 3
106
"M4" suivi d'une valeur correspond à la valeur à atteindre pour le moteur 4
107
"Me" suivi de 4 valeurs correspond à la valeur à atteindre pour les 4 moteurs (1,2,3,4)
108
"Mc" suivi d'une valeur correspond à la valeur à atteindre pour la consigne moteur
109
"M+" suivi de 5 valeurs correspond à la valeur à atteindre pour les 4 moteurs suivi de la consigne moteur
110
111
h2. Exemples
112
113
On aura ainsi par exemple 
114
115
116
0010!Gx?
117
118
correspond au dixième message échangé, le contrôleur demande au drone la valeur de son gyroscope en x
119
120
0011!Gx:21
121
122
serait la réponse du drone
123
124
ou encore 
125
126
0101!0B:21,22,58
127
128
Qui serait le 101e message d'une série, utilisant un protocole de test (commençant par 0) et renvoyant 3 valeurs
129 2 Anonyme
130
131
-----------------------------------------------------------------------------
132
133
*_Notes :_*
134
_1) La présence de bits de bourrage en fin de trames peut être envisagée et pourrait être décidé dans le cadre d'une révision ultérieure de ce document_
135
_2) Ce protocole est encore une ébauche, il est susceptible d'être modifié par la suite_
136
_3) Ce protocole constitue un premier jet destiné à la phase de conception initiale du système, l'optimisation de la vitesse n'est pas privilégiée ici_
137
_4) Ce protocole sera probablement fortement étendu voire totalement abandonné lors de développement ultérieurs du projet, les implémentations de divers protocoles doivent donc pouvoir être interverties aisément au sein du code réalisé (au besoin à l'aide de pattern adéquats). Les révisions cités son suceptibles d'affecter profondément la forme des trames mais aussi de manière non négligeable les informations transmises_
138
139
140
-----------------------------------------------------------------------------
141
142
_+Dernière révision : 11/12/2012 21h20+_
143
_+Auteurs : Couma Joani -- Faure Axel+_