18 | | = 2. Hello World! Raspberry PI 1 |
19 | | |
20 | | **Plateforme des TP pour les Raspberry Pi** |
| 18 | |
| 19 | |
| 20 | = 2. Hello World! !RaspberryPi 1 |
| 21 | |
| 22 | |
| 23 | |
| 24 | == 2.1. Accès aux cartes !RaspberryPi |
| 25 | |
| 26 | |
| 27 | Le schéma ci-dessous représente la plateforme des cartes !RaspberryPi 1. |
| 28 | Pour exécuter votre programme sur une carte !RaspberryPi, vous devez vous connecter en `ssh` sur une carte !RaspberryPi en passant par le routeur peri. Le routeur peri a deux adresses: `132.227.71.43` du coté laboratoire et `192.168.1.1` de l'autre coté. Le serveur de nom (DNS) du laboratoire a attribué l'adresse `132.227.71.43` le nom `peri`. Le routeur peri crée un sous-réseau (`192.168.1.x`) où sont connectées les cartes !RaspberryPi. Les cartes sont numérotées de `20` à `26`. Le routeur a été configuré pour reconnaître les adresses MAC des cartes et leur attribuer une adresse IP fixe. La carte n°`X` (X allant de 20 à 26) reçoit l'adresse IP 192.168.1.`X` (par exemple la carte n°`20` a comme adresse sur ce réseau `192.168.1.20`). |
| 29 | Pour faire ça, le firmware du routeur a été remplacé par '''[[http://www.dd-wrt.com/site/index | dd-wrt]]''' qui permet ce type de configuration. Le routeur a été également été configuré pour que tous les paquets entrants sur le port `62200`+`X` de l'adresse `peri` soient routés vers l'adresse `192.168.1.X` port 22. Le port 22 est celui sur lequel écoute le serveur ssh. |
24 | | Pour exécuter votre programme sur une carte Raspberry Pi, vous devez vous connecter en SSH sur une carte Raspberry Pi en passant par le routeur peri. Le routeur a deux adresses: `132.227.71.43` du coté laboratoire et `192.168.1.1` de l'autre coté. Le serveur de nom lui a attribué un nom : peri. Le routeur crée un sous-réseau (`192.168.1.x`) où sont connectées les cartes. Les cartes sont numérotées de `20` à `26` plus des cartes étudiants (ici n°30), le routeur a été programmé de telle sorte que l'adresse internet de la carte n°`X` ait comme adresse 192.168.1.`X` (par exemple la carte n°`20` a comme adresse sur ce réseau `192.168.1.20`). |
25 | | Pour faire ça, le firmware du routeur a été remplacé par '''[[http://www.dd-wrt.com/site/index | dd-wrt]]''' qui permet ce type de mode. Le routeur a été également été programmé pour que tous les paquets entrants sur le port `5000`+`X` de l'adresse peri soient routés vers l'adresse `192.168.1.X`. |
26 | | |
27 | | Il n'y a qu'un seul compte utilisateur sur une carte Raspberry Pi. Le nom de login est `pi` et le mot de passe est `raspberry`. |
28 | | |
29 | | Ainsi, pour se connecter en ssh sur la carte n°`22` avec le login `pi`, il faut taper (remarquez que c'est un `p` minuscule): |
30 | | {{{#!sh |
31 | | $ ssh -p 5022 pi@peri |
| 33 | |
| 34 | Il n'y a qu'un seul compte utilisateur sur une carte !RaspberryPi. Le nom de login est `pi` et le mot de passe est `raspberry`. Comme, il n'y a qu'un compte par carte et que vous allez devoir vous les partager, vous devez créer un répertoire à la racine avec '''votre nom de votre login''' sur le réseau enseignement accolé avec un tiret avec le '''nom de login''' de votre binôme. Par exemple, deux personnes en binôme, dont les noms de login sont respectivement `almada` et `fomentin` vont créer un répertoire `almada-fomentin` (en minuscule). |
| 35 | |
| 36 | '''Je vous demande de respecter cette convention'''[[BR]] |
| 37 | '''afin que je puisse vous identifier facilement.''' |
| 38 | |
| 39 | |
| 40 | Ainsi, pour se connecter en ssh sur la carte n°`20` avec le login `pi`, il faut taper (remarquez que c'est un `p` minuscule): |
| 41 | {{{#!sh |
| 42 | $ ssh -p 62220 pi@peri |
80 | | Si cette commande ne retourne rien, la configuration n'a pas fonctionné. Appelez le chargé de TP pour vous aider. |
81 | | |
82 | | Votre suite d'outils (toolchain) contient tous les outils nécessaires pour la compilation, l'édition des liens et la manipulation de binaires pour la carte Raspberry Pi. Et tous ces outils sont préfixés par la même chaîne de caractères: `bcm2708hardfp-`. Il s'agit donc d'un compilateur pour un SoC BCM2708 avec l'option hardfp activée (calcul flottant matériel). Il s'agit bien du SoC de la carte Raspberry Pi. |
83 | | |
84 | | Maintenant, pour compiler un programme C vers un binaire qui puisse s'exécuter sur la carte Raspberry Pi, il vous faut écrire un Makefile pour plus de facilité. Pour cela, suivez la syntaxe de base des Makefile: |
| 91 | Si cette commande ne retourne rien, la configuration n'a pas fonctionné. |
| 92 | |
| 93 | Votre suite d'outils (toolchain) contient tous les outils nécessaires pour la compilation, l'édition des liens et la manipulation de binaires pour la carte RaspberryPi. Et tous ces outils sont préfixés par la même chaîne de caractères: `bcm2708hardfp-`. Il s'agit donc d'un compilateur pour un SoC BCM2708 avec l'option hardfp activée (calcul flottant matériel). Il s'agit bien du SoC de la carte RaspberryPi. |
| 94 | |
| 95 | Maintenant, pour compiler un programme C vers un binaire qui puisse s'exécuter sur la carte RaspberryPi, il vous faut écrire un Makefile pour plus de facilité. Pour cela, suivez la syntaxe de base des Makefile: |
213 | | = 3. Arduino |
214 | | |
215 | | == 3.1. Objectif |
216 | | |
217 | | L'objectif de vous familiariser avec l'environnement Arduino. Vous allez donc utiliser des cartes Arduino et y programmer une petite application. |
218 | | |
219 | | == 3.2. Environnement |
220 | | |
221 | | Il existe beaucoup d'excellents tutoriels sur l’Arduino, et il ne s'agit pas ici de remplacer par un tutoriel simplifié. Si l’Arduino vous intéresse au-delà de ce que nous allons brièvement aborder, vous pouvez commencer par l'excellent tutoriel d'[https://zestedesavoir.com/tutoriels/686/arduino-premiers-pas-en-informatique-embarquee/ Eskimon]. |
222 | | |
223 | | L'application Arduino est déjà installé sur les machine du département, pour la lancer, il suffit de taper son nom sur un terminal : |
224 | | {{{ |
225 | | $ /opt/arduino.1.6.8/arduino & |
226 | | }}} |
227 | | La fenêtre d'édition apparaît. Elle va permettre d'éditer, de compiler et de téléverser (upload) votre programme dans le microcontrôleur ATmega. Vous allez devoir commencer par sélectionner la carte et le port de connexion (menu outils). |
228 | | * carte : Arduino nano 328p |
229 | | * port : /dev/ttyUSB0 ou /dev/ttyUSB1 |
230 | | Le port n'apparait que lorsque vous connectez la carte. l'hôte USB détecte et reconnaît la carte au moment de sa connexion et installe le driver (maintenant vous savez comment :-). |
231 | | |
232 | | == 3.3 Travail demandé == |
233 | | |
234 | | 1. faire clignoter une led 13 (exemple blink) |
235 | | 2. Lire le port analogique A0, sur lequel est branché une photorésistance et allumer la led 13 si la lumière détectée est sombre. |
236 | | {{{ |
237 | | |
238 | | 5V <----(/\LCR/\)--+--[/\/2kOhms/\/]----|0V |
239 | | | |
240 | | v |
241 | | A0 |
242 | | }}} |
243 | | 3. Utiliser la photorésistance pour simuler un bouton poussoir, l'appui serait juste l'éclairage par un flash. A la détection de cet "appui", vous afficher un message sur le terminal. |