Project

General

Profile

Wiki » History » Version 102

Elena Vig, 22/02/2021 12:09 AM

1 35 Elena Vig
h1. *+Panneau Leds+*
2 1 Alexis Mata
3 45 Alexis Mata
h2. VIG Elena / MATA Alexis
4 43 Alexis Mata
5 24 Elena Vig
{{toc}}
6
7 37 Alexis Mata
---
8
9
h2. +Présentation du projet:+
10
11 71 Elena Vig
Le projet que nous devions réaliser consiste à afficher des messages sur un panneau leds selon 3 scénarios donnés :
12
# Un utilisateur programmeur peut accéder, par la console de l'OS raspbian, au code source afin de le modifier et d'interagir avec le panneau LED.
13
# Un utilisateur confirmé peut entrer le message qu'il souhaite afficher sur le panneau LED en l'entrant en argument dans la console de l'OS raspbian.
14
# Un utilisateur lambda peut accéder à une page web qui lui permet de saisir un message et de l'afficher en appuyant sur « RUN ».
15
16 52 Alexis Mata
17 89 Elena Vig
18 38 Alexis Mata
---
19
20 60 Alexis Mata
h2.  +Répartition des tâches:+
21 1 Alexis Mata
22
*Elena :* 
23 38 Alexis Mata
* Construction de la boîte du panneau
24
* Diagramme de déploiement et diagramme d'activité
25 34 Elena Vig
* Réalisation des connexions / soudures / câbles
26
* Installation / Test de la chaîne de compilation
27
* Coder / Tester / Debugger
28
* Modifier le programme afin d'exploiter les arguments de la fonction principale
29 33 Elena Vig
30
*Alexis :* 
31 34 Elena Vig
* Installation / configuration de Raspbian Jessie
32
* Réalisation des connexions / soudures / câbles
33
* Mesure et relevé des signaux éléctriques (horloge)
34
* Installer une solution matérielle/logicielle
35 1 Alexis Mata
* Installer le serveur web
36
37 89 Elena Vig
38
39 38 Alexis Mata
---
40
41
h2. +Matériels et logiciels utilisés+
42
43
*Bilan Matériel:*
44 72 Elena Vig
* 1 Panneau led
45
* 1 Bornier
46
* 2 Connecteurs HE10
47
* 2m de nappes
48
* une clé USB
49
* 1 Raspberry Pi
50
* Carte micro SD
51
* 1 Boîtier RPI
52
* Module wifi
53
* Module Pi face
54 38 Alexis Mata
55 73 Elena Vig
*Bilan Logiciel:*
56 72 Elena Vig
* Raspbian
57
* Smartty
58
* StarUML
59
* Monia
60
* CodeBlocks
61
* Serveur Web 
62
* Redmine
63 38 Alexis Mata
64 89 Elena Vig
65
66 38 Alexis Mata
---
67
68 23 Elena Vig
h2.  +Installation / Configuration Raspbian Jessie+
69 20 Elena Vig
70 83 Elena Vig
* Nous avons dézippé le fichier compressé '2021-01-22-raspbian-jessie-8.zip', puis installé l'utilitaire 'md5check_setup.exe', puis copié le fichier qu'on vient de décompresser. Enfin, nous avons installé puis formaté l'image Raspbian sur la carte SD.
71 1 Alexis Mata
!raspbian.PNG!
72 83 Elena Vig
73
* On commence ensuite la configuration en vérifiant si l'adresse IP est bien connectée sur le bon réseau, on regarde si le système est bien à jour, que le service ssh est activé et que la librairie wiringPI soit bien installée sur notre raspberry.
74 75 Elena Vig
Voici le raspberry installé et branché :
75 55 Alexis Mata
!branchement_raspberry.jpg!
76 49 Alexis Mata
77 90 Elena Vig
78
79
---
80
81 23 Elena Vig
h2.  +Diagramme de déploiement des cas d'utilisations et leurs scénarios+
82 20 Elena Vig
83 63 Alexis Mata
!diagramme.PNG!
84
85 89 Elena Vig
86
87
---
88
89 23 Elena Vig
h2.  +Réalisation des connexions / soudures / câbles et test+
90 20 Elena Vig
91 84 Elena Vig
* La soudure des composants de la carte mère de notre Raspbian Jessie étant déjà réalisée, il nous a fallu réaliser les connexions des câbles K1 et K2, puis les brancher correctement. 
92
93
* Ensuite, pour les tester, il a fallu faire 2 leds (une rouge, une verte) avec une résistance, et ensuite les brancher sur la précédente monture avec la borne négative connectée au GND, et la borne négative connectée sur  le GPIO 22 pour la led rouge et le GPIO 17 pour la led verte.
94 81 Elena Vig
Si les leds s'allument correctement et réagissent aux instructions données dans la console avec le GPIO, le test des connexion peut donc être validé.
95
96 89 Elena Vig
97
98
---
99
100
101 32 Elena Vig
h2.  +Construction de la boîte du panneau leds+
102 20 Elena Vig
103 85 Elena Vig
* En premier lieu, pour démarrer ce mini projet, on a du construire une boîte en carton et polystyrène refermable permettant au panneau leds de tenir debout.
104 86 Elena Vig
105 64 Alexis Mata
!PanneauLeds.jpg!
106
107 89 Elena Vig
108
109
---
110
111 23 Elena Vig
h2.  +Mesure et relevé des signaux électriques (horloge)+
112 20 Elena Vig
113 102 Elena Vig
* On a relevé la tension entre chaque borne des leds rouges et vertes grâce à un oscilloscope lorsqu'on faisait clignoter les leds (horloge). Voici ci-dessous le graphique obtenu : on peut bien remarquer le changement d'état des leds correspondant
114 1 Alexis Mata
115 99 Alexis Mata
!oscilloscope.PNG!
116 89 Elena Vig
---
117
118 23 Elena Vig
h2.  +Installation / Test de la chaîne de compilation+
119 20 Elena Vig
120 87 Elena Vig
* Installation de la chaîne de compilation Gnu :
121 67 Alexis Mata
122 68 Alexis Mata
!gnu.PNG!
123 67 Alexis Mata
124 87 Elena Vig
* Création d'un exécutable qui ne fonctionne pas sous windows destiné au raspberry.
125 78 Elena Vig
Pour transférer ce fichier sur le Raspberry, nous utilisons le client SSH de l'utilitaire SmarTTY fourni avec la chaîne de compilation:
126 1 Alexis Mata
127
!smartty.PNG!
128 69 Alexis Mata
129 87 Elena Vig
* Il faut sauvegarder la clé publique fournie par SmarTTY.
130 69 Alexis Mata
131 87 Elena Vig
* Ensuite, nous avons testé le projet 'hello' en mode debug . Il faut lancer le serveur gdb sur le raspberry avec la commande suivante : 'gdbserver :1234bonjour'
132 78 Elena Vig
133 69 Alexis Mata
!bonjour.PNG!
134 67 Alexis Mata
135 87 Elena Vig
* On lance alors le client gdb grâce a la commande 'arm-linux-gnueabihf-gdb.exe bonjour', et on peut observer la réponse suivante sur SmarTTY :
136 70 Alexis Mata
137
!gdb1234.PNG!
138 74 Alexis Mata
139 91 Elena Vig
* Place ensuite à la configuration de codeblocks 
140 74 Alexis Mata
141 95 Alexis Mata
!console.PNG!
142
143 88 Elena Vig
* Enfin, le projet "bonjour" peut être compilé.
144 67 Alexis Mata
145 95 Alexis Mata
!compiler.PNG!
146 89 Elena Vig
147 96 Alexis Mata
* On exécute le binaire de notre projet et le message 'Hello world!' s'affiche. On vient de réaliser notre premier projet avec l'IDE de CodeBlocks.
148
149
*Maintenant on va faire une compilation croisée donc il faut changer les paramètres.
150
151
!croisée.PNG!
152
153
*On édite le fichier source bonjour.c et on le compile, si les paramètres sont bons l'IDE nous envoie le message 0 errors, 0 warnings.
154
155
*L'exécutable bonjour.exe se trouve dans le dossier de notre projet qu'on transfère dans la raspberry .
156
157
!smarttypi.PNG!
158
159
*On lui autorise l'exécution avec la commande chmod +x bonjour.exe et on l'exécute avec ./bonjour.exe. Le message qu'on vient de programmer s'affiche dans la console du raspberry.
160
161
*Ensuite on va mettre à jour le répertoire présent sur notre machine Windows en exécutant le script UpdateSysroot.bat.
162
163 97 Alexis Mata
*On a fini les test de la chaîne de compilation, on peut faire notre programme pour la solution finale.
164 89 Elena Vig
165
---
166
167 23 Elena Vig
h2.  +Coder / Tester / Debugger+
168 20 Elena Vig
169 82 Elena Vig
* Tout d'abord, nous avons dû tester pas à pas plusieurs programmes donnés pour comprendre les différentes fonctions permettant de faire fonctionner les leds.
170
171
172
* Ensuite, on a réalisé un programme permettant de faire apparaître le message "AAAA" sur le panneau grâce à un tableau 1D. Puis, une fois le programme réalisé et testé, avec un tableau 2D.
173
Voici en exemple le programme avec le tableau 2D :
174
175 1 Alexis Mata
!ProgrammeAAAA.jpg!
176 82 Elena Vig
177
* Enfin, une fois que nous avions compris le fonctionnement du programme avec le tableau 2D et les différentes fonctions, on a pu créer un programme affichant "Bonne année 2021"
178
179
* Une fois toutes ces étapes réalisées, nous avons pu réfléchir au programme final permettant d'afficher le message tapé dans la console. 
180 23 Elena Vig
181 89 Elena Vig
182
183
184
---
185 1 Alexis Mata
186 49 Alexis Mata
h2.  +Installation du serveur web+ 
187 41 Alexis Mata
188 92 Elena Vig
* Un serveur web doit être installé (avec Apache2) pour l'utilisateur lambda. Grâce à l'application ainsi créée, celui-ci n'a plus qu'à taper le message qu'il veut pour l'afficher sur le panneau leds :
189 62 Alexis Mata
190 1 Alexis Mata
!apache2.PNG!
191 62 Alexis Mata
192 93 Elena Vig
193 92 Elena Vig
* Ensuite, il convient d'installer php avec la commande 'sudo apt-get install php5 libapache2-mod-php5 -y', puis un répertoire dans '/var/www/ sudo mkdir.
194 79 Elena Vig
Cette page s'affiche alors, lorsque tout est installé :
195 62 Alexis Mata
196 61 Alexis Mata
!apache2.1.PNG!
197 1 Alexis Mata
198 93 Elena Vig
199 92 Elena Vig
* Copie des fichiers dans le répertoire 'panneauLeds' de la raspberry :
200 62 Alexis Mata
201 1 Alexis Mata
!indexphp.PNG!
202 62 Alexis Mata
203 93 Elena Vig
204 92 Elena Vig
* Test de l'installation dans le serveur :
205 1 Alexis Mata
206 42 Alexis Mata
!siteweb.PNG!
207 62 Alexis Mata
208 93 Elena Vig
209 92 Elena Vig
* Modification du chemin de l’exécutable dans le fichier «runApp.php».
210 61 Alexis Mata
211 62 Alexis Mata
!runAppphp.PNG!
212 66 Alexis Mata
213 93 Elena Vig
214 92 Elena Vig
* Enfin, il faut rajouter les droits au groupe «www-data» dans le fichier /etc/sudoers.
215 61 Alexis Mata
216 62 Alexis Mata
!droits.PNG!
217 93 Elena Vig
218 61 Alexis Mata
219 92 Elena Vig
* Toutes ces étapes réalisées avec succès, le serveur web est correctement créé et peut être mis à la disposition du client.
220 79 Elena Vig
221 19 Alexis Mata
222 3 Alexis Mata
223 4 Alexis Mata
224
---