Dernière mise à jour : 23 janvier 2016
Le Raspberry Pi est un nano-ordinateur monocarte à processeur ARM développé par la fondation Raspberry Pi. Cet ordinateur, qui a la taille d’une carte de crédit, est destiné à encourager l’apprentissage de la programmation informatique; il permet l’exécution de plusieurs variantes du système d’exploitation libre GNU/Linux et des logiciels compatibles. Seule la carte mère nue est fournie, sans boîtier, alimentation, mémoire, clavier, souris ni écran, afin de diminuer les coûts et de permettre l’utilisation de matériel de récupération.
Raspberry Pi
Les ordinateurs Raspberry Pi et les accessoires afférents sont disponibles auprès de différents distributeurs et revendeurs, parmi eux Amazon. Fin 2015, il y a quatre modèles disponibles : PI 1 A+, PI 1 B+, PI 2 B et PI Zero. Dans le passé il y avait encore les modèles PI 1 A et PI 1 B.
La documentation officielle est disponible sur le site web de la fondation. Je dispose d’un ensemble d’ordinateurs Raspberry Pi modèle B rev. 2 (2011.12), avec des modules de caméra Raspicam et des kits Bright Pi 1.0. Les caractéristiques principales sont présentées ci-après :
Ordinateur :
- System on a chip (SoC) processeur : Broadcom BCM2835, 700 MHz (ARM, distribution armhf)
- RAM : 512 MByte
- Carte mémoire : Full SD
- Ethernet : 10/100 Mbits
- HDMI port : 1
- USB 2.0 ports : 2
- Composite video output : Cinch
- Audio output : 3,5 mm audiojack
- Camera interface CSI-2 : 1
- LCD display interface DSI : 1
- Extensions : 26
- Nombre de GPIO (general purpose input/output) : 17
- Alimentation : microUSB, 5 Volt, 700 mA
Caméra :
- Sensor : OmniVision OV5647
- Résolution : 2.592 x 1.944 pixels
- Focus : fixe >= 1m
- Vidéo : 1080p30, 720p60 and 640x480p90
Bright Pi v1.0 :
- interface I2C
- 4 LED’s bright white
- 8 LED’s Infrarouge
Raspbian
Comme j’utilise déjà Debian sur un autre ordinateur, je me suis décidé d’installer la version Debian adaptée au Raspberry Pi, appelée Raspbian, sur mes nano-ordinateurs.
Le système d’exploitation Raspbian, les autres logiciels et les données sont enregistrés sur une carte mémoire SD 8GB classe 10. Comme ma carte SD n’était pas vierge, mais formatée sur un autre système, la procédure de reformatage classique ne fonctionnait pas.
J’ai procédé comme suit dans le terminal de commande Windows :
diskpart
list disk
select disk 1
clean
format fs=FAT32 quick
assign
Pour installer le système d’exploitation sur la carte mémoire, j’ai utilisé l’outil Win32DiskImager. La version la plus récente est 0.9.5. Les instructions comment procéder” sont disponibles sur le site web de l’organisation Raspberry Pi.
Raspicam
J’ai connecté le module camera (Raspicam) à la platine Raspberry PI sur base des instructions de set-up données sur le site web de Raspberry. Les caractéristiques sont indiquées dans les détails techniques. La caméra a été fixée sur un support spécifique.
Des bibliothèques (logiciels) pour piloter la caméra sont disponibles pour bash et pour Python. Les trois commandes de base en ligne pour gérer la caméra sont :
- raspistill – prendre des photos
- raspivid – prendre des vidéos
- raspiyuv – générer des photos raw
Les détails des commandes sont décrits dans l’API du module Raspicam.
Bright Pi
Bright Pi est un kit d’éclairage pour ajouter à la caméra Raspicam, développé par Pi Supply. Le module comprend 4 LED’s Cree blanches puissantes et 8 LED’s Liteon infrarouge.
J’étais un supporteur du projet Bright Pi sur Kickstarter.
Les éléments du module sont fournis séparément, il faut soi-même les assembler et souder. Les instructions d’assemblage et de programmation sont disponibles sur le site web de Pi-Supply.
Bright Pi utilise le bus I2C pour échanger des données avec le Raspberry Pi moyennant le chip Semtech SC620 (voir datasheet). Pour activer le bus I2C dans Raspian, il faut ajouter les deux lignes
i2c-bcm2708
i2c-dev
à la fin du fichier /etc/modules. Pour ce faire, on peut utiliser l’éditeur nano sur Raspberry Pi. Pour sauver le fichier modifié, on pousse <Ctrl>+o, ensuite <Ctrl>+x pour quitter l’éditeur. La prise en compte des nouveaux modules se fait lors d’un reboot. Pour installer les outils i2c, il faut entrer les commandes
pi@raspberrypi ~ $ sudo apt-get install python-smbus
pi@raspberrypi ~ $ sudo apt-get install i2c-tools
Pour voir les modules connectés, on peut entrer la commande
pi@raspberrypi ~ $ sudo i2cdetect -y 1
On voit qu’un seul module avec l’adresse 0x70 est connecté, le Bright Pi. Pour piloter le module Bright Pi, on utilise la commande
i2cset [-y] i2cbus chip-address data-address value
Les paramètres sont :
- -y : option pour désactiver le mode interactif (pas de confirmation nécessaire)
- i2cbus : 1
- chip-address : 0x70
- data-address : 0x00 LED’s on/off; 0x01, 0x03, 0x06, 0x08 dimming IR LED’s couples; 0x02, 0x04, 0x05, 0x07 dimming white LED’s; 0x09 gain register
- value : dimming values : 6 bit multipliers; gain values :0000 = 31,25 microampère; 1111 = 500 microampère; max = 25 millampère par LED
Quelques exemples sont montrés ci-après :
white LED1 12 mA : sudo i2cset -y 1 0x70 0x02 ...
white LED2 1 mA :
white LED3
...
Clavier
Comme alimentation, j’utilise le chargeur d’une tablette qui fournit 2 ampères à 5 Volt. Lors de la première mise sous tension, le Raspberry se configure automatiquement. Il ne reconnaît toutefois pas le layout de mon clavier luxembourgeois QWERTZ (respectivement français-suisse) et il faut le modifier manuellement comme suit :
pi@raspberrypi ~ $ sudo raspi-config
Le menu 4 (International Options) donne accès sélections “Change Locale”, “Change Timezone” et “Change Keyboard Layout”. Mon clavier Microsoft Wired Keyboard 600 ne fait pas partie des claviers figurant dans la liste déroulante des modèles de clavier. J’ai choisi le clavier Generic 105-key (Intl) PC. Un layout luxembourgeois n’est pas relevé, le layout du clavier français-suisse figure parmi les layouts allemands. Faut le savoir !
Via le menu 4 on peut également changer le fuseau horaire (le Luxembourg figure sur la liste des pays européens) et la langue d’affichage, par exemple pour passer en français.
Remote Desktop
Avant de pouvoir entrer des commandes il faut faire un login au système. Les paramètres par défaut pour le login sont : user name = pi ; password = raspberry. L’adresse IP attribuée par DHCP est 192.178.1.60. Pour pouvoir piloter dans l’avenir ce Raspberry, et dans la suite ses confrères, à partir de mes ordinateurs connectés en réseau local, j’ai installé le service RDP (Remote Desktop Protocol) de Microsoft sur le Raspberry Pi :
pi@raspberrypi ~ $ sudo apt-get install xrdp
Après un redémarrage du Raspberry (commande sudo reboot ou sudo poweroff), le serveur xrdp sesman est configuré pour démarrer automatiquement lors de chaque mise sous tension.
Sur les ordinateurs Windows, le service RDP est disponible d’office et peut être démarré avec le menu Accessories/Remote Desktop Connection.
Après l’établissement de la connexion, le Raspberry retourne un avertissement
et ensuite la fenêtre de login suivante (module sesman-Xvnc) :
Ici on découvre le prochain bug. Le clavier français-suisse de mon PC Windows n’est pas supporté par le service xrdp, mais il est interprété comme un clavier anglais. Il faut donc saisir le mot de passe raspberrz au lieu de raspberry pour réussir le login. Faut le savoir !
Support du clavier français-suisse par xrdp
Linux xrdp utilise par défaut le fichier keymap /etc/xrdp/km-0409.ini (us-english) si un fichier keymap non-existant est demandé. Il semble que le client Windows xrdp demande le keymap 20409 non disponible, indépendamment du clavier connecté. Le seul remède consiste à remplacer dans Raspian le fichier km-0409.ini par le contenu du fichier keymap du clavier utilisé. Dans mon cas il s’agit du fichier km-100c.ini (voir liste des keymaps).
On peut générer ce fichier avec la commande
pi@raspberrypi ~ $ sudo xrdp-genkeymap /etc/xrdp/km-100c.ini
Attention : il faut toutefois passer en mode graphique avec la commande startx et ouvrir le LXTerminal pour passer la commande, si non on obtient le message d’erreur << unable to open display ” >>.
Cliquez sur le fichier km-100c.ini pour visualiser son contenu. Il faut encore modifier le code de quelques touches qui ne sont pas reconnus correctement. Il s’agit notamment des combinaisons <alt-gr> et des touches curseur :
- @
- #
- ~
- ¢
- ¬
- up
Les touches mortes (dead keys) fonctionnent correctement.
Il suffit ensuite de renommer le fichier km-0409.ini en km-0409-old.ini et de copier le fichier km-100c.ini en km-0409.ini. Faut le savoir !
Applications
Après vérification de l’authenticité de l’usager, le desktop du Raspberry se présente sur l’écran et réagit aux commandes du clavier et de la souris.
Les programmes et applications installés d’office sur le Raspberry Pi sont :
- IDLE et IDLE3 : Python
- Epiphany Web Browser
- Mathematica
- Wolfram Language
- Sonic Pi
- Minecraft Pi
- Scratch
Je me propose d’ajouter les programmes suivants :
- XMBC
- Node.js avec Nodecopter
- Tuxdroid Server
- Nabaztag Server
- eSpeak
- 3D Scanner
- Rapiro Robot
- Orthanc DICOM Server
Pour activer la caméra, il faut passer dans le menu 5 (Enable Camera) de raspi-config. Pour tester la caméra et faire une première photo, on entre la commande
pi@raspberrypi ~ $ raspistill -o camtest1.jpg
Si la caméra est positionnée à l’envers, il faut tourner l’image de 180 degrés. Cela se fait aisément avec les options “vertical flip” et “horizontal flip”.
pi@raspberrypi ~ $ raspistill -vf -hf -o camtest2.jpg
Liens
Les liens suivants fournissent des informations additionelles concernant des projets Raspberry et le clavier XRDP :
- Plus de 50 idées pour votre Raspberry Pi
- Gladys : Your personal home assistant
- Faire parler le Raspberry Pi
- University builds cheap supercomputer with Raspberry Pi and Legos
- Speech processing on the Raspberry Pi
- RPi Text to Speech (Speech Synthesis)
- Turn your Raspberry Pi into a Translator with Speech Recognition and Playback (60+ languages)
- Control anything with your voice
- Bioscope – old-timey-fy your movies
- Cepstral – Raspberry Pi
- Le RaspberryPi : Personnalisation du système Gnu/Linux (Raspbian) de base
- Has anyone got a Text to Speech engine installed?
- Wrong keyboard layout in RDP session over Debian GNU/Linux
- XRDP – How To Make your keyboard “special keys” (Alt+Gr, Up,Down,..) working when using XRDP
- Wrong keyboard when remote desktopping from windows to linux
- Fixing UK keyboard mapping for Xrdp
- Wrong keyboard layout using XRDP
- How to get proper keyboard jayout using xrdp, with AltGr regional characters