Sunteți pe pagina 1din 285

Eben Upton

Raspberry Pi

Le guide de l’utilisateur

Édition à jour du Raspberry Pi 3

Traduit de l’anglais
par Dominique Maniez
Pour Liz, qui a permis que cette aventure se réalise.
Eben

Pour mon père, qui représente le passé optimiste,


et mes filles, l’avenir prometteur.
Gareth

L’édition originale de cet ouvrage a été publiée en 2016


par John Wiley & Sons Inc. sous le titre
Raspberry Pi, User Guide

Authorized French translation of the English edition of Raspberry Pi


© 2016 Eben Upton and Gareth Halfacree
All Rights Reserved. This translation published under license
with the original publisher John Wiley & Sons, Inc.

Publisher’s Acknowledgements. Editorial and Production: VP - Professional Technology Strategy:


Barry Pruett; Associate Director–Book Content Management: Martin Tribe; Executive Commissio-
ning Editor: Jody Lefevere; Project Editor: John Sleeva; Technical Editor: Andrew Scheller; Manager
of Content Development and Assembly: Mary Beth Wakefield; Editorial Assistant: Matthew Lowe.
Marketing: Marketing Manager: Lorna Mein; Associate Marketing Manager: Carrie Sherrill

Traduction : Dominique Maniez


Graphisme de couverture : Wip Design
Maquette intérieure : Maud Warg
Mise en pages : PCA

© Dunod, 2017 pour la traduction française


11 rue Paul Bert, 92240 Malakoff
www.dunod.com
ISBN 978-2-10-076563-8
Table des
matières

Introduction 9
La programmation, c’est amusant ! 10
Un peu d’histoire 11
Que peut-on faire avec le Raspberry Pi ? 17

#1 Mise en route
/>1   À la découverte du Raspberry Pi 21
Tour du propriétaire de la carte 21
Modèle A / B 24
© Dunod – Toute reproduction non autorisée est un délit.

Modèle A+ / B+ 25
Raspberry Pi 2 26
Raspberry Pi 3 27
Raspberry Pi Zéro 28
Un peu d’histoire 29

/>2   Mise en route du Raspberry Pi 33


Connexion de l’écran 33
Connexion audio 36
Connexion d’un clavier et d’une souris 37

Table des matières /5


Installation de NOOBS sur une carte SD 39
Connexion d’un dispositif de stockage externe 41
Raccordement au réseau 41
Connexion de l’alimentation 45
Installation du système d’exploitation 45
Connexion de périphériques Bluetooth 52

/>3   Administration système Linux 55


Présentation générale de Linux 55
Bases de Linux 58
Introduction à Raspbian 59
Périphériques de stockage externes 64
Créer un nouveau compte utilisateur 66
Installation et désinstallation de logiciels 70
Arrêt du Pi en toute sécurité 76

/>4   Dépannage 77
Diagnostics du clavier et de la souris 77
Diagnostics de l’alimentation 78
Diagnostics de l’affichage 80
Diagnostics de démarrage 81
Diagnostics réseau 82

/>5   Configuration du réseau 85


Configuration d’un réseau filaire 85
Configuration d’un réseau sans fil 89

/>6   Outil de Configuration du Raspberry Pi 97


Exécution de l’outil de configuration 97
Onglet Système 98
Onglet Interfaces 102
Onglet Performance 105
Onglet Localisation 107

/>7   Configuration avancée du Raspberry Pi 113


Éditer les fichiers de configuration avec NOOBS 113
Paramètres du matériel : config.txt 115
Désactivation du cache L2 124
Répartition de la mémoire 125
Paramètres du logiciel : cmdline.txt 126

6/ Table des matières


#2  Création d’un media center
ou d’une machine de productivité

/>8   Le Raspberry Pi comme media center 131


Lecture audio depuis la console 131
Un media center avec OSMC 133
Lecture en streaming depuis Internet 136
Lecture en streaming depuis un réseau local 137
Configuration d’OSMC 139

/>9  Le Raspberry Pi comme machine de productivité 141


Applications cloud 141
LibreOffice 144
Édition graphique avec Gimp 145

#3  Programmation du pi

/>10  Introduction à Scratch 151


Introduction à Scratch 151
Exemple no  1 : Hello World ! 152
Exemple n  2 : animation et sons
o
155
Exemple no 3 : un simple jeu 157
Interfaçage de Scratch avec du matériel 163
Pour aller plus loin 165

/>11  Introduction à Python 167


Présentation de Python 167
Exemple 1 : Hello World ! 168
Exemple 2 : entrées, variables, et boucles 173
© Dunod – Toute reproduction non autorisée est un délit.

Exemple 3 : créer un jeu avec pygame 178


Exemple 4 : connexion au réseau avec Python 185
Pour aller plus loin 190

/>12   Minecraft Pi Edition 191


Introduction à Minecraft Pi Edition 191
Installation de Minecraft 192
Lancement de Minecraft 192
Exploration 194
Hacker Minecraft 195

Table des matières /7


#4  Exploitation du matériel

/>13  Exploitation du matériel du pi 203


Équipement électronique 203
Lecture des codes couleur des résistances 206
Approvisionnement en composants 207
Découverte de la breadboard 209
Conseils pour bien souder 212

/>14  Port GPIO 217


Identification de la version de votre carte 217
Schémas de brochage du port GPIO 219
Caractéristiques du GPIO 220
Utilisation du port GPIO en Python 222
Soudure du connecteur GPIO du Pi Zéro 230

/>15   Module de caméra 233


Pourquoi utiliser le module de caméra ? 234
Choix du module de caméra 234
Installation du module de caméra 235
Activation du mode caméra 238
Enregistrement de photos 240
Enregistrement vidéo 242
Réaliser un time-lapse 243

/>16   Matériels additionnels 247


Boîtier officiel du Raspberry Pi 248
Écran tactile de 7 pouces 250
Sense HAT 254

#  Annexes

/>Annexe A : Recettes Python 263

/>Annexe B : G uide de référence rapide du module


de caméra du Raspberry Pi 269

/>Annexe C : Modes d’affichage HDMI 279

Index 285

8/ Table des matières


/> Introduction

« Les gamins de maintenant sont tous des digital natives », me disait quelqu’un
au cours d’une soirée. « Je ne sais pas pourquoi vous fabriquez ces trucs. Mes
enfants en savent plus que moi quand il s’agit d’installer un PC. »
Je lui ai demandé s’ils savaient programmer, ce à quoi il a répondu : « Et pour
quoi faire ? L’ordinateur fait déjà tout ce qu’ils veulent. C’est tout ce qu’on lui
demande, non ? »
En fait, beaucoup parmi nos jeunes ne sont pas des digital natives. On est loin
des rêves fous de certains, où des gamins sauteraient d’une liane (faite de paires
de cuivre torsadé) à l’autre en entonnant des chants guerriers composés dans un
Python impeccable. Nous, à la Fondation Raspberry Pi, dans le cadre de nos acti-
vités éducatives, nous rencontrons beaucoup de jeunes qui ont pour tout bagage
technologique leur expérience avec des systèmes fermés dont l’interface gra-
phique leur permet de regarder des films, d’utiliser le traitement de texte pour
quelques devoirs, et de faire des jeux. Ils savent naviguer sur Internet, poster des
photos et de la vidéo, et ils peuvent même concevoir des pages Web (et bien sou-
vent ils s’en sortent également beaucoup mieux que papa et maman pour para-
métrer le décodeur satellite). Tout cela est très utile, mais incroyablement mince !
Et dans un pays comme l’Angleterre où 20 % des foyers n’ont toujours pas d’or-
© Dunod – Toute reproduction non autorisée est un délit.

dinateur à la maison, même ces compétences-là ne sont pas accessibles à tous.


Malgré l’ardent désir de mon compagnon de soirée, les ordinateurs ne se
programment pas d’eux-mêmes. C’est toute une branche, avec ses ingénieurs
de haut niveau, qui est nécessaire pour faire avancer la technologie. Et nous
avons besoin de jeunes pour prendre la relève. Il est beaucoup plus difficile
d’enseigner la pensée informatique que de faire naître une nouvelle généra-
tion de bidouilleurs et de codeurs. La capacité de structurer idées et tâches
de manière non linéaire et complexe est un talent qui s’acquiert et qui offre
d’énormes avantages à ceux qui le possèdent, qu’ils soient historiens, concep-
teurs, avocats, ou chimistes.

Introduction /9
La programmation, c’est amusant !
Programmer, c’est gratifiant, créatif et amusant. On peut créer de magni-
fiques solutions d’une complexité incroyable, mais aussi (et c’est bien plus beau,
à mon avis) contourner les obstacles en empruntant des chemins tout simples
en apparence, astucieux et d’une rapidité foudroyante. On peut faire des choses
qui attisent la jalousie des autres et procurent de la fierté tout un après-midi.
Mon travail consiste à concevoir des puces du genre de celles que nous utilisons
comme processeur dans le Raspberry Pi. Je travaille sur la partie logicielle de
bas niveau qui les fait fonctionner, et en gros, on me paye pour que je joue toute
la journée. Qu’y a-t‑il de mieux que de permettre à des gens de passer leur vie à
s’amuser ?
On ne peut même pas dire que les enfants soient insensibles aux possibilités de
travailler dans la micro-informatique. Il y a quelques années, alors que nous avan-
cions tout doucement sur le projet Raspberry Pi, nos convictions ont été forte-
ment ébranlées. Tout le travail de développement se faisait sur le temps libre des
membres de la fondation et des bénévoles (nous sommes une association à but
non lucratif dont les membres ne sont donc pas payés par la fondation, et nous
avons tous un travail à temps plein pour honorer nos factures). Ça pouvait parfois
entamer notre motivation, surtout le soir quand tout ce à quoi j’aspirais c’était
de siroter un bon verre de vin en regardant un épisode des Nouveaux pauvres.
Un soir, j’ai eu l’occasion de discuter avec le neveu d’un voisin. Nous parlions des
options qu’il avait choisies pour son GCSE (le diplôme britannique de fin d‘études
secondaires qui porte sur divers sujets et que l’on passe à partir de 16 ans), et je
lui ai demandé quel métier il envisageait.
« Je veux écrire des jeux vidéo. »
« Super ! Quel genre d’ordinateur est-ce que tu as à la maison ? J’ai quelques
livres de programmation qui pourraient t’intéresser. »
« Une Wii et une Xbox. »
Au fur et à mesure de notre conversation, il devenait clair que ce garçon, au
demeurant parfaitement intelligent, n’avait jamais programmé, qu’il n’avait pas de
machine sur laquelle s’essayer à la maison, et que ses cours d’informatique, avec
un PC pour deux, et pendant lesquels on lui enseignait comment concevoir des
pages Web, utiliser un tableur et un traitement de texte, ne lui avaient pas donné
les moyens d’utiliser un ordinateur, même au sens le plus restreint. Mais voilà, les
jeux vidéo étaient sa passion (et vouloir travailler dans un domaine qui passionne
n’a rien d’étrange). Les options qu’il avait choisies pour son GCSE étaient donc
censées l’y conduire. Il avait, à n’en pas douter, les talents artistiques attendus
dans le métier, ses notes en maths et en sciences n’étaient pas mauvaises, mais il
n’avait fait qu’effleurer la programmation. Son cursus ne lui offrait aucun module
lui permettant vraiment de faire de la programmation. Il était obligé de se rabat-
tre sur des cours semblables aux précédents, tous orientés vers l’utilisateur final.
Vu ce qu’il avait à la maison, ses chances de développer les qualifications néces-

10/ Introduction
saires pour travailler dans le domaine qui lui plaisait devenaient de plus en plus
minces.
En finir avec un tel gâchis et exploiter le potentiel et l’enthousiasme, voilà ce
qui me motive. Bien sûr, je ne suis pas à ce point obsédé par le Raspberry Pi pour
m’imaginer qu’il va, à lui seul, changer la donne ; mais il peut jouer le rôle de cata-
lyseur. Il y a déjà eu de grands changements dans les écoles du Royaume-Uni. En
2014, le programme scolaire a été remanié dans sa partie informatique, et dans
les quatre années qui ont suivi la sortie du Raspberry Pi, on a assisté à une remar-
quable prise de conscience des besoins criants dans l’offre culturelle et éducative
proposée aux jeunes.
Il y a tellement d’appareils numériques qui sont verrouillés que les enfants
qui s’en servent quotidiennement ne sont pas capables de les utiliser de façon
créative, alors que l’informatique par essence favorise la création. Essayez, pour
voir, de transformer votre iPhone en cerveau pour robot, ou de demander à
votre PS4 d’exécuter un jeu que vous avez écrit. Indéniablement, il est possible
de programmer avec un PC familial, mais pour cela, il y a quelques obstacles à
franchir dont certains sont insurmontables pour de nombreux enfants : télé-
charger des programmes spécifiques, avoir des parents qui n’ont pas peur de
casser quelque chose qu’ils ne savent pas réparer. Et puis, beaucoup ne savent
même pas que le PC de la maison peut servir à ça. Pour eux, c’est un bel objet
sur lequel il n’y a qu’à cliquer pour qu’il fasse ce qu’on veut, sans trop réfléchir.
Son boîtier scellé contient ce qu’il faut pour permettre à papa et maman de
tenir les comptes, mais cela coûterait très cher de le remplacer, si les choses
tournaient mal.
Le Raspberry Pi, lui, n’est pas cher. On peut l’acheter avec l’argent de poche de
quelques semaines et le matériel pour le faire fonctionner est sûrement déjà à la
maison : une télé, la carte SD d’un vieil appareil photo, un chargeur de téléphone,
un clavier et une souris. Pas besoin de le partager, il appartient à l’enfant, et il
est assez petit pour se glisser dans la poche et l’emporter chez un copain ou une
copine. Si l’on a fait une mauvaise manipulation, ce n’est pas grave, on met une
nouvelle carte SD et le Raspberry Pi est comme neuf. Tous les outils, le système
de base, les cours et exercices nécessaires à un apprentissage à son rythme, sont
© Dunod – Toute reproduction non autorisée est un délit.

là, dans la machine, dès qu’on l’allume.

Un peu d’histoire
J’ai commencé à travailler sur le projet avec un tout petit barebone en 2006,
alors que j’étais directeur d’études au département d’informatique de l’université
de Cambridge. J’avais obtenu un diplôme au laboratoire d’informatique où j’en-
seignais et préparais mon doctorat. À cette époque, j’ai commencé à constater
que les compétences des nouveaux entrants en informatique étaient nettement
à la baisse. Petit à petit, entre les années 1990 et 2005, on était passé de jeunes
de 17 ans avec des bases en plusieurs langages, capables de bricoler du matériel,

Introduction /11
et même de programmer en assembleur, à des gamins qui avaient des notions en
HTML, et avec un peu de chance, en PHP et CSS. Leur intelligence et leur potentiel
étaient bien au rendez-vous, mais leur expérience en informatique n’avait plus
rien à voir avec celle de leurs prédécesseurs.
À Cambridge, le cursus informatique se compose d’environ 60 semaines de
cours et d’ateliers répartis sur une période de trois ans. S’il faut toute la pre-
mière année pour les hisser à un niveau convenable, il devient très difficile de leur
permettre de préparer un doctorat ou d’entrer dans la vie professionnelle dans
les deux ans qui restent. Parmi ceux qui avaient réussi leur licence, les meilleurs
étaient ceux qui ne s’étaient pas contentés de programmer quand ils avaient un
devoir à rendre ou un projet de groupe : ils faisaient également de la program-
mation sur leur temps libre. L’idée de départ, pour le Raspberry Pi, était limitée à
un besoin local et à un seul et modeste objectif : je voulais fabriquer un outil des-
tiné aux candidats à l’inscription à ce cours universitaire, afin qu’ils s’initient. Mes
collègues et moi pensions que nous allions le distribuer aux élèves qui venaient
pendant les journées portes ouvertes. Ceux qui reviendraient pour un entretien
quelques mois plus tard nous diraient ce qu’ils en avaient fait. Ceux qui auraient
les réponses les plus intéressantes seraient ceux que nous souhaiterions intégrer
dans la formation. Nous espérions produire cette machine à quelques centaines
d’exemplaires, ou dans le meilleur des cas, arriver à quelques milliers d’unités en
fin de cycle de production.
Bien sûr, une fois les choses sérieuses entamées, nous nous sommes vite rendu
compte qu’un petit ordinateur au prix si abordable allait répondre à bien d’autres
demandes encore. La machine qui nous a servi de point de départ était bien dif-
férente du Raspberry Pi d’aujourd’hui. J’ai commencé sur la table de la cuisine, où
je suis mis à souder une puce Atmel sur la plus longue breadboard que j’avais pu
acheter chez le fournisseur d’électronique Maplin. Les tout premiers prototypes,
avaient des microcontrôleurs d’entrée de gamme, en définition standard, pour
contrôler un téléviseur en direct. Dotés de 512 Ko de RAM et de quelques MIPS de
puissance de calcul, ils étaient équivalents à des micro-ordinateurs 8 bits. Difficile
d’imaginer à l’époque que ces machines pourraient fasciner des gamins habitués
aux consoles de jeux et autres tablettes.
Au laboratoire d’informatique, nous avions des débats sur la situation générale
de l’enseignement de l’informatique. Quand j’ai quitté le labo pour aller travailler
dans l’industrie, je me suis rendu compte que les problèmes constatés à l’univer-
sité se retrouvaient chez les jeunes qui postulaient à un emploi. J’ai réuni mes col-
lègues, Rob Mullins et Alan Mycroft (deux collègues du labo), Jack Lang (chargé
de cours en entreprenariat à l’université), Pete Lomas (un gourou du matériel) et
David Braben (une référence dans l’industrie du jeu vidéo à Cambridge, et doté
d’un incomparable carnet d’adresses). Puis après quelques bières (du fromage et
du vin pour ce qui concerne Jack), nous avons créé la Fondation Raspberry Pi, une
petite association avec de grandes idées.

12/ Introduction
Pourquoi Raspberry Pi ?
On nous demande souvent d’où le Raspberry Pi a bien pu tirer son nom. Il a été
forgé par plusieurs membres de la fondation. C’est l’une des rares fois où j’ai vu un
travail en groupe déboucher sur un si joli succès, même si, pour être honnête, j’ai
détesté ce nom au départ (depuis, je me suis mis à l’adorer, parce qu’il fonctionne
vraiment bien, mais ça m’a pris du temps parce que quelques années auparavant
j’avais baptisé mon projet « ABC Micro » et je m’étais habitué à ce nom-là). On a
choisi le nom Raspberry parce qu’il y a une vieille tradition qui consiste à donner
des noms de fruits dans l’industrie informatique (mis à part celui auquel on pense
tous, il y a d’anciens ordinateurs comme Tangerine, Apricot, ou Acorn qui est le fruit
du chêne). « Pi » vient de Python, dont nous pensions au départ qu’il serait le seul
langage capable de fonctionner sur une plateforme qui était alors bien moins puis-
sante que ne l’est le Raspberry Pi moderne. D’ailleurs, Python reste le langage que
nous recommandons pour l’apprentissage et le développement, même s’il existe
beaucoup d’autres langages à explorer sur le Raspberry Pi.

Dans mon nouveau rôle d’architecte chez Broadcom, une grosse entreprise dans
les semi-conducteurs, j’avais accès à du matériel peu onéreux mais très performant,
destiné à équiper des téléphones portables très haut de gamme (ceux qui filment en
HD et ont un appareil photo à 14 mégapixels). J’étais stupéfait de la différence entre
les puces à 10 dollars que peut acheter un passionné d’électronique et celles qu’on
pouvait obtenir en tant que fabricant de téléphones pour pratiquement la même
somme : traitement générique, graphisme 3D, vidéo, mémoire, le tout dans un boî-
tier BGA de la taille d’un ongle. Ces microcircuits ne consomment presque rien, mais
ont de grandes capacités. Ils sont particulièrement performants au niveau multi-
média et étaient d’ailleurs déjà exploités par des fabricants de décodeurs pour de la
vidéo HD. Il nous fallait une puce de ce genre pour notre projet de Raspberry Pi. Je
me suis mis à la conception d’une variante bon marché à base de microprocesseur
ARM et dotée de la puissance de traitement dont nous avions besoin.
Nous sentions qu’il fallait que les jeunes se fassent plaisir en utilisant le
­Raspberry Pi, même s’ils n’étaient pas très emballés par la programmation.
© Dunod – Toute reproduction non autorisée est un délit.

Dans les années 1980, quand on voulait lancer un jeu sur un ordinateur, il fallait
démarrer une grosse boîte métallique qui faisait « bip » et où vous vous retrou-
viez face à une invite de commande. Il fallait bien saisir quelques instructions
pour commencer, mais la majorité des utilisateurs n’allaient pas au-delà. Pour-
tant, quelques-uns s’étaient laissé entraîner dans le monde de la programmation
en raison du manque d’interaction. Nous avons vite compris que le Raspberry Pi
pourrait faire office de media center tout petit et très bon marché et nous avons
donc mis l’accent sur cette fonctionnalité, dans l’espoir que les novices en profi-
teraient pour goûter à la programmation au passage.
Après cinq ans d’efforts intenses, nous avions créé un joli petit prototype de la
taille d’une clé USB. Il y avait un module caméra intégré sur le dessus pour faire

Introduction /13
la démonstration du genre de périphériques que l’on pouvait facilement connec-
ter (lors du lancement, il n’y avait pas de caméra pour des raisons de coût, mais
depuis nous avons produit un petit module très accessible, pour ceux qui ont des
projets photographiques). Nous sommes allés ensuite à un certain nombre de
réunions pour présenter le prototype au service R&D de la BBC. Ceux qui, comme
nous, ont grandi au Royaume-Uni dans les années 1980, en ont beaucoup appris
sur l’informatique balbutiante grâce au micro-ordinateur produit par la BBC et
tout son écosystème composé de livres, de revues et d’émissions de télévision.
Je pensais que tout naturellement ils voudraient faire avancer le projet. Mais le
monde avait bien changé entretemps ; un certain nombre de réglementations
favorisant la concurrence au Royaume-Uni et dans l’Union européenne empê-
chaient désormais cette bonne vieille institution d’y prendre part au niveau où
nous l’espérions. Nous avons décidé d’abandonner l’idée de travailler avec le ser-
vice R&D et de faire une ultime tentative avec Rory Cellan-Jones, un journaliste
technique de la BBC. Le rendez-vous fut obtenu grâce à David (celui avec le gros
carnet d’adresses) en mai 2011. Pour Rory, il n’y avait pas grand-chose à espérer
d’un partenariat avec la BBC, mais il demanda s’il pouvait enregistrer une vidéo
du petit prototype avec son téléphone pour la poster sur son blog.
Le lendemain matin, elle était devenue virale, et je réalisais au passage que
nous venions de promettre au monde entier que nous allions lui offrir un ordina-
teur pour 25 dollars !
Pendant que Rory s’affairait à écrire un autre article de blog sur les raisons qui
font qu’une vidéo devient virale, de notre côté nous sommes repartis plancher sur
notre conception. Ce prototype au format de clé USB ne répondait pas aux cri-
tères : avec la caméra intégrée, il était bien plus cher que ce que nous avions sug-
géré (le prix de 25 dollars venait d’une déclaration que j’avais faite sur la BBC où
je disais que le Raspberry Pi devrait coûter à peu près le prix d’un manuel scolaire,
ce qui prouve que j’avais complètement perdu la notion du prix des manuels sco-
laires aujourd’hui). D’autre part, ce mini-modèle n’avait pas assez de place pour
intégrer tous les ports nécessaires aux fonctions que nous voulions implémenter.
Nous avons donc passé une année à repenser le circuit pour en baisser les coûts
au maximum, tout en lui conservant les caractéristiques voulues (ce fut un travail
plus difficile qu’on l’imagine) et en garantissant qu’il reste un objet fonctionnel
pour des gens qui ne peuvent pas dépenser des fortunes en périphériques.
Pour éviter aux utilisateurs l’achat d’un moniteur, nous voulions que le Rasp-
berry Pi puisse marcher avec une télévision, comme le ZX Spectrum des années
1980. Mais comme tout le monde n’a pas un téléviseur avec une prise HDMI,
nous avons donc ajouté un port composite pour le rendre compatible avec un
écran cathodique. Les cartes SD, bon marché et faciles à trouver, feraient office
de mémoire de masse : les premiers modèles A et B utilisaient des cartes SD
standards, mais les dernières versions fonctionnent maintenant avec des cartes
micro-SD. Pour l’alimentation, nous sommes passés par plusieurs approches pour
finir avec un câble micro-USB. Les prises micro-USB sont maintenant devenues

14/ Introduction
la norme pour le rechargement des téléphones portables dans toute l’UE et elles
sont en train de le devenir dans le reste du monde. On trouve donc des câbles
micro-USB partout, et bien souvent on en a déjà à la maison.
Fin 2011, avec une date de lancement prévue en février 2012, il devenait
évident que les choses allaient prendre des proportions qui nous dépassaient
et que nous n’allions pas pouvoir honorer les commandes qui ne cessaient d’af-
fluer. Dès le début, il était prévu que les premiers modèles seraient d’abord
pour les programmeurs, reportant à 2012 le lancement en direction du secteur
éducatif. Nous avions un petit nombre de volontaires dévoués, mais nous comp-
tions sur l’ensemble de la communauté Linux pour nous fournir un bouquet de
logiciels et parfaire les petits défauts encore présents dans le circuit avant de
l’offrir au marché de l’enseignement. Nous avions assez de fonds pour acheter
les pièces nécessaires à la construction de 10 000 Raspberry Pi sur une période
d’un mois environ. Nous avions évalué que cela correspondrait à la demande
globale pour ce premier modèle. Mais heureusement, et pour notre malheur
dans un autre sens, nous avions réussi à créer une énorme communauté autour
de l’appareil, et l’intérêt suscité ne se limitait ni au Royaume-Uni, ni au monde
de l’éducation. Le chiffre de 10 000 unités semblait par conséquent de moins
en moins réaliste.

Notre communauté
La communauté Raspberry Pi est l’une des choses dont je suis le plus fier. Nous
avons commencé par un blog basique sur www.raspberrypi.org juste après la vidéo
de Rory en mai 2011. Nous y avons ajouté un forum peu après. On y compte main-
tenant plus de 170 000 membres, avec presque un million de messages postés
et toutes sortes de réflexions autour du Raspberry Pi. Si vous avez une question,
quelle qu’elle soit, peu importe sa difficulté, qu’elle porte sur le Raspberry Pi ou
la programmation en général, quelqu’un vous fournira la réponse (si elle n’est pas
dans ce livre, vous la trouverez sur le forum).
Une partie de mon travail à la Fondation Raspberry Pi consiste à donner des confé-
rences à des groupes de passionnés, des informaticiens, des enseignants, des col-
lectifs de programmeurs, etc. et il se trouve toujours quelqu’un dans l’assistance
© Dunod – Toute reproduction non autorisée est un délit.

qui a eu l’occasion d’échanger avec moi ou Liz ma femme (qui anime la commu-
nauté) sur le site Web Raspberry Pi qui reçoit plus d’une requête par seconde.
Les sites de fans se comptent maintenant par centaines. Pendant des années, il
y a eu un magazine mensuel, produit par des membres de la communauté et qui
s’intitulait The MagPi. On y trouvait plein d’articles, des tutoriels pour mener des
projets à bien, et bien d’autres choses. Il est devenu si populaire que nous l’avons
intégré à la fondation, et il est maintenant disponible en version papier ou en télé-
chargement gratuit sur www.raspberrypi.org/magpi.
Tous les jours, nous publions de nouvelles informations sur le Pi sur www.raspberrypi.org.
Venez prendre part à la conversation…

Introduction /15
Il y avait 100 000 personnes en attente d’un Raspberry Pi dans notre fichier
d’adresses, et toutes ont passé commande dès le premier jour ! Cela n’a bien sûr
pas été sans poser quelques problèmes.
D’abord, il y a eu toutes ces petites coupures qu’on se fait quand il s’agit d’em-
baller 100 000 petits ordinateurs pour les envoyer par la poste, car nous n’avions
absolument pas les moyens d’embaucher des gens pour le faire à notre place.
Nous n’avions pas d’entrepôt, à part le garage de Jack. Rassembler l’argent
nécessaire à l’assemblage de 100 000 unités si rapidement était impossible. Nous
avons bien envisagé de faire des lots de 2 000 tous les quinze jours, mais avec
ce niveau de demande, cela aurait pris tellement de temps que l’appareil serait
devenu obsolète avant même que nous n’ayons fini d’honorer les commandes. À
l’évidence il nous fallait abandonner la fabrication et la distribution à des gens
avec l’infrastructure et le capital nécessaire. Nous avons pris contact avec ele-
ment14 et RS Components, tous deux fournisseurs britanniques en microélectro-
nique et d’envergure internationale. Tandis qu’ils exécutaient leur contrat pour la
production et la distribution, nous pouvions nous concentrer sur le développe-
ment et les objectifs caritatifs de la Fondation Raspberry Pi.
Le premier jour de lancement, la demande était si importante que les sites
des deux compagnies, RS et element14, ont été inaccessibles quasiment toute
la journée, incapables de répondre à la demande (pour element14, la demande
a atteint les sept commandes par seconde). Google a même enregistré pendant
deux heures, dans le monde entier, plus de recherches sur le Raspberry Pi que
sur Lady Gaga. Nous avons produit et vendu plus d’un million de Raspberry Pi
au cours de notre première année, faisant du Raspberry Pi l’ordinateur dont la
croissance a été la plus rapide de tous les temps, à l’échelle mondiale. Et le suc-
cès ne se dément pas : nous produisons plus de 300 000 Raspberry Pi par mois,
et en avons vendu plus de 10 millions en un peu plus de quatre ans, et il n’y a pas
de ralentissement à l’horizon. Si nous en étions restés à nos plans initiaux, nous
aurions construit une centaine de machines pour les journées portes ouvertes de
l’université, et nous en serions restés là.

à noter

Les premiers Raspberry Pi ont été produits en Chine, mais


en 2012 nous avons réussi à rapatrier toute la production
au Royaume-Uni. Votre Raspberry Pi est maintenant pro-
duit dans le sud du Pays de Galles, une région fière de son
héritage industriel, mais avec peu d’industries actives. Aussi
incroyable que cela puisse paraître, nos coûts sont plus
faibles au Pays de Galles qu’en Chine. Nous pouvons gérer
la production sans problème de langue ou de culture et, si
nécessaire, nous pouvons même décider d’aller sur place car
ce n’est qu’à quelques heures de voiture.

16/ Introduction
Je ne connais rien qui fasse monter la pression artérielle comme se retrouver
accidentellement à la tête d’un géant de l’informatique !

Que peut-on faire avec le Raspberry Pi ?


Ce livre explore un certain nombre de choses que vous pouvez faire avec votre
Raspberry Pi : prendre le contrôle du matériel via Python, vous en servir comme
media center, préparer des projets faisant appel à de la vidéo, ou concevoir des
jeux en langage Scratch. La beauté de la chose, c’est que vous le faites avec un
ordinateur, certes très petit, mais capable de faire les mêmes choses qu’un ordi-
nateur standard (il sera peut-être un peu plus lent pour certaines applications de
bureau, mais bien meilleur pour d’autres). De plus, les bonnes capacités multimé-
dia et 3D du Raspberry Pi permettent de le transformer en plateforme de jeux, et
nous aimerions beaucoup voir s’étendre sa ludothèque.
Nous pensons aussi que l’informatique concrète (on crée des systèmes avec
des capteurs, des moteurs, de la lumière et des microcontrôleurs) est souvent
négligée au profit de projets purement logiciels, et c’est dommage, parce que
l’informatique concrète est vraiment une discipline très amusante. Au début de
ce projet, toutes les réactions positives du côté des enfants ont été liées à ce
mouvement de l’informatique concrète. Les tortues du langage LOGO de mon
enfance, championnes de l’électronique d’alors, ont fait place à des robots de
combat, des quadricoptères ou des détecteurs d’approche des parents, et ça nous
plaît. Toutefois, l’absence de port GPIO (entrées-sorties à usage général) sur les
ordinateurs courants est un vrai handicap pour ceux qui veulent se lancer dans un
projet robotique. Avec le Raspberry Pi, tout est prévu et vous pouvez vous mettre
au travail immédiatement.
Les idées émanant de la communauté sont pour moi une source permanente de
surprises qui ne m’auraient jamais effleuré l’esprit : je pense au projet d’une école
australienne pour suivre des météorites, au robot des scouts de Boreatton au
Royaume-Uni, qui est contrôlé par un système à électroencéphalogramme (une
première mondiale : un robot contrôlé par des ondes cérébrales de scouts) ; on
peut évoquer aussi cette famille qui construit un aspirateur robotisé, et Manuel,
© Dunod – Toute reproduction non autorisée est un délit.

l’élan bavard de Noël. Et puis, étant moi-même passionné par la conquête spa-
tiale, entendre dire qu’on va envoyer des Raspberry Pi en orbite proche, avec des
ballons et des fusées, ça me donne des frissons.
Dans la première édition de ce livre, j’écrivais que ce serait une réussite si
chaque année, un millier de nouveaux étudiants s’inscrivaient en informatique
dans les universités du Royaume-Uni. Ce serait non seulement bénéfique pour
le pays, le secteur du logiciel et des composants électroniques, et l’économie,
mais encore plus avantageux pour chacun des étudiants qui, je l’espère, décou-
vriraient tout un monde de possibilités et éprouveraient beaucoup de plaisir. Dans
la deuxième et la troisième édition, j’étais un peu plus ambitieux et je souhai-
tais voir cette expérience trouver un écho dans l’ensemble des pays développés.

Introduction /17
Face à la croissance du Raspberry Pi, je me suis pris d’une ambition plus grande
encore : je veux que chaque enfant, partout, puisse avoir accès à un ordinateur
programmable et libre, qu’il ait les mêmes opportunités d’apprentissage de la
programmation que celles qui m’ont été offertes avec mon micro-ordinateur de
la BBC dans les années 1980. C’est un objectif ambitieux, mais déjà nous voyons
des labos Raspberry Pi éclore dans les endroits les plus improbables, comme ce
labo dans un village du Cameroun, sans réseau électrique, où les Raspberry Pi
sont alimentés grâce à de l’énergie solaire, des générateurs ou des batteries, ou
bien encore ce lycée, perché dans les montagnes du Bhoutan.
Construire un robot quand vous êtes un gamin peut vous mener dans des
contrées inimaginables. Je le sais, car c’est ce qui m’est arrivé !
Eben Upton
Mise en route
1
/> chapitre 1 21
À la découverte du Raspberry Pi

/> chapitre 2 33
Mise en route du Raspberry Pi

/> chapitre 3 55
Administration système Linux

/> chapitre 4 77
Dépannage

/> chapitre 5 85
Configuration du réseau

/> chapitre 6 97
Outil de configuration du Raspberry Pi

/> chapitre 7 113


Configuration avancée du Raspberry Pi
/> Chapitre 
À la découverte
du Raspberry Pi
1

Votre carte Raspberry Pi est une merveille de miniaturisation, qui intègre une
puissance de calcul considérable sur une surface pas plus grande qu’une carte de
crédit. Le Pi est capable de réaliser des prouesses, mais avant de vous aventurer
sur cette terre inconnue, il est préférable de commencer par apprendre quelques
petites choses.

Astuce

Si vous ne pouvez vraiment pas attendre et souhaitez commen-


cer tout de suite, passez directement au chapitre suivant pour
savoir comment connecter votre Raspberry Pi à un écran, un
clavier et une souris, puis installer un système d’exploitation, ce
qui vous permettra d’utiliser immédiatement votre Pi.

Tour du propriétaire de la carte


Depuis son lancement où il n’y avait que deux modèles (les modèles A et B qui
ne sont plus commercialisés aujourd’hui), la famille Raspberry Pi s’est considéra-
© Dunod – Toute reproduction non autorisée est un délit.

blement agrandie. La gamme actuelle se compose de cinq modèles principaux : le


Raspberry Pi modèle A+, le Raspberry Pi modèle B+, le Raspberry Pi 2, le Rasp-
berry Pi 3 (figure 1.1) et le Raspberry Pi Zéro. Mis à part le Raspberry Pi Zéro, qui
est un modèle d’entrée de gamme, spécialement conçu pour être le moins cher
possible et avoir une taille minimale, tous les modèles partagent une conception
à peu près similaire qui ne se différencie que par des caractéristiques comme le
nombre de ports USB, la présence ou l’absence de ports réseau et la puissance de
leur processeur. La gamme compte également un sixième modèle qui est moins
courant : le Raspberry Pi Compute Module. Conçu pour un usage industriel sur des
cartes personnalisées, le Compute Module s’exécute sous le même logiciel que
les autres cartes de la famille, mais son étude dépasse le cadre de cet ouvrage.

Tour du propriétaire de la carte /21


Si vous êtes l’heureux propriétaire du premier modèle de Raspberry Pi, le
modèle B ou le modèle A, nous vous adressons nos félicitations car vous déte-
nez un objet de collection. L’essentiel des informations contenues dans ce livre
est tout à fait applicable à ces anciens modèles de cartes, même s’il existe cer-
taines différences, notamment l’impossibilité d’utiliser les modules additionnels
conformes à la norme HAT (Hardware Attached on Top), qui est étudiée au cha-
pitre 16. Si vous vous trouvez dans la situation où vous avez besoin de fonctionna-
lités qui font défaut aux premières cartes Raspberry Pi, vous pouvez envisager de
les remplacer par un modèle A+ ou B+, voire des modèles plus puissants comme
le Pi 2 ou le Pi 3. Si votre budget ne vous le permet pas, vous pouvez vous tourner
vers le Raspberry Pi Zéro qui est moins cher.

Figure 1.1 Raspberry Pi 3

Au centre de toutes les cartes Raspberry Pi, il y a un semi-conducteur carré,


que l’on appelle en général circuit intégré ou puce. Il s’agit d’un SoC (system-
on-chip : en français, système sur une puce) qui fournit au Pi des fonctionnali-
tés générales de traitement, d’affichage et d’entrée/sortie. Selon le modèle, la
carte accueille le BCM2835 original de chez Broadcom, le BCM2836 qui est plus
rapide avec ses quatre cœurs, ou bien encore le BCM2837 qui est plus puissant
avec son architecture 64 bits. Dans le cas des modèles, A+, B+ et Zéro, il y a
un autre semi-conducteur qui est empilé sur cette puce et qui fournit au Pi de
la mémoire pour le stockage temporaire des données lors de l’exécution des
programmes ; sur le Raspberry Pi 2 et 3, cette puce est plutôt située sous la
carte. Ce type de mémoire est connu sous le nom de mémoire vive (en anglais,
RAM, pour Random Access Memory), parce que l’ordinateur peut lire ou écrire
sur n’importe quelle partie de la mémoire à n’importe quel moment. La mémoire
vive est volatile, ce qui signifie que ce qui est stocké dans la mémoire est perdu
lorsque le Pi est mis hors tension.

22/ Chapitre 1 : À la découverte du Raspberry Pi


Sous le SoC se trouvent les sorties vidéo du Pi. Le connecteur large de couleur
argentée est un port HDMI (High-Definition Multimedia Interface), qui est le type de
connecteur présent sur les lecteurs multimédias et les décodeurs satellite. Sur les
téléviseurs modernes ou les écrans d’ordinateur récents, le port HDMI affiche de la
vidéo en haute résolution et offre un signal audio numérique. Un port vidéo com-
posite, qui est conçu pour le raccordement à des téléviseurs plus anciens qui n’ont
pas de prise HDMI, est fourni sous la forme d’une prise audiovisuelle, noir et argent,
jack 3,5 mm, située à droite de la prise HDMI. La qualité de la vidéo est inférieure à
ce qui est proposé via la prise HDMI, et seul un signal audio analogique de qualité
inférieure peut être utilisé. Vous aurez besoin d’un câble adaptateur audiovisuel de
3,5 mm pour utiliser la sortie vidéo composite, mais vous pouvez utiliser la sortie
audio analogique avec n’importe quel câble audio stéréo de 3,5 mm.
Le Raspberry Pi Zéro a une disposition un peu différente. À la place d’une prise
HDMI de taille normale, il y a une prise mini-HDMI, qui exige donc un câble mini-
HDMI vers HDMI ou bien un adaptateur pour se connecter à un téléviseur ou un
moniteur. Il manque également au Pi Zéro la prise audiovisuelle de 3,5 mm qui se
trouve sur les modèles plus grands de Pi ; il n’y a par défaut aucune sortie analo-
gique audio, et la sortie vidéo composite est disponible uniquement en soudant
un câble ou une prise RCA sur les deux trous vides situés en haut à gauche de la
carte à l’emplacement marqué TV.
Les broches dans le coin supérieur gauche du Pi constituent le port GPIO
(general-purpose input/output : en français, entrées-sorties à usage général) qui
permet de connecter le Pi à d’autres matériels. On utilise en général ce port pour
raccorder une carte additionnelle, comme le Sense HAT, qui est décrit au cha-
pitre 16. Le port GPIO est extrêmement puissant, mais il est fragile. Quand vous
prenez le Pi en main, évitez de toucher ces broches et ne branchez jamais rien
dessus pendant que le Pi est en marche.
Le connecteur en plastique et en métal sous le port GPIO est le port DSI (Dis-
play Serial Interface : en français, interface série d’affichage), qui sert à connecter
des systèmes à écran plat pilotés numériquement. Ces derniers sont rarement
utilisés parce que le port HDMI est plus souple, même si l’écran tactile officiel
du Raspberry Pi est l’un des rares écrans à faire usage du port DSI. Le deuxième
connecteur en plastique et en métal, situé à droite du port HDMI, est le port CSI
© Dunod – Toute reproduction non autorisée est un délit.

(Camera Serial Interface : en français, interface série de caméra), qui fournit une
connexion haut débit pour le module de caméra du Raspberry Pi. Pour plus de
détails sur le port CSI, reportez-vous au chapitre 15.
Une nouvelle fois, le Pi Zéro adopte une autre disposition : aucun port DSI
n’est disponible sur ce modèle de Pi, et un port CSI compact est utilisé à la place
du port que l’on trouve sur les modèles plus grands de Pi. Ce port CSI compact
nécessite l’utilisation d’un câble adaptateur ou d’une carte pour se connecter au
module de caméra du Raspberry Pi. Les premières versions du Pi Zéro n’avaient
pas du tout de port CSI et ne pouvaient donc pas utiliser le module de caméra.
Tout en bas, à gauche de la carte, il y a la prise de courant du Pi. Il s’agit
d’un connecteur micro-USB, du même type que l’on trouve sur la plupart des

Tour du propriétaire de la carte /23


s­ martphones et des tablettes modernes. La connexion d’un câble micro-USB
à un adaptateur approprié, qui est étudiée en détail au chapitre 2, permet de
mettre sous tension le Raspberry Pi. À la différence d’un ordinateur portable
ou d’un ordinateur de bureau, le Pi n’a pas d’interrupteur et il démarre immé-
diatement quand il est mis sous tension. Vous noterez que le Raspberry Pi
Zéro a sa prise de courant à l’extrême droite de la carte au lieu de l’extrême
gauche.
Sous la carte du Raspberry Pi, sur le côté gauche, il y a une fente pour carte
micro-SD. C’est une carte de mémoire SD (Secure Digital), par conséquent non
volatile, qui fournit le stockage pour le système d’exploitation, les programmes,
les données et les autres fichiers. Contrairement à la RAM qui est volatile, la carte
SD conserve ses informations, même lorsque l’appareil est éteint. Au chapitre 2,
vous allez apprendre à préparer une carte SD pour qu’elle soit utilisable avec le Pi
et vous étudierez notamment l’installation d’un système d’exploitation. Le Pi Zéro
a la fente pour carte micro-SD sur la carte et non pas au-dessous.
Le côté droit du Pi comporte différents connecteurs selon le modèle de Rasp-
berry Pi que vous avez ; ces modèles sont décrits plus en détail dans les pages qui
suivent. La carte comprend également une ou plusieurs LED qui fournissent une
indication visuelle de l’état de la carte : alimentation, connexion réseau, accès à la
carte micro-SD, et ainsi de suite.

Modèle A / B
Les modèles originaux du Raspberry Pi étaient connus sous la dénomination de
modèle A et modèle B (figure 1.2). Les deux cartes avaient le même SoC Broadcom
BCM2835, mais des spécifications différentes : le modèle A avait 256 Mo de RAM,
un port USB et aucune fonctionnalité réseau ; le modèle B avait 256 Mo ou 512 Mo
de RAM selon la date à laquelle il avait été acheté, deux ports USB et un port
réseau filaire 10/100.

Figure 1.2 Carte Raspberry Pi modèle B

24/ Chapitre 1 : À la découverte du Raspberry Pi


Ces modèles sont immédiatement reconnaissables car leur port GPIO ne com-
porte que 26 broches, alors que le port GPIO des modèles récents est plus grand
puisqu’il en a 40. Ces deux modèles utilisent également des cartes SD de taille
normale au lieu de cartes micro-SD pour les modèles plus récents. Les Raspberry
Pi modèle A et modèle B ne sont plus fabriqués, mais ils sont néanmoins toujours
compatibles avec la majorité des logiciels conçus pour les modèles plus récents ;
ils ne peuvent cependant pas utiliser de modules additionnels basés sur le stan-
dard HAT, qui est décrit au chapitre 16.
Si vous avez un Raspberry Pi modèle A ou modèle B, vous pouvez sans diffi-
culté tirer parti de la plupart des informations contenues dans ce livre ; vous devez
simplement porter une attention particulière aux sections comme le chapitre 14
(consacré au port GPIO), pour vous assurer que quand vous connectez du maté-
riel directement sur le Pi, les informations de l’ouvrage ne s’appliquent pas aux
modèles de Pi plus récents.

Modèle A+ / B+
Les premiers modèles A et B ont eu beaucoup de succès, mais ils ont été rapi-
dement remplacés par une nouvelle carte qui a été désignée sous l’appellation
Plus. Réparties en modèle A+ et modèle B+ (figure 1.3), ces révisions ont inau-
guré le port GPIO à 40 broches, qui est maintenant devenu standard, tout en
améliorant ses différentes fonctionnalités ; ces nouvelles cartes sont cependant
restées fidèles au SoC BCM2835, ce qui signifie qu’il n’y a aucune différence
appréciable dans les performances entre les modèles A+ et B+ par rapport aux
anciens modèles A et B.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 1.3 Raspberry Pi modèle B+

Modèle A+ / B+ /25
La conception matérielle du modèle A+ et du modèle B+ est similaire à celle
des modèles A et B : le modèle A+, qui a un format plus petit que le modèle A, dis-
pose de 256 Mo ou de 512 Mo de mémoire selon la date à laquelle il a été acheté,
d’un port USB et n’a pas de fonctionnalités réseau ; le modèle B+ a 512 Mo de
mémoire, quatre ports USB et un port réseau filaire 10/100.
Les Raspberry Pi modèle A+ et modèle B+ sont compatibles avec tous les
logiciels et les appareils mentionnés dans cet ouvrage, et ils utilisent le même
GPIO à 40 broches que les variantes les plus récentes du Pi. Si vous possédez
actuellement un modèle A+ ou un modèle B+, les seules raisons qui puissent
motiver que vous changiez de carte sont l’amélioration des performances, l’aug-
mentation de la mémoire vive ou bien l’utilisation des fonctionnalités sans fil
intégrées.

Raspberry Pi 2
Tandis que les cartes originelles et les cartes Plus utilisaient le même SoC
BCM2835, le Raspberry Pi 2 (figure 1.4) fut le premier à intégrer un tout nou-
veau processeur : le SoC BCM28360. Doté de quatre cœurs alors que le pre-
mier Pi n’en avait qu’un seul, le BCM2836 offre un gain de performances qui
varie d’un facteur quatre à huit, par rapport à son prédécesseur ; tout est donc
beaucoup plus rapide, que ce soit le traitement de texte ou la compilation du
code. La carte dispose également de 1 Go (1 024 Mo) de RAM, ce qui double la
capacité maximale de la mémoire précédemment disponible ; cela rend donc
les applications multitâches et gourmandes en mémoire plus fluides et plus
réactives.

Figure 1.4 Raspberry Pi 2

26/ Chapitre 1 : À la découverte du Raspberry Pi


Du point de vue de la disposition, il y a cependant peu d’évolutions par rapport
au modèle B+. Le Raspberry Pi 2 propose le même port GPIO de 40 broches,
quatre ports USB, un port réseau filaire 10/100 et tous les autres ports. Si vous
possédez un boîtier ou un module additionnel fonctionnant avec un modèle B+,
ils seront parfaitement compatibles avec Raspberry Pi 2.
Le Raspberry Pi 2 possède une plus grande compatibilité logicielle que ses pré-
décesseurs : outre la Raspbian, qui est la distribution recommandée, le Pi 2 peut
exécuter des systèmes d’exploitation comme Ubuntu et Windows 10 IoT Core qui
ne sont pas disponibles pour les modèles plus anciens.

Raspberry Pi 3
Le dernier modèle de Raspberry Pi à avoir été lancé, le Raspberry Pi 3
(figure 1.5) s’appuie sur ses prédécesseurs, mais il possède un nouveau pro-
cesseur : le Broadcom BCM2837. Doté pour la première fois de fonctionnalités
64 bits, le BCM2837 est nettement plus rapide que le BCM2836 qui se trouve
dans le Pi 2, qui était lui-même une mise à jour majeure du BCM2835 original. Le
Pi 3 est aussi le premier modèle à prendre en charge le réseau sans fil, avec un
système radio capable de se connecter à des réseaux Wi-Fi à 2,4 GHz ainsi qu’à
des appareils Bluetooth.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 1.5 Raspberry Pi 3

Comme avec le Raspberry Pi 2, la disposition a peu évolué : on trouve le même


port GPIO de 40 broches, quatre ports USB, un port réseau filaire 10/100 et tous
les autres ports présents dans les modèles précédents. La seule entorse à la com-
patibilité est une modification mineure dans la façon dont la carte communique
avec certains matériels additionnels ; si vous n’êtes pas certain qu’un périphérique
soit compatible avec le Raspberry Pi 3, contactez le fabricant ou le vendeur avant

Raspberry Pi 3 /27
de l’acheter pour vous assurer que le logiciel a été écrit en prenant en compte
cette modification.
Outre l’amélioration des performances et l’intégration de fonctionnalités sans
fil, le processeur 64 bits constitue un avantage majeur du Raspberry Pi 3. Bien
qu’il existe peu de logiciels sachant tirer parti de cela à présent, le passage à la
technologie 64 bits promet d’offrir une compatibilité logicielle accrue, une plus
grande sécurité et de meilleures performances par rapport au code 32 bits qui
s’exécute aujourd’hui sur les cartes de la famille Raspberry Pi.

Raspberry Pi Zéro
Le Raspberry Pi Zéro (figure 1.6) se distingue doublement : c’est de loin le
plus petit Raspberry Pi, et c’est aussi le moins cher. Malgré sa taille (à peu près
l’équivalent de deux chewing-gums empilés l’un sur l’autre), il ne lui manque pas
grand-chose : le Pi Zéro a le même SoC BCM2835 et autant de RAM (512 Mo) que
le Raspberry Pi modèle B+, tout en tournant à une vitesse légèrement plus rapide
afin d’améliorer les performances.

Figure 1.6 Raspberry Pi Zéro

Il y a cependant des restrictions quand on utilise un Pi Zéro. Même si on le


compare au modèle A+, il lui manque certaines choses : le port micro-USB et le
port mini-HDMI nécessitent des adaptateurs avant de pouvoir être connectés
à des périphériques standards ; il n’y a pas de prise jack 3,5 mm audiovisuelle ;
Il n’y a aucun port DSI, et le port CSI requiert un adaptateur ; bien que le port
GPIO soit présent, il faut acheter des broches et les souder afin de pouvoir les
utiliser.

28/ Chapitre 1 : À la découverte du Raspberry Pi


Si vous débutez avec le Raspberry Pi, le Pi Zéro n’est pas la meilleure carte
pour commencer. Quand vous serez plus expérimenté et que vous souhaiterez
ajouter l’intelligence du Pi à vos projets embarqués (surtout lorsque la taille, le
coût et la consommation électrique sont des facteurs importants), le Pi Zéro sera
à ce moment-là un choix de prédilection.

Du Wi-Fi pour le Raspberry Pi Zéro

Pour le cinquième anniversaire de la sortie du Pi, le 28 février


2017, nous avons annoncé la commercialisation d’un nouveau
venu dans la famille RPI : le Raspberry Pi Zéro W. W comme
Wi-Fi, puisque ce modèle, qui a toutes les fonctionnalités du
Raspberry Pi Zéro, intègre en plus une ­connectivité 802.11n
et Bluetooth 4.0. Destiné à remplacer à terme le Raspberry
Pi Zéro, il est disponible pour une dizaine d’euros.

Un peu d’histoire
Avant d’aborder le chapitre 2, il est préférable de se familiariser avec certains
aspects du Pi et de sa création. Alors que le Pi est utilisable comme un ordinateur
polyvalent, capable d’effectuer les mêmes tâches que n’importe quel ordinateur
de bureau, ordinateur portable ou serveur (quoique plus lentement), il a été conçu
comme un ordinateur intégré sur une carte destiné aux amateurs dans le cadre
d’un usage éducatif ; en cela, il diffère dans des proportions importantes d’un
ordinateur « normal ».

// ARM contre x86


Le processeur au cœur du système Raspberry Pi est un processeur multimé-
dia de la série des SoC Broadcom BCM283x. Cela signifie que la grande majorité
des composants du système, y compris l’unité de traitement central et l’unité de
© Dunod – Toute reproduction non autorisée est un délit.

traitement graphique, ainsi que le matériel gérant l’audio et la communication,


reposent sur ce composant unique au centre de la carte.
Pourtant, ce n’est pas seulement cette conception basée sur un SoC de la
famille des BCM283x qui fait la différence entre le processeur qui se trouve dans
votre ordinateur de bureau ou dans votre ordinateur portable. Le processeur du
Pi utilise également un jeu d’instructions différent qui se nomme ARM.
Développée par la société Acorn Computers à la fin des années 1980, l’archi-
tecture ARM est relativement rare dans le monde des ordinateurs de bureau. Là
où elle excelle, en revanche, c’est dans les appareils mobiles. Votre téléphone
possède certainement au moins un processeur de traitement basé sur une archi-
tecture ARM. Sa combinaison d’une simple architecture RISC (reduced instruction

Un peu d’histoire /29


set computer : en français, ordinateur à jeu réduit d’instructions) et d’une faible
consommation de courant en fait le choix idéal par rapport aux puces des ordi-
nateurs de bureau qui consomment beaucoup d’électricité et sont basées sur des
architectures CISC (complex instruction set computer : en français, ordinateur à
jeu complexe d’instructions).
La famille BCM283x basée sur une architecture ARM est le secret de la capa-
cité du Raspberry Pi à se satisfaire d’une alimentation 5 V fournie via le port
micro-USB embarqué. C’est aussi la raison pour laquelle vous ne trouverez pas
de dissipateur thermique sur l’appareil : la faible consommation de la puce se tra-
duit directement par une quantité minimale de chaleur résiduelle, même lors des
tâches de traitement complexe.
Cela a toutefois pour conséquence que le Raspberry Pi n’est pas compatible
avec les logiciels traditionnels pour PC. La majorité des logiciels pour ordinateurs
de bureau et pour ordinateurs portables sont basés sur une architecture pre-
nant en charge le jeu d’instructions x86, que l’on trouve dans les processeurs des
marques AMD, Intel et VIA. En conséquence, ces logiciels ne fonctionnent pas sur
le Raspberry Pi qui est basé sur une architecture ARM.
Le SoC BCM2835 qui se trouve dans les modèles A, B, A+, B+, Zéro, et ­Compute
Module utilise une génération du processeur ARM appelée ARM11, qui, à son tour,
est conçue à partir d’une version de l’architecture du jeu d’instructions dénom-
mée ARMv6. Le SoC BCM2836 qui est au cœur du Raspberry Pi 2 utilise la nou-
velle architecture ARMv7, ce qui lui donne de meilleures performances et une plus
grande compatibilité avec un large éventail de systèmes d’exploitation. Enfin, le
SoC BCM2837 qui se trouve dans le Raspberry Pi 3 utilise l’architecture ARMv8
qui est en 64 bits, ce qui augmente encore les performances et ouvre la voie à la
future prise en charge du code natif en 64 bits.
Il est évident que la plupart des logiciels que vous trouverez sur un ordinateur
de bureau ou un ordinateur portable sont écrits pour prendre en compte une
architecture x86 et non pas ARM, mais cela ne signifie pas que vous allez être
limité dans vos choix. Comme vous le découvrirez plus tard dans ce livre, il y a de
nombreux logiciels qui sont disponibles, même pour l’ancien jeu d’instructions
ARMv6, et comme la popularité du Raspberry Pi ne cesse d’augmenter, la dispo-
nibilité d’autres logiciels ne fera que croître. Dans ce livre, vous apprendrez aussi
à créer votre propre logiciel pour le Pi, même si vous n’avez pas l’expérience de
la programmation.

// Windows contre Linux


Il y a une autre différence importante entre le Raspberry Pi et votre ordinateur
classique qui ne concerne ni la taille ni le prix, mais le système d’exploitation, qui
est le logiciel qui permet de contrôler l’ordinateur.
La majorité des ordinateurs de bureau et des ordinateurs portables disponibles
aujourd’hui tournent sous l’un des deux systèmes d’exploitation suivants : Micro-
soft Windows ou Apple OS X. Ces deux plateformes ne sont pas open source,

30/ Chapitre 1 : À la découverte du Raspberry Pi


car elles ont été créées dans un environnement secret à l’aide de technologies
propriétaires.
Ces systèmes d’exploitation sont réputés fermés en raison de la nature de leur
code source, qui est la recette écrite dans le langage de l’ordinateur et qui indique
au système ce qu’il doit faire. Dans les logiciels fermés, cette recette est un secret
jalousement gardé. Les utilisateurs sont en mesure d’obtenir le logiciel terminé,
mais ils ne peuvent jamais voir comment il a été écrit.
Le Raspberry Pi, en revanche, est conçu principalement pour exécuter un sys-
tème d’exploitation appelé GNU/Linux (que nous nommerons tout simplement
Linux dans la suite de cet ouvrage). Contrairement à Windows ou OS X, Linux est
open source, et vous donc pouvez télécharger le code source de l’ensemble du
système d’exploitation et réaliser les modifications que vous voulez. Rien n’est
caché, et toutes les modifications sont faites en toute transparence. Cette philo-
sophie de développement open source a permis à Linux d’être adapté rapidement
pour qu’il puisse s’exécuter sur le Raspberry Pi. Au moment de la rédaction de
ce livre, plusieurs versions de Linux (que l’on appelle distributions) ont été por-
tées sur le Raspberry Pi, notamment Raspbian et Arch Linux. Pour les modèles
plus récents, il existe des systèmes d’exploitation supplémentaires, et même une
variante de Windows 10 conçue pour les projets d’informatique embarquée, ce qui
constitue un rare exemple de système d’exploitation fermé mis à la disposition
des utilisateurs de Raspberry Pi.
Les différentes distributions Linux répondent à des besoins différents, mais
elles ont toutes quelque chose en commun : elles sont open source. Elles sont éga-
lement toutes, dans l’ensemble, compatibles entre elles, un logiciel écrit sur un
système Debian fonctionnant en général parfaitement sur Arch Linux et vice versa.
Linux ne tourne pas exclusivement sur le Raspberry Pi. Il existe des centaines
de distributions différentes pour les ordinateurs de bureau, les ordinateurs por-
tables et même les terminaux mobiles. La plateforme Android très populaire, qui
est développée par Google, est basée sur un noyau Linux. Si vous appréciez l’uti-
lisation de Linux sur le Raspberry Pi, vous pouvez envisager de l’installer sur les
autres appareils que vous utilisez aussi. Les deux systèmes d’exploitation vont
pouvoir coexister en harmonie, et vous pourrez profiter des avantages des deux
© Dunod – Toute reproduction non autorisée est un délit.

systèmes tout en disposant d’un environnement familier quand votre Pi ne sera


pas disponible.
Comme c’est le cas pour les architectures ARM et x86 qui sont incompatibles, il
y a un point essentiel à souligner au sujet de la différence entre Windows, OS X et
Linux : les logiciels écrits spécifiquement pour Windows ou OS X ne fonctionnent
pas sous Linux. Heureusement, il existe beaucoup de solutions de rechange com-
patibles Linux qui peuvent remplacer avantageusement l’immense majorité des
logiciels courants. Mieux encore, la majorité de ces logiciels sont gratuits et open
source, comme le système d’exploitation lui-même ; ils peuvent même être ins-
tallés sous Windows et OS X afin d’offrir une expérience familière sur l’ensemble
des trois plateformes.
/> Chapitre
Mise en route
du Raspberry Pi
2

Maintenant que vous avez compris ce qui différencie le Raspberry Pi des autres
ordinateurs, il est temps de le mettre en route. Si vous venez de recevoir votre Pi,
sortez-le de son sac de protection antistatique et placez-le sur une surface plane
et non conductrice avant de poursuivre la lecture de ce chapitre.
Pour utiliser votre Pi, vous aurez besoin de certains périphériques sup-
plémentaires. Un écran vous permettra de voir ce que vous faites, un clavier
et une souris constituant vos périphériques de saisie. Dans ce chapitre, vous
découvrirez comment connecter ces périphériques au Pi, et apprendrez à éta-
blir une connexion réseau si vous avez un modèle B, B+, Pi 2 ou Pi 3. Vous
apprendrez également à télécharger et à installer un système d’exploitation
pour le Pi.

Votre environnement informatique peut varier


Les informations et les instructions contenues dans cet ouvrage vous procurent
tout ce dont vous avez besoin pour faire fonctionner votre Raspberry Pi et l’ex-
ploiter au maximum de ses capacités. Vous devez cependant être conscient que
certains logiciels pour le Raspberry Pi évoluent si rapidement que certaines copies
d’écran qui illustrent ce livre peuvent être légèrement différentes de ce que vous
© Dunod – Toute reproduction non autorisée est un délit.

voyez sur votre écran.

Connexion de l’écran
Avant de pouvoir commencer à utiliser votre Raspberry Pi, vous devez connec-
ter un écran. Le PI prend en charge trois sorties vidéo différentes : la vidéo com-
posite, la vidéo sur le port HDMI et la vidéo sur le port DSI. La vidéo composite
et la vidéo sur le port HDMI sont faciles à mettre en œuvre et sont décrites dans
cette section, mais la vidéo sur le port DSI requiert certains matériels spécialisés,
comme un écran tactile (voir le chapitre 16).

Connexion de l’écran /33


// Vidéo composite
La vidéo composite, auparavant disponible via le port jaune et argent, situé
en haut des anciens modèles de Pi, et connu sous le nom de connecteur RCA,
se trouve aujourd’hui en bas de la plupart des cartes (figure 2.1) sous la forme
d’une prise jack 3,5 mm audiovisuelle. La sortie vidéo composite est conçue pour
connecter le Raspberry Pi aux anciens périphériques d’affichage. Comme son
nom l’indique, le connecteur crée un mélange des couleurs d’une image (rouge,
vert et bleu) et l’envoie par le biais d’un câble au périphérique d’affichage, en
général un vieux téléviseur à tube cathodique.

Figure 2.1 Prise audiovisuelle jack polyvalente d’un Raspberry Pi 3

Quand aucun autre périphérique d’affichage n’est disponible, une connexion


vidéo composite sera utile pour mettre en route le Pi, même si la qualité n’est pas
optimale. Les connexions vidéo composites sont nettement plus sujettes aux inter-
férences, manquent de clarté et offrent une résolution limitée, ce qui signifie que
vous pourrez afficher à l’écran moins d’icônes et de lignes de texte en même temps.
Pour utiliser la sortie vidéo composite, vous avez besoin d’un câble adaptateur
audiovisuel. Ces câbles, qui sont disponibles pour un coût très bas dans n’importe
quel magasin d’électronique, divisent la sortie de la prise jack en trois prises RCA :
une prise jaune fournit la connexion vidéo composite, tandis que les prises rouge
et blanche offrent les deux canaux de sortie audio stéréo. Il suffit de brancher le
câble de l’adaptateur dans la prise audiovisuelle et de brancher les trois câbles
RCA sur celles de votre téléviseur ou d’un autre dispositif d’affichage.
Le Raspberry Pi Zéro n’a pas de prise jack audiovisuelle 3,5 mm ; à la place, un
câble vidéo composite peut être soudé dans les deux trous sur le dessus de la carte
où figure la mention TV. Notez, cependant, que le signal du Pi Zéro n’inclut pas d’audio
analogique, contrairement à la prise audiovisuelle des modèles plus grands de Pi.

34/ Chapitre 2 : Mise en route du Raspberry Pi


// Vidéo sur le port HDMI
On peut obtenir une meilleure qualité d’image en utilisant le connecteur HDMI
(High-Definition Multimedia Interface), situé en bas de la carte (figure 2.2). Contraire-
ment à la connexion composite analogique, le port HDMI offre une connexion numé-
rique à haute vitesse pour l’affichage d’images parfaites sur les écrans d’ordinateurs
et les téléviseurs HD. En utilisant le port HDMI, un Pi peut afficher des images en
résolution Full HD (1920×1080) sur la plupart des téléviseurs HD modernes. Dans
cette résolution, on peut afficher des images très détaillées à l’écran.

Figure 2.2 Connecteur HDMI pour la sortie vidéo en HD

Si vous comptez utiliser le Pi avec un écran d’ordinateur que vous possédez, il


est possible que votre écran n’ait pas d’entrée HDMI. Ce n’est pas une catastrophe
car les signaux numériques présents sur le câble HDMI sont compatibles avec une
norme présente sur de nombreux écrans d’ordinateur, le standard DVI (Digital
Video Interconnect). En achetant un câble HDMI-DVI, vous serez en mesure de
© Dunod – Toute reproduction non autorisée est un délit.

raccorder le port HDMI du Pi sur un moniteur disposant d’une connectivité DVI-D.


Si votre moniteur possède une entrée VGA, un connecteur à 15 broches, géné-
ralement de couleur bleue, le Raspberry Pi ne peut s’y connecter que si vous
achetez un adaptateur. Recherchez les modèles qui convertissent les signaux
HDMI en VGA et qui mentionnent spécifiquement la compatibilité avec le Rasp-
berry Pi ; connectez ensuite simplement la prise HDMI à votre Pi et le câble VGA/
SVGA à l’autre extrémité de l’adaptateur.
Le Raspberry Pi zéro est unique dans la famille des Pi car il possède un connec-
teur mini-HDMI à la place d’un connecteur de taille normale. Pour utiliser la sor-
tie HDMI sur un Pi Zéro, achetez un adaptateur mini-HDMI vers HDMI ou un
câble mini-HDMI vers HDMI. Veillez bien à ce que l’adaptateur ou le câble soit

Connexion de l’écran /35


s­ pécifiquement conçu pour un port mini-HDMI car les adaptateurs micro-HDMI
qui sont plus petits ne conviennent pas.

// Vidéo sur le port DSI


La troisième et dernière sortie vidéo du Raspberry Pi, qui se situe au-dessus
de la fente pour carte micro SD, en haut de la carte, est un petit connecteur
en forme de ruban, protégé par une couche de plastique. Il s’agit d’une norme
vidéo connue sous le nom DSI (Display Serial Interface), qui est utilisée pour les
écrans plats des tablettes et des smartphones. L’utilisation la plus courante du
port DSI sur le Raspberry Pi consiste à connecter l’écran tactile du Pi (voir le
chapitre 16).
Le Raspberry Pi Zéro ne comportant pas de connecteur DSI, il ne peut donc pas
être utilisé avec l’écran tactile conçu pour le Raspberry Pi.

Connexion Audio
Si vous utilisez le port HDMI du Raspberry Pi, la configuration audio est simple.
Lorsqu’il est correctement configuré, le port HDMI transporte aussi bien le signal
vidéo que le signal audio numérique. Cela signifie que vous pouvez connecter un
seul câble à votre dispositif d’affichage pour profiter du son et des images.
En supposant que vous connectiez le Pi à un écran HDMI standard, vous n’avez
pas grand-chose à faire car il suffit de brancher le câble.
Si vous utilisez le Pi avec un moniteur DVI-D via un adaptateur ou un câble, il
n’y a pas de prise en charge de l’audio. Cela met en évidence la principale diffé-
rence entre les normes HDMI et DVI : une prise HDMI peut transporter des signaux
audio, alors qu’une prise DVI est utilisée exclusivement pour les signaux vidéo.
Si vous avez un moniteur DVI-D, ou un écran ayant une sortie vidéo composite,
la prise jack audiovisuelle 3,5 mm se situe au bas de la carte (figure 2.1). Il s’agit
du même connecteur que celui qui est utilisé pour les casques et les microphones
sur les appareils audio, et il est câblé exactement dans la même prise que celle qui
est employée pour la sortie vidéo composite. Si vous le souhaitez, vous pouvez
simplement connecter des écouteurs sur ce port pour bénéficier rapidement de
la fonctionnalité audio. Si vous cherchez quelque chose de plus permanent, vous
pouvez vous servir de haut-parleurs standards pour PC qui ont un connecteur
3,5 mm ou bien acheter des câbles adaptateurs.

Astuce

Un casque peut être connecté directement au Raspberry Pi,


mais il est possible que vous trouviez le volume un peu faible.
Si cela est possible, branchez plutôt une paire d’enceintes
amplifiées. L’amplificateur interne augmentera le signal qui
deviendra plus audible, et de nombreuses enceintes ampli-
fiées fournissent également un contrôle séparé du volume.

36/ Chapitre 2 : Mise en route du Raspberry Pi


Si vous connectez le Pi à un amplificateur ou à un système stéréo, vous aurez
besoin d’un câble audio RCA vers un jack 3,5 mm ou d’un câble 3,5 mm, en
fonction des connexions disponibles sur votre système audio. Les deux types de
câbles sont disponibles facilement et à moindre coût dans les magasins d’élec-
tronique, mais vous pouvez aussi les acheter à un prix encore plus avantageux
en ligne.

Connexion d’un clavier et d’une souris


Maintenant que vous avez réglé le problème des périphériques de sortie de
votre Raspberry Pi, il est temps de s’attaquer aux périphériques d’entrée. Au mini-
mum, vous aurez besoin d’un clavier, et pour la majorité des utilisateurs une souris
ou un trackball sont également nécessaires.
Commençons par une mauvaise nouvelle : si vous avez un clavier et une souris
avec un connecteur PS/2 (une prise ronde avec des broches en forme de fer à
cheval), vous allez devoir en acheter d’autres. L’ancienne connexion PS/2 a été
abandonnée au profit de la norme USB (Universal Serial Bus). Vous pouvez éven-
tuellement acheter un adaptateur PS/2 vers USB, mais sachez que certains cla-
viers particulièrement anciens ne peuvent pas fonctionner correctement avec un
tel adaptateur.
En fonction de votre modèle de Raspberry Pi, vous aurez un, deux ou quatre
ports USB disponibles sur le côté droit du Pi (figure 2.3). Si vous utilisez un
modèle B, B+, Pi 2 ou Pi 3, vous pouvez connecter le clavier et la souris direc-
tement sur ces ports. Si vous utilisez un modèle A ou A+, vous devez ache-
ter un concentrateur USB externe pour connecter deux périphériques USB
en même temps, ou bien utiliser un clavier avec un pointeur intégré ou un
trackpad, ou bien encore utiliser un clavier et une souris sans fil avec un récep-
teur USB.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 2.3 Ports USB du Raspberry Pi 3

Connexion d’un clavier et d’une souris /37


Le Raspberry Pi Zéro n’a aucun port USB de taille normale. Au lieu de cela, il utilise
un port micro-USB, le même type de port que celui qui est utilisé pour connecter le
câble d’alimentation. Ces deux ports se trouvent en bas à droite de la carte : la prise
d’alimentation se trouve sur la droite et porte la mention PWR IN ; le port USB, qui se
trouve sur la gauche, comporte l’indication USB. Pour connecter des périphériques
USB avec une prise de taille normale à ce port, vous aurez besoin d’un adaptateur
micro-USB vers USB, que l’on appelle également adaptateur USB OTG (On-The-Go).
Cet adaptateur convertit le port micro-USB en un port USB de taille normale, qui peut
ensuite être considéré comme le port USB que l’on trouve sur les modèles A ou A+.
Un hub USB est un bon investissement pour un utilisateur de Pi. Même si vous
avez un modèle B, B+, Pi 2 ou Pi 3, il est facile d’exploiter tous les ports USB
quand on ajoute des périphériques supplémentaires, comme un lecteur optique
externe, un périphérique de stockage ou un joystick. Prenez garde à acheter un
hub USB alimenté. Les modèles passifs sont moins onéreux et plus petits, mais
n’ont pas la possibilité de faire fonctionner des appareils gourmands en énergie,
tels que les lecteurs de CD et les disques durs externes. Un hub USB alimenté
peut également fournir plus de courant aux périphériques que ne le peuvent les
ports USB du Pi (un appareil qui ne parvient pas à fonctionner correctement lors-
qu’il est connecté directement au Pi peut marcher quand il est connecté par le
biais d’un hub alimenté de bonne qualité).

Astuce

Si vous voulez réduire le nombre de prises de courant qui


sont utilisées, connectez le câble d’alimentation USB du
Rasp­berry Pi à votre hub USB alimenté. De cette façon, le Pi
peut s’alimenter directement à partir du hub, et n’aura plus
besoin de son propre bloc d’alimentation. Cela ne fonctionne
que sur les hubs ayant une alimentation capable de fournir
au moins 1 ampère au port USB du Pi (les modèles de hubs
bon marché ne fournissent pas une telle quantité) en plus
de l’intensité requise par les autres périphériques. Le Rasp-
berry Pi 3 demandant plus d’énergie que ses prédécesseurs,
il n’est donc pas certain que cette astuce fonctionne.

Le branchement du clavier et de la souris consiste simplement à les connecter


aux ports USB, soit directement, soit par le biais d’un concentrateur USB, soit en
utilisant un adaptateur USB OTG dans le cas du Raspberry Pi Zéro. Vous pouvez
connecter un périphérique à n’importe quel port USB, tous les ports étant reliés
au processeur du Raspberry Pi de la même manière.
Le Raspberry Pi 3 offre une méthode alternative pour connecter un clavier
et une souris : la connexion sans fil en Bluetooth. Cela vous libère des câbles qui
encombrent votre bureau et les ports USB sont disponibles pour d’autres appa-
reils. Avant de configurer un clavier et une souris Bluetooth, vous devez cepen-

38/ Chapitre 2 : Mise en route du Raspberry Pi


dant connecter un clavier et une souris filaires en USB (voir la section intitulée
« Connexion de périphériques Bluetooth » à la fin de ce chapitre). Les modèles
ne prenant pas en charge la technologie Bluetooth peuvent utiliser les mêmes
périphériques grâce à un dongle USB Bluetooth, si nécessaire.

Note sur le stockage


Comme vous l’avez sans doute remarqué, le Raspberry Pi ne possède pas de disque
dur traditionnel. Au lieu de cela, il utilise une carte mémoire micro SD, un système de
stockage généralement employé dans les appareils photo numériques, les tablettes
et les smartphones. Presque toutes les cartes SD fonctionnent avec le Raspberry
Pi, mais comme la carte contient l’intégralité du système d’exploitation, vous devez
utiliser une carte avec au moins 8 Go pour stocker tous les fichiers nécessaires.
Il existe des cartes SD avec le système d’exploitation préchargé dans les boutiques
en ligne officielles Raspberry Pi, ainsi que sur de nombreux autres sites Web. Si vous
avez acheté une de ces cartes SD préchargées ou bien si elle était livrée avec votre Pi,
vous pouvez simplement l’insérer dans la fente prévue pour recevoir la carte micro-SD.

Installation de NOOBS sur une carte SD


La Fondation Raspberry Pi fournit un utilitaire pour le Pi connu sous le nom de
NOOBS (New Out-Of-Box Software1). Cet outil a pour but de rendre aussi facile
que possible la configuration du Pi. Il est préinstallé sur certaines cartes micro-SD
livrées avec le Raspberry Pi ; il est également disponible séparément et on peut
le télécharger gratuitement. Cet utilitaire offre une sélection de différents sys-
tèmes d’exploitation qui peuvent être installés sur le Raspberry Pi, ainsi que des
programmes permettant de modifier les configurations logicielles et matérielles.
Si vous avez acheté une carte micro-SD avec NOOBS préinstallé dessus, vous
n’avez pas besoin de faire quoi que ce soit pour le moment. Si ce n’est pas le cas, télé-
chargez la dernière version du logiciel NOOBS sur le site de la Fondation ­Raspberry
Pi à www.raspberrypi.org/downloads. Notez qu’il s’agit d’un gros fichier qui peut
© Dunod – Toute reproduction non autorisée est un délit.

prendre beaucoup de temps à télécharger ; si vous avez une connexion Internet dont
le volume est plafonné à 1 Go par mois, voire moins, vous ne serez pas en mesure de
télécharger ce fichier. Dans ce cas, investissez dans une carte micro-SD avec NOOBS
préchargé que vous achèterez chez n’importe quel revendeur de R ­ aspberry Pi.
Pour installer NOOBS sur une carte micro-SD vierge, vous devez utiliser
une carte micro-SD ayant au moins une capacité de 8 Go, afin de vous donner
­suffisamment ­d’espace pour installer d’autres logiciels que vous utiliserez sur
le Pi. Vous devez également disposer d’un ordinateur avec un lecteur de carte

1.  NdT : on peut traduire littéralement NOOBS par « Nouveau logiciel prêt à l’emploi », mais il y a également
un jeu de mots car, dans l’argot des informaticiens, « noob » désigne un débutant qui attend beaucoup des
autres et ne fait guère d’efforts pour s’en sortir tout seul…

Installation de NOOBS sur une carte SD /39


micro-SD ; ce dernier peut être intégré, comme sur certains modèles d’ordinateurs
portables, ou bien être un périphérique externe ; si vous n’avez qu’un lecteur de
carte SD de taille normale, vous devez employer un adaptateur micro-SD. Pour
commencer, insérez la carte micro-SD dans le lecteur de carte. Si vous avez déjà
utilisé votre carte micro-SD avec un autre appareil, comme un appareil photo
numérique ou une console de jeux, utilisez le programme de formatage de l’Asso-
ciation SD Card (dont le lien est mentionné sur le guide d’installation de NOOBS
sur le site de la Fondation Raspberry Pi) pour formater la carte SD et la préparer
pour l’installation. Si la carte est neuve, vous pouvez sans risque ignorer cette
étape.
Le logiciel NOOBS est fourni sous la forme d’une archive Zip. Il s’agit d’un for-
mat de fichiers où les données sont compressées, ce qui permet qu’elles tiennent
moins de place et sont donc téléchargées plus rapidement. En faisant un double-
clic sur le fichier de l’archive, vous devriez pouvoir l’ouvrir sur la plupart des sys-
tèmes d’exploitation ; si ce n’est pas le cas, téléchargez un utilitaire d’archivage
comme 7-Zip (www.7-zip.org), puis réessayez.
Après avoir ouvert le fichier, utilisez la fonction d’extraction ou de copie de
votre logiciel d’archivage pour transférer les fichiers de l’archive sur votre carte
micro-SD (figure 2.4). Cela peut prendre un certain temps pour achever cette
opération, en raison du nombre et de la taille des fichiers. Soyez patient et lorsque
l’extraction des fichiers est terminée et que le voyant d’activité du lecteur s’est
éteint (certains lecteurs n’ont pas de voyant), utilisez l’option d’éjection de votre
système d’exploitation avant de retirer la carte micro-SD, puis insérez-la dans la
fente prévue pour accueillir la carte micro-SD sur le Pi.

Figure 2.4 Extraction de NOOBS sur la carte SD

40/ Chapitre 2 : Mise en route du Raspberry Pi


Connexion d’un dispositif
de stockage externe
Alors que le Raspberry Pi utilise une carte micro-SD comme périphérique de
stockage principal (que l’on appelle disque de démarrage), il n’est pas rare de
rencontrer assez rapidement des problèmes d’espace disque. Bien qu’il existe des
cartes micro-SD avec des capacités importantes allant jusqu’à 256 Go, elles ont
malheureusement des prix prohibitifs.
Heureusement, il existe des dispositifs de stockage sur un disque dur supplé-
mentaire que l’on peut relier à n’importe quel ordinateur par le biais d’un câble
USB. Connus sous le nom de périphériques de stockage de masse USB, ces dis-
positifs peuvent être des disques durs classiques, des disques SSD (solid-state
drive), ou même des clés USB (figure 2.5).

Figure 2.5 Deux périphériques de stockage de masse USB :


une clé USB et un disque dur externe

La majorité de ces appareils USB peuvent se connecter au Pi, qu’ils aient ou non
un contenu existant. Pour que le Pi puisse accéder à ces dispositifs, leurs disques
doivent être montés (il s’agit d’un processus qui sera étudié au chapitre 3). Pour
© Dunod – Toute reproduction non autorisée est un délit.

l’instant, contentez-vous de connecter les lecteurs au Pi.

Raccordement au réseau
Alors que la majorité de ces instructions d’installation s’appliquent de la même
manière à tous les modèles de Raspberry Pi, le raccordement au réseau est une
opération à part. Afin de réduire autant que possible le nombre de composants (et
par conséquent le coût), les modèles A, A+ et Pi Zéro ne disposent pas d’interface
réseau. Heureusement, cela ne signifie pas que vous ne pouvez pas raccorder au
réseau ces modèles, mais seulement que vous aurez besoin de certains équipe-
ments supplémentaires pour ce faire.

Connexion d’un dispositif de stockage externe /41


Raccordement au réseau des modèles A, A+ et Pi Zéro
Pour fournir aux modèles A, A+ ou Pi Zéro les mêmes capacités réseau que leurs
homologues, vous aurez besoin d’un adaptateur Ethernet USB ou d’un dongle
WiFi. Ces dispositifs se connectent à un port USB du Raspberry Pi ou sur un hub
connecté et ils fournissent une connexion Ethernet câblée avec un connecteur
RJ-45 ou bien une connexion sans fil à un réseau Wi-Fi.
Vous pouvez acheter un adaptateur USB Ethernet 10/100 (les chiffres faisant référence
aux deux vitesses de transmission, de 10 Mo et 100 Mo) en ligne pour un coût dérisoire.
Lorsque vous achetez un adaptateur Ethernet, vérifiez bien que Linux fait partie des
systèmes d’exploitation pris en charge. Quelques modèles fonctionnent uniquement
avec Microsoft Windows et ne sont donc pas compatibles avec le Raspberry Pi.
Ne succombez pas à la tentation d’acheter un adaptateur de la classe du gigabit
(que l’on appelle parfois adaptateur USB Ethernet 10/100/1000). En effet, les ports
USB standards qu’utilise le Raspberry Pi ne savent pas exploiter la vitesse d’une
connexion Ethernet gigabit, et vous n’aurez donc aucun avantage à acquérir un
adaptateur plus cher.

// Raccordement à un réseau filaire


Pour raccorder votre Raspberry Pi au réseau, vous devez connecter un câble
Ethernet RJ-45 entre le Pi et un switch ou un routeur. Si vous n’avez pas de rou-
teur, vous pouvez faire communiquer votre ordinateur de bureau ou votre portable
avec le Pi en connectant les deux appareils directement avec un câble réseau.
Habituellement, la connexion de deux clients du réseau de cette façon néces-
site un câble spécial, appelé câble croisé. Dans un câble croisé, les paires de fils
assurant la réception et l’émission sont permutées afin que les deux appareils ne
puissent pas se parler en même temps, tâche qui est généralement gérée par un
switch.
Le Raspberry Pi est cependant suffisamment intelligent pour gérer cela. Le
port RJ-45 situé sur le côté du Pi (figure 2.6) inclut une fonctionnalité connue
sous le nom de auto-MDI, qui lui permet de se reconfigurer automatiquement.
Ainsi, vous pouvez utiliser n’importe quel câble RJ-45, qu’il soit croisé ou non,
pour connecter le PI au réseau et il ajustera sa configuration automatique-
ment.
Quand un câble réseau est connecté, le Pi reçoit automatiquement les infor-
mations dont il a besoin pour accéder à Internet, lors du chargement de son
système d’exploitation, grâce au protocole DHCP (Dynamic Host Configura-
tion Protocol). Ceci assigne au Pi une adresse IP (Internet Protocol) sur votre
réseau et ­communique l’adresse de la passerelle qui doit être utilisée pour
accéder à Internet (il s’agit en général de l’adresse IP de votre routeur ou de
votre modem).

42/ Chapitre 2 : Mise en route du Raspberry Pi


Astuce

Si vous connectez le Pi directement à un PC fixe ou à un


portable, vous ne serez pas en mesure de vous connecter
à Internet par défaut. Pour ce faire, vous devez configu-
rer votre PC en mode bridge pour qu’il établisse une liai-
son entre le port Ethernet filaire et une autre connexion
(en général Wi-Fi). Cette manipulation dépasse la portée
de ce livre, mais si vous êtes dans l’incapacité totale de
relier le Pi à Internet d’une tout autre manière, vous pouvez
essayer de chercher de l’aide sur Internet en saisissant les
mots-clés « pont réseau » dans un moteur de recherche.

Figure 2.6 Port Ethernet du Raspberry Pi 3


© Dunod – Toute reproduction non autorisée est un délit.

Dans certains réseaux, il n’y a pas de serveur DHCP pour fournir au Pi une
adresse IP. Lorsque le Pi est connecté à un tel réseau, il doit être configuré
manuellement (voir le chapitre 5 pour en savoir plus sur ce sujet).

// Raccordement à un réseau sans fil


Le Raspberry Pi 3 est, au moment de l’écriture de cet ouvrage, le seul modèle
de la gamme qui soit livré avec une prise en charge intégrée du réseau Wi-Fi, mais
comme pour le réseau filaire, il est possible d’ajouter le support Wi-Fi à un Pi en
utilisant un adaptateur USB sans fil (figure 2.7).

Raccordement au réseau /43


Figure 2.7 Pi Zéro avec un dongle Wi-Fi (à droite)
et un adaptateur mini-HDMI vers HDMI (à gauche)

En utilisant un tel dispositif, le Pi peut se connecter à un large éventail de


réseaux sans fil, y compris ceux qui adoptent la dernière norme 802.11ac qui
assure une grande vitesse de communication. Avant d’acheter un adaptateur USB
sans fil, vérifiez les points suivants :
>> Assurez-vous que Linux soit répertorié comme étant un système d’exploita-
tion pris en charge. Certains adaptateurs sans fil sont fournis seulement avec
les pilotes pour Windows et OS X, ce qui les rend incompatibles avec le Ras-
pberry Pi. Vous pouvez trouver une liste des adaptateurs Wi-Fi réputés pour
fonctionner avec le Raspberry Pi sur le site Web suivant : http://elinux.org/
RPi_USB_Wi-Fi_Adapters.
>> Assurez-vous que votre type de réseau Wi-Fi soit pris en charge par l’adapta-
teur sans fil USB. Le type de réseau est répertorié dans les spécifications sous
la forme d’un nombre suivi d’une lettre. Si votre réseau est du type 802.11a, par
exemple, un adaptateur sans fil de type 802.11g ne fonctionnera pas.
>> Vérifiez les fréquences prises en charge par la carte. Certaines normes de
réseaux sans fil, comme la norme 802.11a, prennent en charge plusieurs fré-
quences. Si un adaptateur USB sans fil est conçu pour fonctionner exclusive-
ment sur un réseau à 2,4 GHz, comme l’adaptateur intégré dans le Raspberry
Pi 3, il ne pourra pas se connecter à un réseau à 5 GHz.
>> Vérifiez le type de chiffrement utilisé par votre réseau sans fil. Les cartes
sans fil USB les plus modernes prennent en charge toutes les formes de
chiffrement, mais si vous achetez un modèle d’occasion assez ancien, il est
possible qu’il ne puisse pas se connecter à votre réseau. Parmi les types
courants de chiffrement que l’on peut citer, il y a le protocole WEP qui est
obsolète et les protocoles WPA et WPA2 qui sont plus modernes.

44/ Chapitre 2 : Mise en route du Raspberry Pi


La configuration de la connexion sans fil s’effectue sous Linux, si bien que pour
l’instant vous pouvez vous contenter de brancher l’adaptateur sur le PI (idéale-
ment sur un hub USB alimenté). Vous apprendrez à configurer la connexion au
chapitre 5.

Connexion de l’alimentation
Le Raspberry Pi est alimenté par le biais d’un petit connecteur micro-USB qui
se trouve en bas à gauche de la carte (en bas à droite du Raspberry Pi Zéro). Ce
connecteur est le même que celui qui se trouve sur la plupart des smartphones
et de nombreuses tablettes.
De nombreux chargeurs conçus pour les smartphones fonctionnent avec le
Raspberry Pi, mais pas tous. Le Pi demande plus d’énergie que la plupart des péri-
phériques alimentés par une prise micro-USB ; par exemple, le Pi 3 peut néces-
siter un courant de 2 ampères pour fonctionner. Certains chargeurs ne pouvant
fournir qu’un courant maximal de 500 mA, cela provoque des problèmes inter-
mittents dans l’exploitation du Pi (voir le chapitre 4).
Il est possible de relier le Pi au port USB d’un ordinateur portable ou d’un ordi-
nateur de bureau, mais ce n’est pas recommandé. Comme avec les chargeurs les
moins puissants, les ports USB d’un ordinateur ne peuvent pas fournir le cou-
rant nécessaire au bon fonctionnement du Pi. Connectez le câble d’alimenta-
tion micro-USB uniquement lorsque vous êtes prêt à commencer à utiliser le Pi.
Comme il n’y a aucun bouton d’alimentation sur le Pi, il se met en marche dès que
le câble est connecté.
Pour éteindre en toute sécurité le Raspberry Pi, il faut exécuter une commande

>_
shutdown dans la console ou le terminal en saisissant :
sudo shutdown -h now

Pour plus d’informations sur l’utilisation du terminal, reportez-vous au prochain


chapitre.
Si vous avez préparé ou acheté votre carte micro-SD avec l’outil NOOBS,
comme cela a été décrit plus haut dans ce chapitre, le Pi chargera cet outil et
© Dunod – Toute reproduction non autorisée est un délit.

attendra vos instructions ; si ce n’est pas le cas et que vous allumez le Pi avec une
carte SD vierge, cela provoquera l’affichage d’un écran vide. Dans ce cas, mettez
le Pi hors tension et retirez la carte SD avant de suivre les instructions d’installa-
tion manuelle qui sont décrites dans la section suivante.

Installation du système d’exploitation


Si vous avez acheté votre Raspberry Pi avec une carte micro-SD comprenant un
système d’exploitation préchargé ou suivi les instructions pour installer NOOBS
(voir plus haut dans ce chapitre), vous pouvez simplement insérer la carte SD dans
la fente prévue à cet effet sur le Raspberry Pi avant de brancher l’alimentation. Si

Connexion de l’alimentation /45


vous n’avez acheté que le Pi, vous devez installer un système d’exploitation sur la
carte micro-SD pour que le Pi soit prêt à l’emploi.

// Installation à l’aide de NOOBS


Si vous avez installé NOOBS sur votre carte SD ou bien acheté une carte
micro-SD avec NOOBS préinstallé, un menu s’affiche lorsque vous allumez le
Raspberry Pi pour la première fois (figure 2.8). Ce menu fournit une liste des
systèmes d’exploitation conçus pour le Pi que vous pouvez installer (vous devez
au minimum en installer un, mais vous pouvez aussi en installer plusieurs). Si
vous voulez que l’interface du système d’exploitation soit en français, vous
devez choisir dans la liste déroulante Language, qui est située en bas de l’écran,
la valeur français. Quand vous avez choisi le français comme langue d’interface,
le nom de la liste est transformé en Langue et la valeur de la liste Keyboard
(clavier) est modifiée automatiquement en fr (vous bénéficierez ainsi d’un cla-
vier AZERTY au lieu d’avoir un clavier QWERTY).

Figure 2.8 Menu des systèmes d’exploitation proposés par NOOBS

Si c’est la première fois que vous exécutez NOOBS sur cette carte micro-SD,
cela prendra un peu de temps car la première partition de la carte SD est redi-
mensionnée afin de faire de la place pour le système d’exploitation que vous avez
choisi ; ne débranchez surtout pas l’alimentation du Pi pendant cette opération,
sinon vous risquez d’endommager votre carte SD.

46/ Chapitre 2 : Mise en route du Raspberry Pi


Astuce

Si vous ne voyez qu’un écran vide alors que les voyants d’ali-
mentation et d’activité du Pi sont allumés, il est probable
que vous ayez un problème de mode d’affichage. Appuyez
sur la touche 1 du clavier pour sélectionner le mode HDMI
standard, sur la touche 2 pour le mode de secours qui
propose une résolution inférieure, sur la touche 3 si vous
employez le port composite dans un pays où l’on utilise le
standard vidéo PAL ou sur la touche 4 si vous employez
le port composite dans un pays où l’on utilise le standard
vidéo NTSC. Si vous ne savez pas ce qu’il convient de faire,
essayez toutes les options jusqu'à ce que vous trouviez
celle qui fonctionne. Le mode d’affichage choisi sera aussi
répercuté automatiquement sur le système d’exploitation
installé.

En utilisant le clavier ou la souris, parcourez la liste des systèmes d’exploitation


et cliquez sur la case à gauche du logo d’un système d’exploitation pour sélection-
ner son installation. N’oubliez pas que vous pouvez installer plusieurs systèmes
d’exploitation, si votre carte micro-SD est assez grande : pour ce faire, il suffit de
cocher les cases de tous les systèmes d’exploitation de la liste que vous souhaitez
installer. Pour les débutants, nous recommandons le système d’exploitation Rasp­
bian. Ce livre a été rédigé en se basant sur le système d’exploitation Raspbian,
mais une grande partie de ce que vous apprendrez est applicable à presque tous
les systèmes d’exploitation basés sur Linux, qu’ils s’exécutent sur le Pi ou sur un
autre appareil.
Pour commencer le processus d’installation, cliquez sur l’icône nommée
­Install, située en haut à gauche du menu et, quand on vous le demande, confir-
mez que les données existantes de la carte micro-SD peuvent être effacées. Le
processus d’installation peut être relativement long et vous devez donc être
patient ; un diaporama présente les fonctionnalités du système d’exploitation
© Dunod – Toute reproduction non autorisée est un délit.

et une barre de progression vous renseigne sur l’état d’avancement de l’instal-


lation (figure 2.9). Ne retirez surtout pas le câble d’alimentation ni la carte SD
tant que le processus n’est pas terminé. Lorsque le système d’exploitation est
installé, cliquez sur OK pour redémarrer et charger le système d’exploitation
que vous avez sélectionné.
Si vous avez installé plusieurs systèmes d’exploitation, NOOBS fera apparaître
un menu qui vous demandera sur quel système vous voulez démarrer. Si vous
n’effectuez pas votre choix dans les 10 secondes, le dernier système d’exploitation
choisi démarre automatiquement. Si vous n’avez encore jamais démarré de sys-
tème d’exploitation, le menu s’arrête jusqu’à ce que vous choisissiez le système
que vous voulez charger.

Installation du système d’exploitation /47


Figure 2.9 Installation d’un système d’exploitation
par l’intermédiaire de NOOBS

Pour plus d’informations sur l’utilisation de NOOBS une fois que le système
d’exploitation a été installé, ou bien pour installer un autre système d’exploi-
tation ou pour modifier les différents paramètres du Pi, reportez-vous au cha-
pitre 7.

// Installation manuelle
L’installation manuelle d’un système d’exploitation est une procédure plus
compliquée que l’utilisation de NOOBS, mais elle est parfois préférable. En instal-
lant le logiciel manuellement, vous pouvez choisir d’installer des systèmes d’ex-
ploitation qui ne sont pas disponibles par le biais de NOOBS ou des versions plus
récentes que NOOBS ne propose pas encore.
Tout d’abord, vous devez choisir la distribution Linux ou tout autre système
d’exploitation que vous souhaitez utiliser avec votre Raspberry Pi. Chaque sys-
tème a ses avantages et ses inconvénients. Ne vous inquiétez pas si vous changez
d’avis plus tard et souhaitez essayer une version différente : vous pouvez écraser
une carte SD et y installer un nouveau système d’exploitation à tout moment et,
si vous le souhaitez, vous pouvez même avoir plusieurs cartes, chaque carte exé-
cutant un système d’exploitation différent.
La liste à jour des versions de Linux compatibles avec le Pi est disponible sur le
site de la Fondation Raspberry Pi : www.raspberrypi.org/downloads.

48/ Chapitre 2 : Mise en route du Raspberry Pi


La Fondation fournit des liens BitTorrent pour chaque distribution. Ce sont
des petits fichiers que vous pouvez utiliser avec un client BitTorrent pour télé-
charger des fichiers à partir des ordinateurs d’autres utilisateurs. L’emploi de
ces liens procure un moyen efficace et rapide pour distribuer des fichiers volu-
mineux, et cela diminue aussi le trafic sur les serveurs de téléchargement de la
Fondation.
Pour utiliser un lien BitTorrent, vous devez avoir installé sur votre ordinateur
un client compatible. Si vous n’avez pas encore de client BitTorrent, il faut en
télécharger un et l’installer avant d’essayer de télécharger la distribution Linux
de votre Raspberry Pi. μTorrent est un client pour Windows, OS X et Linux qui
est disponible à www.utorrent.com/downloads.
Le choix de la distribution à télécharger vous appartient. Les instructions de
ce livre sont basées sur la distribution Raspbian qui est un bon choix pour les
débutants. Quand cela est possible, nous fournissons également les instructions
valables pour les autres distributions.
Les distributions Linux pour le Raspberry Pi sont fournies sous la forme d’un
fichier image, qui est compressé pour qu’il soit plus rapide à télécharger. Une
fois que vous avez téléchargé l’archive de la distribution que vous avez sélec-
tionnée, vous devez la décompresser sur votre système. Dans la plupart des sys-
tèmes d’exploitation, vous pouvez simplement faire un double-clic sur le fichier
de l’archive pour l’ouvrir, puis choisir d’extraire les fichiers pour récupérer le
contenu.
Après avoir décompressé l’archive, vous pouvez obtenir deux fichiers dis-
tincts. Le fichier se terminant par l’extension .sha1 permet de vérifier que le
téléchargement n’a pas corrompu le fichier pendant son transfert. Le fichier se
terminant par l’extension .img contient une copie exacte d’une carte SD, qui a
été configurée par les créateurs de la distribution de telle sorte qu’elle puisse
être exploitée par le Raspberry Pi. C’est ce fichier qui doit être flashé sur la
carte SD.

Mise en garde
© Dunod – Toute reproduction non autorisée est un délit.

Dans les instructions suivantes, vous allez employer un uti-


litaire appelé dd . Utilisé à mauvais escient, dd est capable
d’écrire l’image téléchargée non pas sur la carte SD, mais sur
votre disque dur, ce qui effacera votre système d’exploitation
ainsi que toutes les données qui y sont stockées. Assurez-
vous de bien lire les instructions de chaque section et notez
l’adresse du lecteur de votre carte SD avec soin. Relisez plu-
sieurs fois ces instructions pour être certain d’écrire au bon
endroit !

Installation du système d’exploitation /49


Installation sous Linux
Si votre PC actuel tourne déjà sous Linux, vous pouvez utiliser la com-
mande dd pour écrire le contenu du fichier image sur la carte SD. Il s’agit d’un
programme en mode console, par conséquent exploité à partir de l’invite de
­commande, que l’on appelle terminal dans le langage Linux. Suivez ces étapes
pour flasher la carte SD :
1/ Ouvrez un terminal depuis le menu des applications de votre distribution.

2/ Insérez une carte SD vierge dans un lecteur de carte connecté à l’ordinateur.

3/ Saisissezsudo fdisk –l pour afficher la liste des disques. Repérez la carte


SD en fonction de sa taille et notez l’adresse du lecteur : par exemple, /dev/
sdX, où X est une lettre permettant d’identifier le périphérique de stockage.
Certains ordinateurs avec des lecteurs de cartes SD intégrés peuvent utiliser
une autre syntaxe : /dev/mmcblkX ; si c’est le cas, n’oubliez pas de changer en
conséquence la cible dans les instructions suivantes.
4/ Utilisez la commande cd pour changer de répertoire et vous positionner dans le
répertoire qui contient le fichier .img que vous avez extrait à partir de l’archive.
5/ Saisissez sudo dd if=nom_fichier_image.img of=/dev/sdX bs=2M pour écrire
le fichier nom_fichier_image.img sur la carte SD connectée à l’adresse du lec-
teur récupérée à l’étape 3. Remplacez nom_fichier_image.img par le véritable
nom du fichier extrait à partir de l’archive. Comme cette étape prend un certain
temps, soyez patient ! Pendant l’écriture sur la carte SD, rien ne sera affiché à
l’écran tant que le processus ne sera pas terminé (figure 2.10).

Figure 2.10 Écriture sur la carte SD à l’aide de la commande dd sous Linux

50/ Chapitre 2 : Mise en route du Raspberry Pi


Installation sous OS X
Si votre ordinateur est un Mac tournant sous Apple OS X, vous serez heureux
d’apprendre que les choses sont aussi simples que sous Linux. Grâce à un même
ancêtre, OS X et Linux ont le même utilitaire dd, que vous pouvez utiliser pour
flasher l’image du système sur votre carte SD vierge de la manière suivante :
1/ Sélectionnez Utilitaires dans le menu des Applications, puis cliquez sur
­l’application Terminal.
2/ Insérez une carte SD vierge dans un lecteur de carte connecté au Mac.
3/ Saisissez diskutil list pour voir la liste des disques. Trouvez la carte SD en
fonction de sa taille et notez l’adresse du lecteur (/dev/diskX, où X est une
lettre permettant d’identifier le périphérique de stockage).
4/ Si la carte SD a été montée automatiquement et s’affiche sur le bureau, saisis-
sez diskutil unmountdisk/dev/diskX afin d’annuler le montage de la carte
SD avant de lancer l’opération d’écriture.
5/ Utilisez la commande cd pour changer de répertoire et vous positionner dans le
répertoire où est stocké le fichier .img que vous avez extrait à partir de l’archive.
6/ Saisissez dd if=nom_fichier_image.img of=/dev/diskX bs=2m pour écrire le
fichier nom_fichier_image.img sur la carte SD connectée à l’adresse du lecteur
récupérée à l’étape 3. Remplacez nom_fichier_image.img par le véritable nom
du fichier extrait à partir de l’archive. Comme cette étape prend un certain
temps, soyez patient !

Installation sous Windows


Si votre ordinateur tourne sous Windows, les choses sont un peu plus délicates
qu’avec Linux ou OS X. Windows n’a pas d’utilitaire comme dd, de telle sorte qu’il
faut installer certains logiciels pour écrire le fichier image sur la carte SD. Bien
qu’il soit possible d’installer une version compatible Windows de l’utilitaire dd, il
est plus simple d’employer le logiciel Image Writer pour Windows. Spécialement
conçu pour créer des images de carte SD ou de clé USB de distributions Linux,
Image Writer pour Windows possède une interface utilisateur graphique simple
qui permet de créer facilement une carte SD pour le R ­ aspberry Pi.
Vous trouverez la dernière version du logiciel Image Writer pour Windows sur
© Dunod – Toute reproduction non autorisée est un délit.

ce site : https://sourceforge.net/projects/win32diskimager. Suivez ces étapes


pour télécharger, installer et utiliser le logiciel Image Writer pour Windows qui
vous servira à préparer la carte SD destinée au Pi :
1/ Cliquez sur le bouton vert de téléchargement (Download) pour télécharger
l’archive de l’utilitaire Image Writer pour Windows et l’extraire dans un dossier
sur votre ordinateur.
2/ Insérez une carte SD vierge dans un lecteur de carte connecté à l’ordinateur.

3/ Faites
un double-clic sur le fichier Win32DiskImager.exe pour ouvrir le pro-
gramme et cliquez sur l’icône représentant un dossier bleu pour ouvrir une
boîte de dialogue permettant de désigner un fichier.

Installation du système d’exploitation /51


4/ Localisez le fichier nom_fichier_image.img que vous avez extrait de l’archive
de la distribution, remplacez nom_fichier_image.img par le véritable nom du
fichier extrait de l’archive, puis cliquez sur le bouton Open.
5/ Sélectionnez la lettre de lecteur correspondant à la carte SD dans la boîte de
dialogue listant les périphériques. Si vous ne savez pas quelle lettre de lecteur
choisir, ouvrez le Poste de travail ou l’Explorateur Windows pour vérifier.
6/ Cliquez sur le bouton Write pour écrire le fichier image sur la carte SD. Comme
ce processus prend un certain temps, soyez patient !

Mise en garde

Quel que soit le système d’exploitation que vous utilisez pour


écrire sur la carte SD, il est important de laisser la carte SD
dans son lecteur jusqu’à ce que l’image soit entièrement
enregistrée. Si vous n’avez pas respecté strictement le pro-
cessus, il est possible que le Pi ne démarre pas lorsque vous
y insérez la carte SD. Si cela se produit, recommencez le pro-
cessus d’écriture de l’image.
Lorsque l’image est flashée sur la carte SD, supprimez le
fichier image de l’ordinateur et insérez la carte SD dans la
fente du Raspberry Pi prévue à cet effet, qui est située sous le
circuit imprimé. La carte SD doit être insérée de telle sorte que
les contacts métalliques soient tournés vers la carte et elle
doit être poussée à fond afin d’assurer une bonne connexion.

Connexion de périphériques Bluetooth


Outre l’intégration de la fonctionnalité Wi-Fi, le Raspberry Pi 3 comprend un
équipement Bluetooth compatible avec les claviers, les souris, les trackballs
et les trackpads Bluetooth. Généralement vendus pour être utilisés avec des
tablettes, ces dispositifs d’entrée sans fil libèrent les ports USB du Pi et sup-
priment les câbles de votre bureau, au détriment d’un léger décalage dans la
saisie (le délai entre la pression sur une touche et le moment où elle produit
un effet) et de la nécessité de remplacer des piles de temps en temps ou de les
recharger.
Bien que le Pi 3 soit le seul modèle de Raspberry Pi qui prenne en charge
les périphériques Bluetooth nativement, il est possible d’ajouter la même
fonctionnalité à n’importe quel modèle de Raspberry Pi en connectant un
dongle Bluetooth USB à n’importe quel port USB libre. Comme pour l’achat
de dongles Wi-Fi, vérifiez que les pilotes du dongle que vous avez choisi sont
disponibles pour Linux, et que l’appareil a été certifié pour fonctionner avec
le Raspberry Pi.

52/ Chapitre 2 : Mise en route du Raspberry Pi


Pour connecter un périphérique Bluetooth, vous devez d’abord utiliser un
clavier et une souris USB afin de naviguer dans les menus. Si vous utilisez un
système d’exploitation autre que Raspbian, suivez les instructions fournies avec
votre système d’exploitation ; si vous utilisez Raspbian, suivez les instructions
ci-dessous.
Allumez votre appareil Bluetooth et activez le mode d’appairage. En général,
il faut maintenir enfoncé un bouton ou une touche et la procédure est décrite
dans la documentation de votre périphérique. Quand l’appareil est en mode
d’appairage, cliquez sur l’icône Bluetooth dans la barre des tâches ­Raspbian
(située près de l’horloge en haut à droite de l’écran), puis sélectionnez les
commandes Make Discoverable, puis Add Device. Cela va ouvrir la boîte de
dialogue Add New Device (figure 2.11). Trouvez votre appareil dans la liste et
cliquez sur le bouton Pair. Le Pi lancera alors la procédure de couplage, qui
diffère d’un appareil à l’autre ; il suffit de suivre les instructions à l’écran pour
jumeler les deux appareils.

Figure 2.11 Appariement d’un Raspberry Pi 3 à un appareil Bluetooth

Outre les claviers et les autres périphériques d’entrée, vous pouvez connecter
© Dunod – Toute reproduction non autorisée est un délit.

des casques et des haut-parleurs Bluetooth au Pi. Suivez le processus d’appairage


et cliquez sur l’icône du haut-parleur dans la barre des tâches, pour changer le
périphérique de sortie audio et le remplacer par votre équipement Bluetooth.
Vous noterez qu’au moment de l’écriture de cet ouvrage, tous les logiciels du
­Raspberry Pi ne prenaient pas en charge la sortie audio Bluetooth.
/> Chapitre
Administration
système Linux
3

La plupart des distributions modernes Linux sont conviviales et dotées d’une


interface utilisateur graphique qui facilite l’accomplissement des tâches cou-
rantes. Toutefois, Linux est bien différent de Windows et d’OS X, si bien que pour
tirer le meilleur parti de votre Raspberry Pi, vous devez tout d’abord étudier les
rudiments du système d’exploitation.

Présentation générale de Linux


Comme nous l’avons brièvement expliqué dans le chapitre 1, Linux est un projet
open source dont le but initial est de produire un noyau utilisable librement par
quiconque. Le noyau, qui est le cœur du système d’exploitation, gère la commu-
nication entre l’utilisateur et le matériel.
Bien qu’il ne fasse référence qu’au noyau, le terme Linux est souvent utilisé
pour désigner une collection de différents projets open source provenant de mul-
tiples sociétés. Ces collections réunissent des programmes qui forment les diffé-
rentes versions de Linux que l’on appelle distributions.
La première version de Linux a été combinée avec une collection d’outils créés
par un groupe nommé GNU. Le système ainsi obtenu, que l’on a appelé GNU/
Linux, était basique mais puissant. Contrairement à de nombreux systèmes
© Dunod – Toute reproduction non autorisée est un délit.

d’exploitation grand public de l’époque, il offrait des fonctionnalités comme la


possibilité d’avoir plusieurs comptes d’utilisateur sur un même ordinateur. Les
systèmes d’exploitation propriétaires se sont inspirés de Linux, et aussi bien Win-
dows qu’OS X prennent en charge désormais les comptes d’utilisateurs multiples
sur le même système. Cette fonctionnalité, qui est toujours présente dans Linux,
fournit la sécurité et la protection du système d’exploitation.
Sous Linux, vous passez le plus clair de votre temps à exécuter des programmes
sous un compte d’utilisateur qui a des pouvoirs restreints. Cela ne signifie pas que
vous êtes limité dans les tâches que vous pouvez accomplir, mais au contraire,
cela, vous empêche de faire accidentellement quelque chose qui pourrait endom-
mager le logiciel installé sur votre Raspberry Pi. Cela empêche également les

Présentation générale de Linux /55


virus et autres malwares d’infecter le système en verrouillant l’accès aux réper-
toires et aux fichiers critiques du système.
Avant de pouvoir vous lancer, il convient de vous familiariser avec certains
termes et concepts utilisés dans le monde Linux, que nous avons regroupés dans
le tableau 3.1. Même si vous avez l’expérience d’autres systèmes d’exploitation,
il est préférable de parcourir ce tableau avant de démarrer pour la première fois
votre Pi.

Tableau 3.1 Mini-glossaire Linux

Terme/Concept Définition
Bash Shell le plus populaire, utilisé dans la plupart des distributions
Linux.
Bootloader Logiciel responsable du chargement du noyau Linux. Le plus
utilisé est GRUB.
Console Version du terminal qui est toujours disponible et qui est la pre-
mière chose l’on voit sur le Pi.
Directory Terme Linux qui correspond à ce que Windows appelle dossier
et qui désigne l’emplacement où sont stockés les fichiers.
Distribution Version particulière de Linux. Pidora, Arch et Raspbian sont des
distributions.
Environnement Logiciel pour améliorer l’aspect de l’interface graphique. GNOME
de bureau et KDE sont des environnements de bureau populaires.
Exécutable Fichier qui peut être exécuté en tant que programme. Les fichiers
Linux doivent être marqués comme exécutables afin de pouvoir
être exécutés.
EXT2/3/4 Système de fichiers étendu qui est le système de fichiers le plus
utilisé sous Linux.
Gestionnaire Utilitaire pour assurer le suivi et l’installation des nouveaux
de paquets logiciels.
GNOME Un des environnements de bureau Linux les plus courants.
GNU Projet de logiciel libre, qui fournit un grand nombre des outils
utilisés dans les distributions Linux.
GRUB Bootloader créé par GNU et utilisé pour charger le noyau Linux.
GRUB est l’acronyme de GRand Unified Bootloader.
GUI Acronyme de Graphical User Interface (interface utilisateur
graphique). Environnement dans lequel l’utilisateur exploite
l’ordinateur grâce à une souris ou un écran tactile.
KDE Environnement de bureau Linux qui est aussi très populaire.
Linux À proprement parler, il s’agit du noyau utilisé par GNU/Linux,
mais pour la majorité des gens, cela désigne un système
d’exploitation open source.

56/ Chapitre 3 : Administration système Linux


Terme/Concept Définition
Live CD Distribution Linux fournie sous la forme d’un CD ou d’un DVD qui
n’a pas besoin d’être installé.
Paquet Collection de fichiers requis pour exécuter une application. Les
paquets sont généralement gérés par un gestionnaire de paquets
(package manager). Paquet est la traduction de l’anglais package
qui n’est parfois pas traduit dans les documentations techniques
en français.
Partition Section d’un disque dur qui est prête à recevoir un système de
fichiers qui gérera le stockage des fichiers.
root Compte de l’utilisateur principal sous Linux, équivalent au
compte administrateur sous Windows. Est aussi appelé super-
utilisateur.
Shell Invite de commande en mode texte, qui est chargée dans un
terminal.
sudo Programme qui permet à des utilisateurs ayant des autorisations
restreintes d’exécuter une commande en tant qu’utilisateur root.
Superutilisateur Voir root.
Système de fichiers Manière dont un disque dur ou un autre périphérique de stockage
est formaté afin qu’il soit prêt pour le stockage des fichiers.
Terminal Invite de commande en mode texte dans laquelle l’utilisateur
interagit avec un programme de shell.
X11 Système X Window, qui est un paquet fournissant une interface
graphique.

Terminal et interface graphique


Comme dans OS X et Windows, il existe généralement deux façons principales d’at-
© Dunod – Toute reproduction non autorisée est un délit.

teindre un objectif donné sous Linux : via l’interface graphique et par le biais de la
ligne de commande (appelée dans le jargon Linux console ou terminal).
L’apparence des diverses distributions Linux peut être tout à fait différente, en
fonction de l’environnement de bureau qui est exécuté. Dans ce livre, nous utilisons
la distribution Raspbian qui est recommandée par la Fondation Raspberry Pi, mais
la plupart des commandes que vous apprendrez sont saisies dans le terminal et
sont en général identiques dans toutes les distributions.
Quand il y aura des différences entre les distributions, nous vous donnerons des
méthodes alternatives pour atteindre les mêmes objectifs.

Présentation générale de Linux /57


Bases de Linux
Bien qu’il existe des centaines de distributions différentes de Linux, elles
partagent toutes un ensemble commun d’outils que l’on appelle commandes.
Ces outils, qui sont exploités via le terminal, sont équivalents aux commandes
­similaires que l’on trouve sous Windows et OS X. Pour commencer, vous devez
comprendre les commandes suivantes :
>> ls : abréviation de liste, ls fournit une liste du contenu du répertoire en cours.
La commande peut aussi être appelée avec le répertoire à lister comme
argument. Par exemple, ls/home fournit une liste du contenu du répertoire
/home, quel que soit votre répertoire en cours. La commande équivalente de
Windows est dir.
>> cd : abréviation de change directory (changer de répertoire), cd permet de
vous déplacer dans le système de fichiers. Si vous saisissez la commande
cd toute seule, cela vous ramène dans votre répertoire home. Si vous sai-
sissez la commande cd suivi du nom du répertoire dans lequel vous souhai-
tez vous déplacer, cela vous positionne dans ce répertoire. Notez que les
répertoires peuvent être absolus ou relatifs : cd boot vous déplace dans le
répertoire nommé boot qui est un sous-répertoire de votre répertoire en
cours, mais cd /boot vous déplace directement dans le répertoire /boot
où que vous soyez.
>> mv : abréviation de move (déplacer), cette commande a deux objectifs sous
Linux : elle permet à un fichier d’être déplacé d’un répertoire à un autre, et
elle permet également de renommer des fichiers. Cette dernière fonction-
nalité peut sembler hors de propos, mais dans la logique de Linux, le fichier
est déplacé d’un nom vers un autre. La commande est appelée de la manière
suivante : mv ancien_fichier nouveau_fichier.
>> rm : abréviation de remove (supprimer), rm supprime des fichiers. Tous les
fichiers (ou une liste de fichiers) qui suivent le nom de la commande sont
supprimés. L’équivalent sous Windows est la commande del, et ces com-
mandes exigent toutes les deux de bien faire attention à désigner les bons
fichiers que l’on veut supprimer.
>> rmdir : la commande rm ne permettant pas en général de supprimer les
répertoires, rmdir a été conçue pour supprimer les répertoires une fois que
la commande rm a supprimé les fichiers qu’ils contiennent.
>> mkdir : inverse de rmdir, la commande mkdir crée de nouveaux répertoires.
Par exemple, en saisissant mkdir mon_dossier dans le terminal, on crée un
nouveau répertoire appelé mon_dossier sous le répertoire en cours. Comme
avec cd, les répertoires passés en paramètre à la commande peuvent être
relatifs ou absolus.

58/ Chapitre 3 : Administration système Linux


Introduction à Raspbian
Raspbian est le nom donné à une variante personnalisée de la distribution
Linux Debian qui est très populaire. Debian est l’une des plus anciennes distribu-
tions Linux qui se caractérise par sa stabilité, une compatibilité élevée et d’excel-
lentes performances, même sur des ordinateurs modestes, ce qui en fait un choix
idéal pour le Raspberry Pi. Raspbian est donc basée sur la Debian (sa distribution
parente) en y ajoutant des outils personnalisés et des logiciels pour rendre l’utili-
sation du Raspberry Pi aussi facile que possible.
Pour réduire au minimum la taille du téléchargement, l’image de la Raspbian
inclut uniquement un sous-ensemble du logiciel qui est disponible pour la ver-
sion classique destinée aux ordinateurs de bureau. Elle inclut des outils pour
naviguer sur le Web, pour programmer en Python et pour utiliser le Pi avec une
interface graphique. Vous pouvez installer rapidement des logiciels supplémen-
taires à l’aide du gestionnaire de paquets de la distribution, apt. Raspbian inclut
un environnement de bureau nommé PIXEL (Pi Improved ­Xwindows Environ-
ment, Lightweight). Conçu pour offrir une interface utilisateur attrayante en se
basant sur le logiciel X Window System, PIXEL fournit une interface familière et
conviviale si vous avez déjà utilisé Windows, OS X ou d’autres systèmes d’exploi-
tation dotés d’une interface graphique pilotable à la souris.
Pour utiliser Raspbian, vous devez saisir un nom d’utilisateur et un mot de
passe. Le nom d’utilisateur par défaut est pi, et le mot de passe par défaut est
raspberry ; vous allez apprendre à modifier ces données plus loin dans ce ­chapitre.

Astuce

Bien que l’interface graphique de Raspbian se charge par


défaut, vous pouvez la désactiver grâce à une option de
menu. Si Raspbian démarre en mode texte (que l’on appelle
console), connectez-vous, saisissez startx, puis appuyez sur
la touche Entrée. Pour revenir à la console, tout en conser-
vant l’interface graphique en arrière-plan, maintenez enfon-
cées les touches Ctrl + Alt, puis appuyez sur F1 avant de
relâcher les deux touches.
© Dunod – Toute reproduction non autorisée est un délit.

Si vous utilisez la distribution Raspbian, ce qui est recommandé, vous béné-


ficiez de nombreux logiciels préinstallés pour démarrer. Alors qu’il est difficile
de fournir une liste exhaustive des logiciels qui sont disponibles pour le Pi, car il
existe des milliers de paquets, Raspbian constitue une bonne introduction de ce
que le système est capable de faire.
Les logiciels fournis avec la distribution Raspbian sont divisés en catégories
thématiques. Pour afficher ces catégories, cliquez sur le bouton du menu qui se
trouve dans le coin supérieur gauche de l’écran et qui est représenté par l’icône
d’une framboise (figure 3.1). Vous trouverez ci-dessous les logiciels regroupés par
catégorie qui sont disponibles dans la distribution Raspbian.

Introduction à Raspbian /59


Figure 3.1 Bureau de l’interface PIXEL de la distribution Raspbian

Mise en garde

Le système d’exploitation de la distribution Raspbian est


en perpétuel développement, des logiciels étant ajoutés et
supprimés à intervalle régulier. La liste de logiciels qui est
présentée ci-dessous était correcte au moment de l’écri-
ture de cet ouvrage, mais vous ne devez pas être surpris
si les logiciels qui ont été installés sur votre Pi diffèrent
quelque peu.

Programmation
>> BlueJ Java IDE : puissant environnement de développement intégré (IDE)
écrit spécialement pour le langage de programmation Java.
>> Geany : à mi-chemin entre un éditeur de texte simple et un IDE parfaitement
fonctionnel, Geany est un outil populaire pour écrire des programmes dans
différents langages.
>> Greenfoot Java IDE : environnement de développement intégré (IDE) visuel
pour Java, conçu spécifiquement pour les jeunes utilisateurs et les débu-
tants en programmation.
>> Mathematica : puissant logiciel de calcul issu des mathématiques sym-
boliques et développé par Stephen Wolfram. Toutes les installations de
Raspbian bénéficient d’une licence gratuite pour utiliser ce logiciel qui est
généralement cher.
>> Node-RED : éditeur de flows (flux) basé sur un navigateur pour le framework
Node.JS, conçu pour faciliter le développement de projets matériels et logi-
ciels relativement complexes.

60/ Chapitre 3 : Administration système Linux


>> Python 2 (IDLE) : IDE écrit spécialement pour Python. Vous en saurez plus
sur l’utilisation de IDLE quand vous apprendrez à écrire vos propres pro-
grammes Python au chapitre 11.
>> Python 3 (IDLE) : en cliquant sur cette entrée de menu, on charge une
version de IDLE configurée pour utiliser le langage de programmation plus
récent Python 3, au lieu de la version 2.7 de Python, qui est celle par défaut.
Les deux versions sont en grande partie compatibles entre elles, mais cer-
tains programmes peuvent nécessiter des fonctionnalités de Python 3.
>> Scratch : langage de programmation graphique destiné aux jeunes
enfants. Vous trouverez plus d’informations sur Scratch et ses possibilités
au chapitre 10.
>> Sense HAT Emulator : permet d’émuler l’utilisation de capteurs avec la
carte additionnelle Sense HAT (voir le chapitre 16).
>> Sonic Pi : environnement de développement conçu pour enseigner les
concepts de base de la programmation par le biais de la création musicale.
>> Wolfram : langage développé par le créateur de Mathematica et conçu pour
le traitement de la connaissance. Wolfram est extrêmement puissant, mais
sa maîtrise demande un certain temps.

Bureautique
>> LibreOffice Base : partie de la suite LibreOffice décrite au chapitre 9, Base
est un logiciel de base de données équivalent à Microsoft Access.
>> LibreOffice Calc : application de tableur équivalente à Microsoft Excel.
>> LibreOffice Draw : application de dessin vectoriel, équivalente à Microsoft
Visio.
>> LibreOffice Impress : application de diaporama équivalente à Microsoft
PowerPoint.
>> LibreOffice Math : éditeur de formules mathématiques équivalent à l’édi-
teur d’équations de Microsoft.
>> LibreOffice Writer : application de traitement de texte équivalente à Micro-
© Dunod – Toute reproduction non autorisée est un délit.

soft Word.

Internet
>> Claws Mail : client de messagerie puissant, équivalent à Microsoft Outlook.
>> Navigateur Web Chromium : navigateur web, équivalent à Microsoft Edge
ou Internet Explorer.
>> Raspberry Pi resources : raccourci vers des ressources en ligne pour vous
aider à tirer le meilleur parti de votre Raspberry Pi et de Raspbian.
>> The MagPi : raccourci vers la page d’accueil de The MagPi, le magazine offi-
ciel du Raspberry Pi. Chaque numéro de ce mensuel est gratuit et peut être
téléchargé sous la forme d’un document PDF.

Introduction à Raspbian /61


Jeux
>> Minecraft Pi : version éducative du célèbre jeu Minecraft. Éditée par la
société Mojang, cette version est décrite en détail au chapitre 12.
>> Python Games : sélection de jeux simples écrits en langage Python, qui per-
mettent à la fois de jouer et d’apprendre à programmer en Python.

Accessoires
>> Calculator : calculatrice scientifique open source, offrant une grande variété
de fonctions permettant des calculs rapides et complexes.
>> Gestionnaire des tâches : affiche les applications ouvertes, les ressources
qu’elles utilisent, et permet, le cas échéant, de mettre fin à une tâche.
>> LXTerminal : paquet permettant d’utiliser la ligne de commande Linux dans
une fenêtre sans quitter l’interface graphique.
>> Ouvrir dans le gestionnaire de fichiers : gestionnaire de fichiers doté d’un
navigateur graphique pour lister les fichiers stockés sur le Pi ou sur n’im-
porte quel périphérique de stockage connecté.
>> PDF Viewer : lit les fichiers PDF, comme les numéros gratuits du magazine
MagPi.
>> SD Card Copier : crée une copie de sauvegarde de votre carte micro-SD à
l’aide d’une carte vierge et d’un lecteur USB de carte micro-SD.
>> Text Editor : éditeur de texte simple, qui est utile pour prendre des notes
rapides ou écrire des programmes simples.
>> Visionneur d’images : permet d’afficher des images, comme celles d’un
appareil photo numérique ou d’un périphérique de stockage connecté.
>> Xarchiver : permet de créer ou d’extraire des fichiers compressés, comme
les archives Zip.

Help
>> Guide de référence pour Debian : guide détaillé de la distribution Linux
Debian et de la manière dont les programmeurs peuvent contribuer à son
développement.
>> Raspberry Pi Help : raccourci vers les ressources conçues pour vous aider
en cas de problèmes avec votre Raspberry Pi.

Préférences
>> Add / Remove software : outil pour installer de nouveaux logiciels ou
désinstaller des logiciels existants (cet utilitaire est étudié plus loin dans ce
chapitre dans la section « Installation et désinstallation de logiciels »).
>> Appearance Settings : boîte à outils pour modifier l’apparence de l’inter-
face utilisateur, y compris le style et la couleur des fenêtres.

62/ Chapitre 3 : Administration système Linux


>> Audio Device Settings : outil pour configurer le périphérique audio par
défaut employé par le système, et permettant de passer d’une sortie audio
analogique, à la sortie HDMI, ou bien à un périphérique Bluetooth.
>> Clavier et souris : outil pour le réglage des périphériques d’entrée. Si votre
clavier saisit des caractères erronés pour certaines touches, ou bien si la
souris est trop sensible, vous pouvez modifier ces paramètres dans cet outil.
>> Configuration du Raspberry Pi : charge un utilitaire graphique pour modi-
fier un grand nombre de paramètres matériels et logiciels du Pi, qui sont
décrits en détail dans le chapitre 6.
>> Main Menu Editor : outil pour éditer les entrées du menu directement, en
permettant d’ajouter des raccourcis pour les applications ou les sites Web
qui n’installent pas par défaut leur propre raccourci, ou bien de modifier un
raccourci existant.

Assistance
Linux est conçu pour être aussi convivial que possible pour les nouveaux utilisa-
teurs, même quand on utilise l’invite de commande dans le terminal. Bien que ce
chapitre vous permette de découvrir les façons les plus courantes d’utiliser chaque
commande, toutes les options ne sont pas détaillées car cela nécessiterait un livre
beaucoup plus important.
Si vous vous retrouvez coincé, ou si vous voulez en savoir plus sur les outils qui sont
décrits dans les pages suivantes, vous devez apprendre à utiliser la commande man.
Chaque application Linux est livrée avec un fichier d’aide appelé page de man
(abréviation de « page de manuel »). Cette page fournit des renseignements sur le
logiciel ainsi que des détails sur ses options et la manière de les utiliser.
Pour accéder à la page de man d’un outil donné, il suffit de saisir man suivi du nom
de la commande. Pour voir la page du manuel de la commande ls qui sert à lister le
contenu des répertoires, il suffit de saisir man ls. Vous pouvez également essayer
les liens du menu aide pour voir s’il y a une réponse à votre question.
© Dunod – Toute reproduction non autorisée est un délit.

// Debian, ancêtre de Raspbian


Raspbian est basée sur une des premières distributions Linux, Debian. Debian,
qui tire son nom de son créateur et de sa petite amie, Ian et Deb, est une distri-
bution à part entière qui est très populaire. Raspbian, qui est donc un fork (déri-
vation) de Debian, a été adaptée par la communauté pour une tâche particulière,
mais ce n’est pas la seule. Par exemple, Ubuntu, de la société Canonical, est éga-
lement basée sur Debian, alors que Mint, une des distributions les plus popu-
laires pour ordinateurs de bureau et ordinateurs portables, repose à son tour sur
Ubuntu.
Ce processus de dérivation à partir d’une autre dérivation est une caractéris-
tique unique des logiciels libres. Avec un logiciel propriétaire, comme ­Microsoft

Introduction à Raspbian /63


Windows, il n’est pas possible de le personnaliser pour satisfaire des besoins
­individuels. C’est l’un des plus grands points forts des logiciels open source et la
facilité avec laquelle Raspbian a été adaptée aux exigences du Raspberry Pi en
constitue une brillante démonstration.

// Alternatives à la distribution Raspbian


Raspbian est la distribution Linux recommandée pour le Raspberry Pi, mais il
existe des alternatives. Les plus populaires sont disponibles sur la page de télé-
chargements de la Fondation Raspberry Pi à www.raspberrypi.org/downloads, et
la plupart peuvent être installées facilement à partir de NOOBS, comme cela est
décrit dans le chapitre précédent.
Outre Raspbian, LibreELEC et OSMC, qui sont les distributions le plus souvent
installées, transforment le Pi en un système de home cinéma, comme cela est
décrit au chapitre 8. Pidora est aussi une distribution populaire, qui est basée
sur le projet Fedora, qui, à son tour, est issu de la distribution Red Hat. Autre
alternative, Arch est conçue pour ceux qui sont déjà familiers avec Linux, car
contrairement aux autres distributions, elle n’inclut pas d’interface graphique
par défaut.
RISC OS, quant à lui, n’est pas du tout une variante de Linux : initialement
produit par Acorn Computers dans les années 1980 pour sa gamme d’ordi-
nateurs personnels Archimedes, qui, comme le Raspberry Pi, reposait sur un
processeur ARM, RISC OS est un système d’exploitation rapide et facile à uti-
liser avec une interface graphique conviviale. Suite à la séparation des acti-
vités de la société Acorn en 1998, la popularité de RISC OS a décliné, mais la
plateforme a toujours ses fans, qui ont été prompts à développer la prise en
charge du Raspberry Pi.
L’utilisation de RISC OS sur un Raspberry Pi se traduit par un environnement net-
tement plus réactif que sur n’importe quel autre système d’exploitation, en raison du
fait que la plateforme a été conçue spécifiquement pour une architecture avec un jeu
d’instructions ARM. Malheureusement, cette vitesse a un prix : le système RISC OS ne
fonctionne qu’avec les applications qui sont écrites spécifiquement pour RISC OS, et
elles sont beaucoup moins nombreuses que celles écrites pour Linux.
NOOBS est suffisamment intelligent pour n’afficher que les systèmes d’exploi-
tation qui sont pris en charge par votre modèle de Pi. Les systèmes d’exploitation
qui exigent un processeur BCM2836 ou un modèle encore plus puissant, comme
Windows 10 IoT, n’apparaissent pas lorsque vous exécutez NOOBS sur un modèle
basé sur un SoC BCM2835 (par exemple, les modèles A, B, A+, B+ ou Pi Zéro).

périphériques de stockage externes


La carte micro-SD du Pi, qui stocke tous les fichiers du Pi ainsi que les réper-
toires, n’a pas une capacité très grande. Actuellement, la plus grande carte
micro-SD a une capacité de 256 Go, ce qui n’est pas énorme par rapport aux

64/ Chapitre 3 : Administration système Linux


10 000 Go (10 To) qui sont disponibles sur les disques durs les plus grands que l’on
trouve sur certains ordinateurs de bureau.
Si vous utilisez votre Pi pour la lecture de fichiers vidéo (voir le chapitre 8), vous
aurez probablement besoin de plus de stockage qu’il n’y en a sur une carte SD.
Comme vous l’avez appris au chapitre 2, il est possible de connecter des périphé-
riques de stockage de masse USB au Pi afin de disposer d’un espace de stockage
supplémentaire.
Cependant, pour que ces appareils externes soient accessibles, le système
d’exploitation doit les reconnaître. Sous Linux, ce processus s’appelle montage.
Si vous utilisez une version de Linux avec un environnement graphique de bureau,
le processus de montage est automatique. Il suffit de brancher l’appareil à un port
USB sur le Pi ou sur un hub USB, pour voir s’afficher le contenu du périphérique
de stockage (figure 3.2).

Figure 3.2 Montage automatique d’un périphérique de stockage de masse USB


© Dunod – Toute reproduction non autorisée est un délit.

À partir de la console, les choses sont un peu plus compliquées. Pour rendre
accessible un appareil quand l’environnement de bureau n’est pas chargé, procé-
dez de la manière suivante :
1/ Connectez le périphérique de stockage USB au Pi, soit directement, soit via un
hub USB.
2/ Saisissez sudo fdisk -l pour obtenir une liste des lecteurs connectés au Pi et
trouver le périphérique de stockage USB grâce à sa taille. Notez le nom du péri-
phérique : /dev/sdXN, où X est la lettre du lecteur et N le numéro de la partition.
Si c’est le seul appareil connecté au Pi, son nom sera /dev/sda1.

périphériques de stockage externes /65


3/ Pour que le périphérique de stockage USB soit accessible, Linux a besoin d’ef-
fectuer un point de montage, qui est créé en saisissant sudo mkdir /media/
externaldrive.
4/ À ce moment-là, le répertoire n’est accessible que pour l’utilisateur root. Pour
le rendre accessible à tous les utilisateurs, saisissez la commande qui suit sur

>_
une seule ligne :
sudo chgrp -R users /media/externaldrive && sudo chmod -R g+w
/media/externaldrive

5/ Saisissez la commande suivante pour monter le périphérique de stockage USB

>_
afin d’accéder à l’appareil et à son contenu :
sudo mount /dev/sdXN /media/externaldrive -o=rw

Créer un nouveau compte utilisateur


À la différence de nombreux systèmes d’exploitation pour ordinateurs person-
nels, qui ont été initialement conçus pour une utilisation par des particuliers, Linux
est un système d’exploitation conçu pour prendre en charge de nombreux utilisa-
teurs. Par défaut, Raspbian est configuré avec deux comptes d’utilisateurs : pi, qui
est le compte utilisateur normal, et root, qui est un compte de super-utilisateur
disposant d’autorisations supplémentaires.

Astuce

Ne succombez pas à la tentation d’ouvrir une session en


tant que root tout le temps. En utilisant un compte utilisa-
teur n’ayant pas de privilèges, vous êtes protégé contre la
destruction accidentelle de votre système d’exploitation et
contre les ravages des virus et autres logiciels malveillants
téléchargés sur Internet.

S’il est possible d’utiliser le compte pi, il est préférable de créer votre propre
compte utilisateur. Des comptes supplémentaires peuvent également être créés
pour vos amis ou des membres de la famille qui souhaiteraient se servir du Pi.
La création d’un nouveau compte sur le Raspberry Pi est simple et à peu près
identique sur toutes les distributions, à l’exception du nom d’utilisateur et du mot
de passe qui sont créés par défaut sur le Pi. Pour créer un compte, suivez ces
étapes :
1/ Connectez-vous au Pi en utilisant le compte utilisateur existant (nom d’utili-
sateur pi et mot de passe raspberry si vous utilisez la distribution Raspbian).

>_
2/ Saisissez ce qui suit sur une seule ligne sans espace après les virgules :
sudo useradd -m -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,
users,input,netdev,gpio,i2c,spi nom_utilisateur

66/ Chapitre 3 : Administration système Linux


Cela crée un compte utilisateur vide.
3/ Pour définir le mot de passe du nouveau compte, saisissez sudo passwd nom_
utilisateur suivi du nouveau mot de passe lorsque vous y êtes invité.
Que s’est-il passé ? La commande sudo indique au système d’exploitation que la
commande que vous saisissez doit être exécutée comme si vous étiez connecté en
tant qu’utilisateur root. La commande useradd indique que vous voulez créer un
nouveau compte utilisateur. L’option -m indique à la commande useradd de créer
un répertoire home où le nouvel utilisateur pourra stocker ses fichiers. La grande
liste qui suit l’option -G est la liste des groupes dont l’utilisateur doit être membre.

Utilisateurs et groupes
Sous Linux, chaque utilisateur possède trois attributs principaux : un ID utilisa-
teur (UID), un ID de groupe (GID) et une liste des appartenances à des groupes
supplémentaires. Un utilisateur peut être membre d’autant de groupes qu’il le
souhaite bien qu’un seul de ces groupes puisse être le groupe principal de l’uti-
lisateur. Il s’agit généralement d’un groupe dont le nom correspond au nom de
l’utilisateur.
L’appartenance aux groupes est importante. Les utilisateurs peuvent bénéficier
d’un accès direct aux fichiers et aux périphériques du système, mais il est plus
courant qu’un utilisateur y ait accès par le biais de l’appartenance à un groupe. Le
groupe audio, par exemple, accorde à tous ses membres la possibilité d’accéder au
matériel de lecture des sons du Pi. Si un utilisateur n’appartient pas à ce groupe, il
ne pourra pas écouter de la musique.
Pour afficher les groupes auxquels un utilisateur appartient, saisissez groups
nom_utilisateur dans un terminal. Si vous saisissez cette commande alors que
vous êtes connecté sous l’utilisateur par défaut, pi, vous verrez alors la liste des
groupes que doit rejoindre tout nouveau membre pour exploiter le Pi. C’est grâce
à cette commande que nous avons trouvé les informations dont nous nous sommes
servis à l’étape 2 de la précédente procédure.
© Dunod – Toute reproduction non autorisée est un délit.

// Organisation du système de fichiers


Le contenu de la carte SD est connu car son système de fichiers se divise en
plusieurs sections, chacune ayant un usage particulier. Bien qu’il ne soit pas
nécessaire que vous compreniez le rôle de chaque section, cette connaissance
pourra vous être très utile en cas de problème.

// Organisation logique
La manière dont Linux gère les disques, les fichiers, les dossiers et les lecteurs
diffère quelque peu des autres systèmes d’exploitation. Au lieu d’avoir plusieurs
disques étiquetés avec une lettre, tout apparaît sous la forme d’une branche des-
cendant de ce qu’on appelle le système de fichiers racine.

Créer un nouveau compte utilisateur /67


Si vous vous connectez au Pi et saisissez ls/, vous verrez différents répertoires
affichés (figure 3.3). Certains d’entre eux sont des zones de la carte SD pour stoc-
ker des fichiers, tandis que d’autres sont des répertoires virtuels pour accéder
aux différentes parties du système d’exploitation ou du matériel.

Figure 3.3 Liste des répertoires du système de fichiers racine du Pi

Les répertoires visibles de la distribution Raspbian sont par défaut les suivants :
>> boot : contient le noyau Linux et les autres paquets nécessaires pour démar-
rer le Pi.
>> bin : contient les fichiers binaires liés au système d’exploitation, tels que
ceux requis pour exécuter l’interface graphique.
>> dev : il s’agit d’un répertoire virtuel, qui n’existe pas réellement sur la carte
SD. Tous les périphériques connectés au système (y compris les périphé-
riques de stockage et la carte son) sont accessibles à partir de cet empla-
cement.
>> etc : stocke différents fichiers de configuration, notamment la liste des uti-
lisateurs et leurs mots de passe cryptés.
>> home : tous les utilisateurs possèdent un sous-répertoire sous ce répertoire
pour stocker leurs fichiers personnels.
>> lib : il s’agit d’un espace de stockage pour les bibliothèques, qui sont des
lignes de code partagées par de nombreuses applications qui en ont besoin.
>> lost+found : il s’agit d’un répertoire spécial où des fragments de fichiers sont
stockés en cas de panne du système.
>> media : il s’agit d’un répertoire spécial pour les périphériques de stockage
amovibles, comme les clés USB ou les lecteurs externes de CD.

68/ Chapitre 3 : Administration système Linux


>> mnt : ce dossier sert à monter manuellement des périphériques de stockage,
tels que les disques durs externes.
>> opt : stocke les logiciels en option qui ne font pas partie du système d’exploi-
tation. Si vous installez un nouveau logiciel sur votre Pi, il sera en général
stocké dans ce dossier ou bien dans usr.
>> proc : il s’agit d’un autre répertoire virtuel, contenant des informations sur
l’exécution des programmes, qui sont appelés processus sous Linux.
>> run : dossier spécial utilisé par différents démons, qui sont des processus
s’exécutant en arrière-plan.
>> root : bien que les fichiers de la plupart des utilisateurs soient stockés dans
un sous-répertoire du répertoire home, les fichiers du compte du super-
utilisateur (root) sont conservés ici.
>> sbin : stocke des fichiers binaires spéciaux, principalement ceux qui sont uti-
lisés par le compte root (super-utilisateur) pour la maintenance du système.
>> srv : dossier utilisé pour stocker des données exploitées par le système d’ex-
ploitation. Ce dossier est vide pour la distribution Raspbian.
>> sys : il s’agit d’un répertoire virtuel qui stocke des informations système uti-
lisées par le noyau Linux.
>> tmp : les fichiers temporaires sont stockés ici automatiquement.
>> usr : répertoire qui stocke les programmes accessibles par les utilisateurs.
>> var : répertoire que les programmes utilisent pour stocker l’évolution des
valeurs ou les variables.

// Organisation physique
Bien que la liste précédente décrive la manière dont le système de fichiers se
présente du point de vue du système d’exploitation Linux, ce n’est pas comme
cela qu’il est organisé sur la carte SD. Pour la distribution Raspbian par défaut,
telle qu’elle est installée à partir de l’image officielle, la carte SD est organisée en
deux sections principales, que l’on appelle partitions, car elles divisent la carte
en différentes zones, un peu à la manière dont les chapitres d’un livre facilitent
l’organisation de son contenu.
© Dunod – Toute reproduction non autorisée est un délit.

La première partition du disque est une petite partition (environ 75 Mo) forma-
tée en FAT32, qui est le même format de partition utilisé par Microsoft ­Windows
pour les lecteurs amovibles. Cette partition est montée, c’est-à-dire rendue
accessible, par Linux dans le répertoire /boot et elle contient tous les fichiers
requis pour configurer le Raspberry Pi et pour charger Linux.
La seconde partition est beaucoup plus grande et formatée en EXT4, un sys-
tème de fichiers spécifique à Linux et conçu pour la sécurité des données et l’ac-
cès à haute vitesse. Cette partition contient la partie principale de la distribution.
Tous les programmes, le bureau, les fichiers des utilisateurs et les logiciels que
vous installez vous-même sont stockés ici. Elle occupe la majeure partie de la
carte SD.

Créer un nouveau compte utilisateur /69


Installation et désinstallation de logiciels
Les logiciels installés par défaut avec la distribution Raspbian servent à
couvrir les besoins élémentaires, mais il est fort probable que vous allez vite
vouloir personnaliser votre Pi en voulant installer d’autres programmes. L’ins-
tallation de logiciels à partir d’Internet nécessite que le Raspberry Pi dispose
d’une connexion réseau active, que vous utilisiez un câble réseau ou bien un
adaptateur Wi-Fi.

// Gestion des logiciels en mode graphique


La meilleure façon d’installer de nouveaux logiciels avec la distribution
­Raspbian est d’utiliser l’utilitaire d’ajout et suppression des programmes (Add /
Remove Software), situé dans le menu Préférences (figure 3.4). Cette application
maintient une liste de tous les logiciels disponibles dans les dépôts (repository)
de la distribution Raspbian, chaque logiciel pouvant être installé en quelques
clics. L’emploi de cet utilitaire d’ajout et de suppression de programmes nécessite
cependant une connexion Internet active ; si vous utilisez un Pi Zéro, un modèle A
ou A+, il vous faudra un dongle USB Wi-Fi pour installer des logiciels supplémen-
taires de cette façon.

Figure 3.4 Interface de l’application d’ajout et de suppression de logiciels

Les logiciels stockés dans les dépôts de la Raspbian sont divisés en catégories,
allant des jeux aux logiciels système. En cliquant sur une catégorie dans la liste
sur la gauche, on affiche les logiciels de cette catégorie dans la fenêtre principale
à droite ; on peut faire défiler cette fenêtre en utilisant le clavier ou la souris. En
cliquant sur le nom d’un logiciel, on affiche plus d’informations sur ce programme,
notamment sa description et sa taille de téléchargement. La zone de recherche

70/ Chapitre 3 : Administration système Linux


dans le coin supérieur gauche de la fenêtre peut être utilisée pour trouver un
logiciel de n’importe quelle catégorie, en se basant sur son titre ou des mots qui
apparaissent dans sa description.
Pour installer un logiciel figurant dans la liste, il suffit de cocher la case située à
gauche de son nom. Vous pouvez sélectionner plusieurs paquets en même temps ;
si un des paquets a besoin d’installer d’autres paquets (par exemple, un jeu ayant
besoin de ses fichiers de données pour fonctionner), ils seront automatiquement
sélectionnés.
Lorsque vous avez choisi le logiciel que vous souhaitez installer, cliquez sur le
bouton Apply en bas à droite de la fenêtre. Vous êtes ensuite invité à saisir votre
mot de passe (figure 3.5). Cela permet de confirmer que vous souhaitez installer
le logiciel et attribue également à votre compte utilisateur les privilèges de root,
ce qui vous permet de modifier la configuration logicielle. Quand votre logiciel a
été installé, cliquez sur le bouton OK pour fermer la fenêtre.

Figure 3.5 Authentification suite à une demande d’installation de logiciel

La désinstallation des logiciels est aussi facile que leur installation : il suf-
fit de cliquer sur la case cochée à côté du nom du logiciel que vous souhai-
© Dunod – Toute reproduction non autorisée est un délit.

tez supprimer, puis de cliquer sur le bouton Apply pour le désinstaller. Soyez
conscient, toutefois, qu’il est tout à fait possible de désinstaller de cette
façon-là un logiciel dont vous avez réellement besoin ; il faut donc toujours
vérifier le nom du logiciel que vous voulez désinstaller avant de cliquer sur le
bouton Apply !

// Gestion des logiciels en ligne de commande


Si vous utilisez votre Pi sans l’interface graphique, vous pouvez accéder aux
mêmes paquets logiciels en utilisant un outil appelé apt qui est un puissant ges-
tionnaire de paquets. Lorsque vous ajoutez ou supprimez un logiciel dans l’inter-
face graphique, vous utilisez en fait apt, mais indirectement.

Installation et désinstallation de logiciels /71


Autres Distributions
Raspbian, comme la plupart des distributions basées sur Debian, utilise un outil
appelé apt comme gestionnaire de paquets. Ce n’est pas le seul outil employé pour
gérer des paquets, et d’autres distributions font des choix différents. Arch Linux,
par exemple, utilise le gestionnaire pacman.
Pacman n’est pas plus difficile à utiliser que apt, mais sa syntaxe (la façon dont
sont formulées les instructions pour installer de nouveaux logiciels ou supprimer
des logiciels existants) est différente. Pour obtenir des informations sur la façon
d’utiliser pacman à la place de apt, saisissez man pacman dans le terminal Arch
Linux.
D’autres distributions peuvent utiliser le gestionnaire de paquets yum. Si vous
essayez une distribution qui utilise yum, il suffit de saisir man yum dans le terminal
pour obtenir la syntaxe des instructions.

Le travail d’un gestionnaire de paquets consiste à garder la trace de tous les


logiciels installés sur le système. Il ne se contente pas d’installer de nouveaux
logiciels, mais Il surveille également ce qui est actuellement installé, ce qui per-
met aux anciens logiciels d’être supprimés et d’installer des mises à jour dès
qu’elles sont disponibles.
La gestion des paquets est un des domaines où Linux est très différent des
systèmes d’exploitation comme Windows ou OS X. Bien qu’il soit possible de télé-
charger manuellement un nouveau logiciel à installer, il est beaucoup plus courant
d’utiliser les gestionnaires de paquets intégrés à la distribution.

Astuce

Avant d’essayer d’installer de nouveaux logiciels ou des


mises à jour de logiciels existants, vous devez vous assurer
que le cache de apt est à jour. Pour ce faire, il suffit de saisir
la commande sudo apt-get update.

// Comment trouver le logiciel que l’on souhaite


La première étape pour installer un nouveau logiciel consiste à connaître son
nom. La meilleure façon de procéder est de rechercher dans le cache des paquets
disponibles. Ce cache est une liste de tous les logiciels disponibles qui s’installent
avec la commande apt et qui sont stockés sur des serveurs Internet appelés
dépôts.
Le programme apt comprend un utilitaire pour gérer ce cache, qui s’appelle
apt-cache. En utilisant ce logiciel, il est possible d’exécuter une recherche sur un
mot ou une phrase dans tous les paquets logiciels disponibles.

72/ Chapitre 3 : Administration système Linux


Par exemple, pour rechercher un jeu, vous pouvez saisir la commande suivante
(comme la plupart des descriptions des paquets sont rédigées en anglais, il est

>_
préférable de saisir le terme recherché en anglais) :
apt-cache search game

Cette commande ordonne à apt-cache de rechercher la liste des logiciels dispo-


nibles dont le mot « game » (jeu) apparaît dans le titre ou la description. Si vous faites
une recherche sur des termes trop courants, vous risquez de vous retrouver avec une
longue liste (figure 3.6), si bien qu’il est préférable d’être aussi précis que possible.

Figure 3.6 Affichage des derniers résultats d’une recherche apt-cache sur le terme « game »

Astuce

Si votre recherche renvoie trop de paquets différents qui


sont impossibles à visualiser sur un seul écran, vous pou-
vez dire à Linux que vous voulez faire une pause sur chaque
© Dunod – Toute reproduction non autorisée est un délit.

page-écran en canalisant la sortie de apt-cache au moyen


d’un outil appelé less. Il suffit de modifier la commande en
apt-cache search game | less et d’utiliser les flèches pour
faire défiler la liste. Appuyez sur la touche Q pour quitter l’af-
fichage de la liste.

// Installation de logiciels
Une fois que vous connaissez le nom du paquet à installer, il faut employer
la commande apt-get pour l’installer. L’installation de logiciels est un privilège
accordé uniquement à l’utilisateur root, car cela affecte tous les utilisateurs du

Installation et désinstallation de logiciels /73


­ aspberry Pi. Par conséquent, les commandes devront être précédées de sudo
R
pour dire au système d’exploitation qu’il devrait être exécuté en tant qu’utilisateur
root.
Par exemple, pour installer le paquet nethack-console (un jeu de rôles
en mode console), il suffit d’utiliser la commande install avec apt-get de la

>_
manière suivante :
sudo apt-get install nethack-console

Certains paquets dépendent d’autres paquets pour pouvoir fonctionner. Par


exemple, un langage de programmation peut dépendre d’un compilateur, un
moteur de jeu peut avoir besoin de fichiers graphiques, et un lecteur audio peut
requérir des codecs pour la lecture de différents formats. Dans la terminologie
Linux, on appelle cela des dépendances.
À cause des dépendances, il est bien préférable d’utiliser un gestionnaire de
paquets comme apt plutôt que d’installer un logiciel manuellement. Si un paquet
dépend d’autres paquets, apt les retrouvera automatiquement (figure 3.7) et les
installera. Dans ce cas, vous verrez une invite vous demandant si vous souhai-
tez continuer. Si vous souhaitez poursuivre l’installation, saisissez la lettre O et
appuyez sur la touche Entrée.

Figure 3.7 Apt demande l’autorisation d’installer les dépendances de paquets dans certains cas

// Désinstallation de logiciels
Si vous décidez que vous ne voulez plus d’un logiciel, apt-get comprend éga-
lement une commande remove qui désinstalle proprement le paquet ainsi que ses
dépendances qui ne sont plus nécessaires. Si vous utilisez une carte SD de petite

74/ Chapitre 3 : Administration système Linux


taille avec votre Pi, il sera très utile de pouvoir supprimer rapidement un logiciel
si vous voulez en tester plusieurs.
Pour supprimer nethack-console, ouvrez le terminal et saisissez la commande

>_
suivante :
sudo apt-get remove nethack-console

La commande remove a un équivalent plus puissant sous la forme de la com-


mande purge. Comme remove, la commande purge se débarrasse du logiciel
dont vous n’avez plus besoin, mais là où remove laisse intacts les fichiers de
configuration du logiciel, purge supprime tout. Si vous rencontrez des diffi­cultés
à personnaliser un paquet particulier qui ne fonctionne plus, purge est la com-
mande à utiliser. Par exemple, pour purger nethack-console, il suffit de saisir

>_
ceci :
sudo apt-get purge nethack-console

// Mise à jour des logiciels


Outre l’installation et la désinstallation de paquets, apt peut être utilisée pour
les mises à jour. La mise à jour d’un paquet avec apt garantit que vous recevez les
dernières mises à jour, les correctifs de bugs et les correctifs de sécurité.
Avant d’essayer de mettre à jour un paquet, assurez-vous que le cache de apt

>_
est aussi récent que possible en exécutant une mise à jour :
sudo apt-get update

Lorsque vous effectuez une mise à jour d’un logiciel, vous avez deux possibi-
lités : vous pouvez mettre à jour simultanément tout sur le système ou faire une
mise à niveau des programmes individuellement. Si vous voulez juste mettre à

>_
jour la totalité de votre distribution, il suffit de saisir ce qui suit :
sudo apt-get upgrade

Pour mettre à jour un paquet individuel, il suffit de dire à apt de le réinstaller. Par

>_
exemple, pour installer une mise à jour du paquet nethack-console, saisissez ceci :
sudo apt-get install nethack-console
© Dunod – Toute reproduction non autorisée est un délit.

Si le paquet est déjà installé, apt traitera la commande comme une mise à jour.
Si vous utilisez déjà la dernière version disponible, apt vous dira simplement qu’il
ne peut pas mettre à niveau le logiciel, puis il s’arrêtera.

Astuce

Pour plus d’informations sur la gestion des paquets avec apt


(en particulier sur la manière dont certains paquets peuvent
être exclus du processus de mises à niveau), saisissez
man apt dans le terminal.

Installation et désinstallation de logiciels /75


Arrêt du Pi en toute sécurité
Bien que le Pi n’ait pas d’interrupteur comme un ordinateur traditionnel, cela
ne signifie pas que vous pouvez simplement retirer le câble d’alimentation lorsque
vous voulez l’éteindre. Même quand il semble être inactif, le Pi effectue souvent
une lecture ou une écriture sur la carte SD, et si l’alimentation est coupée alors
que le Pi est en train d’écrire sur la carte, elle peut se corrompre et devenir illisible.

>_
Pour arrêter le Pi en utilisant le terminal, saisissez la commande suivante :
sudo shutdown -h now

Si vous utilisez le Pi en mode graphique avec la distribution Raspbian, cliquez


sur le menu en haut à gauche de l’écran et cliquez sur l’option Shutdown pour
ouvrir la boîte de dialogue comportant trois options : Shutdown (arrêt), Reboot
(redémarrage) et Logout (fermeture de la session). Cliquez sur l’option Shutdown
pour arrêter le Pi en toute sécurité.
Le Pi ferme toutes les applications ouvertes, en vous invitant à enregistrer tous
les fichiers ouverts si vous ne l’avez pas déjà fait, puis il s’arrête, et l’écran devient
à ce moment noir et la LED d’activité s’éteint. Une fois que le voyant est éteint,
vous pouvez en toute sécurité retirer le câble micro-USB ou éteindre manuelle-
ment le Pi.
Lorsque vous souhaitez rallumer le Pi, ou si vous fermez accidentellement le
Pi sans le vouloir, rebranchez simplement l’alimentation et le Pi démarrera auto-
matiquement.
/> Chapitre
Dépannage
4

Parfois, il arrive que les choses ne se passent pas tout à fait comme prévu. Plus
un appareil est complexe, plus les problèmes qui peuvent se produire sont com-
plexes, et il se trouve que le Pi est un appareil extrêmement complexe.
Heureusement, une grande partie des problèmes les plus courants sont faciles
à diagnostiquer et à résoudre. Dans ce chapitre, vous allez étudier les causes les
plus fréquentes des dysfonctionnements du Pi et voir comment les corriger.

Diagnostics du clavier et de la souris


Il est probable que le problème le plus fréquent que rencontrent les utilisateurs
de Raspberry Pi soit la répétition de certains caractères lorsqu’ils frappent des
touches sur le clavier. Par exemple, si la commande startx apparaît à l’écran sous
la forme sttttttttttartxxxxxxxxxxxx, vous comprendrez facilement qu’elle ne
fonctionnera pas lorsque vous appuyez sur la touche Entrée.
Il y a généralement deux raisons pour qu’un clavier USB ne fonctionne pas
correctement lorsqu’il est connecté à un Raspberry Pi : soit il consomme trop de
courant, soit son chipset interne entre en conflit avec le circuit USB du Pi.
Consultez la documentation de votre clavier ou l’étiquette qui se trouve en des-
sous pour voir si sa puissance nominale est exprimée en milliampères (mA). Il s’agit
© Dunod – Toute reproduction non autorisée est un délit.

de la quantité de courant que le clavier consomme à partir du port USB quand il est
en cours d’utilisation. Les ports USB du Pi ne sont pas en mesure de fournir autant
d’énergie que ceux d’un ordinateur de bureau ou d’un ordinateur portable. Cela
peut constituer un problème pour les claviers disposant d’un éclairage à LED, qui
exigent beaucoup plus de puissance pour fonctionner qu’un simple clavier standard.
Si vous trouvez que votre clavier USB consomme trop de courant, essayez de le
brancher sur un hub USB alimenté au lieu de le connecter directement au Pi. Cela
permet au clavier de s’alimenter sur le bloc d’alimentation du hub, plutôt que sur le
Pi lui-même. Vous pouvez également changer de clavier et opter pour un modèle
consommant moins de courant. Le problème de la répétition des lettres peut aussi
provenir d’une alimentation qui n’est pas adaptée pour le Pi, et nous traiterons cette
question dans la section suivante, « Diagnostics de l’alimentation ».

Diagnostics du clavier et de la souris /77


La question de la compatibilité, malheureusement, est plus difficile à diagnos-
tiquer. L’écrasante majorité des claviers fonctionnent très bien avec le Pi, mais
quelques-uns ont des comportements étranges. Ces dysfonctionnements vont des
réponses intermittentes au syndrome de répétition des lettres, en passant même
par des plantages qui empêchent le Pi de fonctionner. Parfois, ces problèmes n’ap-
paraissent que lorsque l’on connecte au Pi d’autres périphériques USB. Si votre
clavier fonctionnait très bien jusqu’à ce qu’un autre périphérique USB, en particulier
un adaptateur USB Wi-Fi, ne soit connecté, il se peut que vous ayez un problème
d’incompatibilité, ou que votre dongle USB consomme trop de courant.
Si cela est possible, essayez de changer de clavier pour un autre modèle. Si le
nouveau clavier fonctionne, il est possible que votre ancien clavier soit incom-
patible avec le Pi. Pour obtenir la liste des claviers compatibles, allez sur le wiki
d’eLinux à http://elinux.org/Rpi_USB_Keyboards, mais il faut savoir que cette
liste est complétée par les utilisateurs et qu’elle est loin d’être exhaustive.
Les mêmes conseils sur la vérification de la compatibilité s’appliquent aux pro-
blèmes que l’on rencontre avec la souris. La majorité des souris et trackballs USB
fonctionnent bien, mais vous pouvez rencontrer certaines incompatibilités avec le
circuit USB du Pi. Cela se traduit généralement par des symptômes comme un poin-
teur de souris saccadé ou qui ne répond pas, mais cela peut parfois se manifester
par des plantages aléatoires du Pi ou bien un Pi qui ne se charge pas. Si vous voulez
acheter une nouvelle souris, la liste des modèles connus pour fonctionner avec le
Pi est disponible sur le wiki d’eLinux à http://elinux.org/RPi_USB_Mouse_devices.

Diagnostics de l’alimentation
Beaucoup de problèmes rencontrés avec le Raspberry Pi proviennent d’une
alimentation inadaptée. Alors que le modèle A ne consomme qu’un maximum de
500 mA, le Raspberry Pi 3, qui a de bien meilleures performances, peut consommer
jusqu’à 1 200 mA (1,2 A), un chiffre qui augmente encore si l’on rajoute des acces-
soires. Tous les adaptateurs USB ne sont pas conçus pour offrir une telle énergie,
même si leurs caractéristiques techniques prétendent par ailleurs le contraire.

Astuce

La norme USB officielle stipule que les appareils ne devraient


pas consommer plus de 500 mA, ce niveau de puissance
n’étant d’ailleurs disponible que si l’appareil a suivi un pro-
cessus appelé négociation . Le Pi n’a pas de processus de
négociation pour l’alimentation, ce qui peut causer des pro-
blèmes lorsque vous essayez d’alimenter le Pi à partir du
port USB d’un PC. Si les modèles ayant une faible consom-
mation, comme le Raspberry Pi Zéro peuvent fonctionner,
les modèles plus puissants, comme le Raspberry Pi 2 et 3 ne
doivent jamais être alimentés depuis le port USB d’un PC.

78/ Chapitre 4 : Dépannage


Si vous rencontrez des problèmes intermittents avec votre Pi, surtout s’il fonc-
tionnait bien jusqu’à ce que vous branchiez quelque chose sur un port USB ou
démarriez une opération sollicitant beaucoup le processeur, comme la lecture
d’une vidéo, il est probable que l’alimentation utilisée soit insuffisante. Le voyant
d’alimentation du Raspberry Pi se comporte comme un testeur de tension inté-
gré, et il vous permet de savoir si l’alimentation que vous utilisez est inférieure à
la norme requise pour un fonctionnement stable. Si le voyant d’alimentation cli-
gnote ou reste éteint, votre alimentation fournit moins de 4,65 V, ce qui est bien
inférieur aux 5 V de la norme USB, et elle doit être remplacée.
L’apparition d’un carré aux couleurs de l’arc-en-ciel dans le coin supérieur
droit de l’écran est un autre signe d’avertissement d’alimentation non conforme.
Si votre alimentation est juste à la limite, vous pouvez voir apparaître et dispa-
raître ce carré lorsque vous modifiez la quantité d’énergie consommée par le sys-
tème, quand vous exécutez quelque chose qui utilise le processeur graphique, par
exemple, ou quand vous connectez un matériel sur le port GPIO.
Si vous voulez avoir une meilleure idée du courant que votre Pi reçoit, le moyen
le plus simple est d’acheter un wattmètre USB. Il s’agit d’une forme simplifiée de
multimètre, conçu pour s’insérer entre le bloc d’alimentation USB et le Pi afin de
mesurer la tension et l’ampérage.

Mise en garde

Il existe des points de contact sur le Raspberry Pi que vous


pouvez utiliser avec les sondes d’un multimètre traditionnel
pour mesurer la tension de votre alimentation, mais vous ne
devriez pas le faire parce qu’il y a un risque trop important de
court-circuit accidentel si une sonde rentre en contact avec
l’une des broches qui se trouve à proximité.

Un câble USB adapté à votre wattmètre USB doit être connecté à l’entrée USB
du wattmètre et un câble micro-USB doit être connecté depuis sa sortie au Ras-
pberry Pi. Lorsqu’il est connecté à l’alimentation, le wattmètre USB commence à
afficher les statistiques sur la qualité de l’alimentation. Ces statistiques incluent
© Dunod – Toute reproduction non autorisée est un délit.

la tension, généralement indiquée par un V pour volts, et le courant, indiqué par


un A pour ampères (figure 4.1).
La tension mesurée sur le wattmètre USB devrait se situer entre 4,65 V et 5,2 V.
Si elle est inférieure à 4,65 V, cela indique que le Pi n’est pas alimenté avec assez
de puissance. Essayez de changer l’adaptateur USB pour un modèle plus puis-
sant et vérifiez que l’étiquette indique qu’il peut fournir au moins 700 mA pour
les Pi ayant une faible consommation (modèle A et Pi Zéro), au moins 1,8 A pour
les modèles A+, B+ et Raspberry Pi 2, et au moins 2,5 A pour le Raspberry Pi 3.
Méfiez-vous des alimentations bon marché et des câbles micro-USB trop minces :
parfois, leur étiquetage est inexact et ils ne fournissent pas le courant annoncé. Les
blocs d’alimentation de marque qui sont authentiques, comme le modèle officiel

Diagnostics de l’alimentation /79


du R
­ aspberry Pi, ont rarement ce problème ; vous devez donc proscrire les alimen-
tations sans marque et bon marché, qui sont souvent vendues comme étant des
adaptateurs compatibles.

Figure 4.1 Wattmètre USB, affichant le courant circulant dans un Raspberry Pi 2

La mesure du courant peut être utilisée pour déterminer si vous êtes proche de la
limite supérieure de la sortie de votre alimentation. Si l’affichage indique « 0,62 A »,
par exemple, cela signifie que vous consommez actuellement 620 mA (milliampères,
c’est-à-dire des millièmes d’un ampère), ce qui est au-dessus de la puissance nomi-
nale d’une alimentation de 500 mA, mais reste bien inférieur à la limite de sécurité
de 1 A. En fonctionnement normal, le Raspberry Pi devrait consommer moins de
500 mA, mais ce chiffre peut augmenter si vous connectez un matériel supplémen-
taire, comme un dongle Wi-Fi, un afficheur, ou un clavier et une souris sans fil. Un
wattmètre USB est la manière la plus simple de contrôler le courant utilisé.

Diagnostics de l’affichage
Bien que le Pi soit conçu pour fonctionner avec presque n’importe quel péri-
phérique d’affichage HDMI, DVI ou vidéo composite, il est possible que tout ne
se passe pas comme prévu lorsque vous le branchez. Par exemple, il se peut que
l’image soit décalée sur le côté, pas complètement visible, ou bien ne soit visible
qu’au format timbre-poste au milieu de l’écran ou en noir et blanc, voire qu’elle
ne s’affiche pas du tout.
Tout d’abord, vérifiez le type de périphérique auquel est connecté le Pi. Ceci est
particulièrement important lorsque vous utilisez la connexion composite pour bran-
cher le Pi sur un téléviseur. Les pays utilisent des normes différentes pour la télévision,
ce qui signifie qu’un Pi configuré pour un pays peut ne pas fonctionner dans un autre
pays. C’est en général l’explication la plus plausible quand un Pi affiche une vidéo en
noir et blanc. Vous découvrirez comment modifier ce paramètre au chapitre 7.
Lorsque vous utilisez la sortie HDMI, le type d’affichage est généralement
automatiquement détecté. Si vous utilisez un adaptateur DVI vers HDMI ou VGA

80/ Chapitre 4 : Dépannage


pour brancher le Pi sur un écran d’ordinateur, il y a parfois des problèmes. Parmi
les symptômes courants, on rencontre des images fixes neigeuses, des portions
d’images manquantes, voire pas d’affichage du tout. Pour résoudre le problème,
notez le taux de rafraîchissement et la résolution du téléviseur connecté, puis
reportez-vous au chapitre 7 pour savoir comment définir manuellement ces
­paramètres.
Un autre problème concerne les images trop grandes ou trop petites, des por-
tions absentes des bords de l’écran ou une large bordure noire traversant le milieu
de l’écran. Ce problème est provoqué par un paramètre appelé overscan, qui est
utilisé lorsque le Pi est connecté à une télévision afin d’éviter d’afficher des por-
tions de l’écran susceptibles d’être masquées par le cadre qui entoure le télévi-
seur. Comme pour les autres paramètres liés à l’affichage, vous apprendrez à les
ajuster (ou même à les désactiver complètement) au chapitre 7.

Diagnostics de démarrage
La cause la plus fréquente de l’échec du démarrage d’un Pi est un problème
avec la carte SD (ou micro-SD). Contrairement à un ordinateur classique, le Pi se
sert des fichiers stockés sur la carte SD pour tout. Si le Pi ne peut pas communi-
quer avec la carte, il n’affichera rien à l’écran ou ne montrera aucun signe de vie.
Si la diode PWR (alimentation) du Pi s’allume lorsque vous connectez le câble
d’alimentation micro-USB, mais que rien ne se passe et que la diode ACT (activité)
ne clignote pas pour indiquer l’accès aux données, vous avez très probablement
un problème de carte SD. Tout d’abord, assurez-vous que cette carte fonctionne
lorsque vous la connectez à un PC et qu’il affiche les partitions et les fichiers qui
sont censés se trouver sur une carte correctement flashée (pour plus de détails
sur la préparation de la carte SD, reportez-vous au chapitre 3, en particulier la
section intitulée « Organisation du système de fichiers »).
Si la carte fonctionne sur un PC, mais pas sur le Pi, il peut s’agir d’un pro-
blème de compatibilité. Certaines cartes SD ne fonctionnent pas correctement
lorsqu’elles sont connectées à l’interface de carte SD du Pi. Vous trouverez une
liste des cartes certifiées pour être compatibles avec le Pi sur le wiki d’eLinux à
elinux.org/RPi_SD_cards.
© Dunod – Toute reproduction non autorisée est un délit.

Malheureusement, si vous avez une carte incompatible, vous devrez probable-


ment la remplacer par une autre carte afin que le Pi puisse fonctionner. Au fur et
à mesure que le logiciel du Pi est développé, tout est mis en œuvre pour s’assurer
qu’un large éventail de cartes fonctionne correctement avec le Pi. Avant de renon-
cer complètement à utiliser votre carte, vérifiez s’il existe une version plus récente
de la distribution Linux que vous avez choisie (reportez-vous au chapitre 1 pour plus
de détails sur les distributions).
Si vous avez modifié la vitesse de votre Pi en l’overclockant (voir le chapitre 6), il
peut ne pas démarrer correctement. Pour désactiver temporairement l’overclock
et faire tourner le Pi à sa vitesse par défaut, maintenez la touche Maj enfoncée
quand les messages de démarrage apparaissent à l’écran.

Diagnostics de démarrage /81


Diagnostics réseau
L’outil le plus utile pour diagnostiquer les problèmes de réseau est ifconfig.
Si vous utilisez une connexion réseau sans fil, passez directement au chapitre 5
pour plus d’informations sur un outil similaire pour les adaptateurs Wi-Fi, sinon,
lisez la suite de cette section.
Conçu pour fournir des informations sur les ports réseau connectés, ifconfig
est un outil puissant pour le contrôle et la configuration des ports réseau du Pi.

>_
Pour une utilisation basique, saisissez simplement le nom de l’outil dans le terminal :
ifconfig

Exécutée de cette manière, ifconfig fournit des informations sur tous les
ports réseau qu’il peut trouver (figure 4.2). Pour les modèles Raspberry Pi B, B+
et 2, il y a deux ports : le port Ethernet physique sur le côté droit de la carte et une
interface de bouclage virtuel qui permet aux programmes du Pi de communiquer
entre eux. Le Raspberry Pi 3 possède un troisième port qui représente l’adapta-
teur réseau sans fil intégré.

Figure 4.2 Sortie de la commande ifconfig sur un Raspberry Pi 3

La sortie de ifconfig est divisée en sections qui sont listées ci-dessous :


>> Link encap : type d’encapsulation utilisée par le réseau, qui, sur le modèle
B est Ethernet pour le port réseau physique (généralement appelé eth0)
ou Local loopback pour l’adaptateur de bouclage virtuel (généralement
appelé lo).

82/ Chapitre 4 : Dépannage


>> HWaddr : adresse MAC (Media Access Control) de l’interface réseau,
écrite en hexadécimal. Ce numéro est unique pour chaque appareil
connecté au réseau, et chaque Pi a sa propre adresse MAC, qui est para-
métrée en usine.
>> inet addr : adresse IP (Internet Protocol) de l’interface réseau. C’est la
manière dont on trouve le Pi sur le réseau si vous l’utilisez pour exécuter un
service accessible via le réseau, comme un serveur web ou un serveur de
fichiers.
>> Bcast : adresse de broadcast (diffusion) pour le réseau auquel est connecté
le Pi. Tout le trafic envoyé à cette adresse est reçu par chaque appareil sur
le réseau.
>> Mask : masque réseau, qui contrôle la taille maximale du réseau auquel
est connecté le Pi. Pour la plupart des particuliers, le masque indiquera
255.255.255.0.
>> MTU : taille de l’unité de transmission maximale, c'est-à-dire la grandeur
maximale qu’un paquet de données peut atteindre avant que le système ne
doive le découper en plusieurs paquets.
>> RX : cette section fournit des informations sur le trafic réseau reçu, y com-
pris le nombre d’erreurs et les paquets ignorés. Si vous commencez à voir
apparaître des erreurs dans cette section, il y a un problème avec le réseau.
>> TX : cela fournit les mêmes informations que la section RX, mais pour
les paquets transmis. Encore une fois, toutes les erreurs enregistrées ici
indiquent un problème avec le réseau.
>> Collisions : si deux systèmes sur le réseau essaient de se parler en même
temps, vous obtenez une collision, ce qui nécessite de retransmettre les
paquets. Un petit nombre de collisions ne constitue pas un problème, mais
un grand nombre indique un problème de réseau.
>> Txqueuelen : longueur de la file d’attente de transmission, qui est habituel-
lement paramétrée à 1 000 et qui doit rarement être changée.
>> RX bytes, TX bytes : synthèse de la quantité de trafic écoulé sur l’interface
© Dunod – Toute reproduction non autorisée est un délit.

réseau.
Si vous rencontrez des problèmes réseau avec le Pi, essayez tout d’abord de
désactiver, puis de réactiver l’interface réseau. La meilleure façon de réaliser cela
est d’employer deux outils appelés ifup et ifdown.
Si le réseau est activé, mais ne fonctionne pas correctement (par exemple, si
ifconfig ne liste rien dans la section inet addr), commencez par désactiver le

>_
port réseau. Depuis le terminal, saisissez la commande suivante :
sudo ifdown eth0

Une fois que le réseau est désactivé, assurez-vous que le câble est correcte-
ment inséré aux deux extrémités et que le périphérique réseau connecté au Pi

Diagnostics réseau /83


(via un switch ou un routeur) est allumé et fonctionne. Réactivez ensuite l’inter-

>_
face avec la commande suivante :
sudo ifup eth0

Vous pouvez tester la connexion réseau en utilisant la commande sudo ping


qui envoie des données vers un ordinateur distant et attend une réponse. Si tout
fonctionne, vous devriez voir une réponse similaire à celle qui est illustrée à la
figure 4.3. Si ce n’est pas le cas, il faudra peut-être configurer manuellement vos
paramètres réseau, ce que vous apprendrez à faire au chapitre suivant.

Figure 4.3 Résultat d’un test réussi de connexion réseau, à l’aide de la commande sudo ping
/> Chapitre
Configuration
du réseau
5

Pour la plupart des utilisateurs, la configuration réseau du Raspberry Pi se


résume au branchement d’un câble sur le port Ethernet d’un modèle B, B+,
Pi 2 ou Pi 3, ou bien d’un adaptateur USB Ethernet, dans le cas des modèles A,
A+ ou Pi Zéro. Pour d’autres, la configuration du réseau devra cependant être
manuelle.
Si vous savez que votre réseau ne possède pas de serveur DHCP (Dynamic
Host Configuration Protocol, un système qui indique au Pi et aux autres appa-
reils sur le réseau comment ils doivent se connecter), ou bien si vous souhaitez
utiliser un adaptateur USB sans fil avec le Pi, vous pouvez continuer la lecture
de ce chapitre.

Configuration d’un réseau filaire


Dans certains cas, vous allez devoir configurer manuellement le réseau pour
que le Pi fonctionne correctement. En général, un réseau, qu’il soit présent dans
une maison, une école ou bien une entreprise, possède un serveur DHCP qui faci-
lite la connexion des ordinateurs qui s’y raccordent. Il arrive cependant que cer-
tains réseaux n’aient pas de serveur DHCP, et la configuration du réseau doit donc
être manuelle.
© Dunod – Toute reproduction non autorisée est un délit.

Remarque

Si vous voulez juste que votre Raspberry Pi ait une adresse


IP qui ne change pas, c’est-à-dire ce que l’on appelle une IP
fixe, il est déconseillé de configurer cette adresse directe-
ment sur le Pi. Au lieu de cela, consultez la documentation de
votre routeur ou d’un autre serveur DHCP pour obtenir des
instructions sur la façon d’effectuer des réservations d’IP
fixes ; une adresse IP fixe empêche le Pi d’avoir un conflit
d’adresse avec un autre ordinateur présent sur le réseau.

Configuration d’un réseau filaire /85


// Connexion à un réseau filaire
via l’interface utilisateur
Passer par l’interface utilisateur graphique est la meilleure façon de réaliser
manuellement la configuration réseau du Pi. Le Bureau de la distribution Raspbian
est déjà configuré pour la prise en charge réseau : repérez l’icône de gestion du
réseau sur la barre d’état système, qui représente deux flèches verticales oppo-
sées l’une à l’autre et faites un clic droit. Cliquez sur Wireless & Wired Network
Settings, pour afficher la fenêtre Network Preferences (figure 5.1).

Figure 5.1 Fenêtre de configuration du réseau de la distribution Raspbian

Cette fenêtre de configuration offre plusieurs options. Vous n’avez pas besoin
de remplir tous les champs pour activer le réseau filaire. Contentez-vous de rem-
plir le maximum de champs que vous pouvez en vous aidant des informations
suivantes :
>> Adresse IP : adresse IP fixe que vous voulez assigner au Pi. C’est un para-
mètre obligatoire qui ne peut pas rester vide.
>> Router (sic) : adresse IP de votre routeur ou de toute autre passerelle réseau.
Si le champ est vide, votre Pi ne pourra pas se connecter à d’autres ordina-
teurs sur votre réseau local, et ne pourra pas non plus accéder à Internet.
>> DNS Servers : adresses IP d’un ou plusieurs serveurs DNS (Domain Name
System, ou système de nom domaine), utilisées pour convertir les noms de
domaine en adresses IP des serveurs Web des sites. Si vous ne connaissez
pas les adresses des serveurs DNS de votre FAI, et que vous n’utilisez pas
les serveurs DNS locaux, saisissez 8.8.8.8 et 8.8.8.4, en les séparant par un
espace pour utiliser les serveurs DNS publics de Google.
>> DNS recherche : suffixe de recherche qui doit être appliqué aux recherches
DNS pour les noms locaux. Pour la plupart des réseaux domestiques, il s’agit

86/ Chapitre 5 : Configuration du réseau


de « local » ou de « home » ; si vous n’êtes pas sûr, vous pouvez sans problème
laisser ce champ vide.
Quand vous avez renseigné tous les champs que vous pouvez remplir, cli-
quez sur le bouton Appliquer. Si vous recevez un message d’erreur, vérifiez
les informations saisies ; une erreur courante consiste à utiliser un autre carac-
tère que l’espace pour séparer les adresses des serveurs DNS. Si aucun mes-
sage d’erreur ne s’affiche, vous pouvez passer directement à la section « Test
de connexion ».

// Connexion à un réseau filaire via la Console


Si vous n’employez pas la méthode conviviale avec l’interface graphique, vous
pouvez configurer votre connexion réseau à l’aide de la console. Soit vous exé-
cutez une fenêtre de terminal à partir de la touche du menu, soit vous utilisez la

>_
console de Raspbian et saisissez la commande suivante :
sudo nano /etc/dhcpcd.conf

Cette commande lance l’éditeur de texte nano (puissant, mais facile à utiliser)
avec les permissions de l’utilisateur root (super-utilisateur) et demande d’ouvrir le
fichier dhcpcd.conf situé dans le répertoire /etc pour le modifier (figure 5.2). Ce
fichier est un fichier de configuration (d’où l’extension de fichier .conf) du DHCPCD
(dynamic host configuration protocol client daemon) qui contrôle la manière dont
le Raspberry Pi obtient ses informations réseau : par défaut, il est configuré pour
interroger un serveur DHCP sur le réseau afin d’obtenir des informations de confi-
guration de manière dynamique, mais il peut également être modifié pour que l’on
puisse saisir manuellement des informations de configuration.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 5.2 Édition du fichier /etc/dhcpcd.conf dans nano

Configuration d’un réseau filaire /87


Faites défiler le texte jusqu’en bas du fichier et ajoutez votre configuration
manuelle en vous servant de l’exemple suivant comme guide et en remplaçant les
informations par les données de votre propre réseau :

> interface eth0


static ip_address=192.168.0.13
static routers=192.168.0.254

_
static domain_name_servers=8.8.8.8 8.8.4.4
static domain_search=local

Si votre Raspberry Pi a plusieurs cartes réseau, comme c’est le cas du Rasp-


berry Pi 3 avec ses adaptateurs de réseau filaire et Wi-Fi, ou bien si vous avez un
ancien modèle de Pi avec un adaptateur de réseau USB, vous pouvez configurer
chaque carte à tour de rôle en répétant les options de configuration sous une
nouvelle ligne commençant par interface.
Lorsque vous avez fini de configurer vos paramètres réseau, enregistrez le
fichier à l’aide du raccourci Ctrl + O, puis fermez l’éditeur de texte à l’aide de
Ctrl + X. Redémarrez la pile réseau du Pi à l’aide de la commande suivante :

>_ sudo service networking restart

Si vous étiez connecté au Pi via SSH (Secure Shell) et que vous avez changé
son adresse IP, vous serez déconnecté. Patientez quelques instants pour que le Pi
retrouve sa configuration réseau et puisse se reconnecter en utilisant la nouvelle
adresse IP que vous avez configurée.

// Test de connexion
Lorsque vous avez fini de configurer vos nouveaux paramètres réseau, vous
pouvez les tester. La meilleure façon de le faire consiste à ouvrir un navigateur
Web et à tenter de visiter un site Web ; si le site s’affiche, cela signifie que votre
connexion réseau fonctionne correctement.
Vous pouvez également tester votre connexion réseau à partir de la ligne de
commande. Si vous n’êtes pas déjà dans une console, ouvrez une fenêtre de ter-
minal et saisissez la commande suivante :

>_ sudo ping -c 1 www.raspberrypi.org

Cette commande envoie un seul paquet de données au serveur du site de la


Fondation Raspberry Pi et attend une réponse. Après une seconde ou deux, vous
devriez voir arriver une réponse de la part du serveur confirmant que votre mes-
sage a bien été reçu (figure 5.3).

88/ Chapitre 5 : Configuration du réseau


Figure 5.3 Test de connectivité réseau à l’aide de la commande ping

Si vous recevez un message d’erreur, il y a un problème avec votre configura-


tion. Le message « network is unreachable » donne à penser que vous n’avez pas
configuré correctement l’adresse de votre routeur ; le message « unknown host »
suggère que vous n’avez pas configuré correctement les adresses de votre ser-
veur DNS. Vérifiez à nouveau tous les paramètres, en les comparant si possible
avec ceux d’un ordinateur situé sur le même réseau et qui fonctionne correcte-
ment, afin de trouver et de corriger l’erreur ; bien évidemment, commencez par
vérifier que votre câble réseau est bien branché aux deux extrémités !

Configuration d’un réseau sans fil


Le Raspberry Pi 3 intègre une puce Wi-Fi capable de se connecter aux réseaux
à la norme 802.11b/g/n à la fréquence de 2,4  GHz. Une carte réseau sans fil
peut également être ajoutée à n’importe quel autre modèle de Pi en utilisant un
adaptateur USB Wi-Fi de faible coût ; avant d’en acheter un, assurez-vous que le
fabricant certifie qu’il est compatible avec Linux en général et le Raspberry Pi en
© Dunod – Toute reproduction non autorisée est un délit.

particulier, car certaines cartes ne prennent en charge que des systèmes d’exploi-
tation spécifiques, comme Microsoft Windows.

Astuce

Les adaptateurs USB Wi-Fi sont très gourmands en énergie.


Si vous connectez un adaptateur qui est conçu pour être uti-
lisé avec un ordinateur de bureau directement au port USB
du Pi, il est possible qu’il ne fonctionne pas. Au lieu de cela,
connectez un hub USB alimenté au Pi, puis insérez l’adapta-
teur Wi-Fi dans le hub.

Configuration d’un réseau sans fil /89


Avant de commencer à configurer l’interface sans fil, vous devez connaître le
SSID (Service Set Identifier), c’est-à-dire le nom du réseau sans fil défini par votre
routeur auquel vous souhaitez vous connecter, ainsi que le type de chiffrement uti-
lisé et le mot de passe. Vous devez également savoir de quel type de réseau sans
fil il s’agit. Un adaptateur USB conçu pour la norme Wi-Fi 802.11a ne peut pas se
connecter à un réseau à la norme 802.11g et vice versa. Dans le cas de l’adaptateur
sans fil intégré au Raspberry Pi 3, vous ne pouvez l’utiliser qu’avec des réseaux à
2,4 GHz ; votre Pi 3 ne pourra donc pas se connecter aux réseaux à 5 GHz.

// Connexion à un réseau sans fil


via l’interface utilisateur
La façon la plus simple de connecter le Pi à un réseau sans fil est d’utiliser l’outil
graphique intégré à la distribution Raspbian, ce qui évite d’avoir à employer le termi-
nal. Commencez par faire un clic gauche sur l’icône réseau (deux flèches verticales
en sens opposé) dans la barre des tâches près de l’horloge. Ceci fait apparaître une
liste des réseaux sans fil à proximité, ainsi qu’une ou plusieurs icônes (figure 5.4).
Une icône de cadenas indique que le réseau est protégé par un cryptage et néces-
site une clé sous la forme d’un mot de passe ; une série de demi-cercles empilés
indique la puissance de la connexion réseau. Les réseaux qui sont physiquement
plus proches du Pi doivent apparaître avec une connexion plus forte, alors que les
réseaux plus éloignés doivent avoir une connexion plus faible. Les réseaux dont le
nom est en grisé sont trop faibles pour maintenir une connexion stable.

Figure 5.4 Affichage des réseaux sans fil à proximité sur un Raspberry Pi 3

Recherchez le nom de votre réseau dans la liste, et cliquez dessus. Si votre


réseau n’est pas crypté, ce qui n’est pas du tout recommandé car cela permet
à toute personne se trouvant à sa portée de l’utiliser sans votre permission, le
Pi se connecte immédiatement au réseau. Si votre réseau est crypté, que ce

90/ Chapitre 5 : Configuration du réseau


soit avec l’ancienne norme WEP (Wired Equivalent Privacy) qui n’est plus assez
sécurisée, ou bien avec le nouveau standard WPA (Wireless Protected Access)
ou WPA2, une boîte de dialogue s’ouvre et vous demande la clé du réseau
(figure 5.5).

Figure 5.5 Saisie de la clé d’un réseau sans fil

La clé du réseau, également connue sous le nom de clé PSK (pre-shared key,
en français clé pré-partagée), est un secret partagé entre tous les appareils ayant
accès au réseau. Si vous vous connectez au routeur sans fil de votre fournisseur
d’accès à Internet (FAI), la clé du réseau sans fil se trouve en général sur le rou-
teur ou bien sur une carte fournie avec le retour. Sinon, demandez la clé à la per-
sonne qui est en charge du réseau sans fil. Assurez-vous de saisir correctement
le mot de passe en n’oubliant pas que les mots de passe font la différence entre
les majuscules et les minuscules, ce qui signifie que vous devez saisir exactement
la clé comme elle est écrite afin de vous connecter.
Lorsque vous avez saisi le bon mot de passe, cliquez sur OK. Si vous recevez
un message d’erreur, contrôlez la clé de votre réseau et vérifiez que vous tentez
de vous connecter au bon réseau : en ville, il peut y avoir des dizaines de réseaux
à proximité, et de nombreux FAI ont des SSID génériques qui sont difficiles à
distinguer.
Pour tester votre connexion, reportez-vous à la section « Test de connexion »,
plus haut dans ce chapitre.
© Dunod – Toute reproduction non autorisée est un délit.

// Connexion à un réseau sans fil via la Console


Si vous n’utilisez pas l’interface utilisateur graphique avec votre Pi, vous pou-
vez également vous connecter aux réseaux sans fil à partir de la console ou du
terminal. Tout d’abord, vérifiez que l’adaptateur sans fil fonctionne correctement
à l’aide de la commande iwlist pour rechercher les points d’accès sans fil à proxi-
mité. La liste obtenue dépassera probablement un seul écran, et vous pouvez
donc filtrer la sortie avec la commande less pour faire une pause après chaque

>_
page-écran, de la manière suivante :
sudo iwlist scan | less

Configuration d’un réseau sans fil /91


Cette commande renvoie une liste de tous les réseaux sans fil accessibles par
le Pi, ainsi que leurs caractéristiques (figure 5.6). Si vous recevez un message
d’erreur à ce moment-là, en particulier un message indiquant que le réseau ou
l’interface est en panne, et que vous employez un adaptateur USB sans fil, il
est possible que l’adaptateur ne soit pas suffisamment alimenté. Rebranchez
l’adaptateur sur un hub USB alimenté, et si cela ne fonctionne toujours pas,
cela veut peut-être dire que votre adaptateur n’est pas compatible avec le
­Raspberry  Pi.

Figure 5.6 Recherche des réseaux sans fil avec iwlist

Vous pouvez vérifier l’état actuel du réseau en utilisant la commande iwconfig.


Comme ifconfig, la commande iwconfig permet de vérifier le statut d’une
interface réseau et exécute des commandes de configuration. Contrairement à
ifconfig, iwconfig est spécialement conçu pour les réseaux sans fil et inclut par
conséquent des fonctionnalités spécifiques. Saisissez dans le terminal le nom de

>_
la commande :
iwconfig

La sortie de iwconfig, qui est illustrée à la figure 5.7, est divisée en différentes


sections :
>> Interface Name : chaque périphérique possède son propre nom d’interface,
comme pour les réseaux filaires. Si l’interface est une connexion sans fil, des
détails supplémentaires sont affichés. Le nom par défaut de la connexion
Wi-Fi du Pi est wlan0.
>> Standard : la norme Wi-Fi IEEE 802.11 comporte de nombreuses variantes
qui se distinguent par un suffixe qui est une lettre. Cette section réperto-

92/ Chapitre 5 : Configuration du réseau


rie les normes prises en charge par l’adaptateur sans fil. Dans l’exemple
illustré à la figure 5.7, l’adaptateur prend en charge les normes Wi-Fi IEEE
802.11bgn.
>> ESSID : le SSID du réseau auquel l’adaptateur est connecté. Si l’adaptateur
n’est pas actuellement connecté à un réseau, il indiquera off/any.
>> Mode : le mode exploité actuellement par l’adaptateur, qui peut prendre
l’une des valeurs suivantes :
• Managed : réseau sans fil standard, avec des clients qui se connectent aux
points d’accès. Ce mode est utilisé pour presque la totalité des réseaux
domestiques et des réseaux d’entreprise.
• Ad-Hoc : réseau sans fil point à point, sans point d’accès.
• Monitor : mode spécial dans lequel la carte écoute tout le trafic qu’elle en
soit ou non destinataire. Ce mode est généralement utilisé pour le dépan-
nage du réseau, afin de capturer le trafic du réseau sans fil.
• Repeater : mode spécial qui oblige une carte sans fil à retransmettre le
trafic vers les autres clients du réseau, pour augmenter la puissance du
signal.
• Secondary : sous-ensemble du mode répéteur, qui force la carte sans fil à
agir en tant que répéteur de secours.
>> Access Point : adresse du point d’accès auquel l’adaptateur sans fil est
actuellement connecté. Si l’adaptateur n’est pas connecté à un point d’accès
sans fil, il indiquera non-Associated.
>> Tx-Power : puissance d’émission de la carte sans fil. Le nombre affiché ici
indique la puissance du signal qu’envoie l’adaptateur : plus le nombre est
élevé, plus le signal est fort.
>> Retry : paramètre du nombre de tentatives de transmission de l’adaptateur
sans fil ; ce paramètre est utilisé sur les réseaux congestionnés. Normale-
ment, il ne doit pas être modifié, et certaines cartes n’autorisent pas qu’il
soit changé.
>> RTS : paramètre de l’adaptateur pour le protocole RTS/CTS (Ready To Send
et Clear To Send), qui est utilisé sur les réseaux encombrés pour éviter les
© Dunod – Toute reproduction non autorisée est un délit.

collisions. Ce paramètre est normalement défini par le point d’accès au


moment de la connexion.
>> Fragment : taille maximale de fragment ; ce paramètre est utilisé sur les
réseaux encombrés pour fractionner les paquets en plusieurs fragments.
Ce paramètre est normalement défini par le point d’accès au moment de la
connexion.
>> Power Management : état de la fonctionnalité de gestion de l’alimentation
de l’adaptateur, qui réduit les besoins en énergie de l’appareil lorsque le
réseau sans fil est inactif. Ce paramètre a peu d’effet sur le Pi, mais il est
généralement activé pour les appareils qui fonctionnent sur batterie, comme
les ordinateurs portables.

Configuration d’un réseau sans fil /93


Figure 5.7 Sortie de iwconfig quand le Pi n’est pas connecté à un réseau sans fil

La configuration des réseaux sans fil sur le Pi est gérée à l’aide d’un outil appelé
wpasupplicant. Grâce à wpasupplicant, vous pouvez connecter le Pi à presque
tous les réseaux sans fil, indépendamment de leur système de protection, qu’il
s’agisse de WPA ou de WPA2, en mode AES (Advanced Encryption Standard) ou
TKIP (Temporal Key Integrity Protocol). En dépit de son nom, wpasupplicant per-
met également la connexion aux réseaux sans fil à l’aide de l’ancien protocole de
cryptage WEP.
Ouvrez le fichier de configuration wpasupplicant en saisissant la commande

>_
suivante :
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Entrez les deux lignes suivantes, qui sont les mêmes pour tout type de réseau
sans fil. Remplacez Votre_SSID par le SSID du réseau sans fil auquel vous voulez
vous connecter et terminez ensuite le fichier par les lignes qui correspondent au
type de cryptage de votre réseau :
Network={}
[Tab] ssid="Votre_SSID"
À cet endroit du fichier de configuration, les détails nécessaires diffèrent selon
le type de réseau sans fil que vous êtes en train de configurer. Les sous-sections
suivantes fournissent des indications pour terminer la configuration de réseaux
non cryptés, WEP et WPA.

À noter

[Tab] indique qu’il faut saisir une tabulation – nécessaire dans


ce fichier de configuration – au début des lignes secondaires.

94/ Chapitre 5 : Configuration du réseau


Pas de cryptage
Si votre réseau sans fil n’est pas chiffré, terminez le fichier wpa_supplicant.conf
de la manière suivante :
[Tab] key_mgmt=NONE
}
Enregistrez le fichier avec la combinaison Ctrl + O, puis quittez nano en
appuyant sur les touches Ctrl + X.

Cryptage WEP
Si votre réseau sans fil utilise le cryptage WEP, terminez le fichier wpa_supplicant.
conf de la manière suivante :
[Tab] key_mgmt=NONE
[Tab] wep_key0="Votre_cle_WEP"
}
Remplacez Votre_cle_WEP par la clé de cryptage de votre réseau sans fil WEP.
Enregistrez le fichier avec la combinaison Ctrl + O, puis quittez nano en appuyant
sur les touches Ctrl + X.

Astuce

Le cryptage WEP est extrêmement peu sécurisé. Des logiciels


prêts à l’emploi peuvent casser le chiffrement d’un réseau
protégé par une clé WEP en quelques minutes, ce qui permet
à une tierce personne d’utiliser votre réseau. Si vous utilisez
encore le cryptage WEP, envisagez sérieusement de passer au
cryptage WPA ou WPA2 pour une meilleure sécurité.

Cryptage WPA/WPA2
Si votre réseau sans fil utilise le cryptage WPA ou WPA2, terminez le fichier
wpa_supplicant.conf de la manière suivante :
[Tab] key_mgmt=WPA-PSK
[Tab] psk="Votre_cle_WPA"
}
© Dunod – Toute reproduction non autorisée est un délit.

Remplacez Votre_cle_WPA par le mot de passe de cryptage de votre réseau


sans fil. La figure 5.8 illustre un exemple de configuration d’un réseau sans fil
avec le SSID Guest_Network et la phrase de passe WPA nachos. Enregistrez
le fichier avec la combinaison Ctrl + O, puis quittez nano en appuyant sur les
touches Ctrl + X.
Connexion au réseau sans fil
La carte réseau sans fil du Pi est maintenant configurée et fonctionnera la pro-
chaine fois que le Pi sera redémarré. Pour activer le réseau sans fil sans avoir à

>_
redémarrer, saisissez :
sudo ifup wlan0

Configuration d’un réseau sans fil /95


Figure 5.8 Modification du fichier wpa_supplicant.conf
pour un réseau protégé par le protocole WPA

Pour vous assurer que le réseau est opérationnel, débranchez le câble Ethernet

>_
du Pi (s’il est branché) et saisissez la commande suivante :
sudo ping -c 1 www.raspberrypi.org

Astuce

Si vous commencez à avoir des problèmes avec votre Pi


après l’installation d’un adaptateur USB sans fil, cela peut
être dû à un conflit avec d’autres périphériques USB. Cer-
tains modèles d’adaptateurs sont connus pour provoquer des
problèmes avec certains claviers USB. Pour une liste actuali-
sée des cartes qui sont certifiées comme étant valables, ainsi
que celles qui sont réputées pour poser des problèmes, visi-
tez le www.element14.com/community/docs/DOC-44703/l/
raspberry-pi-wifi-adapter-testing ou le wiki d’eLinux à elinux.
org/RPi_USB_Wi-Fi_Adapters.
/> Chapitre
 Outil
de Configuration
6
du Raspberry Pi

Le Raspberry Pi est conçu pour être facilement paramétrable grâce à l’édition


des fichiers de configuration situés dans les répertoires /boot et /etc de la carte
SD. Pour les débutants, ces fichiers peuvent paraître terriblement complexes (bien
qu’en les apprivoisant, ils perdront bien vite tous leurs secrets), mais ce n’est qu’en
passant par eux que l’on peut paramétrer certaines fonctionnalités avancées du Pi.
L’outil de configuration du Raspberry Pi est conçu pour résoudre ce problème.
Il offre un accès à la plupart des tâches de configuration courantes par le biais
d’une interface simple à base de menus, et permet aux débutants de modifier
facilement les performances du système, la répartition de la mémoire, les para-
mètres de l’overscan ou tout simplement la disposition du clavier.
Au moment de la rédaction de cet ouvrage, l’outil de configuration du Pi était
une exclusivité de la distribution Raspbian, raison pour laquelle nous recomman-
dons que les débutants choisissent cette distribution afin de profiter de cet outil.

Mise en garde

Bien que l’outil de configuration du Raspberry Pi soit conçu


pour ne pas mettre en danger votre matériel, certains para-
mètres (en particulier, l’option d’overclocking), peuvent
© Dunod – Toute reproduction non autorisée est un délit.

endommager irrémédiablement votre Pi. Assurez-vous de


lire attentivement chaque section de ce chapitre avant d’uti-
liser l’outil de configuration pour apporter des modifications
au paramétrage de votre Raspberry Pi.

Exécution de l’outil de configuration


Il existe deux façons d’exécuter l’outil de configuration du Raspberry Pi : depuis
l’environnement graphique ou depuis la console. Si votre Pi fonctionne avec une
interface graphique, la première solution est la plus facile : Il suffit de cliquer sur

Exécution de l’outil de configuration /97


le bouton du menu en haut à gauche de l’écran, de choisir le menu Préférences,
puis de cliquer sur Configuration du Raspberry Pi.
Si vous faites tourner votre Pi sans interface graphique, vous pouvez exé-
cuter la version console de l’outil de configuration en saisissant la commande

>_
suivante :
sudo raspi-config

On navigue dans le menu textuel de raspi-config en utilisant les touches


de déplacement du curseur : les touches haut et bas déplacent le pavé de
sélection rouge à travers les options disponibles, et les touches gauche et
droite permettent de se déplacer entre la liste des options et les boutons
Select et Finish.
Utilisez la touche Entrée pour activer une option quand elle est surlignée par le
pavé de sélection rouge. En effet, l’action par défaut étant la commande Select,
vous n’avez pas besoin d’appuyer sur la touche flèche droite si vous avez mis en
surbrillance une option du menu, et il vous suffit d’appuyer sur la touche Entrée
pour la sélectionner.
Toute option de l’outil de configuration du Raspberry Pi en mode graphique
étant également disponible dans la version console, le reste de ce chapitre se
concentrera sur l’utilisation de la version dotée d’une interface graphique.

Astuce

Lorsque vous apportez des modifications à la configuration


du Raspberry Pi (en mode console ou en mode graphique),
vous êtes invité à redémarrer le Pi pour que les modifications
soient prises en compte. Vous pouvez choisir de redémar-
rer immédiatement ou bien ignorer la notification, mais les
changements ne deviendront actifs que lorsque vous aurez
redémarré le Raspberry Pi.

Onglet système
La fenêtre de l’outil Configuration du Raspberry Pi est divisée en quatre
onglets : Système, Interfaces, Performance et Localisation. L’onglet par défaut
est l’onglet Système (figure 6.1), qui fournit toute une série d’utilitaires de confi-
guration du système d’exploitation pour paramétrer la distribution Raspbian selon
vos besoins. Vous pouvez naviguer dans la fenêtre à l’aide de la souris : cliquez sur
n’importe quel bouton pour exécuter une commande, cliquez sur les zones de
texte pour modifier leur contenu ou cliquez sur les boutons radio pour activer ou
désactiver des paramètres.

98/ Chapitre 6 :  Outil de Configuration du Raspberry Pi


Figure 6.1 Outil de Configuration du Raspberry Pi en mode graphique (Onglet système)

Le menu Système est divisé en huit sous-sections qui sont décrites ci-dessous.

// Système de fichier
La première option, Étendre le système de fichier, offre la possibilité
d’augmenter le système de fichiers de Raspbian pour qu’il occupe tout l’espace
disponible de la carte SD. Si vous avez installé Raspbian par l’intermédiaire
de NOOBS, cette étape a déjà été réalisée à votre place et vous pouvez donc
l’ignorer.
Pour exécuter l’expansion du système de fichiers, cliquez sur le bouton
Étendre le système de fichier. Cela est nécessaire uniquement si vous avez ins-
tallé manuellement Raspbian sur votre carte micro-SD. Une fois que l’opération
de redimensionnement est terminée, vous devez redémarrer le Pi pour que la
modification soit prise en compte.
Sur les cartes ayant une grande capacité ou bien sur les cartes lentes, l’opéra-
tion de redimensionnement peut prendre un peu de temps. Il est important de ne
pas solliciter le Pi pour d’autres tâches pendant ce processus, car si l’alimentation
© Dunod – Toute reproduction non autorisée est un délit.

est coupée à ce moment-là, le système de fichiers du Pi peut être corrompu. Si


cela se produit, vous perdrez tous les fichiers stockés sur la carte SD du Pi et
il faudra réinstaller le système d’exploitation en partant de zéro. La carte, elle-
même, ne sera cependant pas endommagée.

// Mot de passe
Par défaut, Raspbian comprend, à part le compte root, un seul compte utili-
sateur nommé pi. Ce compte, qui est utilisé pour le fonctionnement quotidien
du Pi, a pour mot de passe par défaut raspberry. Bien que ce mot de passe
convienne très bien pour un usage privé, il n’en va pas de même si votre Pi
est connecté à un réseau accessible au public, notamment un hotspot Wi-Fi ou

Onglet système /99


toute autre connexion Internet ; dans ce cas-là, il est préférable de changer au
moins le mot de passe, si ce n’est également le nom de l’utilisateur, afin d’amé-
liorer la sécurité, en particulier compte tenu du fait que Raspbian exécute par
défaut un serveur SSH (Secure Shell) pour permettre les connexions distantes
à partir du réseau local.
Il est possible de changer le mot de passe manuellement en utilisant la com-
mande passwd (voir le chapitre 3 pour plus de détails), mais les débutants trou-
veront plus facile de modifier le mot de passe à l’aide de l’outil Configuration
du Raspberry Pi. Cliquez sur Changer de Mot de passe (dans la section Mot de
passe) pour saisir un nouveau mot de passe pour l’utilisateur actuel. Prenez garde
à ne pas oublier votre nouveau mot de passe, sinon vous aurez beaucoup de mal
à vous reconnecter.

// Hostname
Le hostname (nom d’hôte) d’un système est le nom qu’il utilise pour s’identi-
fier sur le réseau. Lorsque vous utilisez la console ou le terminal sur un Pi, vous
voyez le nom d’hôte car il figure dans l’invite de commandes. Le nom d’hôte doit
être unique, ce qui peut poser un problème si vous avez plusieurs Raspberry
Pi sur le réseau. Vous pouvez modifier le nom d’hôte du Pi à tout moment en
saisissant un nouveau nom dans la section Hostname de l’outil Configuration
de Raspberry Pi.
Lorsque vous saisissez un nouveau nom d’hôte dans la zone de texte, vous
devez connaître les règles de nommage des noms d’hôtes. Comme les noms
d’hôtes doivent se conformer à un standard international (un groupe de règles
appelé Request For Comments ou RFC), certains caractères sont interdits ; par
exemple, un nom d’hôte doit contenir uniquement des lettres et des chiffres,
même s’il peut inclure des traits d’union tant qu’ils ne sont pas au début ou à la
fin du nom ; en outre, il ne peut pas inclure d’espaces.
Vous pouvez opter pour un nom d’hôte descriptif, comme pi-du-salon, ou bien
nommer vos appareils en vous basant sur un thème (par exemple, les films de
science-fiction). Vous pouvez confirmer votre modification en cliquant sur le bou-
ton OK, mais le nouveau nom d’hôte n’entrera pas en vigueur tant que le Pi n’aura
pas redémarré.

// Boot
Normalement, Raspbian se charge dans l’interface utilisateur graphique qui
est appelée Bureau. Cette configuration garantit que le Pi est prêt à être utilisé
aussi vite que possible par les débutants. Cependant, de nombreux utilisateurs se
servent quotidiennement du Pi (notamment comme serveur Web ou pour enregis-
trer des vidéos ou des photos avec le module de caméra) en n’employant que la
console en mode texte ; ils n’ont donc pas besoin de charger l’interface utilisateur
graphique du bureau, ce qui diminue le temps nécessaire pour démarrer le Pi et
réduit la quantité de mémoire en ne chargeant pas un logiciel qui n’est pas utilisé.

100/ Chapitre 6 :  Outil de Configuration du Raspberry Pi


Vous avez deux options dans la section Boot : vers le Bureau et vers la
Console. La première option permet au Pi de démarrer automatiquement dans
l’interface utilisateur graphique ; la deuxième option reste en mode console
tant que le bureau n’a pas été chargé manuellement grâce à la commande
startx.

// Connexion automatique
Par défaut, Raspbian vous connecte automatiquement en tant qu’utilisateur
pi au démarrage du système. Cette fonctionnalité rend le Pi prêt à l’emploi plus
rapidement, car vous n’avez pas besoin d’ouvrir une session, mais elle présente
également un problème de sécurité potentiel si vous utilisez votre Pi dans un
environnement partagé.
Si vous décochez la case Se connecter en tant que ‘pi’, vous devrez saisir
un nom d’utilisateur et un mot de passe chaque fois que vous allumerez le Pi ou
le redémarrerez. Il est préférable d’utiliser cette fonctionnalité en combinaison
avec l’option de changement de mot de passe : en effet, il n’y a nul besoin d’être
un hacker chevronné pour tenter de se connecter à un Raspberry Pi en testant le
nom d’utilisateur par défaut, pi, et son mot de passe, raspberry !

// Network at boot
Afin que le Pi soit opérationnel aussi vite que possible, Raspbian n’attend pas
que la connexion réseau soit effective pour poursuivre le processus de démar-
rage. Normalement, cela convient dans la majorité des cas, mais si vous utilisez
votre Pi pour fournir certains services réseau, cela peut poser des problèmes avec
les applications qui se chargent au démarrage et attendent une connexion réseau
qui n’est pas encore prête.
Pour résoudre ce problème, il suffit de cocher la case Attendre la connexion
internet. Vous devez cependant être conscient que cela va retarder le processus
de démarrage si un réseau n’est pas disponible.

// Splash screen
Par défaut, l’option Splash Screen (écran d’accueil) est activée. Cette
© Dunod – Toute reproduction non autorisée est un délit.

option affiche, au démarrage du Pi, un écran d’accueil graphique avec la men-


tion « Welcome to PIXEL ». Si vous désactivez cette option, l’écran d’accueil
graphique disparaît lorsque vous mettez sous tension le Pi et vous avez à la
place l’affichage classique des lignes de texte qui détaillent le processus de
démarrage de Linux.

// Overscan
De nombreux téléviseurs possèdent une fonctionnalité d’overscan, ce qui signi-
fie que la zone d’image visible est légèrement plus petite que l’image transmise.
Quand on diffuse une émission de télé, cela est souvent utilisé pour masquer des
informations supplémentaires, comme le minutage, mais sur un ordinateur cela

Onglet système /101


peut masquer les bords de l’écran. En revanche, si on reçoit un signal de télévision
sur un écran moderne, cela peut afficher des données supplémentaires présentes
sur les bords qui étaient auparavant masqués.
Il y a deux raisons qui peuvent motiver le réglage de l’overscan : premièrement,
l’image de votre Pi est encadrée par des barres noires, auquel cas l’overscan doit
être diminué ou désactivé complètement ; deuxièmement, l’image de votre Pi
s’étend au-delà des bords visibles de votre écran, et alors l’overscan doit être
augmenté. Ce dernier cas est plus fréquent lorsque vous utilisez la sortie vidéo
composite du Pi (voir le chapitre 2) avec un ancien téléviseur.
Depuis la version graphique de l’outil Configuration du Raspberry Pi, il
est seulement possible d’activer ou de désactiver l’overscan. Si vous modi-
fiez cette option (par défaut l’overscan est activé), il faudra redémarrer le Pi
pour qu’elle rentre en application. Pour contrôler la taille de l’overscan afin
de maximiser la zone d’écran visible sur un vieux téléviseur, reportez-vous au
chapitre suivant.

Onglet Interfaces
L’onglet suivant de l’outil Configuration du Raspberry Pi, Interfaces, permet
d’activer ou de désactiver différentes interfaces additionnelles, matérielles ou
logicielles, qui augmentent les fonctionnalités du Pi (figure 6.2). Cela est en géné-
ral nécessaire si vous ajoutez de nouveaux matériels au Pi, notamment par le biais
des ports CSI ou GPIO ; en général, la documentation fournie avec votre nou-
veau matériel vous dira s’il faut activer l’interface qui est désactivée par défaut.
Vous pouvez activer ou désactiver n’importe quelle interface en cliquant sur la
case d’option adéquate à côté de son nom, mais le changement ne sera effectif
qu’après le redémarrage du Pi.

Figure 6.2 Onglet Interfaces de l’outil Configuration du Raspberry Pi

102/ Chapitre 6 :  Outil de Configuration du Raspberry Pi


Mise en garde

La désactivation d’une interface qui est actuellement active


signifie que tout matériel qui repose sur cette interface ces-
sera de fonctionner la prochaine fois que vous redémarrez le
Pi. Pour résoudre ce problème, il suffit d’aller dans l’onglet
Interfaces de l’outil Configuration du Raspberry Pi, de réac-
tiver l’interface, puis de cliquer sur le bouton OK avant de
redémarrer le Pi.

// Caméra
Activez cette interface uniquement si vous avez un module de caméra Rasp-
berry Pi (voir le chapitre 15) relié à votre système. Si vous enlevez le module de
caméra de votre Raspberry Pi, vous pouvez désactiver cette option, mais cela
n’est pas nécessaire, car le fait d’avoir un Raspberry Pi configuré pour une caméra
qui n’est pas connectée ne pose aucun problème.

// SSH
Le protocole SSH (Secure Shell) offre la possibilité d’utiliser le terminal du Pi
sur un réseau, en créant une connexion cryptée entre le Pi et n’importe quel autre
ordinateur capable d’exécuter un client SSH. Cette fonctionnalité peut même être
utilisée pour contrôler un Pi qui n’a pas d’écran ou de clavier, ou pour transférer
des fichiers entre le Pi et un ordinateur.
Par défaut, le serveur SSH du Raspberry Pi n’est pas activé car cela réduit le
risque que votre système soit attaqué sur un réseau partagé. Si vous activez le
serveur SSH, n’oubliez pas de changer le mot de passe par défaut dans l’onglet
Système afin de protéger votre Pi ! Si vous ne le faites pas, une boîte de dialogue
au démarrage du Pi vous le rappellera.

// VNC
VNC (Virtual Network Computing) est un outil qui permet de contrôler à dis-
© Dunod – Toute reproduction non autorisée est un délit.

tance votre Pi. En activant cette option, vous allez installer sur le Pi un serveur
VNC qui apparaîtra dans la barre des tâches en haut à droite de l’écran. En
cliquant sur l’icône du serveur VNC, vous obtiendrez l’adresse IP du Raspberry
Pi sur le réseau ainsi que des indications sur la manière de vous connecter à dis-
tance à votre Pi. Pour ce faire, il faudra installer sur l’ordinateur distant un client
VNC. Raspbian recommande d’utiliser VNC Viewer que vous pouvez télécharger
à www.realvnc.com. Après avoir installé le client VNC sur votre ordinateur (le
client VNC existe sous Windows, OS X ou Linux), il suffit de saisir l’adresse IP de
votre Pi pour voir apparaître son interface dans une fenêtre. À la différence de
SSH, vous pouvez contrôler à distance votre Pi en mode graphique, ce qui est
beaucoup plus simple pour les débutants. Vous n’avez pas non plus besoin que

Onglet Interfaces /103


votre Pi soit équipé d’une souris, d’un clavier et d’un écran pour le contrôler à
distance.

// SPI
L’interface SPI (Serial Peripheral Interface) est un standard de communication
utilisé par le Pi pour communiquer avec des périphériques externes via le port
GPIO (voir le chapitre 14). Plusieurs cartes additionnelles pour le Raspberry Pi
nécessitent la prise en charge du protocole SPI ; vérifiez la documentation four-
nie avec votre matériel pour voir si vous avez besoin d’activer manuellement la
prise en charge de SPI par le biais de l’outil Configuration du Raspberry Pi ou si le
fabricant du matériel a un script d’installation qui réalise cela automatiquement.

// I²C
L’interface I²C (Inter-Integrated Circuit) est similaire à SPI, en ce sens où elle
est utilisée pour communiquer avec des périphériques externes via le port GPIO.
En général, les cartes additionnelles qui n’utilisent pas SPI emploient à la place
I 2C. Comme pour SPI, consultez la documentation fournie avec votre matériel
pour voir si vous avez besoin d’activer manuellement la prise en charge de I²C par
le biais de l’outil Configuration du Raspberry Pi ou si le fabricant du matériel a un
script d’installation qui réalise cela automatiquement.

// Série
Par défaut, le Raspberry Pi utilise la connexion série du port GPIO pour fournir
un terminal auquel vous pouvez vous connecter et contrôler le Pi sans qu’un écran
soit relié. Certaines cartes additionnelles utilisent cette connexion série à d’autres
fins, notamment pour piloter un moniteur externe, auquel cas l’interface série a
besoin d’être désactivée. Avant de la désactiver, vous devez cependant vérifier
la documentation de votre matériel ; certaines cartes nécessitent que l’interface
soit désactivée complètement, alors que d’autres exigent simplement des modi-
fications de la configuration.

// 1-wire
L’interface 1-Wire est aussi une alternative à I2C et SPI, qui permet de commu-
niquer avec des capteurs et d’autres matériels externes. En général, l’interface
1-Wire est utilisée pour connecter des capteurs simples, comme des dispositifs de
lecture de température ou d’humidité de l’environnement qui sont directement
branchés sur le Raspberry Pi car on emploie rarement ce type de capteur sur les
cartes additionnelles. Si vous utilisez des appareils compatibles 1-Wire avec le
port GPIO du Pi, assurez-vous d’activer la fonctionnalité dans cette fenêtre.

// Remote GPIO
L’option Remote GPIO, comme son nom le laisse supposer (remote signifie
distant en anglais), est une fonctionnalité qui permet d’accéder aux broches du

104/ Chapitre 6 :  Outil de Configuration du Raspberry Pi


port GPIO à distance. Ainsi, une autre machine présente sur le même réseau que
le Pi, qu’il s’agisse d’un autre Raspberry Pi ou d’un ordinateur classique, peut
aller lire ou écrire des informations sur chaque broche du GPIO. Comme pour la
fonctionnalité VNC, il est nécessaire d’installer un logiciel client sur l’ordinateur
distant pour qu’il puisse contrôler les ports du GPIO.

Onglet Performance
L’onglet Performance de l’outil Configuration du Raspberry Pi fournit des
paramètres pour augmenter la puissance de calcul du Pi grâce à une opéra-
tion d’overclocking de son processeur ou bien en augmentant la mémoire GPU
(figure 6.3). Cela peut aider votre Pi à gagner un peu de puissance, mais cette
opération n’est pas sans risques.

Figure 6.3 Onglet Performance de l’outil Configuration du Raspberry Pi

// Overclock
L’overclocking désigne le processus qui consiste à faire tourner un appareil à
© Dunod – Toute reproduction non autorisée est un délit.

une vitesse supérieure à celle qui a été prévue par son fabricant. Le processeur
du Raspberry Pi peut ainsi être exécuté à une vitesse supérieure à sa vitesse par
défaut pour améliorer les performances du système. Cette amélioration des per-
formances a cependant un prix, car la puce va chauffer plus qu’avant, consommer
plus de courant, ce qui risque d’écourter sa durée de vie par rapport à celle d’un
Pi fonctionnant à vitesse normale.
Bien qu’il soit possible de modifier les performances du processeur manuel-
lement (voir le chapitre 7), le moyen le plus sûr pour ce faire est d’utiliser l’outil
Configuration du Raspberry Pi. Cela vous limite à une sélection de paramètres
préconfigurés d’overclocking qui sont réputés pour être sans danger pour la plu-
part des Raspberry Pi. Les paramètres particuliers qui apparaissent dépendent

Onglet Performance /105


du modèle de Raspberry Pi que vous utilisez ; les modèles plus récents ont une
vitesse par défaut plus rapide que les modèles plus anciens et, par conséquent,
ils ont proportionnellement moins d’options disponibles.

Mise en garde

Alors que les paramètres d’overclocking disponibles dans l’outil


Configuration du Raspberry Pi sont raisonnablement sûrs et ne
modifient pas sa garantie, tous les Raspberry Pi ne peuvent pas
atteindre la vitesse maximale. Si vous trouvez que votre Pi est
instable, particulièrement si vous êtes confronté à la corrup-
tion des fichiers sur la carte SD, abaissez d’un cran le paramètre
d’overclocking, voire réglez le Pi à sa vitesse par défaut.

Pour overclocker votre Raspberry Pi, cliquez dans la liste déroulante de la sec-
tion Overclock et choisissez une valeur. La vitesse par défaut de votre modèle
de Raspberry Pi est indiquée avec la mention Aucun. Les vitesses plus élevées
mentionnent la dangerosité de l’overclocking que vous voulez tenter.
Si vous voulez essayer d’overclocker votre Pi, cliquez sur une des options plus
rapides dans la liste déroulante. Selon votre modèle, vous pouvez avoir le choix
entre les paramètres Faible, Moyen, Haut et Turbo. Presque tous les modèles
de Raspberry Pi devraient être en mesure d’utiliser le paramètre Faible, qui se
contente d’augmenter faiblement la vitesse d’horloge du processeur. De nom-
breux modèles seront également en mesure d’utiliser le paramètre Moyen, qui
augmente la tension appliquée au processeur pour atteindre des vitesses plus
élevées et augmente aussi la vitesse de la mémoire.
Les deux derniers paramètres peuvent ne pas fonctionner sur tous les modèles
de Raspberry Pi. Le SoC au cœur du Raspberry Pi est un circuit complexe qui se
distingue par sa capacité à être overclocké de manière individuelle, deux Pi pro-
venant du même lot pouvant ne pas supporter les mêmes valeurs d’overclocking.
Si vous souhaitez utiliser le mode Turbo, assurez-vous de commencer par faire
une sauvegarde de tous vos fichiers importants stockés sur la carte SD. Si vous
commencez à avoir des problèmes, diminuez la vitesse de l’overclock et les choses
devraient revenir à la normale.
Toutes les modifications apportées dans la section Performance ne prennent
effet que lorsque le Pi redémarre. Si vous sélectionnez une vitesse plus élevée que
le Pi ne tolère, il est possible qu’il ne démarre pas correctement. Si vous constatez
que votre Pi affiche un écran noir lors du démarrage ou bien redémarre constam-
ment sans vous inviter à vous connecter, vous avez choisi une vitesse trop éle-
vée. Dans ce cas-là, maintenez la touche Maj enfoncée quand le Pi démarre ; cela
ignore temporairement le paramètre d’overclocking, et le système est chargé avec
sa vitesse par défaut. Une fois que le Pi est démarré, relâchez la touche Maj et
connectez-vous. Lancez l’outil Configuration du Raspberry Pi, puis cliquez sur l’on-
glet Performance pour choisir dans la section Overclock un paramètre plus prudent.

106/ Chapitre 6 :  Outil de Configuration du Raspberry Pi


// Mémoire du GPU
Selon votre modèle de Raspberry Pi, vous avez 256 Mo, 512 Mo ou 1 Go de
mémoire disponible pour le système. Cette mémoire est partagée entre le pro-
cesseur généraliste du SoC, que l’on appelle unité centrale de traitement (abrégé
en anglais en CPU) et le processeur graphique, que l’on appelle unité graphique
de traitement (abrégé en anglais en GPU). Par défaut, 128 Mo de mémoire sont
réservés pour le GPU sur la plupart des modèles ou 64 Mo sur les modèles avec
256 Mo de mémoire vive ; le reste de la mémoire est réservé au CPU.
Si vous n’utilisez pas le processeur graphique, comme lorsque le Pi est uti-
lisé comme serveur Web sans qu’un écran soit connecté, vous pouvez réduire la
quantité de mémoire réservée pour le GPU à l’aide de la section de mémoire du
GPU dans l’outil Configuration du Raspberry Pi. Cliquez dans la zone de texte à
côté de l’option mémoire du GPU, puis entrez une nouvelle valeur. Le minimum
que vous devez attribuer au GPU pour assurer un bon fonctionnement est 16 Mo ;
pour ce faire, saisissez simplement le nombre 16. Si vous avez un modèle de Ras-
pberry Pi avec 512 Mo ou 1 Go de mémoire, vous pouvez augmenter la répartition
et aller jusqu’à 448 Mo pour les modèles ayant 512 Mo de mémoire vive ou même
aller jusqu’à 880 Mo pour les modèles à 1 Go de RAM, ce qui améliorera les per-
formances lorsque vous utilisez le GPU pour le rendu des scènes 3D complexes
dans les jeux.
Vous pouvez choisir d’autres valeurs, mais vous devez vous limiter à doubler
la valeur à chaque étape. Par exemple, 16 Mo peuvent être augmentés à 32 Mo,
32 Mo à 64 Mo, 64 Mo à 128 Mo et ainsi de suite. Choisir une valeur impaire,
comme 17 MB, ne nuira pas au Pi, mais le Pi utilisera peut-être une valeur diffé-
rente que celle que vous avez sélectionnée.
Comme avec l’option Overclock, votre Raspberry Pi n’utilisera le nouveau
réglage que lorsque vous l’aurez redémarré.

Onglet localisation
L’onglet Localisation (adaptation aux contraintes locales) offre la possibilité
© Dunod – Toute reproduction non autorisée est un délit.

aux utilisateurs n’habitant pas le Royaume-Uni de configurer le Pi selon leurs


besoins (figure 6.4). Par défaut, Raspbian est réglé pour utiliser les paramètres
de langue, de fuseau horaire et de disposition de clavier qui sont en vigueur au
Royaume-Uni. Les utilisateurs des autres pays trouveront donc que certaines
touches de leurs claviers fonctionnent différemment, surtout ceux qui utilisent
des claviers non QWERTY, comme les Français avec leur clavier AZERTY.

// Localisation
En cliquant sur le bouton Régler la localisation, vous allez pouvoir choisir la
langue, le pays et le jeu de caractères qui vous conviennent. Vous pouvez consta-
ter qu’il est possible de paramétrer le Pi pour de nombreuses langues.

Onglet localisation /107


Figure 6.4 Onglet Localisation de l’outil Configuration du Raspberry Pi

Langue
Chaque langue dans le menu déroulant est désignée d’une manière particu-
lière. Les lettres au début sont le code de la langue qui est utilisé par le système
d’exploitation, le nom entre parenthèses étant un nom convivial qui représente la
langue. Faites défiler la liste avec votre souris et cliquez ensuite sur la langue que
vous voulez que le Pi utilise par défaut.

Pays
Le paramètre de langue est indépendant du réglage du pays ; Il est possible
de choisir une langue comme le gaélique avec un pays où il est rarement parlé,
comme le Botswana. Utilisez la souris pour choisir le pays dans lequel vous résidez
et cliquez sur votre choix ; cela personnalisera le système d’exploitation en fonc-
tion du pays choisi et modifiera notamment la façon dont s’affichent les valeurs
monétaires.

Character set
Chaque langue sur un ordinateur a un ou plusieurs jeux de caractères qui lui
sont associés. Il s’agit de la liste des lettres, chiffres et symboles qui peuvent
être affichés dans cette langue. La plupart des langues disposent de plusieurs
options, mais la majorité des utilisateurs ne devront sélectionner qu’un seul jeu
de caractères : UTF-8 (Unicode Transformation Format sur 8 bits) qui est la norme
de codage la plus courante et la plus compatible.
Confirmez vos sélections dans ces sous-menus avec le bouton OK de la fenêtre
Localisation, puis confirmez-les dans la fenêtre Configuration du Raspberry Pi
en cliquant sur le bouton Valider. Comme avec la plupart des paramètres, ils ne
seront effectifs que lorsque vous aurez redémarré le Pi.

108/ Chapitre 6 :  Outil de Configuration du Raspberry Pi


Astuce

Le fait de modifier les paramètres régionaux du système


ne traduira pas toutes les applications dans votre langue.
Lorsqu’une traduction est disponible, elle est utilisée,
sinon, c’est le texte en anglais qui s’affiche par défaut.
La modification des paramètres régionaux n’a également
aucun effet sur les noms des commandes : par exemple,
echo s’appelle toujours echo, quels que soient vos para-
mètres régionaux.

// Fuseau horaire
L’horloge système du Raspberry Pi est réglée par défaut sur le temps universel.
Si vous habitez dans un autre fuseau horaire, votre Pi affichera une heure qui est
fausse. En cliquant sur le bouton Régler le fuseau horaire, vous faites apparaître
une seconde fenêtre avec deux autres options : Area et Location.

Area (zone)
Cette liste déroulante répertorie les zones géographiques comme l’Atlan-
tique, les États-Unis et l’Europe. Utilisez les touches de curseur pour sélection-
ner votre zone, puis appuyez sur la touche Entrée. La liste comprend également
des options qui ne sont pas géographiques, et qui offrent la possibilité de définir
directement les fuseaux horaires (par exemple, EST, CET et GMT) ; ceux-ci seront
plus facilement visibles si vous sélectionnez l’option générique Etc qui affichera la
liste chronologique des fuseaux horaires dans la liste déroulante Location. Faites
défiler la liste avec votre souris et cliquez sur le fuseau horaire qui convient pour
le sélectionner.

Location (emplacement)
Si vous sélectionnez une zone géographique, la liste Location affichera une
liste des villes de cette région. Si votre ville n’apparaît pas, recherchez les grandes
© Dunod – Toute reproduction non autorisée est un délit.

villes voisines et choisissez l’une d’entre elles. Si l’option Etc a été sélectionnée
dans la liste déroulante, la section Location affiche une liste de fuseaux horaires
que vous pouvez sélectionner manuellement. Vous noterez toutefois que le sys-
tème ne sait pas ajuster automatiquement l’horloge système en fonction des
changements d’heure d’été et d’hiver.

// Clavier
La section Clavier contrôle une des options les plus importantes du menu d’in-
ternationalisation : elle vous permet de modifier la disposition de votre clavier. Par
défaut, le Pi est configuré pour gérer un clavier anglais britannique dans la dispo-
sition QWERTY standard. Si vous utilisez une configuration de clavier différente,

Onglet localisation /109


comme un clavier AZERTY, QWERTZ, ou Dvorak, cliquez sur le bouton Régler le
clavier pour faire apparaître une nouvelle fenêtre où vous pouvez faire choisir
votre clavier et tester la saisie des caractères (figure 6.5).

Figure 6.5 Fenêtre du choix du clavier


dans l’outil de Configuration du Raspberry Pi

Pays
Dans la section Country de la fenêtre de configuration de clavier, cliquez soit
sur le pays dans lequel vous résidez, soit sur le pays dans lequel la disposition de
votre clavier représente la langue principale.

Variante
Quand vous avez sélectionné un pays, consultez la liste des variantes dans
la liste de droite et sélectionnez celle qui correspond le plus à la disposition
de votre clavier. Si vous n’êtes pas sûr, cliquez sur la valeur qui vous paraît
convenir, et saisissez des caractères dans la zone « Type here to test your key-
board » pour vérifier qu’ils s’affichent correctement. Si vous trouvez que ce
que vous saisissez ne correspond pas à ce qui est affiché, en particulier avec
des touches de symbole telles que le guillemet simple et le guillemet double,
choisissez une variante différente dans la liste jusqu’à ce que vous obteniez
une correspondance.
Appliquez vos modifications avec la touche Valider dans la fenêtre de confi-
guration de clavier, puis cliquez à nouveau sur le bouton Valider de la fenêtre
Configuration du Raspberry Pi.

110/ Chapitre 6 :  Outil de Configuration du Raspberry Pi


Pays de WiFi
L’équipement radio de l’adaptateur Wi-Fi est autorisé à émettre sur des fré-
quences particulières, qui sont divisées en canaux plus petits. Les canaux dis-
ponibles sont réglementés par les autorités contrôlant les communications et
varient d’un pays à l’autre. Cliquez sur le bouton Régler la région du WiFi et
choisissez votre pays dans la liste déroulante qui s’affiche.
Vous noterez que le fait de choisir un pays autre que le vôtre est susceptible
de violer les lois réglementant l’usage des fréquences radio, si votre adapta-
teur Wi-Fi émet sur une fréquence non autorisée. Dans ces conditions, assurez-
vous de modifier ce réglage avant d’emporter votre Raspberry Pi en vacances
à l’étranger !
© Dunod – Toute reproduction non autorisée est un délit.
/> Chapitre
 Configuration
avancée
7
du Raspberry Pi

Tirant ses origines de l’informatique embarquée, la puce BCM2835, qui est au


cœur du Raspberry Pi ne possède pas, comme sur les PC un menu du BIOS (Basic
Input/Output System) où l’on peut configurer différents paramètres système de
bas niveau. Au lieu de cela, il existe des fichiers texte contenant des chaînes de
configuration qui sont chargés par la puce au démarrage du Pi.
Avant d’examiner les différentes options disponibles dans ces fichiers
(config.txt et cmdline.txt), nous tenons à vous avertir solennellement : le fait
de modifier certains paramètres peut, dans le meilleur des cas, entraîner des
plantages du Pi qui ne cesseront que lorsque vous aurez rétabli les valeurs par
défaut ; dans le pire des cas, vous noterez bien que cela peut endommager phy-
siquement le système. Dans ce chapitre, nous attirerons votre attention sur les
paramètres potentiellement dangereux grâce à des encadrés qui vous mettront
en garde.

Astuce

Si vous utilisez la distribution Raspbian, la meilleure façon


de modifier la plupart des paramètres est d’utiliser l’utilitaire
raspi-config (voir le chapitre 6). Les instructions de ce cha-
pitre serviront à ceux qui emploient d’autres distributions ou
© Dunod – Toute reproduction non autorisée est un délit.

à ceux qui préfèrent faire les choses manuellement.

Éditer les fichiers de Configuration


avec NOOBS
Si vous avez modifié vos fichiers de configuration de telle sorte que votre
système d’exploitation ne démarre plus, la meilleure façon de les restaurer
dans leur état initial est d’utiliser le logiciel NOOBS (se reporter au chapitre 2).
Si vous avez déjà installé votre système d’exploitation par l’intermédiaire de

Éditer les fichiers de Configuration avec NOOBS /113


NOOBS, vous pouvez utiliser cet outil pour modifier les fichiers de configu-
ration ; si vous avez installé votre système d’exploitation manuellement, vous
devez retirer la carte SD et utiliser un deuxième ordinateur pour éditer les
fichiers.
Pour charger NOOBS après l’avoir utilisé pour installer votre système d’ex-
ploitation, maintenez la touche Maj enfoncée pendant que vous mettez le Pi sous
tension. Cela empêche le chargement du système d’exploitation et charge à la
place NOOBS qui affiche désormais une nouvelle option : le bouton Edit Config
en haut du menu (figure 7.1).

Figure 7.1 Bouton Edit Config de NOOBS

En cliquant sur le bouton Edit Config (ou en appuyant sur la touche E), les
deux fichiers de configuration (config.txt et cmdline.txt) se chargent dans un
éditeur de texte (figure 7.2). Vous pouvez alors apporter des modifications à ces
deux fichiers en suivant les indications qui sont fournies dans le présent chapitre.
Quand vous avez terminé l’édition de ces fichiers, cliquez sur le bouton OK en
bas à droite pour enregistrer vos modifications sur la carte SD. Quittez ensuite
la fenêtre principale en cliquant sur l’icône Exit pour redémarrer le Pi avec ses
nouveaux paramètres.

114/ Chapitre 7 :  Configuration avancée du Raspberry Pi


Figure 7.2 Modification des fichiers de configuration dans NOOBS

Astuce

Si vous avez un Raspberry Pi qui est connecté à Internet,


vous pouvez également cliquer sur le bouton d’aide en ligne
(Online help) ou appuyer sur la touche H du clavier pour
charger un navigateur web qui vous guidera vers les pages
d’aides du Raspberry Pi. Ces ressources sont précieuses si
votre Pi ne fonctionne pas correctement, car vous pourrez
y trouver de l’aide ou bien poser des questions afin de guérir
votre Pi de tous ses maux.

Paramètres du matériel : CONFIG.TXT


Le matériel du Pi est contrôlé par les paramètres contenus dans un fichier
© Dunod – Toute reproduction non autorisée est un délit.

nommé config.txt, qui se trouve dans le répertoire /boot (figure 7.3). Ce fichier


indique au Pi comment configurer ses différentes entrées et sorties, et à quelle
vitesse la puce BCM283x et son module de mémoire doivent tourner.
Si vous rencontrez des problèmes avec la sortie graphique, comme l’image qui
ne remplit pas l’écran ou qui en déborde, c’est dans config.txt que vous allez pou-
voir trouver une solution. Normalement, le fichier contient des commentaires sur
son utilisation, certains paramètres n’étant pas activés, voire carrément absents
dans certaines distributions ; cela signifie alors que le Pi sera exploité en utilisant
les valeurs par défaut prédéfinies. Si vous souhaitez apporter des modifications au
fichier alors qu’il n’est pas présent, il suffit de créer un nouveau fichier texte nommé
config.txt et de renseigner les paramètres que vous souhaitez modifier.

Paramètres du matériel : config.txt /115


Figure 7.3 Contenu du répertoire /boot avec le fichier config.txt surligné

Le fichier config.txt peut contrôler presque tous les aspects matériels du Pi.
Le fichier est lu uniquement au démarrage du système. Toutes les modifications
apportées pendant que le Pi est en cours d’exécution n’entreront en vigueur
qu’une fois que le système aura redémarré. Si vous ne voulez plus des change-
ments qui ont été effectués, il faut tout simplement supprimer le fichier du réper-
toire /boot pour restaurer les valeurs par défaut. Si le Pi ne démarre pas avec vos
nouveaux paramètres, retirez la carte SD et supprimez le fichier config.txt de
la partition boot à partir d’un autre PC, puis réinsérez la carte dans le Pi et redé-
marrez pour voir si cela règle le problème.

// Modification de l’affichage
Habituellement, le Raspberry Pi détecte le type d’affichage qui est connecté et
modifie ses paramètres en conséquence. Il arrive cependant que cette détection
automatique ne fonctionne pas. C’est souvent le cas lorsqu’un Raspberry Pi est
connecté à un ancien téléviseur d’un autre pays que celui où est installé le Pi. Si
vous connectez votre Pi à votre téléviseur et que rien ne se passe, vous devrez
peut-être remplacer les valeurs par défaut.
Vous pouvez tester différents paramètres dans le fichier config.txt pour amé-
liorer ou modifier la sortie vidéo. Ces paramètres et leurs valeurs possibles sont
décrits dans la liste suivante :

116/ Chapitre 7 :  Configuration avancée du Raspberry Pi


Mise en garde

La modification des paramètres de la sortie HDMI ou vidéo


composite peut empêcher le Pi de communiquer avec votre
moniteur. Il est généralement préférable d’utiliser les para-
mètres détectés automatiquement, sauf si vous ne voyez
rien à l’écran quand vous démarrez le Pi.

>> overscan_left : ce paramètre déplace l’image à partir du côté gauche vers


l’intérieur d’un certain nombre de pixels pour compenser l’overscan d’un
téléviseur. Si le texte du Pi déborde de l’écran, la modification de l’overscan
va régler le problème. La valeur à fournir indique le nombre de pixels dont
l’image est déplacée.
>> overscan_right : ce paramètre effectue la même tâche que overscan_left,
mais sur le côté droit de l’écran.
>> overscan_top : ce paramètre effectue la même tâche que overscan_left,
mais cette fois en haut de l’écran.
>> overscan_bottom : ce paramètre effectue la même tâche que overscan_
left, mais cette fois en bas de l’écran. En général, les valeurs de tous les
paramètres overscan_ sont identiques, ce qui crée une bordure régulière
autour de l’écran.
>> disable_overscan : si vous utilisez un moniteur ou un téléviseur avec une prise
HDMI, vous pouvez constater que votre image comporte une bordure noire tout
autour de l’écran. Pour se débarrasser de cette bordure, vous pouvez désactiver
tous les réglages par défaut overscan en définissant cette valeur à 1.
>> framebuffer_width : cette valeur est exprimée en pixels, et sa modifica-
tion change la largeur de la console. Si le texte apparaît trop petit sur votre
écran, essayez de modifier cette valeur en indiquant une valeur inférieure à
la largeur par défaut de l’écran connecté.
>> framebuffer_height : ce paramètre affecte la taille de la console de la même
manière que framebuffer_width, mais cette fois-ci verticalement et non pas
© Dunod – Toute reproduction non autorisée est un délit.

horizontalement.
>> framebuffer_depth : contrôle le nombre de couleurs de la console en bits
par pixel. La valeur par défaut est 16 bits par pixel, ce qui donne 65 536 cou-
leurs. Parmi les autres valeurs valides, on peut citer 8 bits par pixel (256 cou-
leurs), 24 bits par pixel (environ 16,7 millions de couleurs) et 32 bits par pixel
(environ 1 milliard de couleurs), mais ces valeurs peuvent provoquer des pro-
blèmes d’affichage.
>> framebuffer_ignore_alpha : réglée à 1, cette valeur désactive le canal alpha,
qui gère la transparence dans la console. La désactivation du canal alpha n’est
normalement pas requise, mais cela peut corriger les problèmes d’affichage
provoqués par la configuration de framebuffer_depth à 32 bits par pixel.

Paramètres du matériel : config.txt /117


>> sdtv_mode : cette valeur affecte la sortie vidéo composite analogique du Pi, en
la modifiant pour que le Pi puisse fonctionner dans différents pays. Par défaut,
le Pi utilise la version nord-américaine de la norme vidéo NTSC ; les utilisateurs
qui résident dans d’autres pays peuvent avoir besoin de changer cette valeur
pour obtenir une image sur un téléviseur analogique. Les valeurs possibles sont :
• 0 : NTSC, la norme vidéo nord-américaine ;
• 1 : NTSC-J, la norme vidéo japonaise ;
• 2 : PAL, la norme vidéo pour le Royaume-Uni et d’autres pays ;
• 3 : PAL-M, la norme vidéo brésilienne.
>> sdtv_aspect : contrôle le format d’image de la sortie composite analogique.
Si l’image semble étirée ou écrasée, modifiez cette valeur pour qu’elle cor-
responde au format d’image de votre téléviseur. Les valeurs possibles sont :
• 1 : format d’image 4:3, courant sur les anciens téléviseurs ;
• 2 : format d’image 14:9, courant sur les plus petits téléviseurs ;
• 3 : format d’image 16:9, courant sur les téléviseurs modernes.
>> hdmi_mode : outre la définition du mode vidéo pour la sortie analogique
composite, il est également possible de contourner la détection automatique
de la résolution sur le port HDMI. Cela s’avère pratique si vous souhaitez que
votre Pi fonctionne dans une résolution inférieure à la résolution native de
l’écran afin de rendre l’affichage plus lisible de loin. L’annexe C énumère les
valeurs possibles pour ce paramètre.
>> hdmi_drive : il est également possible de modifier la tension de sortie du
port HDMI. Ceci est important lorsque vous utilisez un adaptateur HDMI vers
DVI car les tensions des ports HDMI et DVI diffèrent légèrement. Si vous
trouvez que votre image est neigeuse ou surexposée avec une image trop
lumineuse, essayez de modifier ce paramètre. Les valeurs possibles sont :
• 1 : tension de sortie DVI. Dans ce mode, aucun signal audio n’est inclus sur
le câble HDMI ;
• 2 : tension de sortie HDMI. Dans ce mode, le signal audio est inclus sur le
câble HDMI.
>> hdmi_force_hotplug : force le Raspberry Pi à utiliser le port HDMI, même
s’il ne détecte pas d’écran connecté. La valeur 0 indique au Pi de tenter de
détecter l’affichage, tandis que la valeur 1 indique au Pi d’utiliser le port
HDMI dans tous les cas.
>> hdmi_group : définit le mode de groupe HDMI à CEA ou DMT. Vous devez
modifier ce réglage selon le type d’affichage auquel vous essayez de vous
connecter avant d’utiliser hdmi_mode pour contrôler la résolution et la fré-
quence de l’affichage. Les deux valeurs possibles sont :
• 1 : définit le groupe HDMI à CEA (Consumer Electronics Association of Ame-
rica). Utilisez ce réglage lorsque le Pi est connecté à une télé HD sur le port
HDMI et servez-vous de la première liste des paramètres de l’annexe C ;

118/ Chapitre 7 :  Configuration avancée du Raspberry Pi


• 2 : définit le groupe HDMI à VESA (Video Electronics Standards Asso-
ciation) dans la spécification DMT (Display Monitor Timings). Utilisez ce
réglage lorsque le Pi est connecté à un écran d’ordinateur via une prise DVI
et servez-vous de la deuxième liste de paramètres de l’annexe C.
>> hdmi_safe : force le Pi à utiliser une collection prédéfinie de réglages HDMI
conçue pour offrir une compatibilité maximale avec les écrans connectés au
port HDMI. Si la valeur est égale à 1, cela est équivalent au réglage hdmi_
force_hotpug=1, config_hdmi_boost=4, hdmi_group=1, hdmi_mode=1 et
disable_overscan=0.
>> config_hdmi_boost : certains moniteurs nécessitent plus de puissance sur
la sortie HDMI pour fonctionner. Si votre image semble neigeuse, essayez
d’augmenter cette valeur par paliers, en partant de 1 (pour les câbles courts)
jusqu’à 7 (pour les câbles longs).
Chaque option dans le fichier config.txt doit être sur sa propre ligne, avec le
nom de l’option suivi d’un signe égal (=), puis de la valeur exigée. Par exemple,
pour indiquer au Pi d’utiliser la sortie vidéo analogique au format PAL avec un
format d’image 4:3 et un overscan de 20 pixels sur tous les côtés, saisissez les
lignes suivantes dans config.txt :
sdtv_mode=2
sdtv_aspect=1
overscan_left=20
overscan_right=20
overscan_top=20
overscan_bottom=20
Pour indiquer au Pi d’utiliser un écran DVI via le port HDMI au format 720p60
sans aucun overscan, utilisez les valeurs suivantes :
hdmi_group=1
hdmi_mode=4
hdmi_drive=1
disable_overscan=1
Pour que les modifications prennent effet, vous devez redémarrer le Pi. Si vos
modifications ont désactivé la sortie vidéo du Pi sur votre moniteur, insérez la carte
SD dans un autre ordinateur et modifiez le fichier config.txt en testant de nouveaux
paramètres ou bien en les supprimant afin de restaurer les valeurs par défaut.
© Dunod – Toute reproduction non autorisée est un délit.

// Options de démarrage
Vous pouvez également utiliser le fichier config.txt pour contrôler la manière
dont Linux se charge sur le Raspberry Pi. Bien que la méthode la plus courante pour
contrôler le chargement du noyau Linux soit d’utiliser un fichier séparé appelé cmd-
line.txt (qui sera étudié plus tard dans ce chapitre), il est possible de se contenter
de config.txt. Les options suivantes contrôlent le processus de démarrage :
>> disable_commandline_tags : indique au module start.elf qui se charge
en premier au cours du processus de démarrage du Pi de ne pas remplir les
adresses mémoire au-delà de 0×100 avant de charger le noyau Linux. Cette
option ne doit pas être changée, car cela peut faire planter Linux.

Paramètres du matériel : config.txt /119


>> cmdline : nom d’un fichier texte qui contient les paramètres de ligne de com-
mande à passer au noyau Linux. Ceci peut être utilisé à la place du fichier
cmdline.txt qui se trouve généralement dans le répertoire /boot.
>> kernel : nom du fichier du noyau à charger.
>> ramfsfile : nom du système de fichiers initial en RAM (RAMFS) à charger. Ce
paramètre devrait rarement être modifié, sauf si vous avez créé un nouveau
système de fichiers que vous voulez tester.
>> init_uart_baud : vitesse de la console série en bits par seconde. La valeur
par défaut est 115200, mais des valeurs plus faibles peuvent améliorer la
connexion si le Pi est utilisé avec un terminal série assez ancien.
>> enable_uart : par défaut, le Raspberry Pi 3 n’a pas de console série active.
Pour l’activer, placez un 1 après cette option ; votre Pi 3 bénéficiera ainsi
d’une console série, comme les précédents modèles de Pi.

// Overclocking du Raspberry Pi
Le fichier config.txt contrôle non seulement les sorties graphiques du proces-
seur BCM283x du Pi, mais il permet également de contrôler d’autres paramètres
de la puce. En particulier, il autorise la modification de la vitesse à laquelle la
puce tourne, en augmentant ses performances au détriment de sa durée de vie,
processus que l’on appelle overclocking.

Mise en garde

La modification des paramètres listés dans cette section


peut endommager votre Pi. En particulier, le changement
des paramètres concernant les tensions de la mémoire, du
CPU ou du GPU va modifier un fusible dans la puce, ce qui
invalide la garantie du Raspberry Pi, même si vous rétablis-
sez la valeur normale avant qu’une panne ne survienne. Les
dommages causés lors de l’utilisation de ces paramètres ne
seront pas pris en charge par la Fondation Raspberry Pi, ni
par le vendeur auprès duquel vous avez acheté votre Pi. En
cas de doute, ne modifiez pas ces paramètres : les gains de
performance obtenus par une opération d’overclocking du Pi
valent rarement la peine.

Le processeur multimédia BCM2835 au cœur du Pi est un SoC qui se décom-


pose en deux parties principales : le processeur graphique (GPU) et le processeur
central (CPU). En termes simples, le CPU gère toutes les tâches de traitement
courantes, et le GPU gère l’affichage des choses à l’écran, que ce soit en 2D ou
en 3D.
À l’aide du fichier config.txt, vous pouvez overclocker le CPU ou le GPU du
BCM2835, voire les deux à la fois. Vous pouvez également augmenter la vitesse

120/ Chapitre 7 :  Configuration avancée du Raspberry Pi


de fonctionnement du module de mémoire, qui est situé sur le dessus de la puce
dans un format de montage PoP (package-on-package).
L’augmentation de la fréquence de fonctionnement de ces composants produit
une légère augmentation de la performance du Pi. En augmentant la fréquence
d’horloge du GPU, les graphiques 3D (tels que les graphismes des jeux) s’affiche-
ront à un rythme plus rapide et la vidéo sera décodée plus vite, ce qui donnera
une lecture plus fluide ; l’augmentation de la fréquence d’horloge du CPU va sti-
muler les performances globales de l’appareil, tout comme l’augmentation de la
fréquence de la mémoire.
Le Pi n’est pas livré avec des vitesses de fonctionnement plus élevées parce
que la durée de vie de la puce a été privilégiée. Le BCM2835 est prévu par son
fabricant, Broadcom, pour fonctionner à une vitesse de 700 MHz à 1000 MHz,
selon sa version, tandis que les puces plus récentes, BCM2836 et BCM2837, fonc-
tionnent à des vitesses plus élevées. L’augmentation de la vitesse au-dessus des
niveaux officiels peut éventuellement fonctionner, mais cela aura également un
effet négatif sur la durée de vie de la puce. Contrairement au processeur d’un PC
de bureau, les SoC ont rarement beaucoup de marge de manœuvre en matière
d’overclocking.

Paramètres d’overclocking
Si vous êtes prêt à prendre le risque d’endommager votre Pi pour obtenir une
maigre augmentation des performances, il existe des réglages dans le fichier
config.txt susceptibles de vous aider dans cette voie-là. Les paramètres sui-
vants contrôlent les performances du SoC du Pi :
>> arm_freq : définit la fréquence d’horloge de la partie CPU du BCM2835, ce
qui permet d’améliorer les performances générales. La vitesse par défaut
dépend du modèle.
>> gpu_freq : définit la fréquence d’horloge de la partie GPU du BCM2835, ce
qui permet d’améliorer les performances graphiques de toutes les opéra-
tions. La vitesse par défaut est égale à 250 MHz. En outre, vous pouvez
modifier les parties spécifiques du GPU en utilisant les options suivantes :
• core_freq : définit la fréquence d’horloge du GPU, en ne touchant pas aux
© Dunod – Toute reproduction non autorisée est un délit.

autres fréquences, afin d’améliorer la performance globale du GPU. La


vitesse par défaut dépend du modèle.
• h264_freq : définit la fréquence d’horloge du décodeur vidéo matériel afin
d’améliorer la lecture de la vidéo au format H.264. La vitesse par défaut
dépend du modèle.
• isp_freq : définit la fréquence d’horloge du capteur d’image, pour amé-
liorer le taux de capture du matériel vidéo connecté (par exemple, une
caméra). La vitesse par défaut dépend du modèle.
• v3d_freq : définit la fréquence d’horloge du dispositif matériel de rendu
3D du GPU, afin d’améliorer la visualisation et les performances de jeu. La
vitesse par défaut dépend du modèle.

Paramètres du matériel : config.txt /121


>> sdram_freq : définit la vitesse d’horloge de la mémoire vive (RAM) du Pi,
afin d’augmenter légèrement l’ensemble des performances du système. La
vitesse par défaut dépend du modèle.
>> init_uart_clock : définit la vitesse d’horloge par défaut de l’UART (Universal
Asynchronous Receiver/Transmitter), utilisé pour contrôler la console série.
La valeur par défaut est 3 000 000, qui définit une vitesse de 3 MHz. La
modification de cette option n’aura que peu d’effet, mais risque d’endom-
mager la sortie de la console série.
>> init_emmc_clock : définit la vitesse d’horloge par défaut du contrôleur de
carte SD. La valeur par défaut est 80 000 000, qui définit une vitesse de
80 MHz. L’augmentation de cette valeur peut se traduire par une vitesse de
lecture et d’écriture de la carte SD plus rapide, mais cela peut aussi engen-
drer une corruption de données.
À titre d’exemple, pour overclocker le CPU d’un Raspberry Pi modèle B+ à
800 MHz, le GPU à 280 MHz et la RAM à 420 MHz, entrez les options suivantes
dans config.txt, sur des lignes différentes :
arm_freq=800
gpu_freq=280
sdram_freq=420
Comme avec le réglage de la configuration d’affichage, toutes les modifica-
tions apportées concernant l’overclocking ne prendront effet que lorsque le Pi
sera redémarré. Pour rétablir les paramètres normaux, vous pouvez supprimer
la totalité du fichier config.txt ou bien, si vous l’utilisez aussi pour contrôler les
paramètres d’affichage, il suffit de supprimer les lignes qui modifient l’overclo-
cking, puis de redémarrer le Pi.
Si vous avez overclocké votre Pi et qu’il ne démarre plus, vous pouvez insérer la
carte SD dans un autre ordinateur pour éditer la configuration puis redémarrer le
Pi, ou bien maintenir la touche Maj enfoncée au démarrage du Pi, ce qui désactive
temporairement les nouveaux paramètres, et exécuter le Pi à sa vitesse d’horloge
normale. Si vous souhaitez désactiver une option du fichier config.txt sans sup-
primer de ligne, placez un caractère # (dièse) au début de la ligne pour la mettre
en commentaire.

Paramètres de surtension
Si vous overclockez votre Pi, vous allez au bout du compte atteindre un seuil
au-delà duquel votre appareil ne fonctionnera plus. La limite précise à partir de
laquelle l’overclock du Pi n’est plus fiable dépend de chaque appareil en raison des
variations naturelles introduites au cours des étapes du processus de fabrication
de la puce. Pour certains utilisateurs, cette limite peut être assez basse et se
situer à 800 MHz, alors que pour d’autres elle pourra être plus élevée et atteindre
1 GHz (1 000 MHz) sans problème.
Si vous voulez gagner encore un peu plus de performance, il y a une autre façon
de repousser cette limite supérieure : un processus appelé surtension (­overvoltage).

122/ Chapitre 7 :  Configuration avancée du Raspberry Pi


Le processeur du SoC BCM283x du Pi et le module de mémoire associé fonc-
tionnent généralement avec une tension de 1,2 V. Il est possible, bien que cela soit
déconseillé, de modifier cette valeur par défaut et de forcer les composants à fonc-
tionner avec une tension supérieure ou inférieure. Le fait d’augmenter la tension
signifie que l’on renforce le signal au sein de la puce, qui est alors susceptible d’at-
teindre des vitesses plus élevées ; cela signifie aussi que la puce va plus chauffer, ce
qui réduira considérablement sa durée de vie par rapport à un simple overclocking.

Mise en garde

La modification de n’importe quelle option de tension dans


le fichier config.txt provoque dans le BCM2835 le déclen-
chement d’un fusible qui ne peut pas être réinitialisé. C’est
un moyen infaillible de prouver que quelqu'un a essayé
d’overclocker la puce au-delà de ses spécifications nomi-
nales, et cela annule votre garantie, même si la cause de la
panne n’est pas liée à l’overclocking. Si vous retournez votre
Pi sous garantie pour qu’il soit remplacé alors que ce fusible
a été déclenché, votre Pi ne sera pas remplacé. N’essayez
pas de modifier les paramètres de surtension d’un Pi si vous
ne pouvez pas vous en payer un autre…

Contrairement aux paramètres précédemment décrits, qui sont fournis dans


le fichier config.txt sous la forme de valeurs absolues, le réglage de la tension
s’effectue à l’aide de valeurs relatives par rapport à la tension du Pi qui est de
1,2 V. Pour chaque nombre entier supérieur à zéro, la tension est augmentée de
0,025 V, et pour chaque nombre entier inférieur à zéro, la tension est abaissée
de 0,025 V.
Les paramètres de réglage de la tension ont des limites supérieures (8) et infé-
rieures (–16), ce qui correspond à une augmentation de 0,2 V (1,4 V en absolu)
et une réduction de 0,4 V (0,8 V en absolu). La tension doit être spécifiée par un
nombre entier qui doit être compris entre –16 (0,8 V) et 8 (1,4 V).
Les paramètres suivants sont accessibles dans le fichier config.txt :
© Dunod – Toute reproduction non autorisée est un délit.

>> over_voltage : ajuste la tension de base du BCM2835. Les valeurs sont indi-
quées sous la forme d’un nombre entier correspondant à 0,025 V au-dessus
ou au-dessous de la valeur par défaut (0), avec une limite inférieure de –16
et un plafond de 8.
>> over_voltage_sdram : ajuste la tension de la mémoire du Pi. Comme avec
over_voltage, les valeurs sont indiquées sous la forme d’un nombre entier
correspondant à 0,025 V au-dessus ou au-dessous de 0, avec une limite infé-
rieure de –16 et un plafond de 8. En outre, vous pouvez modifier les tensions
des composants individuels de la mémoire à l’aide des options suivantes :
• over_voltage_sdram_c : ajuste la tension du contrôleur mémoire. Les
valeurs acceptables sont les mêmes qu’avec over_voltage_sdram.

Paramètres du matériel : config.txt /123


• over_voltage_sdram_i : ajuste la tension du système d’entrée/sortie de la
mémoire. Les valeurs acceptables sont les mêmes qu’avec over_­voltage_
sdram.
• over_voltage_sdram_p : ajuste la tension des composants de la couche
physique de la mémoire. Les valeurs acceptables sont les mêmes qu’avec
over_voltage_sdram.
À titre d’exemple, les lignes suivantes saisies dans config.txt augmentent la
tension du BCM2835 de 0,05 V pour atteindre 1,25 V, et la mémoire de 0,1 V pour
atteindre 1,3 V :
over_voltage=2
over_voltage_sdram=4
Comme pour les autres paramètres, la suppression des lignes modifiées dans
le fichier config.txt ou la suppression du fichier lui-même remettra les choses
dans leur état initial. Cependant, à la différence des autres paramètres de cette
section, il restera la preuve que les valeurs ont été modifiées car un fusible aura
sauté dans le BCM2835, ce qui annulera la garantie du Pi, même si les valeurs par
défaut des paramètres ont été restaurées.

Désactivation du Cache L2
Le processeur du SoC BCM283x du Pi possède 128 K de mémoire cache L2.
Bien que la quantité de cette mémoire soit faible, elle est extrêmement rapide.
Elle est utilisée pour stocker temporairement, c’est-à-dire mettre en cache, des
données et des instructions et sert d’intermédiaire entre la mémoire principale
qui est plus lente et le processeur afin d’améliorer les performances.
En raison de l’origine du BCM283x, qui est un processeur multimédia destiné
aux appareils audiovisuels (lecteurs multimédias, décodeurs, etc.), ce cache L2
est conçu pour n’être utilisé que par le GPU de la puce. Contrairement à un pro-
cesseur traditionnel, le CPU du Pi n’a pas de cache L2.
À l’aide de config.txt, vous pouvez dire au BCM283x d’autoriser ou d’interdire
au CPU d’accéder au cache L2. Dans certains cas, vous pouvez améliorer les per-
formances, mais dans d’autres cas, cela peut nuire aux performances en raison de
l’emplacement physique de la mémoire cache qui est à une distance relativement
éloignée du CPU, mais plus proche du GPU.
L’utilisation de la mémoire cache L2 nécessite également une distribution Linux
qui a été compilée en ce sens. Raspbian, qui fait partie de ces distributions, est
livré avec un cache L2 activé pour améliorer les performances. Cette optimisation
devrait être conservée et annulée seulement si elle provoque des problèmes avec
d’autres systèmes d’exploitation.
Pour désactiver l’accès du CPU au cache L2, il suffit d’ajouter la ligne suivante
au fichier config.txt :
disable_l2cache=1

124/ Chapitre 7 :  Configuration avancée du Raspberry Pi


Comme pour tous les paramètres config.txt, vous devez redémarrer le sys-
tème pour que les changements soient pris en compte. Pour activer l’accès à la
mémoire cache du processeur, remplacez le 1 par un 0.

// Activation du Mode Test


Le mode test, qui est la dernière option du fichier config.txt, est une fonction-
nalité que la plupart des utilisateurs de Pi ne devraient jamais avoir à expérimen-
ter, mais nous l’avons incluse ici par souci d’exhaustivité. Le mode test est utilisé
durant la production du Raspberry Pi en usine (il sert à contrôler électriquement
le Pi) et il permet au personnel de l’usine de s’assurer que le Pi fonctionne nor-
malement.

Mise en garde

L’activation du mode test ne provoque aucun dommage per-


manent, mais le Pi ne démarrera pas avec son système d’ex-
ploitation tant que le mode test n’aura pas été désactivé, et
le Pi éteint, puis rallumé.

Si vous êtes curieux de voir à quoi ressemble le Pi quand il est testé en usine,
vous pouvez activer le mode test en saisissant l’option suivante dans le fichier
config.txt :
test_mode=1
Comme avec les autres paramètres de config.txt, le mode test ne sera actif
qu’après le redémarrage du Pi. Le mode test peut être désactivé par la suite en
supprimant la ligne dans le fichier config.txt, en supprimant le fichier config.txt
ou en remplaçant 1 par 0.

Répartition de la mémoire
Le Raspberry Pi est livré avec 256 Mo, 512 Mo ou 1 Go de mémoire, et cette
mémoire peut être répartie entre les composants de différentes manières. La
© Dunod – Toute reproduction non autorisée est un délit.

conception du SoC BCM283x est divisée en deux parties principales : le CPU qui
est polyvalent et le GPU qui s’occupe du traitement des images. Ces deux parties
nécessitant de la mémoire pour fonctionner, cela signifie que la mémoire du Ras-
pberry Pi doit être partagée.
La répartition typique est choisie par les responsables de la distribution Linux
installée sur le Pi. Certains choisissent de fournir 128 Mo pour le GPU, ce qui
garantit que le matériel graphique peut fonctionner à plein régime. D’autres,
pour améliorer les performances générales, octroient au CPU une part plus
­importante.
Auparavant, la répartition de la mémoire était contrôlée par un fichier de
microprogramme (firmware) appelé start.elf, où différents fichiers étaient utilisés

Répartition de la mémoire /125


pour fournir des quantités différentes de mémoire au CPU. Ces fichiers ont été
aujourd’hui remplacés par une seule ligne dans config.txt, qui peut être éditée
pour contrôler la répartition de la mémoire.

Mise en garde

Les applications qui effectuent des traitements graphiques


lourds, comme les jeux 3D et les logiciels de lecture vidéo
en haute définition, ont généralement besoin de 128 Mo de
mémoire vive pour le GPU. La réduction de cette valeur peut
entraîner une chute spectaculaire des performances. Le
module de caméra du Raspberry Pi ne peut pas enregistrer de
la vidéo avec moins de 128 Mo de mémoire réservés au GPU.

Vous pouvez modifier la répartition de la mémoire en éditant la ligne marquée


gpu_mem du fichier config.txt. Cette ligne indique au Pi la part de la mémoire
totale qui est attribuée au GPU, le reste allant au CPU.
La valeur minimale est 16 Mo et la valeur maximale 192 Mo pour les modèles avec
256 Mo de mémoire, 448 Mo pour les modèles avec 512 Mo et 944 Mo pour les
modèles avec 1 Go. Le réglage doit être ajusté par incréments de 16 Mo et écrit sans
l’unité Mo, ce qui donne les valeurs possibles de 16, 32, 48, 64, 80, 96, 112, 128, et ainsi
de suite jusqu’au maximum en fonction du modèle. Pour n’attribuer au GPU que le

>_
minimum de 16 Mo de mémoire, par exemple, modifiez la ligne de la manière suivante :
gpu_mem=16

Paramètres du logiciel : CMDLINE.TXT


Outre config.txt, qui contrôle les différentes fonctionnalités du matériel du
Pi, il y a un autre fichier texte important dans le répertoire /boot : cmdline.txt
(figure 7.4). Ce fichier contient ce qu’on appelle la ligne de commande du noyau,
qui représente les options passées au noyau Linux au démarrage du Pi.
Dans un ordinateur classique tournant sous Linux, ces options sont nor-
malement transmises au noyau par le biais d’un outil appelé bootloader, qui
possède son propre fichier de configuration. Sur le Pi, les options sont sim-
plement saisies directement dans le fichier cmdline.txt pour être lues par le
Pi au démarrage.
Presque n’importe quelle option du noyau prise en charge par Linux peut être
entrée dans le fichier cmdline.txt pour modifier des choses qui vont de l’appa-
rence de la console jusqu’au chargement du système de fichiers racine. À titre
d’exemple, voici le fichier cmdline.txt de la distribution Raspbian, qui doit être
écrit sous la forme d’une seule ligne continue :
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2
rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

126/ Chapitre 7 :  Configuration avancée du Raspberry Pi


Figure 7.4 Fichier cmdline.txt du répertoire /boot

La première option, dwg_otc.lpm_enable, indique au Pi de désactiver le mode


LPM (Link Power Management) de son contrôleur USB pour éviter les problèmes
qui peuvent survenir avec certains périphériques lorsque la fonctionnalité est
activée. La plupart des distributions Linux pour le Pi désactivent ce mode.
L’option console indique à Linux qu’il doit créer une console série (appelée
serial0) et à quelle vitesse elle doit fonctionner. Dans la plupart des cas, vous
devez conserver la vitesse par défaut qui est de 115 200 bits/s (bits par seconde).
Si vous utilisez le Pi pour communiquer avec des appareils plus anciens, cette
vitesse peut être réduite en conséquence.
La seconde entrée console crée le dispositif tty1, qui est l’écran rempli de
© Dunod – Toute reproduction non autorisée est un délit.

texte que vous voyez lorsque vous démarrez le Pi pour la première fois. Sans cette
option, vous seriez obligé d’utiliser le Pi en connectant quelque chose à la console
série, qui est créée par la première option console.
L’option root indique au noyau Linux où il peut trouver le système de fichiers
racine, qui contient tous les fichiers et les répertoires nécessaires pour le fonc-
tionnement du système. Dans le cas de la distribution Raspbian par défaut, lors de
l’installation à partir de l’image officielle, ce système de fichiers racine se trouve
sur la deuxième partition de la carte SD, dans le répertoire mmcblk0p2. Vous pou-
vez modifier cet emplacement pour désigner un périphérique de stockage externe
connecté en USB, ce qui peut accélérer considérablement le fonctionnement du
Pi, par rapport au fait de stocker le système de fichiers racine sur la carte SD.

Paramètres du logiciel : cmdline.txt /127


En plus de savoir où trouver son système de fichiers racine, le noyau a besoin
de savoir dans quel format la partition a été créée. Comme Linux prend en charge
une grande variété de systèmes de fichiers différents, l’option rootfstype
indique spécifiquement au noyau que la distribution Raspbian utilise un système
de fichiers EXT4.
Enfin, le paramètre rootwait indique au noyau qu’il ne devrait pas essayer de
démarrer le système tant que le dispositif contenant le système de fichiers racine
n’est pas disponible. Sans cette option, le Pi peut se bloquer alors qu’il commence
à démarrer si une carte SD relativement lente n’est pas encore prête.
À l’exception de l’option dwc_otg, aucun de ces paramètres du noyau n’est spé-
cifique au Pi. La configuration du bootloader de toutes les distributions Linux
inclut une liste d’options qui sont très semblables à celles du fichier cmdline.txt.
En règle générale, vous ne devriez pas toucher au fichier cmdline.txt. Il est
créé par les responsables de la distribution spécialement pour cette version de
Linux et ce fichier peut différer d’une distribution à l’autre. Les options qui fonc-
tionnent sur une version de Linux peuvent ne pas fonctionner sur Raspbian et
vice versa. Les options disponibles dans cmdline.txt dépendent du noyau utilisé
par la distribution et des fonctionnalités qui ont été incluses lorsque le noyau a
été compilé.
Si vous êtes un développeur du noyau, vous pouvez utiliser cmdline.txt pour
passer des paramètres afin d’activer ou de désactiver des fonctionnalités nou-
velles que vous avez compilées dans le noyau. Comme avec config.txt, toute
modification nécessite un redémarrage pour être effective.
Création
2
d’un media center
ou d’une machine
de productivité
/> chapitre 8 131
Le Raspberry Pi comme media center

/> chapitre 9 141


Le Raspberry Pi comme machine de productivité
/> Chapitre
 Le  Raspberry  Pi 
comme  media  center
8

Le home cinéma est l’un des domaines d’application les plus populaires
du Raspberry Pi. Son module BCM283x, qui avait d’ailleurs dès le départ été
conçu pour des systèmes multimédia très performants, constitue le cœur de
votre Pi.
La partie graphique du BCM283x, un module Broadcom VideoCore IV, est
capable de lire et d’afficher de la vidéo en haute définition (H.264). Cette puce
sait aussi lire des fichiers audio dans bon nombre de formats, restitués sur la
sortie analogique dotée d’une prise jack 3,5 mm, ou sur le port numérique
HDMI.
Tout à la fois compact, silencieux et consommant peu de courant, le Raspberry
Pi est un appareil attrayant pour les passionnés de home cinéma. Depuis la sor-
tie du Raspberry Pi, un certain nombre de distributions Linux et de packages
sont apparus, précisément pour simplifier ce genre d’application. Cependant, nul
besoin d’abandonner votre système d’exploitation actuel pour vous lancer.

Lecture audio depuis la console


Si vous êtes un développeur, vous passerez l’essentiel de votre temps sur la
console. La majorité des logiciels permettant de lire de la musique étant destinés
© Dunod – Toute reproduction non autorisée est un délit.

aux environnements en mode graphique, ils ne risquent pas de faire beaucoup de


bruit en mode console, mais nous pouvons arranger cela.
Le Raspberry Pi prend en charge un outil de lecture audio en mode texte
nommé moc (l’acronyme de Music On Console). À la différence d’autres pro-
grammes (tels que LXMusic), moc peut être installé et utilisé même si aucune
interface graphique n’est présente sur le Raspberry Pi.
Pour commencer, installez le package moc depuis le dépôt de votre distribu-
tion. Pour la distribution Raspbian, il suffit de saisir la commande suivante sur la

>_
console, ou une fenêtre de terminal :
sudo apt-get install moc

Lecture audio depuis la console /131


Astuce

D’autres outils également appelés moc existent dans certaines


distributions, mais ils n’ont rien à voir avec la reproduction
musicale. Si l’installation de moc ne donne pas les résultats
attendus, essayez plutôt d’installer le package mocp.

Si vous passez beaucoup de temps devant la console, loin des interfaces gra-
phiques, moc s’avérera un excellent choix pour jouer de la musique. À la différence
d’autres outils, il fonctionne en tâche de fond, ce qui signifie qu’il ne s’interrompra
pas si vous passez à autre chose.
Pour charger moc, la commande est mocp et non moc. En effet, il existe un autre
outil qui utilise la commande moc. On lui a donc donné un nom différent pour évi-
ter que le système d’exploitation ne confonde les deux.
Pour démarrer, activez la console, ou la fenêtre de terminal, si vous êtes en

>_
mode graphique, et saisissez la commande suivante :
mocp

L’interface de mocp propose deux panneaux (figure  8.1). Celui de gauche


contient un explorateur de fichiers. Vous y choisissez le fichier que vous dési-
rez lire grâce aux touches directionnelles haut et bas. La touche Entrée lance la
lecture du fichier en surbrillance. Si l’on appuie sur la touche alors que l’on est
sur un nom de dossier, on entre dans celui-ci. Le dossier ../ en haut de la liste
correspond au dossier de niveau supérieur. Le panneau droit affiche la liste de
lecture en cours.

Figure 8.1 Interface standard du lecteur audio mocp en mode console

132/ Chapitre 8 :  Le  Raspberry  Pi  comme  media  center


On réalise l’intérêt de mocp en sortant de l’application via la touche Q. Si mocp
était en train de jouer, il continuera, même si vous utilisez la console ou la fenêtre
de terminal pour d’autres tâches. Si l’on répète la commande mocp, l’interface
réapparaît, ce qui permet de changer de morceau, de mettre sur pause ou d’ar-
rêter. Il est également possible de contrôler mocp directement depuis le terminal,
sans avoir recours à l’interface. Pour cela, on lance la commande mocp suivie de
certains paramètres, précédés d’un trait d’union. Ces paramètres réalisent les
actions suivantes : lecture, arrêt, pause, suivant, changement de morceau. Tout
cela se fait sans avoir à entrer dans le programme.
Voici les paramètres les plus courants :
>> -s : arrêter la lecture en cours
>> -g : arrêter la lecture, ou reprendre la lecture si suspendue
>> -f : passer au morceau suivant dans le dossier ou la liste programmée
>> -r : passer au morceau précédent dans le dossier ou la liste programmée
>> -i : afficher dans la console ou la fenêtre terminal les informations sur le
morceau en cours
>> -x : arrêter la lecture et quitter le programme mocp
Pour plus d’informations concernant le contrôle de mocp, saisissez man mocp.

Un media center avec OSMC


Le Raspberry Pi sait jouer de la musique, mais quand on intègre un Soc de la
série BCM283x, on peut faire bien plus que cela. Grâce à son GPU VideoCore IV, le
Pi sait décoder et afficher en temps réel de la vidéo Full HD, 1080p, H.264. Cette
toute petite machine, incroyablement économe en énergie, cache en réalité un
puissant media center.
Pour en tirer tout le parti, il faut malgré tout rajouter quelques logiciels. On
peut les installer sur la distribution Raspbian, mais le plus facile, pour démarrer,
consiste à passer à la distribution OSMC.
Plus connue sous le nom de « Open Source Media Centre », la distribution
OSMC est basée sur XBMC, logiciel réputé qui est également appelé Kodi. Ce
© Dunod – Toute reproduction non autorisée est un délit.

dernier a été choisi par un certain nombre de fabricants de boîtiers multimédia


de salon.
OSMC est un excellent choix si vous comptez utiliser la puissance de déco-
dage et de restitution vidéo HD du Raspberry Pi pour votre home cinéma. Son
installation ne sera pas plus compliquée que sur une autre distribution Linux. La
solution la plus simple passe par NOOBS, présenté au chapitre 2, « Découverte
du Raspberry Pi ». Il suffit de trouver OSMC dans la liste des systèmes d’exploi-
tation et de cocher la case correspondante pour l’installer (figure 8.2). Si votre
Raspberry Pi doit avoir d’autres utilisations que la lecture vidéo, vous pouvez
installer OSMC en parallèle avec n’importe quel autre système d’exploitation, y
compris Raspbian.

Un media center avec OSMC /133


Figure 8.2 Installation d’OSMC via NOOBS

Avertissement
Si vous avez déjà une carte SD sur votre Raspberry Pi, vous devez savoir que l’ins-
tallation d’un nouveau système d’exploitation sur celle-ci supprime les données
qui s’y trouvent. Effectuez une sauvegarde des fichiers que vous désirez conserver
avant l’installation d’OSMC via NOOBS.

Une fois l’installation de NOOBS terminée, relancez le Raspberry Pi. Assurez-


vous du bon fonctionnement de la connexion Internet via le câble Ethernet, avant
cette opération, car OSMC télécharge certaines données lors de son premier
chargement. Celui-ci peut prendre jusqu’à 10 ou 15 minutes en raison du trans-
fert des mises à jour, mais les chargements suivants sont beaucoup plus rapides.
Après le chargement d’OSMC, vous êtes guidé par un assistant d’installation
assurant la configuration du logiciel. À l’aide de la souris ou du clavier, sélection-
nez la langue et le fuseau horaire. Ensuite, choisissez un nom pour votre appareil.
Cette étape peut être ignorée, mais si votre réseau comprend plus d’un appareil
fonctionnant avec OSMC, chacun doit avoir un nom unique. Le cas échéant, le
nommage peut être généré automatiquement par l’ajout d’un suffixe aléatoire en
cliquant sur le bouton correspondant.
L’assistant vous demandera ensuite si le mode SSH (version sécurisée du shell)
doit être activé. Il est en général plus sûr de le conserver (il est activé par défaut)

134/ Chapitre 8 :  Le  Raspberry  Pi  comme  media  center


si votre Raspberry Pi est connecté à un réseau local sécurisé. Cela vous permettra
d’effectuer des transferts de fichiers et de contrôler l’appareil à distance. Après
cela, lisez le contrat de licence et, si vous l’acceptez, vous pouvez choisir l’un des
styles d’interfaces du logiciel.
Par défaut, le graphisme de l’interface (aussi appelé skin) est celui d’OSMC.
Une alternative possible, nommée Confluence (Kodi), est fournie dans le package
Kodi utilisé par OSMC. Les deux sont identiques sur le plan fonctionnel. Les ins-
tructions qui suivent présentent le skin Confluence, mais choisir l’un ou l’autre
n’aura aucun effet sur le déroulement des étapes. Pour finir, il vous est proposé de
vous abonner au bulletin d’informations d’OSMC, option parfaitement facultative.
Vous pouvez également choisir la langue de l’interface. Par défaut les menus
sont en anglais. Assurez-vous d’être dans l’écran d’accueil en cliquant sur la mai-
sonnette en bas à droite de l’écran. Sélectionnez System puis Settings, en des-
sous, avec la souris ou grâce aux touches de défilement du curseur, et appuyez sur
Entrée. Une nouvelle page s’affiche, sélectionnez Appearance puis, sur la même
page sélectionnez International. Sur la droite de l’écran choisissez Language et
appuyez sur Entrée. Une liste s’affiche, naviguez jusqu’à French et appuyez sur
Entrée. Appuyez sur la touche Echap pour remonter dans l’arborescence des
pages ou cliquez sur la maisonnette en bas à droite de l’écran.
Lors de chaque nouveau chargement, OSMC lance automatiquement le logiciel
Kodi (figure 8.3) qui fournit une interface adaptée, conçue pour que vous puissiez
l’utiliser dans votre salon. Tout est accessible depuis un clavier ou une souris. Le texte
en gros caractères est organisé en menus pour faciliter la sélection. Il est possible
d’acquérir une télécommande infrarouge dont le récepteur sera inséré dans le port
USB du Raspberry, évitant ainsi l’encombrement d’un clavier ou des multiples câbles.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 8.3 Écran d’accueil de Kodi, chargé par OSMC

Un media center avec OSMC /135


Lecture en streaming depuis Internet
Par défaut, OSMC est configuré de manière à lire les fichiers se trouvant
physiquement sur le Raspberry Pi. Si vous installez des extensions, sélection-
nables sous le menu Vidéo, vous pourrez enrichir l’installation d’impression-
nantes fonctionnalités de lecture en streaming, notamment diverses chaînes
de télévision et certains services de streaming disponibles exclusivement sur
Internet. Après avoir cliqué sur Extensions, choisissez En obtenir plus pour
avoir accès à la liste complète des extensions compatibles (figure 8.4). Si la
liste est vide, cliquez sur l’onglet le plus à gauche de l’écran affichant une
flèche pointant vers la droite, et dans le menu qui apparaît, sélectionnez Mettre
à jour la médiathèque pour les informations les plus récentes en rapport avec
les extensions.

Figure 8.4 Ajout d’extensions vidéo dans OSMC

Faites défiler la liste à la souris ou grâce aux touches de défilement du curseur


et cliquez sur un nom ou validez avec la touche Entrée pour obtenir davantage
d’informations. Pour installer une extension, cliquez simplement sur le bouton
Installer dans la boîte qui apparaît lors d’un clic sur un nom. Cette action lance le
téléchargement et l’installation automatique depuis Internet vers OSMC. Méfiez-
vous des extensions portant la mention « Inexploitable ». Cela signifie qu’elles
sont défaillantes. Ne les installez pas avant que le problème ne soit réglé par leur
développeur.
Après avoir installé ces extensions vidéo, cliquez sur le bouton Home, en bas
à droite de l’écran pour revenir à la page d’accueil d’OSMC. Vous pouvez mainte-
nant cliquer sur la rubrique Vidéo au centre de l’écran, ou appuyer sur la touche

136/ Chapitre 8 :  Le  Raspberry  Pi  comme  media  center


Entrée et choisir Extensions vidéo parmi les options proposées. Vous aurez
accès aux extensions effectivement installées. Cliquez sur l’une d’entre elles pour
télécharger une liste de fichiers à visionner. Si l’extension comprend plusieurs
catégories, elles seront d’abord téléchargées. Cliquez à nouveau sur l’une d’entre
elles pour voir les fichiers qu’elle contient (figure 8.5).

Figure 8.5 Liste de vidéos disponibles à partir de l’extension OSMC DIY Network

Les menus Musique et Images fonctionnent de manière similaire. En utilisant


des extensions, vous pouvez visionner des images et écouter de la musique en
streaming à partir de sites tels que Flickr, Picasa, The Big Picture, Grooveshark,
Sky.fm ou SoundCloud.

Lecture en streaming depuis un réseau local


Le programme OSMC prend en charge le standard UPnP (Universal Plug and
© Dunod – Toute reproduction non autorisée est un délit.

Play) pour le streaming, ce qui lui permet de se connecter à toute une série d’ap-
pareils associés à votre réseau local. La majorité des téléphones, des consoles de
jeux et des NAS récents acceptent également ce standard permettant de par-
tager ou de faire du streaming avec de la vidéo, de la musique et des photos.
Beaucoup d’ordinateurs portables et de bureau prennent également en charge
la norme UPnP, ou le standard DLNA (Digital Living Network Alliance) qui s’en
rapproche. Référez-vous à votre documentation pour activer ces options sur vos
appareils.
Les connexions possibles avec OSMC ne se limitent toutefois pas au stan-
dard UPnP. L’application permet également de se connecter aux serveurs exé-
cutant NFS (Network File System), un standard courant sur les systèmes Unix,

Lecture en streaming depuis un réseau local /137


à SMB (Server Message Block) pour les serveurs Windows, et à Zeroconf pour
les machines tournant sous OS X. Quel que soit l’appareil réseau sur lequel vous
stockez vos contenus multimédias, il est probable qu’il existe au moins une solu-
tion pour y accéder avec OSMC.
Pour paramétrer la connexion d’OSMC à votre serveur de réseau local, choi-
sissez la catégorie de média (Vidéo, Musique, Images), cliquez sur Fichiers et
cliquez sur l’option Ajouter une source de vidéos… (ou Ajouter une source de
musique… ou Ajouter une source d’images…). Puis dans la nouvelle fenêtre
qui s’affiche, cliquez sur Parcourir pour obtenir tous les types de sources gérés
(figure 8.6). Cette liste comprend les éventuels disques locaux connectés direc-
tement au Raspberry Pi (icône bleue), mais aussi les appareils connectés via le
réseau (icône rouge). Choisissez dans la liste le type de serveur auquel vous dési-
rez vous connecter, puis cliquez sur le serveur qui apparaît.

Figure 8.6 Choix d’une source réseau dans OSMC68

Si le serveur que vous sélectionnez comporte des sous-dossiers pour classer


les contenus selon les genres, artistes, albums ou types de fichiers, sélection-
nez celui auquel vous désirez voir OSMC se connecter et cliquez sur OK. L’écran
Ajouter une source s’affiche alors à nouveau, maintenant complété avec les
indications nécessaires (figure 8.7). Si des éléments supplémentaires sont requis
pour accéder à un serveur, par exemple un nom d’utilisateur et un mot de passe,
renseignez-les avant de cliquer sur OK.
Le même menu peut être utilisé pour ajouter un disque externe parmi les
sources en le sélectionnant dans la première liste. Toutefois, la majorité des
disques apparaîtront automatiquement, rendant inutile un ajout manuel (n’ajou-
tez un disque que dans le cas où il est absent des menus d’OSMC).

138/ Chapitre 8 :  Le  Raspberry  Pi  comme  media  center


Figure 8.7 Ajout d’une source de musique UPnP sur OSMC

Configuration d’OSMC
Les différents paramètres de configuration dans OSMC sont accessibles
depuis le sous-menu Programmes, sous le menu Mon OSMC. Cette partie du
programme OSMC n’est pas affectée par votre choix de skin, conservant tou-
jours une apparence identique : une série d’icônes tout autour d’un logo OSMC
au centre (figure 8.8).
© Dunod – Toute reproduction non autorisée est un délit.

Figure 8.8 Configurer OSMC via Mon OSMC

Configuration d’OSMC /139


Ces icônes sont ainsi disposées (depuis le haut, et dans le sens des aiguilles
d’une montre) :
>> Mises à jour : sélectionnez cette option pour rechercher des mises à jour
pour OSMC et vos extensions, et en télécharger d’autres si nécessaire.
>> Services : permet d’activer ou de désactiver le service SSH.
>> Overclock : permet de sélectionner des valeurs d’overclocking pour amélio-
rer les performances de votre Raspberry Pi. Tout changement effectué ici ne
prendra effet qu’après avoir relancé le Raspberry.
>> App Store : permet d’accéder à des applications OSMC supplémentaires.
Elles peuvent être téléchargées et installées pour ajouter des fonctionna-
lités.
>> Réseau : cliquez ici pour modifier manuellement les paramètres réseau.
>> Télécommande : permet de configurer un récepteur USB de télécommande,
permettant de prendre les commandes d’OSMC sans clavier ni souris.
>> Pi Config : donne accès aux fichiers de paramètres de configuration décrits
au chapitre 7.
>> Transmission de journal : permet d’envoyer les différents fichiers de jour-
nalisation, contenant des informations provenant d’OSMC et du système
d’exploitation, au serveur du projet pour alimenter ses rapports d’incidents.
Si vous ne participez pas à la remontée des bugs OSMC, vous ne devriez pas
être concerné.
Pour plus d’informations sur la configuration d’OSMC ou de Kodi, visitez le site
officiel à l’adresse suivante : osmc.tv.
/> Chapitre
Le Raspberry Pi
comme machine
9
de productivité

Très polyvalent, le Raspberry Pi peut devenir votre ordinateur de bureau d’en-


trée de gamme. Même s’il ne risque pas d’atteindre le niveau de performance d’un
ordinateur classique, son prix et sa faible consommation énergétique permettent
de compenser ses baisses de régimes ponctuelles.
Le système d’exploitation, téléchargeable sur le site Raspberry Pi, comprend
par défaut la célèbre suite bureautique LibreOffice. Elle donne accès à tous
les outils que l’on trouve avec les produits commerciaux équivalents tels que
­Microsoft Office : un traitement de texte, un tableur, un gestionnaire de base de
données, un logiciel de présentation, et même des applications pour réaliser des
diagrammes ou écrire des formules mathématiques. Il est également possible
d’utiliser des logiciels du même type dans le cloud en passant par une interface
Web, comme avec n’importe quel autre ordinateur.
Quelle que soit la méthode choisie, application en local ou dans le cloud, le
Raspberry Pi est apte à effectuer au quotidien des tâches bureautiques ou sco-
laires. Cet usage n’affecte pas ses capacités de plateforme de programmation et
d’expérimentation.

Astuce
© Dunod – Toute reproduction non autorisée est un délit.

Dans le cas d’une utilisation du Raspberry Pi essentiellement


tournée vers la production de documents, il serait judicieux
d’allouer moins de mémoire à la carte graphique au profit
d’une utilisation plus généraliste. Pour savoir comment
effectuer cette répartition, reportez-vous au chapitre 6.

Applications cloud
Si la plupart du temps votre Raspberry Pi est connecté à Internet (grâce aux
ports intégrés ou à un adaptateur USB pour les modèles sans connectivité réseau

Applications cloud /141


intégrée), le cloud offre des logiciels à la fois puissants et légers pour qui veut
faire un usage bureautique du Raspberry Pi.
Contrairement aux logiciels en local, les logiciels dans le cloud ne sont pas
installés sur l’ordinateur. Ils fonctionnent sur de puissants serveurs abrités dans
des data centers répartis dans le monde entier et sont accessibles grâce à un
navigateur connecté à Internet. En tirant profit de leurs considérables capacités
de calcul et de stockage, le Raspberry Pi peut travailler sur des documents plus
complexes sans baisse de régime.
Les programmes dans le cloud offrent encore d’autres avantages. Quel que soit
le terminal utilisé, les applications cloud auront le même aspect, beaucoup d’entre
elles ayant même une version permettant de travailler avec un smartphone ou
une tablette. Les fichiers, qui sont stockés sur des serveurs distants, sont acces-
sibles depuis n’importe où et cela évite de prendre de la place sur la carte SD du
Raspberry Pi.
Les applications cloud ne sont toutefois pas parfaites. Elles sont en général
moins sophistiquées que leur homologue en local, avec souvent moins de fonc-
tions avancées et moins de formats de fichiers pris en charge. Elles sont égale-
ment inaccessibles sans Internet, ce qui les disqualifie si la connexion n’est pas
très fiable.
Si vous pensez que les gains de performance et l’économie d’espace sur la
carte SD compensent les inconvénients, poursuivez votre lecture. Dans le cas
contraire, passez directement à la section suivante qui montre comment uti-
liser la suite bureautique LibreOffice, une solution open source équivalente à
Microsoft Office.
Voici les suites bureautiques les plus populaires dans le cloud :
>> Google Drive : produit par le géant des moteurs de recherche et de la
publicité en ligne, Google Drive (anciennement Google Docs) comprend
un traitement de texte, un tableur, et un outil de présentation (figure 9.1).
Les entreprises peuvent créer un compte Google Apps, qui donne accès à
des fonctionnalités plus riches. Si vous avez déjà un compte de messagerie
Gmail, vous avez automatiquement accès à Google Drive. Vous pouvez vous
y rendre à l’adresse suivante : docs.google.com.
>> Zoho : avec ses cinq millions d’utilisateurs, Zoho est également très popu-
laire. Comme Google Drive, il offre un traitement de texte, un tableur, et de
quoi créer des présentations. Toutefois, Zoho a développé des fonctionna-
lités bureautiques avancées, telles qu’une base de connaissance wiki, des
outils de visioconférence, de comptabilité, et même de gestion de relation
clients. Nombre des fonctions avancées sont payantes. Vous pouvez accéder
au service à l’adresse www.zoho.com.
>> Office 365 : si vous êtes un utilisateur des produits Microsoft, Office 365 est
un excellent choix. Avec la même interface que la suite Office actuelle, Office
365 est à la fois puissant et souple. À la différence de Zoho et Google Drive,
Office 365 n’offre que des solutions payantes par abonnement mensuel. Par

142/ Chapitre 9 : Le Raspberry Pi comme machine de productivité


ailleurs, certaines fonctions seront inopérantes à partir d’une machine sous
Linux. Vous pouvez vous abonner au service en suivant ce lien : office365.
microsoft.com.
>> ThinkFree Online : il s’agit d’une interface Web donnant accès au logiciel
Hancom Thinkfree Office. ThinkFree Online propose un traitement de texte,
un tableur, un logiciel de présentation, et 1 Go d’espace de stockage. La suite,
qui peut fonctionner avec ThinkFree Mobile destiné aux tablettes et smart-
phones, est compatible avec le logiciel d’entreprise ThinkFree Server. Vous
pouvez accéder au service à : online.thinkfree.com.

Figure 9.1 Google Drive dans Iceweasel sur Raspberry Pi

Bon nombre de ces suites bureautiques requièrent des fonctionnalités dont le


navigateur par défaut de Raspbian est dépourvu. Pour les exploiter, il est néces-
saire d’installer un nouveau navigateur. Les instructions suivantes permettent
d’installer Iceweasel, une des versions de Firefox, le célèbre navigateur open
© Dunod – Toute reproduction non autorisée est un délit.

source de Mozilla.
Pour installer le navigateur Iceweasel sous Raspbian, ouvrez un terminal et

>_
saisissez la ligne suivante :
sudo apt-get install iceweasel

Une fois Iceweasel installé, il suffit de vous rendre sur l’un des sites mention-
nés, de créer un compte, (en donnant vos références bancaires, si vous souhaitez
des services premium, comme Microsoft Office 365), puis de vous authentifier.
Si le système semble lent, changer la répartition de la mémoire en faveur du CPU
(en diminuant la part accordée au GPU) peut faire la différence. Le chapitre 6
présente toutes les instructions nécessaires à cette opération.

Applications cloud /143


LibreOffice
L’alternative, si vous préférez ne pas utiliser le cloud, consiste à utiliser LibreOf-
fice. Conçu pour fonctionner sur différentes plateformes, cet outil open source
comparable à Microsoft Office, qui est basé sur le projet OpenOffice.org, est tout
aussi fonctionnel que l’équivalent commercial dont il s’inspire.
LibreOffice se présente sous la forme d’une série d’icônes dans le menu
Bureautique du menu principal de l’interface graphique du Raspberry Pi. On y
trouve les éléments suivants :
>> LibreOffice Base : application de bases de données, équivalent de Microsoft
Access
>> LibreOffice Calc : application de tableur, équivalent de Microsoft Excel
>> LibreOffice Draw : application d’illustrations vectorielles, permettant
de produire des images redimensionnables de grande qualité pouvant
être exploitées sous la forme de cliparts dans d’autres programmes
LibreOffice
>> LibreOffice Impress : application de présentation, équivalent de Microsoft
PowerPoint
>> LibreOffice Math : Outil permettant de mettre en forme des formules
mathématiques, équivalent de Microsoft Equation Editor
>> LibreOffice Writer : traitement de texte, équivalent de Microsoft Word
(figure 9.2)

Figure 9.2 LibreOffice Writer sous Raspberry Pi

144/ Chapitre 9 : Le Raspberry Pi comme machine de productivité


Par défaut, LibreOffice enregistre et charge ses fichiers au format ODF (Open
Document Format). Il s’agit d’un format standard et libre de droits pris en charge
par la majorité des suites bureautiques, y compris la dernière version de Microsoft
Office.
À l’enregistrement d’un fichier dans LibreOffice, il est possible d’ouvrir un
menu déroulant dans la boîte de dialogue Enregistrer Sous pour modifier le for-
mat. Sous File Type, vous pouvez sélectionner un grand nombre de formats, dont
certains sont compatibles avec d’anciennes versions de Microsoft Office. Si vous
partagez vos fichiers créés dans LibreOffice, n’oubliez pas de changer le format
afin que tout le monde puisse les exploiter. Vous pouvez également tenter de
convaincre vos collaborateurs d’installer LibreOffice sur leurs machines. Il est
disponible gratuitement pour Linux, Windows, et OS X.

Édition graphique avec Gimp


Bien que puissante, la suite LibreOffice demande à être complétée dans le
domaine de l’édition d’images. Si Draw est très efficace pour les travaux d’illus-
tration, il ne permet cependant pas de modifier les photos numériques. Le format
bitmap de ces dernières est très différent du format vectoriel pour lequel Draw
a été conçu.
Pour L’édition graphique, l’un des meilleurs outils disponibles sous Linux s’ap-
pelle Gimp (GNU Image Manipulation Program). Son interface semblable à celle
de Photoshop d’Adobe, et ses puissantes fonctionnalités en font l’un des projets
les plus populaires du monde open source (figure 9.3).
© Dunod – Toute reproduction non autorisée est un délit.

Figure 9.3 Gimp sous Raspberry Pi

Édition graphique avec Gimp /145


Sur la plupart des distributions pour le Raspberry Pi, Gimp doit être installé
par l’utilisateur en passant par le système des gestionnaires de paquets (voir
le ­chapitre 3). Gimp prenant une place conséquente sur la carte SD, il est donc
nécessaire de vérifier au préalable s’il y a assez de place avant de l’installer.

>_
Pour installer Gimp, ouvrez le terminal et saisissez la commande suivante :
sudo apt-get install gimp

Gimp faisant appel à trois fenêtres et non une seule, son utilisation peut
être un peu déconcertante au début. Par défaut la fenêtre de gauche contient
la Boîte à outils ; dans la fenêtre de droite, on trouve les options de Calques,
Canaux, et Dégradés, puis dans la fenêtre du milieu s’affiche l’image en cours
d’édition. Il y a autant de fenêtres centrales que d’images ouvertes simulta-
nément. En revanche, les fenêtres latérales, la Boîte à outils, les options de
Calques, Canaux et Gradients, restent uniques. Il est possible de simplifier
l’interface en optant pour le Mode fenêtre unique qui sera plus familier pour
les utilisateurs de Photoshop : pour l’activer, cliquez sur le menu Fenêtre puis
sélectionnez Mode fenêtre unique.
Par défaut, le manuel d’utilisateur de Gimp n’est pas installé; et c’est très
bien ainsi. Gimp est un outil puissant et son mode d’emploi prend beaucoup
de place sur la carte SD. Il est possible d’obtenir le manuel en appuyant sur la
touche F1 ou en cliquant sur Aide dans le menu Aide. Une version en ligne est
alors proposée.
Gimp est un outil très puissant qui nécessite beaucoup de mémoire. Son fonc-
tionnement sur le Raspberry Pi est donc assez lent, mais tout à fait acceptable.
Avec des photos de grande taille toutefois, il est possible que davantage de
patience soit nécessaire. Augmenter la quantité de mémoire disponible pour le
GPU peut améliorer les performances (voir le chapitre 6 pour les détails de cette
manipulation).
L’enregistrement des fichiers peut se faire sous un grand nombre de formats.
Si le fichier doit être édité à nouveau, le format propriétaire Gimp XCF, utilisé
par défaut, convient. Il conserve les métadonnées intactes, utilise un format de
compression sans perte pour une qualité d’image optimale, et prend en charge
les images à plusieurs niveaux de calques.
Si l’image doit être mise en ligne ou partagée avec des tiers, il est recommandé
d’utiliser un format plus répandu comme JPG ou PNG. Pour enregistrer un fichier
sous un format différent, sélectionnez l’option Exporter du menu Fichier au lieu
de l’option Enregistrer (figure 9.4). Cela permet de choisir le type de format de
fichier parmi un large éventail.

146/ Chapitre 9 : Le Raspberry Pi comme machine de productivité


© Dunod – Toute reproduction non autorisée est un délit.

Figure 9.4 Exportation d’un fichier à partir de Gimp


Programmation
3
du pi

/> chapitre 10 151


Introduction à Scratch

/> chapitre 11 167


Introduction à Python

/> chapitre 12 191


Minecraft Pi Edition
© Dunod – Toute reproduction non autorisée est un délit.

Édition graphique avec Gimp /149


/> Chapitre
Introduction
à Scratch
10

Jusqu’ici, nous avons appris à utiliser des programmes pour le Raspberry Pi


écrits par d’autres, alors que l’objectif principal du projet Raspberry Pi est de
permettre aux utilisateurs, y compris aux enfants, d’écrire leurs propres pro-
grammes. La Fondation Raspberry Pi s’emploie à ce que cet appareil soit reconnu
comme un outil éducatif destiné à tous les âges.
Pour atteindre cet objectif, il est essentiel que les jeunes enfants puissent eux
aussi avoir la joie de créer leurs propres programmes, plutôt que de consommer
du code écrit par d’autres. La clé du problème s’appelle Scratch.

Introduction à Scratch
Scratch, langage créé par le groupe Lifelong Kindergarten, au Media Lab du
MIT (Massachusetts Institute of Technology) en 2006, est un dérivé de Squeak
et de Smalltalk, qui permet à chacun d’intégrer les concepts clés de la pro-
grammation. Les longues lignes de code, qui sont ardues et fastidieuses pour
les jeunes enfants, sont remplacées par un monde graphique où de simples
pièces de puzzle doivent être manipulées. Toutefois, Scratch développe la pen-
sée informatique et introduit les concepts clés à la base de tous les langages de
programmation.
© Dunod – Toute reproduction non autorisée est un délit.

Officiellement présenté comme un programme accessible à partir de huit ans,


il peut être mis entre les mains de programmeurs plus jeunes encore, s’ils sont
accompagnés. Scratch est bien plus puissant qu’il n’y paraît. Derrière son inter-
face bigarrée, pilotée à la souris, se cache un langage de programmation aux
fonctionnalités multimédia impressionnantes. Ceci explique pourquoi, parmi les
plus de six millions de projets Scratch partagés sur le site officiel du logiciel, la
majorité sont des jeux.
Encourager les enfants à étudier la manière de réaliser leurs propres jeux est
une excellente opportunité d’instiller un peu d’apprentissage dans leurs activi-
tés récréatives. L’interface conviviale de Scratch et sa remarquable gestion des
concepts fondamentaux de la programmation évitent aux enfants la ­frustration

Introduction à Scratch /151


d’une courbe d’apprentissage trop brutale. Qui plus est, l’enseignement de
Scratch pose des fondements solides pour aborder ensuite des langages plus
polyvalents tels que Python (voir le chapitre 11).
Mais avant de passer à un autre langage, il est à noter que Scratch est plus qu’un
environnement destiné à créer des jeux. On y produit des présentations et des
dessins animés interactifs. On peut également l’interfacer avec des capteurs ou
des moteurs, grâce à l’ajout d’accessoires tels que les kits robotiques PicoBoard
et LEGO WeDO, ou bien en passant directement par le port GPIO du Raspberry Pi.
La distribution Raspbian comprend la version la plus récente de l’environne-
ment de développement Scratch disponible sous Linux. Si vous avez suivi les ins-
tructions jusqu’ici, vous êtes déjà prêt à l’utiliser.

Exemple n° 1 : Hello World !


La tradition veut que les personnes qui débutent l’apprentissage d’un nou-
veau langage informatique commencent par un programme très basique qui se
contente d’afficher une seule ligne de texte. La plupart du temps, le texte affi-
ché est « Hello World », si bien que l’on parle de « programme Hello World » pour
désigner le premier programme que l’on écrit quand on étudie un langage de
programmation. Nous respectons ici cette tradition, mais ce n’est que le premier
pas pour apprendre à créer ses propres programmes.
À la différence de bien des langages, Scratch ne s’attend pas à ce que l’on
apprenne par cœur les noms des commandes telles que print ou inkey$. Pour
éviter cela, tout, ou presque, est fait par glisser-déposer, en organisant des blocs
de code en structures logiques.

Figure 10.1 Interface principale de Scratch

152/ Chapitre 10 : Introduction à Scratch


Pour commencer, lancez Scratch qui se trouve sur dans le menu Programma-
tion. Après quelques instants, la fenêtre principale apparaît (figure 10.1). Si elle
est mal centrée ou trop petite, passez en plein écran.
L’interface de Scratch se compose de plusieurs volets. Sur la gauche se trouve
la palette de blocs, qui contient tous les différents blocs de code exploitables
pour créer un programme. En bas à droite se trouvent les objets, également
appelés sprites, ainsi que les contrôles en rapport avec la scène où ils appa-
raissent. Cette dernière se trouve en haut à droite de la fenêtre. C’est là que se
visualise le programme. Enfin, c’est dans le panneau du milieu que se construit
le programme.
Pour aider au démarrage, dès l’ouverture, un projet Scratch est en place,
comprenant une scène vide et un seul sprite. Le projet attend maintenant
qu’un programme soit créé. D’ailleurs, si on clique sur le drapeau vert en haut
à droite de la fenêtre, rien ne se produit. Scratch attend qu’on lui dise ce qu’il
doit faire.
Pour créer le programme « Hello World ! », il faut faire passer la palette de
blocs en mode Apparence, en cliquant sur le bouton Apparence. En parcou-
rant la liste des blocs, on remarquera que l’un d’entre eux porte l’inscription
dire Salut!. Cliquez sur ce bloc et déposez-le sur le volet du milieu intitulé
Scripts. Si vous voulez modifier le texte affiché et sacrifier à la tradition en
suivant l’exemple de générations de codeurs, cliquez sur le bloc et modifiez-le
pour qu’il affiche Hello World ! (figure 10.2). Vous pouvez supprimer les
blocs en faisant un clic droit puis en choisissant supprimer dans le menu
contextuel.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 10.2 Premier bloc placé dans un programme Scratch

Exemple n° 1 : Hello World ! /153


Si vous cliquez sur le drapeau vert, cela ne produira aucun résultat. Bien que
Scratch sache qu’il doit faire dire quelque chose au sprite en forme de chat, il ne
sait pas quand. Cette action nécessite un bloc déclencheur (trigger). On peut le
trouver dans la section Contrôle de la palette des blocs.
Cliquez sur le bouton Contrôle et déposez le premier bloc portant l’inscription
quand [drapeau] pressé, puis placez-le juste avant la brique dire de couleur
violette (figure 10.3). S’il est déposé assez près du bloc déjà en place, les deux
devraient s’imbriquer comme les morceaux d’un puzzle.

Figure 10.3 Bloc de la section Contrôle associé à un bloc de la section Apparence dans Scratch

Ce concept, qui consiste à mettre en relation plusieurs blocs ensemble, est le


cœur de Scratch. Si l’on observe le bloc Contrôle qui vient d’être placé, on consta-
tera qu’il est dépourvu de connecteur sur le dessus. C’est le signe qu’il n’est pas
possible d’empiler de nouveaux blocs au-dessus. En effet, ce bloc de contrôle, qui
est conçu pour déclencher directement une série d’autres blocs, doit nécessaire-
ment être placé au sommet de la pile. En revanche, le bas du bloc dire possède
un connecteur qui peut s’assembler sur le haut d’autres blocs. Cela indique qu’il
est possible d’ajouter d’autres blocs en dessous.
Une fois que les deux blocs sont en place, cliquez à nouveau sur le drapeau vert
en haut à droite de la fenêtre. Cette fois-ci, une bulle apparaît près de la bouche
du chat (figure 10.4) et le programme Hello World ! est terminé.
Avant de passer à l’exemple suivant, il est nécessaire de prendre le temps
d’enregistrer le travail en passant par le menu Fichier. Scratch a été conçu pour
ne gérer qu’un projet à la fois. Si un nouveau projet est créé, le projet en cours
sera fermé pour faire de la place. Ne vous inquiétez pas si vous oubliez tout cela

154/ Chapitre 10 : Introduction à Scratch


au moment de créer un nouveau projet. Si des modifications n’ont pas été enre-
gistrées, Scratch vous demandera s’il faut les sauvegarder avant de fermer le
­programme.

Figure 10.4 Exécution du programme Hello World ! en Scratch

Exemple n° 2 : animation et sons


L’exemple précédent relève de la tradition, mais il n’est pas particulièrement
enthousiasmant. Il ne permet pas de démontrer la véritable puissance de Scratch
qui réside dans ses capacités multimédias et son système de gestion des sprites.
Scratch est particulièrement efficace pour les animations simples qui peuvent
fournir la base d’un jeu interactif.
Pour commencer, il faut créer un nouveau projet, soit en relançant le programme,
soit en sélectionnant Nouveau dans le menu Fichier. Comme pour tous les nouveaux
© Dunod – Toute reproduction non autorisée est un délit.

projets, Scratch place un sprite par défaut ; c’est celui-ci que vous allez contrôler.
Dans Scratch, pour contrôler une simple animation, on utilise la section Mou-
vement de la palette de blocs. C’est la section visible par défaut lorsqu’un nou-
veau projet est créé. Déposez le bloc avancer de 10 pas dans la zone de script.
Comme son nom l’indique, ce bloc commande au sprite sélectionné d’avancer
de 10 pas dans la direction où il se trouve. Par défaut, les sprites de Scratch sont
toujours orientés au départ vers la droite. Le bloc avancer de 10 pas déplace
donc le sprite de 10 pas vers la droite.
Dix pas, ce n’est pas beaucoup, et vous allez donc augmenter cette valeur en
passant de 10 à 30. On doit maintenant pouvoir lire sur le bloc avancer de 30 pas.
C’est bien, mais un chat se déplaçant vers la droite n’est pas si intéressant que cela,

Exemple n° 2 : animation et sons /155


et vous allez donc cliquer sur le bouton Sons puis glisser le bloc jouer le son
miaou dans la zone de script et le connecter sous le bloc avancer. Pour que le sprite
conserve cette position pendant quelques instants, on ajoute un bloc attendre une
secondes depuis la palette des contrôles. Sans cela, le chat n’apparaîtrait qu’une
fraction de seconde entre les deux positions.
Pour permettre au programme de s’exécuter plusieurs fois sans faire disparaître le
chat dans les coulisses, on ajoute un autre avancer de 10 pas sous le bloc attendre
une secondes et on modifie sa valeur à -30 pas. Scratch permet, et c’est heureux,
d’utiliser des valeurs négatives. Si une valeur de 30 déplace le sprite d’une certaine
distance vers la droite, -30 le déplacera de la même distance en sens opposé.
Enfin, pour terminer le programme, depuis la palette des contrôles, ajoutez
le bloc quand [drapeau] pressé tout en haut des blocs de la zone de script
(figure 10.5). En cliquant sur le drapeau vert en haut à droite de la fenêtre, on
lance le programme. Assurez-vous d’avoir connecté des haut-parleurs ou un
casque audio pour bien profiter de l’action !

Figure 10.5 Programme d’animation terminé dans Scratch

Vous pouvez développer ce petit programme d’animation de bien des manières.


Grâce à l’option Nouvel objet, juste sous la scène, sur la droite de la fenêtre de
Scratch, on peut ajouter de nouveaux sprites qui se déplacent et émettent des
sons de manière indépendante. Si on y ajoute un bloc dire, comme dans le pre-
mier exemple, ou un bloc penser à, très similaire, mais qui crée une bulle de
réflexion plutôt que de parole, on obtient une bande dessinée interactive.
Mais plus encore, avec ce simple exemple, on parvient déjà à enseigner d’impor-
tants concepts de programmation. Bien que composé de cinq blocs seulement, on

156/ Chapitre 10 : Introduction à Scratch


voit le mouvement des sprites en distances positives et négatives, la lecture des
sons, et le concept de délai dans un programme. On peut ajouter un autre concept
encore, mais attention aux oreilles sensibles ! Essayons d’ajouter depuis la palette
des contrôles un bloc répéter indéfiniment (figure 10.6). On ajoute ainsi une
boucle au programme, qui tourne ainsi de manière répétitive, sans fin ou presque,
puisqu’il suffira, pour la plus grande joie de vos oreilles, de cliquer sur le bouton
rouge stop, en haut de la scène, pour qu’il s’arrête. On peut simplement glisser ce
bloc entre les blocs quand [drapeau] pressé et avancer de 30 pas pour ajouter
automatiquement les blocs déjà en place à la boucle, ce qui évite d’avoir à tous les
supprimer pour recommencer le programme depuis le début.

Figure 10.6 Ajout d’une boucle infinie à une simple animation Scratch

Exemple n° 3 : un simple jeu


© Dunod – Toute reproduction non autorisée est un délit.

On l’a vu, Scratch peut créer de simples animations, mais il est également capable
de réagir à des événements, comme la pression de touches du clavier, ce qui per-
met une certaine interactivité. En combinant certains contrôles d’animation avec
le programme précédent, il est possible de créer un jeu simple, et à cette occasion,
d’introduire les concepts de collision de sprites, d’instructions conditionnelles, et
d’entrée.
Pour cet exemple, il faut démarrer un nouveau projet, en n’oubliant pas d’enre-
gistrer l’exemple précédent, si ce n’est déjà fait. Commençons par glisser un bloc
avancer de 10 pas dans la zone de script. Cette fois, au lieu de dire aux blocs de
code de s’exécuter quand on clique sur le drapeau, c’est le bloc de la palette des
contrôles quand espace est pressé qui sera placé au-dessus du bloc avancer.

Exemple n° 3 : un simple jeu /157


Comme son nom l’indique, le bloc quand espace est pressé est en attente
d’entrées provenant de l’utilisateur. Ici, il attend une pression sur la barre d’es-
pace. Cet événement déclenche l’exécution de la liste de blocs. Ce bloc est opé-
rationnel en permanence et si vous appuyez maintenant sur la barre d’espace, le
sprite obéira aux instructions et se déplacera de 10 pas vers la droite.
Il y a une autre différence importante entre le bloc quand espace est pressé
et le bloc quand [drapeau] pressé : on peut modifier le premier bloc. Cliquez sur
le bouton avec une flèche pointant vers le bas, à côté du mot espace pour voir la
liste de toutes les touches que ce bloc peut écouter. Sélectionnez flèche droite
pour transformer le bloc comme suit : quand flèche droite est pressé.
Si on ne peut se déplacer que dans une seule direction dans le jeu, la partie
va tourner court. Déposez un nouveau quand espace est pressé dans la zone
de script. Il ne pourra pas être connecté à la liste déjà en place, car elle ne peut
contenir qu’un seul élément déclencheur. Démarrez donc une nouvelle liste un
peu plus bas, puis comme précédemment, utilisez le bouton avec la flèche près
du mot espace pour modifier le bloc, mais cette fois en le transformant en quand
flèche gauche est pressé. Enfin, retournez dans la palette des mouvements et
connectez un bloc avancer de 10 pas sous le bloc quand flèche gauche est
pressé et modifiez-le ainsi : avancer de -10 pas.
Si maintenant vous pressez les touches droite et gauche, vous verrez le chat
se déplacer en fonction de vos entrées. (figure 10.7). Une pression sur la flèche
gauche déplace le chat de 10 pas vers la gauche (bien que du point de vue de
Scratch, il se déplace de -10 pas vers la droite), et une pression sur la flèche droite
déplace le chat de 10 pas vers la droite.

Figure 10.7 Utilisation des blocs d’entrée pour contrôler les mouvements


d’un sprite dans Scratch

158/ Chapitre 10 : Introduction à Scratch


Maintenant que nous pouvons déplacer le sprite, il est temps de lui donner
quelque chose à faire. Comme il s’agit d’un jeu simple, le but doit rester simple
et ce sera d’obtenir de la nourriture. Cliquez sur le bouton Choisir un nouvel
objet dans un dossier : il s’agit du deuxième bouton au-dessus de la palette
des sprites, qui est en bas à droite de la fenêtre principale de Scratch. Si vous
n’êtes pas certain du bouton, faites passer le curseur de la souris au-dessus
des boutons pour faire apparaître une infobulle.
Une boîte de dialogue vous demande de sélectionner un sprite : faites un
double-clic sur le dossier Things (Choses) et faites un double-clic sur le sprite
fruit-platter qui représente un plateau de fruits (figure 10.8). Cette action crée
une nouvelle entrée dans la palette des sprites, ce qui permet de contrôler un
nouvel objet dans le jeu.

Figure 10.8 Ajout d’un sprite plateau de fruits au projet de jeu Scratch


© Dunod – Toute reproduction non autorisée est un délit.

Astuce

Le langage Scratch gère naturellement le multithreading et


partiellement l’orientation objet. Cela signifie que chaque
objet du programme, y compris les sprites, peut avoir son
propre code et que chaque section de code s’exécute de
manière simultanée, indépendamment des autres blocs.
Avec un peu de savoir-faire, ces caractéristiques permettent
de réaliser des programmes assez complexes.

Exemple n° 3 : un simple jeu /159


Par défaut, lorsqu’un sprite est ajouté au projet, il apparaît en plein au milieu
de la scène, si bien que le chat qui est présent va donc être masqué. Cliquez sur le
nouveau sprite et déplacez-le à la droite du chat pour régler le problème.
Même après avoir déplacé le plateau de fruits, il semble encore bien trop gros
pour servir de repas à notre chat. Cliquez sur le bouton Réduire l’objet, en haut à
gauche de la scène, qui représente quatre flèches pointant vers l’intérieur. Si vous
n’êtes pas sûr du bouton, survolez chaque icône pour avoir une courte description
de leur fonction.
En cliquant sur le bouton Réduire l’objet, on donne au pointeur de souris l’ap-
parence de l’icône du bouton. Le fait de cliquer sur le bouton Faire grandir l’objet
produit exactement l’effet inverse. À l’aide de ce nouveau curseur cliquez sur le
sprite plateau de fruits pour le réduire. Si on continue à cliquer, le sprite rétrécit
encore. Après avoir atteint une taille raisonnable, cliquez en dehors de la scène
et le curseur retrouvera sa forme habituelle. Il est maintenant possible de glisser
le plateau de fruits plus à droite sur la scène.
Essayez maintenant les touches flèche droite et flèche gauche pour déplacer le
chat vers le plateau de fruits. Comme vous pouvez le voir, les deux sprites se ren-
contrent, mais rien ne se produit. C’est tout simplement parce que le programme ne
contient aucune instruction concernant cette situation appelée collision de sprites.
L’utilisation d’un nouveau type de bloc permet de corriger cela : les blocs capteurs.
Le sprite plateau de fruits étant actif (son image devrait apparaître tout en
haut du volet de scripts, dans le cas contraire, faites un double-clic sur le sprite
sur la scène), sélectionnez la section Capteurs dans la palette de blocs. Faites
glisser le bloc touché? dans la zone de script.
Ce bloc peut être modifié tout comme le bloc quand espace est pressé qui
avait été utilisé pour contrôler les déplacements du chat. Cliquez sur le bouton
avec la flèche vers le bas et choisissez Objet1 (il s’agit du chat). Ce bloc sera main-
tenant activé lorsque les deux sprites entreront en collision.

Astuce

Il est possible de renommer un sprite en cliquant dans la


zone de texte à droite de son image dans le volet de scripts.
En choisissant des noms significatifs, comme Chat, Fruits,
etc., on comprendra bien ce qui se passe dans le programme.

Prêtez attention à la forme du bloc Objet1 touché?. Comme vous le constatez,


il n’a de connecteur ni en haut ni en bas, et il est en forme de losange, c’est-à-dire
la forme utilisée pour les points de décision dans les logigrammes. Ceci n’est pas
un hasard, car pour fonctionner, la majorité des blocs Capteurs doivent être insé-
rés dans un bloc Contrôle.
Basculez alors en mode Contrôle dans la palette des blocs et cherchez le bloc si.
Vous remarquerez qu’il a la forme d’un C écrasé et bosselé, ainsi qu’une empreinte en

160/ Chapitre 10 : Introduction à Scratch


forme de losange, la même forme que celle du bloc Objet1 touché?. Déplacez le bloc
si dans la zone de script, puis déplacez le bloc Objet1 touché? sur l’empreinte en
forme de losange. Cela donne un bloc à deux couleurs sur lequel on peut lire si Objet1
touché?. À ce moment, le nom Objet1 aura peut-être changé, si vous l’avez renommé.
Cela représente un si conditionnel dans le programme. Lorsqu’il atteint ce
point, le code qui suit ne sera exécuté que si la condition est remplie. Dans notre
cas, il faut que Objet2 soit touché par Objet1. En associant les opérateurs logiques
et, ou et non depuis la palette des opérateurs, il est possible de mettre en place
des scénarios complexes.

Logique Booléenne
C’est George Boole qui a donné son nom à la logique booléenne, ou algèbre boo-
léenne, qui est fondamentale pour comprendre le fonctionnement d’un ordinateur.
Le langage Scratch comprend trois opérateurs de logique booléenne : et, ou et non.
L’opérateur et nécessite que deux entrées (dans le cas de Scratch, des blocs
Capteurs) soient vraies avant que son résultat ne soit considéré comme vrai. Si
l’une des entrées, ou les deux entrées, sont fausses, son résultat sera faux. Ce
n’est que lorsque les deux entrées sont vraies que le résultat sera vrai. On peut,
par exemple, utiliser cet opérateur pour vérifier si un sprite touche deux autres
sprites.
L’opérateur ou nécessite que l’une ou l’autre de ses entrées soit vraie. Si au moins
l’une des entrées est vraie, le résultat sera vrai. C’est un moyen pratique de réuti-
liser du code. Par exemple, si vous avez un certain nombre de sprites mortels pour
le sprite principal, vous pouvez n’utiliser qu’un seul bloc de code avec un opérateur
ou qui se déclenchera pour n’importe quel contact avec l’ennemi.
Enfin, l’opérateur non est aussi appelé l’inverseur. Quelle que soit son entrée, son
résultat sera à l’opposé. Si son entrée est vraie, son résultat sera faux ; si son entrée
est fausse, son résultat sera vrai.

Depuis la palette de blocs, dans le mode Apparence, déplacez un bloc dire


salut pendant 2 secondes au centre du bloc conditionnel si Objet1 touché?.
© Dunod – Toute reproduction non autorisée est un délit.

Changez salut en Ne nous mangez pas !, puis ajoutez un bloc Contrôle attendre
1 secondes et passez sa valeur à 2. Ajouter un bloc quand espace est pressé
en haut du script, en prenant soin de modifier la valeur pour obtenir quand flèche
droite est pressé. Enfin, déposez un bloc cacher depuis la palette Apparence à
la fin de la boucle pour arriver au résultat illustré à la figure 10.9.
Faites un double-clic sur le sprite du chat sur la scène afin de pouvoir éditer son
script, ce qui fait disparaître le script créé pour le plateau de fruits. Il n’est pas
loin, et pourra être rappelé quand il sera nécessaire de le modifier.
Déposez un nouveau bloc si depuis la palette Contrôles, ainsi qu’un autre
bloc de capteur touché?. Cette fois, modifiez le bloc capteur pour arriver à un
ensemble qui donne si fruits touché? (le sprite du plateau de fruits a été

Exemple n° 3 : un simple jeu /161


renommé en fruits). Dans ce bloc, insérez un bloc de contrôle attendre une
secondes dont vous modifierez la valeur à 2 ; puis insérez un nouveau bloc appa-
rence dire salut pendant 2 secondes avec comme nouveau message miam
miam !. Enfin, déplacez tout le groupe de blocs pour le connecter au bas du bloc
qui débute par quand flèche droite pressé sous le bloc avancer de 10 pas.
L’ensemble du code devrait ressembler au résultat illustré à la figure 10.10.

Figure 10.9 Contrôle d’un plateau de fruits avec un bloc si en Scratch

Figure 10.10 Code complet pour un jeu en Scratch avec deux sprites

162/ Chapitre 10 : Introduction à Scratch


Si vous déplacez le chat en direction du plateau de fruits avec la touche flèche
droite, le jeu démarre. Quand le chat rejoint le plateau de fruits, le dialogue com-
mence, puis le plateau de fruits disparaît.
Même si cet exemple permet d’introduire efficacement certains concepts clés de
programmation, son codage est loin d’être optimisé. Scratch comprend également
un système de diffusion de messages qui permet à du code associé à un objet de
communiquer avec le code d’un autre objet. Ceci permet d’obtenir des collisions
bien plus intéressantes et dont l’effet ne dépend pas d’un timing artificiel.
Pour tester la fonction de diffusion, essayez d’utiliser les blocs envoyer à
tous et quand je reçois qui se trouvent dans la palette Contrôle. Tout message
inséré dans un bloc de diffusion peut déclencher du code associé à n’importe quel
autre objet doté du bloc quand je reçois. Cela signifie qu’il est possible de relier
plusieurs objets et leur code.

Interfaçage de Scratch avec du matériel


Même si, avant tout, Scratch a été conçu pour être facile à apprendre, il n’en
reste pas moins un langage de programmation parfaitement fonctionnel. Il est
notamment capable de contrôler du matériel électronique, typiquement grâce
au port GPIO du Raspberry Pi. Ce port, placé sur le bord supérieur de tous les
Raspberry Pi, permet d’interfacer toutes sortes de matériels externes, depuis
les cartes additionnelles jusqu’aux interrupteurs en passant par les LED (voir le
chapitre 14).
Pour dialoguer avec le port GPIO, Scratch a besoin que l’on active un serveur
GPIO. Ceci peut être réalisé de deux manières : soit en cliquant sur le menu Édi-
tion et en sélectionnant Start GPIO server, soit en le lançant depuis un pro-
gramme Scratch en diffusant le message gpioserveron, puis en l’arrêtant avec
le message gpioserveroff.
Une fois le serveur GPIO activé, chaque broche du GPIO peut être contrô-
lée individuellement. Pour cela, il faut connaître son mode de numérota-
tion et ne pas se fier à la numérotation physique. Le chapitre 14 présente un
diagramme détaillé des broches. Par exemple, la broche n° 11 est commandée
© Dunod – Toute reproduction non autorisée est un délit.

par Scratch en faisant référence à la broche GPIO 17, comme on peut le voir


sur le diagramme.

Avertissement

Le Raspberry Pi peut être endommagé si certaines broches


du GPIO sont connectées par erreur, ou si l’on utilise du
matériel fonctionnant avec une tension supérieure à celle
du Pi, 3,3 V. Assurez-vous d’avoir toujours bien identifié les
numéros des broches et leurs tensions avant de connecter
quoi que ce soit au GPIO.

Interfaçage de Scratch avec du matériel /163


Pour tester l’utilisation du GPIO en Scratch, lisez d’abord le chapitre 14 et
construisez le circuit décrit dans la section « Sortie GPIO : faire clignoter une
LED ». Mais au lieu d’utiliser Python, construisez un nouveau projet Scratch avec
les blocs suivants (figure 10.11) :
quand drapeau pressé
envoyer à tous gpioserveron
envoyer à tous config17out
répéter indéfiniment
  envoyer à tous gpio17on
  attendre 2 secs
  envoyer à tous gpio17off
  attendre 2 secs

Figure 10.11 Faire clignoter une LED avec Scratch

Lancez ce programme en cliquant sur le drapeau et vous verrez la LED connec-


tée à la broche n° 11 (physique), c’est-à-dire la broche GPIO 17, clignoter à un inter-
valle de 2 secondes. Si ce n’est pas le cas, vérifiez votre câblage (en faisant bien
attention à la numérotation des broches, notamment la connexion de la LED à la
broche n° 11 physique du GPIO) et la polarité de la LED.
Pour faire tester les entrées, allez au chapitre 14 et construisez le circuit décrit
dans la section « Entrée GPIO : lecture de l’état d’un bouton ». Pour votre pro-
gramme Scratch, utilisez les blocs suivants (figure 10.12) :
quand drapeau pressé
envoyer à tous gpioserveron
envoyer à tous config18in
répéter indéfiniment
  si valeur du capteur pgio18 = 0
  dire Bouton enfoncé ! Pendant 2 secondes

164/ Chapitre 10 : Introduction à Scratch


Lancez ce programme en cliquant sur le drapeau. À chaque fois que vous pres-
serez le bouton, vous verrez votre message à l’écran. Pour développer encore
votre savoir-faire, essayez de combiner les deux programmes : faites en sorte que
la LED ne clignote que lorsque le bouton est pressé.

Figure 10.12 Lecture d’une entrée avec Scratch

Pour aller plus loin


Ce chapitre est une brève introduction au langage Scratch, et il est donc loin
d’être exhaustif. Nous avons également été un peu trop bavards pour nos jeunes
lecteurs qui ont tendance à apprendre plus rapidement quand leurs leçons com-
prennent beaucoup d’images en couleur.
La section Support du site Web officiel de Scratch, qui est hébergé par le MIT à
© Dunod – Toute reproduction non autorisée est un délit.

scratch.mit.edu/help/, comprend un lien vers un document en anglais, au format


PDF, intitulé Getting Started Guide. Ce guide, qui est un excellent outil pédago-
gique, décrit dans un langage adapté aux enfants la manière d’apprendre Scratch
(une version française de ce guide, intitulée Pour bien démarrer, est disponible à
scratchfr.free.fr). Cette expérience pédagogique peut être enrichie quand on la
combine avec Scratch Cards, document téléchargeable qui contient des cartes à
imprimer expliquant chacun des types de blocs que l’on trouve dans Scratch (une
version française de ces cartes est également disponible à scratchfr.free.fr). Vous
noterez cependant que ces documents se basent sur une version de Scratch qui
est plus récente que celle qui est présente sur la distribution Raspbian ; même si
les techniques sont identiques, l’interface utilisateur a été modifiée.

Pour aller plus loin /165


Le MIT gère également un forum de discussion pour les utilisateurs de Scratch,
ce qui permet aux passionnés de ce logiciel d’échanger leurs expériences et de
partager leurs solutions aux problèmes courants. L’adhésion à ce forum est gra-
tuite et le site fonctionne bien avec le navigateur Web inclus dans la distribution
Raspbian. Les forums sont accessibles à : scratch.mit.edu/discuss.
Pour en apprendre plus sur l’utilisation du port GPIO en Scratch, consultez
le site raspberrypi.org et lisez la documentation officielle accessible à partir du
menu d’aide (Help). Vous y trouverez des exemples d’interfaçage du GPIO, de liai-
sons de programmes Scratch avec d’autres logiciels tournant sur le Pi, et même
des exemples d’utilisations de matériels additionnels, comme le Sense HAT (décrit
au chapitre 16), depuis l’environnement de programmation.
Le moyen le plus facile de développer vos compétences en Scratch consiste à
jouer. Il faut penser aux tourneurs de platines pour comprendre l’étymologie de
Scratch. Quand un DJ fait tourner un disque, l’aiguille crée un crissement qui fait
« scratch ». Tout comme un DJ remixe de vieilles chansons pour en tirer une nou-
velle composition, on ne peut qu’encourager les fans de Scratch à partager leurs
créations sur le site Web officiel. Cela permettra à d’autres de télécharger, scruter,
modifier, et remixer à loisir. Le site officiel Scratch propose actuellement plus de
six millions de programmes Scratch. C’est une situation idéale pour apprendre
comment Scratch est utilisé pour créer des projets, et pour partager des idées
avec les autres. Vous trouverez une liste des projets les plus récents à scratch.
mit.edu/exploreprojects/all. Il faut toutefois être conscient que les derniers pro-
grammes Scratch sont écrits avec la version la plus récente de Scratch, qui est
la version 2.0. Cette nouvelle version est incompatible avec la version proposée
avec le Raspberry Pi. Cherchez les projets écrits en Scratch 1.4 pour vous assurer
de leur compatibilité avec votre Raspberry Pi.
/> Chapitre
Introduction
à Python
11

Le Raspberry Pi tire la première partie de son nom d’une vieille tradition qui
consiste à utiliser des noms de fruits (Raspberry signifie framboise en anglais)
pour baptiser les nouveaux ordinateurs (pour mémoire mentionnons Apple,
Blackberry, mais aussi, des marques moins connues comme Acorn, Apricot et
Tangerine). La seconde partie de son nom est une référence au langage de pro-
grammation Python.

Présentation de Python
Le développement de ce langage souple et puissant a débuté vers la fin des
années 80 au National Research Institute for Mathematics and Computer Science.
Guido van Rossum cherchait à créer un successeur au langage ABC. Dès ses
débuts, le succès de Python a été croissant, en raison d’une syntaxe claire et
expressive qui garantit un code lisible.
Python est un langage de haut niveau. Son code ressemble donc souvent à de
l’anglais, ce qui facilite sa mémorisation et la compréhension des instructions.
Il diffère en cela des langages de bas niveau, tels que l’assembleur, plus proche
du mode de « pensée » de l’ordinateur, mais quasiment impossible à comprendre
© Dunod – Toute reproduction non autorisée est un délit.

pour un être humain sans une certaine expérience. Ces caractéristiques (langage
de haut niveau et syntaxe claire) en font un outil précieux pour quiconque désire
apprendre la programmation. C’est d’ailleurs le langage préconisé par la Fonda-
tion Raspberry Pi pour ceux qui veulent passer de Scratch (voir le chapitre 10) à
de la programmation plus concrète.
Python est publié sous licence open source ; on peut donc le télécharger gra-
tuitement sur tous les ordinateurs tournant sous Linux, OS X et Windows. Cette
interopérabilité signifie que tout code Python écrit sur le Raspberry Pi sera
exploitable sur presque tous les autres systèmes d’exploitation (sauf si le pro-
gramme fait appel à du matériel propriétaire, comme le port GPIO ; pour savoir
comment Python s’interface avec ce port, reportez-vous au chapitre 14).

Présentation de Python /167


Exemple 1 : Hello World !
Comme vous l’avez découvert au chapitre 10, le moyen le plus simple de com-
mencer avec un nouveau langage de programmation consiste à créer un pro-
gramme qui affiche à l’écran le texte « Hello World ! ». Avec Scratch, il suffisait de
déposer quelques blocs de code préfabriqués, mais dans Python il va falloir tout
écrire à la main.
Au fond, un projet Python n’est qu’un fichier texte, contenant des instructions
destinées à l’ordinateur. On peut d’ailleurs écrire ce fichier avec n’importe quel
éditeur de texte. Ceux qui aiment travailler devant leur console ou une fenêtre de
terminal peuvent utiliser Nano, par exemple. D’autres, préférant les interfaces
graphiques, pourraient utiliser Leafpad. Une autre solution encore, consiste à
coder dans un environnement de développement intégré ou IDE (Integrated Deve-
lopment Environment), comme IDLE, qui possède des fonctionnalités absentes
des éditeurs de texte standards et propres à l’écriture en Python. Parmi elles, la
vérification syntaxique, le débogage, et la possibilité d’exécuter un programme
sans quitter l’éditeur. Ce chapitre fournit des instructions sur la manière de créer
des fichiers Python avec l’éditeur IDLE, mais vous pouvez naturellement utiliser
l’éditeur de votre choix. Ce chapitre comprend également des instructions pour
exécuter vos programmes directement depuis le terminal, qui peut être utilisé en
complément de n’importe quel éditeur de texte ou IDE.
Pour commencer le projet « Hello World ! », il faut ouvrir Python 2 (IDLE) depuis
le menu Programmation dans l’interface graphique de la distribution Raspbian.
Si vous n’utilisez pas IDLE, créez un document vierge dans votre éditeur de texte
favori et passez directement au paragraphe suivant. IDLE s’ouvre par défaut en
mode Python Shell (figure 11.1). En conséquence, tout ce que vous saisirez sera exé-
cuté immédiatement. Si vous désirez démarrer un nouveau projet qui ne sera exé-
cuté que plus tard, dans le menu File (Fichier) choisissez New file (Nouveau fichier).

Attention

Il est possible, par inadvertance, de lancer Python 3 (IDLE) au


lieu de Python 2 (IDLE). Dans ce cas, la version chargée fera
appel au langage Python 3 qui a une syntaxe légèrement dif-
férente ; cela peut poser un problème de compatibilité avec
les programmes écrits en Python 2. Tous les exemples de ce
chapitre étant écrits en Python 2, vous devez donc bien faire
attention à charger Python 2 (IDLE) et non pas Python 3 (IDLE).

Une bonne pratique consiste à démarrer tous les programmes Python avec
une ligne appelée shebang. Elle tire son nom de ses deux premiers caractères
# et ! (le caractère dièse en anglais se nomme sharp et le point d’exclamation
bang) en tout début de ligne. Cette séquence s’adresse directement au système
d’exploitation pour qu’il sache où se trouve l’interpréteur Python. Bien que ce ne

168/ Chapitre 11 : Introduction à Python


soit pas absolument nécessaire quand les programmes s’exécutent depuis IDLE,
ou invoquent Python depuis le terminal, cela le devient lorsqu’un programme est
exécuté directement par l’appel de son nom de fichier.

Figure 11.1 Fenêtre du Shell Python IDLE

Pour être sûr que le programme tourne, quel que soit l’endroit où l’exécutable
Python a été installé, la première ligne du programme devrait être rédigée de la
© Dunod – Toute reproduction non autorisée est un délit.

manière suivante :
#!/usr/bin/env python
Cette ligne indique au système d’exploitation de lire la variable d’environnement
$PATH qui est l’emplacement où Linux stocke les fichiers qui peuvent être exécutés
en tant que programmes ; cette variable indiquant l’emplacement de Python, les
programmes devraient fonctionner avec toutes les distributions Linux livrées avec
le Raspberry Pi. La variable $PATH, qui contient une liste de répertoires où sont
stockés les fichiers exécutables, est utilisée pour localiser les programmes quand
on saisit leur nom dans la console ou depuis une fenêtre de terminal.
Pour afficher un message, on utilise l’instruction Python print. Comme son
nom l’indique, cette instruction affiche du texte sur un périphérique de sortie
(par défaut, l’écran de la console ou la fenêtre du terminal à partir duquel le

Exemple 1 : Hello World ! /169


­ rogramme est exécuté). Tout texte entre guillemets et suivi du mot print sera
p
affiché sur le périphérique de sortie par défaut. Saisissez la ligne suivante dans
votre nouveau projet.
print "Hello, World!"
Le programme complet devrait ressembler à ceci :
#!/usr/bin/env python
print "Hello, World!"
Si vous écrivez le programme dans IDLE, plutôt que dans un simple éditeur de
texte, vous aurez remarqué que le texte est en couleur (figure 11.2 ; les couleurs sont
notables grâce aux différentes nuances de gris dans l’édition papier). Cette fonction
appelée coloration syntaxique est propre aux environnements de développement
intégrés et aux éditeurs de textes les plus avancés. Certaines sections du code sont
affichées avec une couleur correspondant à leur fonction dans le code, ce qui amé-
liore la lisibilité et la compréhension. Cela facilite également le repérage des erreurs
de syntaxe, comme l’oubli d’un guillemet dans une commande print, ou l’oubli d’une
marque de commentaire quand on veut écrire une remarque. Pour un exemple aussi
court, cette fonction n’est pas vraiment nécessaire. Elle peut en revanche s’avérer
très précieuse pour repérer des erreurs dans des programmes plus longs.

Figure 11.2 Coloration syntaxique dans IDLE

170/ Chapitre 11 : Introduction à Python


Avant de lancer votre programme, enregistrez-le sous le nom helloworld.py
à l’aide du menu File. Avec IDLE, l’ajout de l’extension .py est automatique. Avec
un éditeur de texte, au moment de l’enregistrement, il faut saisir l’extension.py
à la main au lieu de .txt. Cette extension signale que le fichier contient du code
Python, bien que Python soit suffisamment intelligent pour exécuter le pro-
gramme s’il a été enregistré avec une extension différente.
Le programme sera lancé différemment selon qu’il a été écrit sous IDLE ou
un éditeur de texte. Sous IDLE choisissez simplement Run Module dans le
menu Run ou pressez la touche F5. Cela bascule IDLE en mode shell et exé-
cute le programme. Le message Hello, World! devrait apparaître en bleu à
l’écran (figure 11.3). Dans le cas contraire, vérifiez votre syntaxe ; assurez-vous
notamment d’avoir des guillemets au début et à la fin du message de la ligne
print.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 11.3 Exécution du programme helloworld.py dans IDLE

Si vous avez créé le programme helloworld.py dans un éditeur de texte,


il est maintenant nécessaire d’ouvrir une fenêtre de terminal à partir du menu
Accessoires. Si vous avez enregistré le fichier ailleurs que dans votre répertoire

Exemple 1 : Hello World ! /171


/home vous devez également utiliser la commande cd pour changer de répertoire
(voir le chapitre 3). Une fois dans le répertoire voulu, le programme peut être

>_
lancé en saisissant :
python helloworld.py

Le système d’exploitation comprend qu’il faut lancer Python puis charger le


programme helloword.py et l’exécuter. À la différence du shell Python de IDLE, la
fin du programme entraîne l’arrêt de Python et le retour à la fenêtre de terminal.
Toutefois, le résultat est le même : le message est envoyé sur la sortie par défaut
(figure 11.4).

Figure 11.4 Exécution du programme helloworld.py depuis le terminal

Créer des programmes Python exécutables


Normalement, la seule façon d’exécuter un programme Python est de dire au logi-
ciel Python d’ouvrir un fichier. Cependant, avec la ligne shebang au début du fichier,
il est possible d’exécuter le fichier sans avoir à invoquer Python au préalable. Cela
peut s’avérer utile si vous produisez vos propres utilitaires à lancer depuis le ter-
minal : une fois que son emplacement a été copié dans la variable d’environnement
$PATH, un programme fonctionnant sous Python peut être lancé en se contentant
de l’invoquer par son nom.

172/ Chapitre 11 : Introduction à Python


Linux doit tout d’abord savoir que les fichiers Python doivent être considérés
comme des exécutables (un attribut permet de considérer un fichier comme étant
un programme). Afin de protéger le système des virus qui circulent sur Internet,
cet attribut n’est pas accordé de manière systématique, de façon à ce que seuls
les fichiers exécutables soient lancés. Pour donner à helloworld.py l’attribut
­d’exécutable, il faut utiliser une commande chmod (décrite au chapitre 3) en sai-
sissant :
chmod +x helloworld.py
Essayez maintenant de lancer directement le programme en saisissant :
./helloworld.py
Bien que vous n’ayez pas invoqué le programme Python, le programme h ­ elloworld.py
devrait fonctionner exactement comme si la commande complète avait été saisie :
python helloworld.py. Mais le programme ne peut être lancé qu’en indiquant son
chemin complet : home/pi/helloworld.py ou bien à partir du répertoire actif avec
./ à la place du chemin. Pour permettre le lancement du fichier comme n’importe
quelle autre commande depuis le terminal, il faut le copier dans /usr/local/bin en
saisissant la commande suivante :
sudo cp helloworld.py /usr/local/bin/
Le préfixe sudo est nécessaire car, pour des raisons de sécurité, les utilisateurs
sans privilèges ne peuvent pas écrire dans le répertoire /usr/local/bin. Mainte-
nant que le fichier est placé dans /usr/local/bin, qui est un emplacement réper-
torié dans la variable $PATH, il peut être exécuté depuis n’importe quel répertoire,
simplement en l’appelant par son nom. Changez de répertoire et essayez de lancer
le programme en saisissant simplement :
helloworld.py
Pour rendre le fonctionnement de vos programmes personnels plus proches de celui
des utilitaires standards, vous pouvez les renommer et retirer l’extension.py. Par
exemple, pour le programme helloworld.py, vous pouvez saisir la commande suivante :
sudo mv /usr/local/bin/helloworld.py /usr/local/bin/helloworld
Une fois renommé, le programme peut être appelé en saisissant simplement
­helloworld dans la fenêtre du terminal ou depuis la console.
© Dunod – Toute reproduction non autorisée est un délit.

Exemple 2 : entrées, variables, et boucles


Même si le programme Hello World ! est une gentille petite introduction loin
d’être inutile, il n’est pas extraordinairement enthousiasmant. Par essence, il ne
présente que les bases, les concepts nécessaires à des programmes vraiment
utiles ou passionnants étant absents. Il n’en va pas de même de l’exemple que
nous allons aborder maintenant puisqu’il fait appel à des outils interactifs néces-
saires à un véritable programme Python.

Exemple 2 : entrées, variables, et boucles /173


Comme pour l’exemple précédent, un nouveau projet doit être ouvert dans
IDLE ou un éditeur de texte, et le programme commencera par la ligne shebang :
#!/usr/bin/env python
Comme cela a déjà été mentionné, cette ligne n’est pas absolument nécessaire,
sauf si le programme doit devenir exécutable. Toutefois c’est une saine habitude
à cultiver.
La ligne suivante sera une ligne de commentaire fournissant des éléments
contextuels, bien utiles lorsque le fichier sera rouvert a posteriori.
# Exemple 2 : Programme Python extrait du Guide du Raspberry Pi
Dans Python, tout ce qui est précédé du signe # (dièse) est considéré comme
commentaire, à l’exception de la ligne shebang (qui n’est présente qu’en entête de
programme). Quand Python trouve un commentaire, il l’ignore et passe à la ligne
suivante. Commenter un programme fait partie des bonnes pratiques. Sans cela,
il ne vous sera peut-être pas si facile de savoir ce à quoi correspond telle ou telle
partie de votre code dans six mois, même si aujourd’hui elle peut vous sembler
très claire. Les commentaires permettent également de faciliter la mise à jour du
code. Si vous décidez de le partager, ces mêmes commentaires aideront à com-
prendre à quoi correspond chacune des sections du code. Ni les commentaires, ni
la ligne shebang ne sont absolument nécessaires pour les programmes simples,
mais là encore, il s’agit d’une bonne habitude à prendre. Un commentaire peut
être sur sa propre ligne, comme dans l’exemple plus haut, ou en fin de ligne de
code. Dans ce cas Python exécutera la ligne jusqu’à ce qu’il rencontre le signe #.
Maintenant vous allez demander à l’utilisateur de saisir son nom, avec la ligne
suivante :
NomUtilisateur = raw_input("Quel est votre nom ?")
Voilà une ligne qui en fait plus qu’il n’y paraît. Sa première partie, NomUtilisateur =,
demande à Python de créer une nouvelle variable, c’est-à-dire un emplacement où
une information sera stockée, et qui sera appelé NomUtilisateur. Le signe égal dit
à Python que la variable sera du type de ce qui suivra. Mais ce qui suit n’est pas une
simple donnée, c’est une nouvelle fonction : raw_input. Cet outil est censé accepter
des chaînes de caractères (du texte) saisies depuis le clavier, et permettre l’affichage
d’un message sur la sortie par défaut, pour que l’utilisateur sache ce qu’il doit saisir.
Il permet également la simplification du code. S’il n’était pas capable d’afficher la
question, il serait nécessaire d’ajouter une ligne au-dessus avec l’instruction print.
N’oubliez pas de laisser un espace à la fin de la question. Sans cela la réponse de l’uti-
lisateur sera placée juste après le point d’interrogation, sans espace.

Attention

Si un utilisateur doit saisir du texte, il est recommandé de


toujours utiliser raw_input. Si, à sa place, la commande input
était utilisée seule, elle permettrait à des utilisateurs d'injec-
ter du code qui pourrait faire planter votre programme, ou
même le détourner de son usage.

174/ Chapitre 11 : Introduction à Python


Maintenant que le nom de l’utilisateur est bien en sécurité dans la variable
NomUtilisateur, le programme peut commencer à montrer son intelligence. On
salue l’utilisateur avec la ligne suivante :
print "Bienvenue dans ce programme,", NomUtilisateur
Cette ligne met en œuvre une fonction secondaire de la commande introduite
dans l’exemple 1 : la capacité d’afficher des contenus de variables. Cette com-
mande est scindée en deux parties : la première affiche tout ce qui se trouve entre
les deux guillemets. La deuxième virgule dit à la fonction print qu’elle devra affi-
cher davantage encore. La simple saisie du nom de la variable suffit à Python pour
comprendre qu’il doit afficher le contenu de la variable. Le tout donne un résultat
qui permet de s’adresser à l’utilisateur par son nom.
Ce programme va se comporter comme une simple, mais conviviale calculette.
Contrairement à l’exemple 1, il continuera de fonctionner jusqu’à ce que l’utili-
sateur l’arrête. Pour arriver à ce résultat il faut utiliser une boucle, comme dans
Scratch. On commence la boucle en saisissant les deux lignes suivantes :
Continuer = 1
while Continuer == 1:
La première ligne crée la variable Continuer et lui assigne la valeur 1. La deu-
xième ligne commence la boucle, et dit à Python que « tant que » (while en anglais)
la variable Continuer est égale à 1, la boucle de code est réitérée. Les lignes qui
suivront devront être indentées. Pour cela, on insère quatre espaces en début de
ligne. Ces espaces permettent à Python de savoir quelles sont les lignes qui font
effectivement partie de la boucle. Si vous utilisez IDLE, ces espaces sont insérés
automatiquement. Si vous utilisez un éditeur de texte, n’oubliez pas leur insertion.

Pourquoi == ?
Pour assigner une valeur à une variable, c'est un signe égal unique qui a été utilisé
dans les exemples antérieurs. La boucle while en requiert deux. Avec deux signes égal
consécutifs, c'est une évaluation qui est réalisée. La valeur est comparée à toute valeur
suivant les deux signes. Un seul signe égal assigne à la variable la valeur qui le suit.
Il est possible d’évaluer avec d'autres signes que le double signe égal (qui renvoie
vrai, si la variable est exactement identique à la valeur comparée). > signifie plus
© Dunod – Toute reproduction non autorisée est un délit.

grand que, < moins grand que, >= signifie plus grand ou égal à, <= moins grand ou
égal à, et ! signifie différent de.
L'usage de ces symboles permet de contrôler le circuit logique d'un programme
selon les règles booléennes. Pour plus d'informations concernant la logique boo-
léenne, reportez-vous au chapitre 10.

Fondamentalement, la fonction d’une calculatrice consiste à prendre deux


nombres qui lui sont fournis et à opérer un calcul mathématique avec ces deux
entrées. Pour cette calculette, les deux nombres seront demandés à l’utilisateur :
PremierNombre = int(raw_input("Saisissez le premier nombre : "))
SecondNombre = int(raw_input("Saisissez le second nombre : "))

Exemple 2 : entrées, variables, et boucles /175


Ces lignes n’utilisent pas seulement l’instruction raw_input pour les deux nombres,
mais également int. Cette instruction est le diminutif d’integer (nombre entier, en
anglais). Elle signifie pour Python que les entrées doivent être traitées comme des
nombres plutôt que comme des chaînes de caractères. C’est bien sûr très important,
puisque notre calculette ne peut pas réaliser des opérations de calcul avec des mots.
Une fois les deux nombres stockés en tant que variables, le programme peut
réaliser ses calculs. Saisissez les lignes suivantes qui additionneront, soustrairont
et multiplieront les deux nombres et en afficheront le résultat.
print PremierNombre, "ajouté à", SecondNombre, "égalent", PremierNombre +
SecondNombre
print PremierNombre, "moins", SecondNombre, "égalent", PremierNombre – secondNombre
print PremierNombre, "multiplié par", SecondNombre, "égalent", PremierNombre *
SecondNombre
Vous noterez que les opérations d’addition et de soustraction font appel
aux signes conventionnels, mais que la multiplication utilise le symbole *. Vous
remarquerez aussi qu’il n’y a pas d’espaces entre les guillemets. En effet Python
va automatiquement ajouter les espaces nécessaires quand il rassemblera les
nombres et les chaînes de caractères. Enfin, la division n’est pas présente dans
notre calculette (le signe / permet la division), parce qu’elle n’emploie que des
nombres entiers, et la calculatrice ne saurait pas gérer l’affichage de nombres
décimaux qui sont fréquents dans les divisions.
Bien que la partie calcul de notre programme soit finie, en l’état il fonctionnera
indéfiniment puisqu’il ne contient aucune instruction pour lui dire quand sortir de
la boucle. Les lignes suivantes permettront à l’utilisateur de sortir du programme :
Continuer = int(raw_input("Entrez 1 pour continuer, ou n'importe quel autre nombre
pour quitter le programme : "))
Cette ligne permet à l’utilisateur de modifier la valeur de la variable Continuer
qui contrôle la boucle While. Si l’utilisateur saisit le nombre 1, la variable Continuer
ne change pas de valeur et la boucle continue de tourner. Si un nombre différent
est entré, l’évaluation ne retourne plus vrai (Continuer n’est plus égale à 1), et la
boucle prendra fin.
L’ensemble du programme devrait ressembler à ce script :

#!/usr/bin/env python
# Exemple 2: Programme Python extrait du Guide du Raspberry Pi
NomUtilisateur = raw_input("Quel est votre nom ? ")
print "Bienvenue dans ce programme,", NomUtilisateur
Continuer = 1
while Continuer == 1:
  PremierNombre = int(raw_input("Saisissez le premier nombre: "))
  
SecondNombre = int(raw_input("Saisissez le second nombre : "))
  
print PremierNombre, "ajouté à", SecondNombre, "égalent", PremierNombre +
SecondNombre

176/ Chapitre 11 : Introduction à Python

   
print PremierNombre, "moins", SecondNombre, "égalent", PremierNombre –
SecondNombre
  
print PremierNombre, "multiplié par", SecondNombre, "égalent", PremierNombre
* SecondNombre
  
Continuer = int(raw_input("Saisissez 1 pour continuer, ou n'importe quel
autre nombre pour quitter le programme: "))

Enregistrez le programme sous le nom Calculatrice.py et lancez-le en cliquant


sur Run Module dans le menu Run de IDLE, ou en saisissant Python Calculatrice.
py dans le terminal. Répondez aux questions du programme en entrant votre nom et
deux nombres (figure 11.5). Quand vous en aurez assez de faire des calculs, entrez
n’importe quel nombre différent de 1 pour sortir du programme.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 11.5 Exécution du programme Calculatrice.py dans IDLE

Si vous désirez d’autres exemples de programmes simples introduisant des


fonctions clés, rendez-vous sur la page officielle du wiki Python à : wiki.python.
org/moin/SimplePrograms.

Exemple 2 : entrées, variables, et boucles /177


Exemple 3 : Créer un jeu avec pygame
Cet exemple a pour but de donner un aperçu de la puissance de Python en
créant un jeu d’arcade basé sur le grand classique Snake. Pour ce faire, il sera
nécessaire d’utiliser une librairie Python externe appelée pygame.
Écrite par Pete Shinners, pygame est composée d’un ensemble de modules
destinés à étendre les fonctionnalités du langage. Ces fonctionnalités sont
conçues spécifiquement pour faciliter le codage de jeux en Python. Chaque
module contient ce qui est nécessaire à un jeu moderne, avec la gestion du son, du
graphisme, et même la prise en charge du réseau. Même s’il n’est pas impossible
d’écrire un jeu en Python sans pygame, l’utilisation du code fourni dans la librairie
simplifie beaucoup le travail.
Si vous fonctionnez sous Raspbian, la librairie, qui est déjà installée, est prête à
l’emploi. Dans le cas contraire, vous pouvez télécharger les fichiers source depuis
le site officiel de pygame : www.pygame.org/download.shtml. Les instructions
pour son installation sont disponibles sur la même page.
Les premières étapes de la création d’un programme pygame ressemblent à
celles de n’importe quel autre projet Python. On ouvre un nouveau document vierge
dans IDLE ou dans un éditeur de texte et on ajoute la première ligne shebang :
#!/usr/bin/env python
Il faut ensuite déclarer l’utilisation des modules pygame à Python. Pour cela,
on fait appel à l’instruction import, qui demande à Python de charger un module
externe (un autre fichier Python) et de le rendre accessible à partir du programme.
Saisissez les deux lignes suivantes pour importer les modules nécessaires à votre
projet :
import pygame, sys, time, random
from pygame.locals import *
La première ligne importe le module principal de pygame ainsi que les modules
sys, time et random, qui eux aussi sont nécessaires pour ce programme. Par la
suite, en général, on invoque le module en saisissant son nom, suivi d’un point,
suivi du nom de l’instruction voulue à l’intérieur du module. Mais la seconde ligne
de code ci-dessus dit à Python de charger toutes les instructions contenues dans
le module pygame.locals comme s’il s’agissait d’instructions standards dans
Python. Cela permettra une écriture plus rapide. Pour d’autres modules, comme
pygame.clock, qui n’est pas inclus dans pygame.locals, il sera nécessaire de saisir
toute la commande.
Saisissez les deux lignes suivantes qui préparent le module pygame afin qu’il
soit prêt à fonctionner dans le programme.
pygame.init()
fpsClock = pygame.time.Clock()
La première dit à pygame de s’initialiser, et la seconde crée une nouvelle
variable nommée fpsClock, qui servira à contrôler la vitesse du jeu. Il est mainte-
nant nécessaire de créer une surface de jeu, la zone sur laquelle les objets seront
dessinés. Les deux lignes suivantes la définissent :

178/ Chapitre 11 : Introduction à Python


playSurface = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Le Serpent Raspberry')
Vient le tour des couleurs du programme. Même si cette étape n’est pas
absolument nécessaire, là encore elle permet d’économiser du code. Par
exemple, si on désire que la couleur d’un objet soit rouge, il suffira d’utiliser
la variable CouleurRouge. Sinon il faudrait appeler l’instruction pygame.color
et se rappeler les valeurs des trois composantes (rouge, vert et bleu). Pour
définir les couleurs de ce programme, saisissez les lignes suivantes :
CouleurRouge = pygame.Color(255, 0, 0)
CouleurNoir = pygame.Color(0, 0, 0)
CouleurBlanc = pygame.Color(255, 255, 255)
CouleurGris = pygame.Color(150, 150, 150)
Les quelques lignes qui suivent initialisent les variables du jeu pour un bon
démarrage. Cette étape d’initialisation est importante. Si ces valeurs n’étaient pas
indiquées, Python ne saurait pas quoi faire. Pour l’instant, ne vous souciez pas de
ce à quoi correspond chacune de ces variables. Saisissez simplement le code en
vous assurant que virgules et crochets sont bien placés.
snakePosition = [100,100]
snakeSegments = [[100,100],[80,100],[60,100]]
raspberryPosition = [300,300]
raspberrySpawned = 1
direction = 'right'
changeDirection = direction
Remarquez que parmi les variables, trois (snakePosition, snakeSegments
et raspberryPosition) sont définies par une liste de valeurs séparées par des
virgules. Python a donc créé des variables sous forme de listes. Une liste cor-
respond à un certain nombre de différentes valeurs, stockées sous un seul nom
de variable. Plus loin, nous verrons comment avoir accès à une valeur stockée
dans une liste.
Il est maintenant nécessaire de définir une fonction. Il s’agit d’un fragment de
code qui devra être disponible plus tard, pendant le déroulement du programme.
Les fonctions sont utiles en ce qu’elles évitent de répéter du code et permettent
de lire le code plus facilement. Si un certain nombre d’instructions sont néces-
saires plusieurs fois, en plusieurs points du programme, l’utilisation de def pour
© Dunod – Toute reproduction non autorisée est un délit.

créer une fonction, évite leur répétition. De plus, s’il est nécessaire de modifier
une fonction, il n’est pas nécessaire de la modifier autant de fois qu’elle est invo-
quée. Saisissez les lignes suivantes pour définir la fonction gameOver.
def gameOver():
  gameOverFont = pygame.font.Font('freesansbold.ttf', 72)
  gameOverSurf = gameOverFont.render('Game Over', True,CouleurGris)
  gameOverRect = gameOverSurf.get_rect()
  gameOverRect.midtop = (320, 10)
  playSurface.blit(gameOverSurf, gameOverRect)
  pygame.display.flip()
  time.sleep(5)
  pygame.quit()
  sys.exit()

Exemple 3 : Créer un jeu avec pygame /179


Les fonctions, comme les boucles, doivent être indentées. Chaque ligne après
l’instruction def doit commencer après quatre espaces. Si vous utilisez IDLE, ces
espaces sont insérés automatiquement, mais si vous utilisez un éditeur de texte,
ils doivent l’être manuellement. Après la dernière ligne de la fonction sys.exit(),
vous pouvez arrêter l’indentation.
La fonction gameover utilise un certain nombre de commandes issues de
pygame afin de réaliser une tâche toute simple : afficher Game over pendant
cinq secondes, en gros caractères, puis arrêter le jeu et Python. Il peut sembler
étrange d’écrire des instructions pour arrêter le jeu avant même de l’avoir com-
mencé, mais il faut toujours définir les fonctions avant de les appeler. Python
n’exécutera ces instructions qu’à partir du moment où on le lui demandera.
Le début du programme étant achevé, il est temps d’entreprendre la partie princi-
pale. Elle est constituée d’une boucle infinie, c’est-à-dire une boucle while dont on ne
sort jamais, afin que le jeu continue jusqu’à ce que le serpent meure en percutant un
mur ou en mangeant sa queue. La boucle principale commence par la ligne suivante :
while True:
Sans évaluation à réaliser, Python vérifie si True est vrai. Puisque c’est toujours
le cas, la boucle continuera à l’infini, ou tout du moins jusqu’à ce que la fonction
gameOver soit appelée.
Continuez le programme avec les lignes suivantes, en faisant attention aux
indentations :
    for event in pygame.event.get():
    if event.type == QUIT:
      pygame.quit()
      sys.exit()
    elif event.type == KEYDOWN:
La première ligne, juste après le début de la boucle while, doit être indentée de
quatre espaces. En fait il s’agit d’une sorte de boucle, fonctionnant avec l’instruc-
tion for, qui est à l’écoute d’événements tels que l’appui sur des touches du cla-
vier. En conséquence, la ligne suivant l’instruction for doit elle aussi être indentée
de quatre espaces supplémentaires, ce qui en fait huit. Mais comme cette ligne
commence par une instruction if pour savoir si une touche a été pressée, logique-
ment la ligne suivante, pygame.quit(), est indentée de quatre espaces, ce qui en
fait douze. Cette suite logique d’indentations informe Python du début et de la fin
de chaque boucle. C’est important parce que si le nombre d’espaces est imprécis,
le programme ne fonctionnera pas correctement. C’est la raison pour laquelle
IDLE est plus simple à utiliser qu’un éditeur de texte, puisqu’il insère automati-
quement les indentations nécessaires.
Une expression if demande à Python de vérifier si une évaluation est vraie. La
première vérification, if event.type == QUIT, dit à Python d’exécuter le code en
dessous si pygame renvoie le message QUIT. Ce dernier est envoyé si l’utilisateur
appuie sur la touche Echap ou s’il clique sur le bouton X en haut à droite de la
fenêtre. Les deux lignes suivantes devraient vous rappeler la fonction gameOver :
elles disent à pygame et à Python d’arrêter et de sortir.

180/ Chapitre 11 : Introduction à Python


La ligne commençant avec elif étend les vérifications de l’instruction if. C’est
la contraction de else if (sinon en français). Cette instruction est évaluée si l’ins-
truction if précédente est fausse. Dans ce cas, l’instruction elif vérifie si pygame
renvoie un événement keydown, qui correspond à l’appui sur une touche de la part
de l’utilisateur. Comme pour l’instruction if, l’instruction à exécuter si elif est
vraie doit être indentée de quatre espaces supplémentaires ajoutés aux espaces
de l’indentation de elif. Saisissez les lignes suivantes pour que elif sache ce qui
est attendu quand un utilisateur appuie sur une touche.
      if event.key == K_RIGHT or event.key == ord('d'):
        changeDirection = 'right'
      if event.key == K_LEFT or event.key == ord('a'):
        changeDirection = 'left'
      if event.key == K_UP or event.key == ord('w'):
         changeDirection = 'up'
      if event.key == K_DOWN or event.key == ord('s'):
        changeDirection = 'down'
      if event.key == K_ESCAPE:
        pygame.event.post(pygame.event.Event(QUIT))
Ces instructions modifient les valeurs de la variable changedirection, qui
change la direction de déplacement du serpent. L’utilisation de or (ou en fran-
çais) en association avec if permet de réaliser plusieurs évaluations. Dans le cas
présent, elle permet de contrôler le serpent de deux manières différentes : les
touches directionnelles ou les touches W, A, S et D (le jeu a été programmé pour
être utilisé avec un clavier QWERTY…) pour déplacer le serpent vers le haut, la
gauche, le bas et la droite. Tant qu’aucune touche n’est pressée, le serpent se
déplace vers la droite conformément à la valeur de la variable direction assignée
au début du programme.
Les variables direction et changeDirection sont utilisées pour vérifier la
validité de l’ordre de l’utilisateur. Le serpent n’a pas le droit de se retourner sur
lui-même, sinon il meurt et la partie est terminée. Pour empêcher cette mani-
pulation, la dernière direction choisie par l’utilisateur, stockée dans la variable
changeDirection, est comparée à la direction en cours, qui est stockée dans
direction. Si ces deux directions sont opposées, l’instruction est ignorée, et le
serpent continue sa course. Saisissez les lignes suivantes pour mettre en place les
© Dunod – Toute reproduction non autorisée est un délit.

comparaisons, en alternant les indentations de quatre et huit espaces.


  if changeDirection == 'right' and not direction == 'left':
    direction = changeDirection
  if changeDirection == 'left' and not direction == 'right':
    direction = changeDirection
  if changeDirection == 'up' and not direction == 'down':
    direction = changeDirection
  if changeDirection == 'down' and not direction == 'up':
    direction = changeDirection
Après s’être assuré de la validité des entrées de l’utilisateur, le serpent, repré-
senté par une série de blocs à l’écran, peut commencer à se mouvoir. À chaque
tour, le serpent se déplace d’une distance égale à l’un de ses blocs. Chaque bloc

Exemple 3 : Créer un jeu avec pygame /181


faisant 20 pixels, il est possible de dire à pygame comment déplacer le serpent
d’un bloc dans toutes les directions. Saisissez le code suivant :
  if direction == 'right':
    snakePosition[0] += 20
  if direction == 'left':
    snakePosition[0] -= 20
  if direction == 'up':
    snakePosition[1] -= 20
  if direction == 'down':
    snakePosition[1] += 20
Les opérateurs += et -= modifient la valeur d’une variable selon une certaine
valeur : += assigne à la variable sa valeur courante plus la nouvelle valeur, et -= lui
assigne sa valeur courante moins la nouvelle valeur. Par exemple, snakePosition[0]
+= 20 est un raccourci de snakePosition[0] = snakePosition[0] + 20. Le nombre
entre crochets après le nom de la variable snakePosition correspond à la position
dans la liste concernée. La première valeur dans la liste snakePosition contient la
position du serpent selon l’axe des X, et la seconde valeur contient la position selon
l’axe des Y avec 0,0 correspondant au point en haut à gauche. Python commence sa
numérotation à zéro, si bien que l’axe des X est contrôlé avec snakePosition[0] et
l’axe des Y avec snakePosition[1]. Si la liste était plus longue, les éléments supplé-
mentaires correspondraient à [2], [3], etc.
Bien que la liste snakePosition n’ait que deux éléments, une autre liste, créée
en début de programme en a davantage : snakeSegments.
  snakeSegments.insert(0,list(snakePosition))
Ici on a utilisé l’instruction insert pour insérer une nouvelle valeur dans la liste
snakeSegments : la position courante du serpent. À chaque fois que Python atteint
cette ligne, il ajoute au serpent un bloc auquel il assigne la position courante de
la tête du serpent. Du point de vue du joueur, le serpent semblera devenir plus
long. Toutefois, cela ne doit se produire qu’à chaque fois que le serpent mange
une framboise, sinon sa croissance serait infinie. Saisissez les lignes suivantes :
  
if snakePosition[0] == raspberryPosition[0] and snakePosition[1] ==
raspberryPosition[1]:
    raspberrySpawned = 0
  else:
    snakeSegments.pop()
La première instruction compare les coordonnées de l’abscisse et de l’ordon-
née de la tête du serpent avec celles de la framboise qu’il convoite. Si les valeurs
correspondent, le fruit est considéré comme avalé et la valeur de la variable ras-
pberrySpawned retourne à 0. L’instruction else dit à Python comment agir tant
que la framboise n’a pas été mangée : traiter, avec la fonction pop, la valeur la plus
ancienne de la liste snakeSegments.
Cette fonction pop est simple mais astucieuse. Elle renvoie la dernière valeur
de la liste et la supprime, ce qui la raccourcit d’un élément. Dans le cas de la
liste snakeSegments, cela correspond à demander à Python de retirer le bloc de
serpent le plus éloigné de la tête. Du point de vue du joueur, il semblera que le
serpent s’est déplacé, mais sans grandir. En réalité, il aura grandi d’un côté, mais

182/ Chapitre 11 : Introduction à Python


raccourci de l’autre. Grâce à la déclaration else, l’instruction pop n’est exécutée
que lorsque la framboise n’a pas été mangée. Dans le cas contraire, la dernière
entrée n’est pas supprimée, et le serpent augmente d’un bloc.
Après avoir mangé la framboise, si aucune autre n’est disponible, le jeu perd
tout intérêt. Voici les lignes qui permettront de remettre en jeu une framboise
après chaque disparition :
  if raspberrySpawned == 0:
    x = random.randrange(1,32)
    y = random.randrange(1,24)
    raspberryPosition = [x*20,y*20]
     raspberrySpawned = 1
Cette portion du code vérifie le statut de la framboise en testant si la valeur
de la variable raspberrySpawned est égale à 0. Dans l’affirmative, le code déter-
mine de manière aléatoire une position sur la surface de jeu en faisant appel au
module random, importé au début du programme. Cette position est multipliée
par la taille d’un bloc de serpent, soit 20 pixels en largeur par 20 en hauteur,
pour donner à Python un espace pour afficher la nouvelle framboise. Le carac-
tère aléatoire du placement du fruit est important. L’apparition d’une nouvelle
framboise étant imprévisible, le jeu garde tout son intérêt. Enfin la valeur de la
variable raspberrySpawned est ramenée à 1, ce qui garantit qu’il n’y aura qu’une
seule framboise à la fois dans le jeu.
À ce stade, le code produit permet au serpent de se déplacer et de grandir, et
aux framboises d’être mangées et régénérées. En attendant, l’écran reste vide.
Saisissez ces lignes :
  playSurface.fill(CouleurNoir)
  for position in snakeSegments:
    pygame.draw.rect(playSurface,CouleurBlanc,Rect(position[0], position[1], 20, 20))
     pygame.draw.rect(playSurface,CouleurRouge,Rect(raspberryPosition[0],
raspberryPosition[1], 20, 20))
    pygame.display.flip()
Ce script dit à pygame de produire un fond noir pour toute la surface de jeu,
de dessiner les blocs du serpent en blanc et la framboise en rouge. La dernière
ligne pygame.display.flip() dit à pygame de rafraîchir l’écran. Sans cette ins-
truction, les éléments resteraient invisibles. À chaque fois qu’un nouveau dessin
© Dunod – Toute reproduction non autorisée est un délit.

doit apparaître, il faut se souvenir de faire appel à pygame.display.flip() pour


que le joueur perçoive les changements.
Pour l’instant, le serpent ne peut pas mourir, ce qui enlève de l’attrait au jeu.
Saisissez les lignes suivantes pour remédier à la situation :
  if snakePosition[0] >620 or snakePosition[0] <0:
    gameOver()
  if snakePosition[1] >460 or snakePosition[1] <0:
    gameOver()
La première instruction if vérifie si le serpent est sorti de la surface de jeu
horizontalement, la deuxième s’il est sorti verticalement. Dans un cas comme
dans l’autre, cela sonne le glas pour le serpent. La fonction gameOver, définie un
peu plus haut, est appelée pour afficher un message à l’écran et terminer le jeu.

Exemple 3 : Créer un jeu avec pygame /183


Le serpent doit également mourir si sa tête touche une partie de sa queue. Pour
cela, ajouter les lignes suivantes :
  for snakeBody in snakeSegments[1:]:
    if snakePosition[0] == snakeBody[0] and snakePosition[1] == snakeBody[1]:
      gameOver()
L’instruction for parcourt chaque bloc de la queue du serpent pour en connaître
l’emplacement, en vérifiant la liste depuis la deuxième entrée jusqu’à la fin, et le com-
pare avec la position de la tête. Il est important de démarrer la comparaison à partir
du deuxième élément en utilisant snakeSegments[1], et non pas le premier élément.
Puisque le premier correspond toujours à la tête, le résultat serait à chaque fois iden-
tique et provoquerait la mort instantanée du serpent dès le début du jeu.
Enfin, le dernier point consiste à contrôler la vitesse de rafraîchissement grâce
à la variable fpsClock. Sans cette variable, qui a été créée au tout début du pro-
gramme, l’action serait trop rapide, et injouable. Saisissez les lignes suivantes
pour terminer le programme :
  fpsClock.tick(5)
Selon que vous trouvez le jeu trop facile ou trop lent, vous pouvez augmenter
ce nombre (ce qui augmentera le nombre d’images par seconde). Inversement,
si vous le trouvez trop difficile ou trop rapide, diminuez-le. Enregistrez le pro-
gramme sous le nom raspberrysnake.py et lancez-le soit en cliquant sur Run
Module dans le menu Run, soit en saisissant python raspberrysnake.py depuis
le terminal. Attention, le jeu commence dès la fin de son chargement (figure 11.6)
et vous devez vous tenir prêt !

Figure 11.6 Jeu du serpent sur le Raspberry Pi

184/ Chapitre 11 : Introduction à Python


Pour la version complète du script du programme Raspberry Snake, reportez-
vous à l’annexe A ou téléchargez les compléments en ligne sur le site des
éditions Dunod (www.dunod.com). S’il est vrai que le téléchargement du pro-
gramme évite de la saisie, l’encodage manuel est un bon moyen de s’assurer
que l’on comprend chacune des étapes. Pygame comprend bien d’autres fonc-
tions qui ne sont pas exploitées dans Raspberry Snake, comme la lecture audio,
l’amélioration des graphismes par la gestion des sprites, et le contrôle de la sou-
ris. Pour aller plus loin dans les fonctions avancées de pygame, rendez-vous sur
le site officiel : www.pygame.org/wiki/tutorials. Vous y trouverez des tutoriels
et des programmes à télécharger pour bien comprendre comment les choses
fonctionnent.

Exemple 4 : Connexion au réseau avec Python


Les programmes précédents fonctionnent de manière autonome. Avec Python,
Il est également possible de créer du code qui communique avec l’extérieur en se
connectant à un réseau d’ordinateurs. L’exemple suivant, écrit par Tom Hudson,
permet d’en apercevoir le potentiel, avec un outil conçu pour superviser les uti-
lisateurs connectés à un canal IRC (Internet Relay Chat : communication instan-
tanée sur Internet).
Comme d’habitude, créez un nouveau projet dans IDLE ou dans un éditeur de
texte, et saisissez la ligne shebang ainsi qu’un commentaire décrivant la finalité
du programme :
#!/usr/bin/env python
# Moniteur de canal IRC écrit pour le Guide du Raspberry Pi par Tom Hudson
Ensuite, importez les modules nécessaires au programme : sys, socket et time
en saisissant la ligne suivante :
import sys, socket, time
Les modules sys et time ont déjà été exploités dans le programme Raspberry
Snake, mais socket fait ici sa première apparition. Un socket est un logiciel qui
va servir d’interface de connexion pour exploiter des services sur un réseau. Le
module socket permet à Python d’ouvrir et de fermer des sockets sur le réseau,
© Dunod – Toute reproduction non autorisée est un délit.

mais également de lire des données et d’en écrire sur des sockets. Grâce à ce
module, Python possède les fonctionnalités de base de la gestion du réseau. Dans
cet exemple, le module socket permet au programme de se connecter à un ser-
veur IRC distant.
Pour fonctionner, il sera nécessaire de faire appel à des constantes. Ces der-
nières sont pour partie semblables à des variables, puisqu’il est possible de leur
assigner des valeurs. Mais elles sont différentes, car ces valeurs, une fois assi-
gnées, ne doivent plus être modifiées. Pour aider à différencier les constantes des
variables, une bonne pratique consiste à écrire les constantes en lettres capitales.
De cette manière, un bref aperçu du code permet de les distinguer rapidement.
Vous noterez que comme Python ne fait aucune différence entre les majuscules

Exemple 4 : Connexion au réseau avec Python /185


et les minuscules, il s’agit simplement d’une aide visuelle pour le développeur.
Saisissez les deux lignes suivantes dans le programme :
RPL_NAMREPLY = '353'
RPL_ENDOFNAMES = '366'
Il s’agit de codes d’état d’IRC, fournis par le serveur lorsque certaines opéra-
tions sont arrivées à leur terme. Le programme va utiliser ces codes pour repérer
la fin de la liste des noms qu’il aura reçus en provenance du serveur IRC. Mainte-
nant, il est nécessaire de mettre en place les variables de connexion au serveur
avec les lignes suivantes :
irc = {
  'host': 'chat.freenode.net',
  'port': 6667,
  'channel': '#raspiuserguide',
  'namesinterval': 5
}
La première ligne demande à Python de créer un type de données nommé dict.
Il s’agit d’une abréviation pour dictionnaire. Ce type de données peut stocker plus
d’une variable sous le nom d’une seule variable principale, comme dans le cas qui
nous intéresse, irc. Les variables individuelles peuvent ensuite être rappelées
au cours du programme. Il serait possible de se passer des variables dict, mais
la lecture du code n’en serait pas facilitée. Une variable dict commence par une
accolade ouvrante et finit avec une accolade fermante sur la dernière ligne.
La variable host doit contenir le nom de domaine complet parfois appelé FQDN
(Fully Qualified Domain Name) du serveur IRC auquel le programme va tenter de se
connecter. Cet exemple utilise chat.freenode.net, mais il est possible de modifier
ici le programme pour employer un autre serveur. La variable port permet au pro-
gramme de déterminer le port sur lequel le réseau IRC doit fonctionner. C’est en
général le port 6667. La variable channel dit à Python quel canal doit être rejoint
pour en rapporter la liste des utilisateurs ; enfin, la variable namesinterval indique
le nombre de secondes dans l’intervalle séparant les actualisations de la liste.
Créez un nouveau dictionnaire qui stockera des variables propres à l’utilisateur,
avec les lignes suivantes :
user = {
  'nick': 'monalias-bot',
  'username': 'identifiant-bot',
  'hostname': 'localhost',
  'servername': 'localhost',
  'realname': 'Raspberry Pi Names Bot'
}
Comme dans le cas de irc, toutes ces variables sont stockées dans un diction-
naire appelé user pour bien clarifier à quelle section correspond chaque variable.
La variable nick doit contenir l’alias que le programme devra utiliser pour la
connexion IRC. N’utilisez pas votre propre alias si vous comptez vous connec-
ter en même temps. Vous pourriez, par exemple, ajouter le suffixe -bot à la fin
de votre nom. Cela permettra de comprendre qu’il ne s’agit pas d’une personne,
mais d’un programme. Faites de même avec username (votre identifiant) et ren-

186/ Chapitre 11 : Introduction à Python


seignez la variable realname avec des informations décrivant le propriétaire du
programme. Les variables hostname and servername peuvent être laissées telles
quelles, ou il est possible d’y saisir votre adresse Internet.
Le module requiert la création d’un objet socket. Cet objet permet la connexion
au réseau de tous les autres éléments du programme. Créez l’objet socket en
saisissant la ligne suivante :
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Il faut maintenant dire au programme qu’il doit se connecter avec les variables
assignées au début du programme. Ajoutez les lignes suivantes :
print 'Connecting to %(host)s:%(port)s…' % irc
try:
  s.connect((irc['host'], irc['port']))
except socket.error:
  print 'Error connecting to IRC server %(host)s:%(port)s' % irc
  sys.exit(1)
Les commandes try et except présentes dans ces lignes gèrent les erreurs de
connexion. En cas d’échec de connexion avec le serveur, par exemple, parce que
le Raspberry Pi n’a pas de connexion à Internet, ou parce que le serveur distant
est en maintenance, le programme affichera un message d’erreur et se fermera
élégamment. La ligne s.connect demande au module socket d’essayer de se
connecter au serveur IRC, en utilisant les variables host et port contenues dans
le dictionnaire irc.
Si le programme ne se ferme pas suite à une erreur, c’est qu’il a réussi à se
connecter au serveur IRC. Néanmoins, avant de pouvoir lire la liste des personnes
connectées à un canal, il faut vous identifier et envoyer quelques commandes
grâce à la fonction send du module socket. Saisissez les lignes suivantes dans le
programme :
s.send('NICK %(nick)s\r\n' % user)
s.send('USER %(username)s %(hostname)s %(servername)s :%(realname)s\r\n' % user)
s.send('JOIN %(channel)s\r\n' % irc)
s.send('NAMES %(channel)s\r\n' % irc)
La fonction send fonctionne de manière très similaire à la fonction print, à
ceci près qu’elle n’affiche rien sur la sortie standard (la fenêtre du terminal ou la
console), mais elle envoie les informations à travers le réseau. Ici le programme
© Dunod – Toute reproduction non autorisée est un délit.

envoie des chaînes de texte au serveur IRC, entrecoupées de retours de chariots


(\r) et de nouvelles lignes (\n) simulant la pression de la touche Entrée par l’utili-
sateur. Le serveur enregistre donc le programme avec les valeurs contenues dans
les variables nick, username, hostname, servername et realname. Ensuite notre
programme envoie la commande pour rejoindre le canal spécifié dans la variable
channel et enfin, il envoie la commande lui permettant de recevoir la liste des
utilisateurs dudit canal. Bien que cet exemple soit adapté pour fonctionner avec
un IRC, il fait appel aux mêmes principes de base communs à tous les services
réseau. Ce script, si on le modifiait légèrement, pourrait être utilisé pour obtenir
la liste des fichiers d’un serveur FTP, ou encore les courriels non lus sur un serveur
POP3.

Exemple 4 : Connexion au réseau avec Python /187


Réceptionner des données depuis un socket est un peu plus compliqué. Il faut
commencer par créer une variable de chaîne vide qui servira de mémoire tampon
en réception, en stockant les données du serveur au fur et à mesure qu’il les reçoit
et en attendant qu’elles puissent être traitées. Initialisez la mémoire tampon en
saisissant la ligne suivante :
read_buffer = ''
Remarquez qu’il y a deux guillemets simples après le signe égal, et non un
double guillemet.
Ensuite, créez une liste vide qui sera utilisée pour stocker les noms des utilisateurs :
names = []
Le type de données liste est le même que celui qui a été utilisé pour stoc-
ker les positions dans le jeu du serpent Raspberry. À la différence des variables
standards, les listes peuvent stocker plusieurs valeurs. Il s’agit ici des noms des
utilisateurs connectés sur le canal IRC.
L’étape suivante consiste à mettre en place une boucle infinie, au cours de
laquelle les noms des utilisateurs seront constamment mis à jour et affichés à
l’écran. Commencez la boucle en saisissant :
while True:
  read_buffer += s.recv(1024)
Après la ligne while True:, la première ligne demande au module socket de
réceptionner (jusqu’à) 1024 octets (ou 1 Ko) en provenance du serveur IRC et de
les placer dans la variable read_buffer. L’usage de l’opérateur +=, plutôt que sim-
plement =, permet d’agréger les nouvelles données aux éléments déjà stockés
dans la mémoire tampon. La valeur de 1024 (1 Ko) est assez arbitraire.
Il est maintenant nécessaire de découper la chaîne de caractères de la mémoire
tampon en lignes individuelles de texte avec le code suivant :
  lines = read_buffer.split('\r\n')
  read_buffer = lines.pop();
La première ligne permet à la variable lines de ne recevoir, depuis la mémoire
tampon, que des lignes entières grâce à la fonction split qui trouve les carac-
tères de fin de ligne symbolisés par \r\n. Ces caractères n’apparaissant qu’en fin
de ligne, le découpage du contenu de la mémoire tampon assure la correspon-
dance avec les réponses complètes du serveur. L’instruction pop de la seconde
ligne assure que seules les lignes complètes sont retirées de read_buffer. Les
réponses du serveur étant découpées en paquets de 1 Ko, il est assez probable,
qu’à un moment ou à un autre, la fin de la mémoire tampon contiendra une ligne
fractionnée. Dans ce cas, la portion déjà dans la mémoire tampon y restera jusqu’à
ce qu’elle reçoive la fin de la ligne, avec le paquet suivant.
À ce stade, la variable lines contient une liste complète de réponses (des lignes
entières) en provenance du serveur. Il ne reste qu’à saisir les lignes suivantes pour
traiter ces réponses et obtenir les noms des participants :
  for line in lines:
    response = line.rstrip().split(' ', 3)
    response_code = response[1]
    if response_code == RPL_NAMREPLY:

188/ Chapitre 11 : Introduction à Python


      names_list = response[3].split(':')[1]
      names += names_list.split(' ')
Avec ce code, chacune des lignes comprises dans la variable lines est scrutée à
la recherche des codes IRC fournis par le serveur. Ces codes sont nombreux, mais
ce programme n’en recherche que deux. Ils ont été définis dans les constantes au
début du programme : 353, signifiant le début d’une liste de noms, et 366, avertis-
sant de la fin de la liste. L’instruction if cherche la première de ces réponses, puis
utilise la fonction split pour récupérer ces noms et les ajouter à la liste names.
Cette dernière contient maintenant tous les noms reçus en réponse du serveur
à la requête du programme. Il se peut, néanmoins que tous les noms ne soient pas
encore présents. Tant que le code 366 n’a pas été trouvé, la liste reste incomplète.
En conséquence, la dernière ligne du script names += names_list.split(' ')
agrège aux précédents les nouveaux noms réceptionnés plutôt que de les écraser.
En effet, à chaque fois que ce code s’exécute, il est possible que le programme
n’ait encore reçu qu’une partie de la liste. Pour donner à Python la marche à suivre
après réception de la liste complète, ajoutez les lignes suivantes, en vous assurant
d’ajouter huit espaces en début de ligne :
    if response_code == RPL_ENDOFNAMES:
      # Affiche les noms
      print '\r\nUsers in %(channel)s:' % irc
      for name in names:
        print name
      names = []
Le programme sait maintenant que si la réponse 366 arrive, il doit alors affi-
cher, sur la sortie standard, la liste totale des noms, avant d’effacer entièrement
le contenu de names. Cette dernière commande, names = [], est importante.
Sans elle, chaque mise à jour de la liste s’ajouterait à la liste complète précédente.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 11.7 Programme Python pour lister les utilisateurs d'un canal IRC

Exemple 4 : Connexion au réseau avec Python /189


Enfin, terminez le programme avec les deux lignes suivantes :
      time.sleep(irc['namesinterval'])
      s.send('NAMES %(channel)s\r\n' % irc)
Enregistrez le programme sous le nom ircuserlist.py et lancez-le, soit avec
l’option Run de IDLE, soit en saisissant python ircuserlist.py à partir du ter-
minal. Il se peut qu’au début le programme semble lent, mais cela provient du
temps nécessaire pour se connecter au serveur. Une fois cette étape passée, la
liste des noms devrait être mise à jour rapidement (figure 11.7). Pour mettre fin au
programme, pressez les touches Ctrl + C.
La version complète du script de ce programme se trouve dans l’annexe A et dans
les compléments électroniques de cet ouvrage qui sont disponibles sur www.dunod.
com. S’il est vrai que le téléchargement du programme évite de la saisie, l’encodage
manuel est un bon moyen de s’assurer que l’on comprend chacune des étapes.

Pour aller plus loin


J’espère que ce chapitre vous aura donné un avant-goût de ce qu’il est pos-
sible de réaliser avec Python. Ce chapitre ne peut en aucun cas être exhaustif,
tant il faudrait un ouvrage bien plus volumineux pour rendre compte de toute la
puissance du langage. En revanche, il existe de nombreuses ressources pour en
apprendre davantage. En voici quelques-unes :
>> Le guide officiel Beginner’s Guide to Python, accessible à : wiki.python.org/
moin/BeginnersGuide.
>> Un tutoriel, gratuit et interactif qui tourne entièrement dans un navigateur
est disponible à : www.learnpython.org.
>> L’ouvrage de Zed A. Shaw intitulé Learn Python The Hard Way (Shavian
Publishing, 2012) donne des conseils instructifs concernant les bonnes pra-
tiques du codage en Python. Son titre peut faire peur, mais le contenu est
accessible à des débutants. Il est disponible dans le commerce et disponible
gratuitement à : learnpythonthehardway.org.
>> Bien qu'un peu daté et ayant été mis à jour pour Python 3 dans une nouvelle
édition, Dive Into Python par Mark Pilgrim (Apress, 2004) est un ouvrage
très pédagogique pour qui veut s’initier à la programmation Python. Il est
en téléchargement libre à : www.diveintopython.net et disponible à l’achat
en version imprimée dans toutes les bonnes librairies.
>> Si vous préférez des séances pratiques avec d’autres amateurs, vous trou-
verez des listes d’utilisateurs de Python (parfois surnommés les PIGgies) à
wiki.python.org/moin/LocalUserGroups.
>> Pour approfondir pygame, lisez le livre de Al Sweigart Making Games with
Python & Pygame (CreateSpace, 2012). Il comporte une très bonne introduc-
tion et d'excellents exemples. Vous pouvez en télécharger un exemplaire ou
en acheter une version imprimée à inventwithpython.com.
/> Chapitre
Minecraft
Pi Edition
12

Fruit de l’imagination de Mojang, une entreprise suédoise de développement


de logiciels, Minecraft est maintenant un véritable phénomène de société. Grâce
à son dosage de jeu de survie et d’approche créative à la manière du LEGO, les
joueurs deviennent tour à tour les explorateurs, les constructeurs, et les tun-
neliers d’un monde ouvert à tous les possibles. Des millions de jeux sur ordina-
teurs, consoles, ou même smartphones ont été vendus au niveau planétaire. Voici
maintenant la version Raspberry Pi, avec son orientation pédagogique, destinée
à enseigner tout en jouant.

Introduction à Minecraft Pi Edition


Créée par Aron Nieminen et Daniel Frisk, collaborateurs chez Mojang, la ver-
sion Raspberry Pi de Minecraft est une version minimaliste produite à partir
de Minecraft Pocket Edition, destinée aux smartphones. Même si nombre des
caractéristiques du jeu complet sont absentes (en particulier le mode survie,
avec son monde létal, peuplé de nombreux ennemis), Minecraft reste une acti-
vité très bien conçue alliant détente et créativité, en particulier pour les jeunes
enfants.
Bien qu’encore en version alpha, c’est-à-dire en phase de test, Minecraft Pi Edi-
© Dunod – Toute reproduction non autorisée est un délit.

tion est déjà un succès. Cela n’est pas étonnant. En effet, les nombreux blocs de
matériaux différents à la disposition des constructeurs en herbe, permettent de
les initier à la géographie ou à l’architecture. Par ailleurs cette édition est gratuite
pour tous ceux qui peuvent télécharger le jeu sur leur Raspberry Pi. Ils peuvent
s’en servir aussi longtemps et comme il leur plaira sans n’avoir rien à payer, ce qui
n’est pas le cas avec les autres versions.
Mais ce qui a vraiment fait le succès de Minecraft Pi Edition, c’est son API
(Application Programming Interface). Elle permet aux joueurs de modifier l’envi-
ronnement du jeu en y ajoutant leur propre code. Cette API, à laquelle on accède
le plus souvent en Python (on notera au passage que la Fondation Raspberry
Pi a également fait le choix de Python pour ses programmes d’enseignement),

Introduction à Minecraft Pi Edition /191


permet aux utilisateurs d’envoyer et de recevoir des messages, de contrôler le
­positionnement des blocs du jeu, et même de contrôler le personnage du joueur.
Pour les jeunes qui sont déjà à l’aise avec Minecraft, c’est un bon moyen de déve-
lopper leur goût pour la programmation.

Installation de Minecraft
Si vous utilisez la dernière version du système d’exploitation Raspbian, Mine-
craft est déjà installé et prêt à fonctionner. Dans le cas contraire, il faut ouvrir
un navigateur et saisir l’adresse pi.minecraft.net pour accéder au site officiel de
Minecraft Pi Edition. Pour en télécharger le paquet, cherchez le lien download
puis ouvrez le fichier (il se peut qu’une boîte de dialogue vous le propose).
Après les quelques instants requis par le téléchargement du fichier, une fenêtre
s’ouvre et dévoile le contenu de l’archive compressée de Minecraft Pi Edition : un
dossier nommé mcpi. Choisissez le répertoire de destination où les fichiers seront
décompressés et où vous pourrez facilement les retrouver, par exemple la racine
de votre répertoire ou sur le bureau.
Cliquez sur le bouton Extraire, ce qui ne devrait prendre que quelques ins-
tants. Contrairement aux logiciels qui nécessitent un gestionnaire de paquets,
comme Apt, cette installation ne nécessite qu’une seule étape. Cela signifie que
lorsqu’une nouvelle version sera publiée, la mise à jour ne se fera pas automati-
quement. Il sera donc nécessaire de répéter la manipulation décrite plus haut :
télécharger la nouvelle version et la décompresser dans le même répertoire, ce
qui aura pour effet d’écraser la précédente. Si vous utilisez Raspbian, les mises à
jour se feront en exécutant apt-get update comme d’habitude.

Lancement de Minecraft
Minecraft Pi Edition est installé par défaut dans les dernières distributions de
Raspbian, et tourne sur n’importe quel modèle de Raspberry Pi connecté à un
écran. Le jeu fonctionne en mode interface graphique, sur le bureau, et n’est pas
visible depuis la console. Si votre Raspberry Pi n’est pas configuré de manière à
se lancer automatiquement en mode graphique, il sera nécessaire de l’exécuter

>_
manuellement avec la commande suivante depuis la console :
startx

Une fois l’interface graphique chargée, cliquez sur le bouton Menu en haut à
gauche de l’écran, pointez Jeux et sélectionnez Minecraft Pi (figure 12.1)
Par défaut, Minecraft Pi Edition s’exécute dans une fenêtre sur le bureau
(figure 12.2). Vous pourriez être tenté d’agrandir la fenêtre, mais les conditions
de jeu seront moins faciles.

192/ Chapitre 12 : Minecraft Pi Edition


Figure 12.1 Exécution de Minecraft Pi Edition
© Dunod – Toute reproduction non autorisée est un délit.

Figure 12.2 Minecraft Pi exécuté sous Raspbian

En effet, en mode plein écran, les mouvements de la souris ne seront pas gérés
correctement et le jeu sera virtuellement impossible. Il s’agit d’un bug, comme on
en trouve dans les versions alpha. On ne peut pas non plus faire des copies d’écran
pendant le déroulement du jeu. Afin d’assurer un niveau de rendu acceptable,
Minecraft Pi Edition optimise l’interfaçage avec l’accélérateur graphique et toute

Lancement de Minecraft /193


tentative de copie d’écran produit une zone vide à l’endroit où la fenêtre du jeu
devrait apparaître.
Pour commencer à jouer à Minecraft, cliquez sur Start Game pour charger
l’écran de sélection des mondes. Minecraft est conçu pour créer un nouveau
monde de manière aléatoire à chaque fois que vous lancez une nouvelle partie.
Typiquement, un monde contient des blocs, une montagne, une mer, des plages,
et des arbres. Aucun monde n’apparaît lors du premier lancement, même après
avoir cliqué sur Start Game. Il faut cliquer sur Create new pour en obtenir un.
Par la suite vous aurez le choix entre la création d’un nouveau monde et le char-
gement d’un monde que vous avez modifié. Pour cela, déplacez le monde vers le
centre de l’écran, puis cliquez à nouveau dessus.
Les mondes sont indépendants les uns des autres dans Minecraft Pi Edition.
Si une maison est construite dans un monde, il sera inutile de la chercher dans
les autres mondes du jeu, même s’il s’agit du même Raspberry Pi. Ce point a son
importance quand il s’agit de supprimer des mondes dans l’écran de sélection
des mondes. Assurez-vous de ne pas détruire un monde par inadvertance. Toute
suppression est définitive.

Exploration
Minecraft fonctionne de manière très similaire à un jeu de tir subjectif (FPS)
classique, mais en beaucoup moins violent. En fait, dans cette version, on ne ren-
contre aucun ennemi, et il n’y a aucune contrainte de temps. C’est une introduc-
tion sans stress au monde des jeux, pour les jeunes publics sans expérience.
Le jeu débute avec un positionnement aléatoire (figure 12.3). Le personnage
se déplace en utilisant les touches du clavier W, A, S et D qui correspondent res-
pectivement à gauche, droite, en arrière, et en avant. L’appui sur les touches ne
fait pas pivoter le personnage, seule la souris le permet. Chose surprenante, le
personnage vole : la barre d’espace effectue un saut, une double pression sur la
barre initie le mode vol. Durant le vol, la barre d’espace augmente l’altitude, la
touche Maj permet de revenir au sol. Une double pression sur la barre d’espace
annule le mode vol.
Contrairement au mode Survie de la version complète du jeu, le joueur dispose
d’une quantité infinie de blocs de tous types. Il n’y a donc pas besoin d’aller extraire
des ressources, et la construction de votre première structure peut commencer
sans délai. Les types de blocs disponibles sont affichés en bas de la fenêtre de
Minecraft, et le bloc actif est en surbrillance. La roulette de la souris permet de
sélectionner un bloc, chaque bloc ayant ses caractéristiques propres. Il y a d’autres
blocs, en plus de ceux-ci et l’ensemble est accessible en pressant la touche E. Pour
comprendre comment ils interagissent et se combinent, le mieux est de les essayer
tous.
Un clic sur le bouton droit de la souris permet de poser un bloc. Un clic long
pendant le déplacement permet de déplacer plusieurs blocs à la suite. Tous les

194/ Chapitre 12 : Minecraft Pi Edition


blocs peuvent être détruits, ceux du monde comme ceux que vous avez posés.
Pour ce faire, il suffit d’un clic gauche. Un clic gauche long, tout en déplaçant la
souris, permet de détruire toute une série de blocs.

Figure 12.3 Exploration dans Minecraft Pi Edition

Le jeu consiste à placer ou à retirer des blocs jusqu’à la construction com-


plète de votre édifice, qu’il s’agisse d’une maison en rondins, d’un manoir, ou de
la réplique exacte d’un vaisseau spatial, le principe de base restant le même. En
quittant le jeu, l’état d’avancement est enregistré et peut être chargé lors de votre
prochaine partie dans l’écran de sélection des mondes. Passer un peu de temps à
découvrir les propriétés et les interactions des différents blocs s’avérera fort utile
quand viendra le moment de travailler sur l’API.
© Dunod – Toute reproduction non autorisée est un délit.

Hacker Minecraft
Le secret du succès éducatif de Minecraft Pi Edition tient dans son API qui per-
met de modifier divers aspects du jeu en produisant du code. L’API de Minecraft
est à la fois puissante et facilement accessible pour un débutant.
Si Minecraft Pi Edition est actuellement ouvert, quittez-le en pressant la touche
Echap, sélectionnez Quit to title et fermez la fenêtre.
Si vous êtes sous Raspbian, vous pouvez utiliser l’API immédiatement. Dans
le cas contraire, il sera nécessaire de créer une copie de l’API à l’extérieur du
répertoire principal de Minecraft. Ces précautions protégeront l’installation prin-
cipale de Minecraft Pi Edition, ce qui permet de faire des expériences sans risquer

Hacker Minecraft /195


d’endommager quoi que ce soit. Saisissez les commandes suivantes dans votre

>_
terminal :
mkdir ~/minecraftcode
cp -r ~/mcpi/api/python/mcpi ~/minecraftcode/minecraft

Un nouveau répertoire minecraftcode a maintenant été créé, et une copie de


l’API Python de Minecraft Pi Edition y a été placée. C’est dans ce dossier que
seront créés les scripts qui modifieront le fonctionnement de Minecraft.
Sous Raspbian, il suffit de créer un répertoire dans lequel enregistrer vos pro-

>_
grammes. Pour cela, ouvrez le terminal puis saisissez la commande suivante :
mkdir ~/minecraftcodeÒ

Si vous n’êtes pas le seul à vous servir du Raspberry Pi, mais que vous avez le
même nom d’utilisateur, vous pouvez créer un dossier pour chacun, en modifiant
le nom minecraftcode dans la commande précédente (par exemple, minecraft-
kevin, minecraft-pierre, minecraft-julie).
L’API de Minecraft Pi Edition prend en change plusieurs langages, mais Python
sera la solution la plus simple pour commencer. Pour vos premiers pas en pro-
grammation Python avec le Raspberry Pi, reportez-vous au chapitre précédent.
Si vous avez déjà lu ce chapitre, vous pouvez commencer vos expériences dans
Minecraft sans plus attendre.
Pour commencer, chargez l’environnement IDLE, en cliquant sur le bouton
Menu, puis en descendant jusqu’à Programmation et en cliquant sur Python 2
(IDLE). Assurez-vous de ne pas cliquer sur Python 3 par erreur. La version 3 fait
appel à une version du langage de programmation qui ne fonctionne pas avec
l’API de Minecraft. À l’ouverture d’une nouvelle fenêtre, cliquez sur le menu File
puis New file. Un nouveau fichier Python, prêt à recevoir vos modifications appa-
raît. Commencez par cliquer sur File puis Save As pour enregistrer le fichier. Une
boîte de dialogue vous permet de sélectionner le dossier minecraftcode et de
nommer le fichier testing.py avant de l’enregistrer (figure 12.4).
Commencez votre premier programme Python pour Minecraft en saisissant la

>_
ligne shebang habituelle en haut de la page.
#!/usr/bin/env python

Cela permet au programme de fonctionner sans avoir recours à IDLE. Cette


option n’est pas nécessaire, mais c’est une bonne habitude à prendre et cela vous
aidera à identifier vos scripts comme des programmes Python, même s’ils doivent
changer de nom ou perdre leur extension en .py. Il est maintenant nécessaire
d’importer la bibliothèque Minecraft API, qui contient les différentes commandes
nécessaires à la modification du jeu depuis Python. Saisissez les deux lignes sui-
vantes dans IDLE :
import mcpi.minecraft as minecraft
import mcpi.block as block

196/ Chapitre 12 : Minecraft Pi Edition


Maintenant, mettons en place un moyen simple d’envoyer des commandes à
Minecraft avec la ligne suivante :
mc = minecraft.Minecraft.create()

Figure 12.4 Enregistrement de votre premier programme Python pour Minecraft

Avec cette ligne, il suffira d’entrer les lettres mc pour envoyer des commandes
à l’API, sans qu’il soit nécessaire de saisir la commande en entier dans le pro-
gramme. Non seulement cela permet d’écrire plus vite, mais le script devient plus
lisible et compréhensible. Cela connecte également le script au jeu en cours, si
bien que l’API est prête à réagir aux instructions.
L’API de Minecraft Pi Edition est tellement puissante qu’il ne sera pas possible
© Dunod – Toute reproduction non autorisée est un délit.

ici d’en explorer toutes les possibilités. Nous allons cependant vous présenter un
court exemple élémentaire que vous pouvez saisir dans IDLE (figure 12.5).
playerPos = mc.player.getTilePos()
mc.setBlock(playerPos.x+1, playerPos.y+1, playerPos.z, block.STONE)
mc.postToChat("Bloc de pierre créé")
La première ligne récupère la position courante du joueur, par rapport à la sur-
face du bloc le plus proche de lui, appelée carreau (tile en anglais). La seconde
ligne crée un nouveau bloc de pierre, décalé d’un bloc par rapport au joueur sur
l’axe des X et Y et non décalé sur l’axe des Z. Toutes les positions, dans Minecraft,
sont enregistrées au format tridimensionnel, avec Y pour le plan vertical. Toute
la maestria de l’usage de l’API Minecraft consiste à apprendre à atteindre préci-
sément l’endroit visé.

Hacker Minecraft /197


La dernière ligne fait appel au système de communication interne du jeu, et
confirme la création du bloc de pierre (à l’origine, ce système de communication
avait été créé pour permettre aux joueurs de converser par Internet quand ils
jouent en réseau et qu’ils ne sont pas dans la même pièce). Le message confirme
le bon déroulement du script. Sans lui, la création du bloc pourrait passer inaper-
çue, en particulier s’il n’est pas dans votre champ de vision.

Figure 12.5 Programme pour Minecraft Pi Edition Python terminé

Enregistrez le fichier d’un clic sur le menu File, puis sur Save. Chargez
­ inecraft Pi Edition et cliquez sur Start Game. Chargez un monde ou créez en un
M
nouveau, puis pressez les touches Alt + Tab pour désactiver la fenêtre de Mine-
craft. Vous avez alors le contrôle de la souris à l’extérieur de Minecraft. De cette
manière le déplacement du pointeur de la souris n’affecte plus le personnage du
jeu. Cela vous permet de retourner à la fenêtre IDLE qui contient votre code.
Dans IDLE, cliquez sur le menu Run, puis sur Run Module, ou pressez la touche
de fonction F5, pour exécuter le programme que vous avez saisi. Après quelques
secondes, le message « Bloc de pierre créé » devrait apparaître dans la fenêtre de
Minecraft (figure 12.6). Pressez Alt + Tab à nouveau pour réactiver la fenêtre du

198/ Chapitre 12 : Minecraft Pi Edition


jeu, en maintenant la pression sur la touche Alt et en pressant de manière suc-
cessive la touche Tab, jusqu’à ce que Minecraft apparaisse en surbrillance dans la
liste. Utilisez ensuite la souris pour regarder les environs du personnage. Le bloc
de pierre devrait se trouver à proximité. Si vous déplacez votre personnage et
que vous retournez à IDLE avec la touche Tab, puis lancez votre programme avec
Run Module, un autre bloc devrait être créé. Vous pouvez également décider de
changer les coordonnées X, Y et Z du programme, pour qu’un bloc soit créé ail-
leurs, sans même avoir à déplacer le personnage. Vous pouvez même en déposer
un dans le ciel, si le cœur vous en dit.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 12.6 Message s'affichant sur la console de chat de Minecraft

Il en est de l’API comme de Minecraft, le mieux est de mener ses propres expé-
riences. On peut également trouver des tutoriels pour Minecraft Pi Edition dans
The Magpi, le magazine officiel de la Fondation Raspberry Pi qui peut se télé-
charger à www.raspberrypi.org/magpi. Vous trouverez rapidement d’autres res-
sources sur Internet avec les mots-clés Minecraft Pi Edition. En observant et en
modifiant les programmes que vous trouverez, vous allez vite acquérir un certain
savoir-faire avec l’API ; et cerise sur le gâteau, vous en profiterez pour vous entraî-
ner à programmer en Python.
Exploitation
4
du matériel

/> chapitre 13 203


Exploitation du matériel du Pi

/> chapitre 14 217


Port GPIO

/> chapitre 15 233


Module de caméra

/> chapitre 16 247


© Dunod – Toute reproduction non autorisée est un délit.

Matériels additionnels

Hacker Minecraft /201


/> Chapitre
Exploitation
du matériel du Pi
13

Dans les chapitres précédents, vous avez appris comment le Raspberry Pi pou-
vait se transformer en plateforme polyvalente permettant d’exécuter des logiciels
variés. À cet égard, il n’est pas seul et n’importe quel ordinateur classique peut
exécuter les mêmes logiciels et, dans de nombreux cas, faire cela beaucoup plus
vite qu’un Pi dont le processeur est peu puissant.
Le Pi a cependant un autre atout qui le rend supérieur à n’importe quel PC
moyen : son port GPIO (general-purpose input-output, ou en français, entrées-
sorties à usage général), situé en haut à gauche du circuit imprimé du Pi.
Le GPIO permet au Pi de communiquer avec les autres composants et cir-
cuits et peut servir de contrôleur si on l’intègre dans un circuit électronique plus
large. Grâce au port GPIO, il est possible de mesurer la température, de déplacer
des servos et communiquer avec d’autres périphériques informatiques en uti-
lisant différents protocoles, dont SPI (Serial Peripheral Interface) et I²C (Inter-
Integrated Circuit). Le chapitre 14 fournit des détails sur l’exploitation des broches
© Dunod – Toute reproduction non autorisée est un délit.

du port GPIO.
Avant de pouvoir commencer à créer des circuits utilisant le port GPIO du
Pi, vous devez toutefois acquérir certains équipements supplémentaires et
apprendre certains termes du vocabulaire de l’électronique.

Équipement électronique
Pour commencer à construire des circuits qui peuvent être contrôlés par le
port GPIO du Pi, vous aurez besoin de certains composants et d’outils. Voici une
liste d’achats de matériels de base qui vous permettront de démarrer en l’élec-
tronique :

Équipement électronique /203


>> Breadboard : une breadboard 1 électronique est une grille de trous espacés
de 2,54 mm dans lesquels les composants peuvent être insérés et enlevés.
Sous chaque grille, il y a une série de contacts électriques qui permettent
aux composants situés sur la même ligne d’être reliés entre eux sans avoir
besoin de câble. Une breadboard est un outil précieux quand on fait de
l’électronique, surtout quand on réalise des prototypes, car cela permet de
faire rapidement des circuits qui peuvent être modifiés sans avoir besoin de
souder ou dessouder des composants.
>> Câbles : même si une breadboard permet d’assembler certains compo-
sants sans avoir à les câbler, vous avez encore besoin de câbles pour relier
une ligne à l’autre, ou pour connecter la breadboard au port GPIO du Pi.
Ce type de câble s’appelle câble de raccordement, et si vous travaillez sur
une breadboard, il est préférable d’avoir du câble monobrin plutôt que mul-
tibrin. En effet, les câbles monobrins sont plus faciles à insérer dans les
trous de la breadboard. Il est également utile d’avoir des couleurs diffé-
rentes afin que vous puissiez coder la couleur de chaque connexion selon
sa fonction
>> Résistances : la grande majorité des circuits électriques utilisent des com-
posants appelés résistances, et les exemples de projets de ce chapitre ne
font pas exception à cette règle. La résistance est mesurée en ohms, cette
unité étant représentée par la lettre grecque oméga (Ω). Essayez toujours
d’avoir un petit stock de résistances : 2,2 KΩ, 10 KΩ et 68 Ω sont des valeurs
courantes à avoir sous la main quand on commence l’électronique. Certains
revendeurs proposent des kits de résistances, qui comprennent un large
éventail de valeurs que l’on utilise dans les montages.
>> Boutons : composant d’entrée très courant, un bouton permet de fermer un
circuit électrique quand on appuie dessus. On peut également considérer
qu’un clavier n’est jamais qu’une collection de boutons. Si vous concevez un
circuit pour fournir une simple entrée au Pi, choisissez un bouton qui soit un
interrupteur instantané.
>> LED : Les LED (diodes électroluminescentes) sont les sorties les plus cou-
rantes qui existent. Une LED s’allume lorsqu’une tension est appliquée, ce
qui procure un signal visuel quand une broche du port GPIO du Pi est activée
ou désactivée. Lorsque vous achetez des LED pour les utiliser avec le Pi,
optez pour des LED de faible puissance car le port GPIO n’est pas très puis-
sant et les LED de grande intensité (modèles d’un blanc éclatant ou d’un bleu
vif) nécessitent une alimentation externe et un composant supplémentaire
appelé transistor.

1.  NdT : littéralement, une breadboard est une planche à pain. En général, les électroniciens utilisent le
terme anglais et ne le traduisent pas. Cependant, si vous voulez acquérir une breadboard, il vous faudra
peut-être chercher dans certaines boutiques en ligne de composants électroniques une platine d’essais
sans soudure ou une platine de test sans soudure.

204/ Chapitre 13 : Exploitation du matériel du Pi


En outre, une fois que vous avez fini votre prototype sur votre breadboard et
que vous souhaitez pérenniser votre montage (ce que vous apprendrez à faire
plus loin dans ce chapitre), vous devez également acheter les éléments suivants :
>> Platine d’essai (stripboard) : une platine d’essai (souvent en époxy ou en
bakélite) peut être considérée comme une breadboard jetable. Comme sur
une breadboard, les trous de la grille sont disposés tous les 2,54 mm. À la
différence d’une breadboard, les composants doivent être soudés afin d’ob-
tenir un circuit électronique permanent.
>> Fer à souder : lorsque vous avez besoin de connecter un composant sur un
circuit de manière permanente, vous devez souder le composant. Ne dépen-
sez pas une fortune pour un fer à souder, mais si votre budget vous le per-
met, il est judicieux de choisir un modèle dont la température est contrôlée.
Assurez-vous d’acheter un fer à souder dont la panne est petite, pointue et
remplaçable ; les fers à souder ayant une pointe biseautée ne sont pas adap-
tés pour les travaux électroniques délicats.
>> Soudure : votre fer à souder a besoin de soudure. La soudure se compose
de métaux conducteurs ayant un point de fusion relativement bas et qui
sont mélangés avec un produit de nettoyage appelé flux. Veillez à ce que la
soudure que vous achetez soit adaptée aux travaux électroniques ; la sou-
dure épaisse pour les travaux de plomberie est bon marché, mais elle peut
endommager les circuits délicats car il faut beaucoup la faire chauffer pour
qu’elle fonde.
>> Support et éponge : il est important d’avoir un endroit où déposer le fer à
souder chaud quand vous ne l’utilisez pas et un moyen de nettoyer la panne
du fer au cours de la soudure. Certains fers à souder sont livrés avec un
support doté d’une éponge de nettoyage ; si vous n’en avez pas, achetez un
ensemble séparé qui intègre un support et une éponge.
>> Pince coupante : une fois que vous les avez soudés à travers une plaque,
certains composants ont de longues pattes (par exemple, les LED) qui
dépassent. Une pince coupante permet de couper les pattes du composant
rapidement et proprement sans endommager le joint de soudure.
© Dunod – Toute reproduction non autorisée est un délit.

>> Brucelles : les composants électroniques peuvent être très petits et diffi-
ciles à manier si bien que des brucelles vous seront très utiles. Si vous envisa-
gez d’utiliser des composants de montage en surface, au lieu de composants
à souder sur une plaque, vous devez absolument vous servir de brucelles,
sinon vous allez vous brûler les doigts si vous essayez de tenir le composant
et de le souder en même temps !
>> Troisième main : ce dispositif, lourd pour assurer sa stabilité, est muni de
pinces ou de clips qui maintiennent en place l’élément que vous voulez sou-
der. Certaines troisièmes mains incluent une loupe pour le travail délicat,
et d’autres plus onéreuses ont en plus une lumière pour éclairer la zone de
travail.

Équipement électronique /205


>> Multimètre : les multimètres permettent de mesurer plusieurs valeurs,
notamment la tension, la résistance et la capacitance, et réalisent des tests
de continuité qui permettent de trouver les ruptures dans les circuits. Bien
qu’un multimètre ne soit pas d’une nécessité absolue, il peut se révéler très
utile pour diagnostiquer les problèmes dans les circuits. Les multimètres
professionnels peuvent être assez chers, mais les modèles simples sont rela-
tivement bon marché et constituent un bon investissement pour ceux qui
veulent s’initier à l’électronique.
>> Tresse à dessouder : quand vous commettez une erreur, elle peut être cor-
rigée. Une tresse à dessouder est une bande de métal tressée qui peut être
placée sur un joint de soudure et chauffée, si bien qu’elle permet de reti-
rer la soudure en l’éloignant du composant. Avec la pratique, il est possible
d’utiliser une tresse à dessouder pour récupérer des composants sur des
équipements électroniques qui sont mis au rebut ; c’est un moyen pratique
de se constituer un stock de composants courants à vil prix.

Lecture des Codes couleur des résistances


La plupart des composants électroniques sont clairement étiquetés. Par
exemple, la capacité des condensateurs qui est exprimée en farads, est imprimée
directement sur le composant ou bien illustrée par un code numérique, et il en va
de même pour les quartz avec leur fréquence.
Les résistances constituent une exception majeure à ce principe car en géné-
ral on ne trouve aucune inscription sur leur surface. Au lieu de cela, la valeur de
la résistance en ohms est calculée à partir des bandes de couleur qui ornent la
surface de la résistance. Apprendre à décoder ces bandes est une compétence
importante pour un électronicien, car une fois qu’une résistance est retirée de son
emballage, la seule façon de déterminer sa valeur est d’utiliser un multimètre, qui
est un outil peu pratique pour ce genre de tâche.
Heureusement, les codes couleur des résistances suivent un modèle logique.
La figure 13.1 illustre une résistance typique à quatre bandes. Une version en cou-
leur de ce schéma est disponible dans les compléments en ligne de l’ouvrage sur
www.dunod.com. Les deux premières bandes indiquent une couleur qui corres-
pond à une valeur de résistance en ohms. La troisième bande est le multiplicateur
qui sert à multiplier les deux premiers nombres pour arriver à la valeur réelle de la
résistance. La dernière bande indique la tolérance de la résistance, ou son degré
de précision. Une résistance avec une tolérance basse aura une valeur plus proche
de sa valeur calculée qu’une résistance avec une tolérance plus élevée, mais le
prix de ce composant sera plus cher.
Pour lire la résistance illustrée dans cet exemple, il faut d’abord prendre en
compte les deux bandes de la résistance en partant de la gauche. Ces deux bandes
sont de couleur rouge. Dans le tableau inclus dans la figure 13.1, le rouge équivaut
à la valeur 2, si bien que la valeur initiale est égale à 22. La bande suivante, qui

206/ Chapitre 13 : Exploitation du matériel du Pi


est le coefficient multiplicateur, est de couleur verte, si bien qu’elle équivaut à 10 5
ou 100 000 (10 suivi de cinq zéros). En multipliant 22 par 100 000, on obtient à
2 200 000, soit la valeur de la résistance en ohms : 2 200 000 Ω.

Figure 13.1 Résistance à quatre bandes avec le tableau de décodage et ses codes couleur
(illustration en couleur disponible sur www.dunod.com)

Il y a 1 000 ohms dans un kilo-ohm et 1 000 kilo-ohms dans un mega-ohm.


Ainsi, 2 200 000 Ω s’écrit généralement sous la forme 2,2 MΩ. La dernière bande,
située sur le côté droit de la résistance, est de couleur or et indique la tolérance,
ou la précision de la résistance, qui est égale à plus ou moins 5 % dans l’exemple
illustré à la figure 13.1 (cela signifie que la valeur réelle de la résistance est com-
prise entre 2,09 MΩ et 2,31 MΩ).
© Dunod – Toute reproduction non autorisée est un délit.

Il y a aussi des résistances ayant 5 bandes qui se lisent de la même manière que
les résistances à quatre bandes, sauf que les trois premières bandes indiquent
les chiffres de la résistance, la quatrième bande le multiplicateur et la cinquième
bande la tolérance.

Approvisionnement en composants
Si vous n’avez jamais pratiqué l’électronique, vous aurez peut-être du mal à
trouver les composants et les outils. Heureusement, il existe de nombreux maga-
sins (dont certains sont en ligne) qui se spécialisent dans les composants rares
dont vous pourriez avoir besoin pour réaliser votre projet.

Approvisionnement en composants /207


// Boutiques en ligne
RS Components et Farnell sont deux des plus grands détaillants de composants
électroniques au monde Tous les deux, qui possèdent des bureaux et des entre-
pôts à travers le monde, ont un catalogue de composants extrêmement fourni.
Ce sont les deux premières sociétés à avoir obtenu des licences pour produire et
commercialiser le Raspberry Pi, et elles continuent à le vendre. Il est également
possible d’acheter des Raspberry Pi auprès d’autres sociétés, dont beaucoup
offrent des prix plus bas pour des commandes en petite quantité.
RS Components et Farnell se concentrent sur le marché B2B (business-to-
business), ce qui signifie que leur principale source de revenus provient des socié-
tés d’électronique qui achètent de grandes quantités de composants. Toutefois, les
deux entreprises permettent heureusement aux consommateurs de passer com-
mande sur leur site Web et d’acheter des composants en petite quantité, voire à
l’unité.
Lorsque vous passez de petites commandes, vous devez savoir que des frais
supplémentaires peuvent s’appliquer. Par exemple, RS Components qui livre la
marchandise le lendemain de la commande, prend des frais de livraison qui sont
tout à fait raisonnables pour les grosses commandes, mais dont le coût peut se
révéler plus cher que la marchandise elle-même pour les petites commandes. En
revanche, Farnell ne facture pas la livraison express tant que le total de la com-
mande est supérieur à une valeur minimale, qui varie d’un pays à l’autre.
En fonction de votre lieu d’habitation, vous pouvez aller retirer des articles que
vous avez commandés dans les magasins RS Components ou Farnell. Cela permet
d’économiser les frais de port et les marchandises sont livrées plus rapidement,
mais cette option n’est pas disponible en France. Voici les sites Web de ces deux
revendeurs :
>> RS Components : fr.rs-online.com/web
>> Farnell : fr.farnell.com

// Boutiques physiques
Il se peut que vous ayez besoin d’un composant immédiatement, et même un
service de livraison le lendemain ne serait pas assez rapide. Vous pouvez éga-
lement n’avoir besoin que d’une seule résistance ou bien que d’un petit bout de
câble dont l’achat en ligne engendrerait un coût de livraison trop élevé par rap-
port au coût de la marchandise. Heureusement, il existe des magasins qui sont
spécialisés dans la vente de composants électroniques. Bien que le nombre de
ces magasins ait baissé au cours des décennies précédentes, on trouve en général
dans les grandes villes au moins un magasin qui a en stock les outils et les com-
posants les plus courants.

// Magasins pour Hobbyistes


Il existe aussi de petites entreprises qui se spécialisent dans le marché des
hobbyistes. Bien que leur catalogue soit plus restreint que celui des grandes

208/ Chapitre 13 : Exploitation du matériel du Pi


entreprises de composants électroniques, leurs produits sont rigoureusement
sélectionnés et d’une grande qualité.
Un grand nombre de ces magasins pour hobbyistes sont nés dans le sillage de
l’Arduino, un projet open source pour créer une plateforme éducative de proto-
typage de microcontrôleur. Le Raspberry Pi s’adressant pour une grande partie à
la même clientèle de makers que l’Arduino (même si les fonctionnalités sont très
différentes), la plupart de ces sociétés ont ajouté le support du Raspberry Pi à
leurs gammes de produits.
Acheter chez ces vendeurs spécialisés présente plusieurs avantages. Si les
produits vendus sont certifiés pour fonctionner avec le Pi, cela signifie qu’ils ont
été testés, ce qui ne laisse pas de place au hasard. Plusieurs sociétés conçoivent
également leurs propres cartes additionnelles pour différentes plateformes, et
notamment le Pi. Ces dispositifs, qui sont conçus pour répondre à un besoin par-
ticulier de la communauté des makers, peuvent inclure des ports supplémentaires
ou du matériel qui étendent les fonctionnalités de l’appareil cible.
Au Royaume-Uni, oomlout est l’un de ces spécialistes pour hobbyistes les plus
populaires. Fondée par des passionnés de l’open source travaillant avec du maté-
riel Arduino, cette société produit d’excellents kits complémentaires ainsi que des
composants courants, notamment des boutons, des afficheurs et des transistors.
Contrairement aux grands revendeurs, oomlout dote ses composants de tous
les éléments supplémentaires nécessaires à leur fonctionnement (résistances
pull-up, boutons, etc.) et fournit un schéma du circuit pour faciliter le montage.
Quand il y a lieu, des exemples de code source sont également disponibles afin
que vous puissiez exploiter votre matériel aussi vite que possible.
Aux États-Unis, Adafruit propose un service similaire. Fondée dans le but de créer
des modules open source pour les cartes Arduino, cette société qui propose une large
sélection de pièces et de kits, a été chargée de concevoir et de produire une des pre-
mières cartes additionnelles conçue spécifiquement pour le Raspberry Pi.
Voici les sites Web de ces deux entreprises :
>> oomlout : oomlout.co.uk
>> Adafruit : www.adafruit.com
© Dunod – Toute reproduction non autorisée est un délit.

Découverte de la breadboard
Les breadboards sans soudure sont excellentes pour créer rapidement des cir-
cuits de prototype. Elles sont rapides à mettre en œuvre et réutilisables, tout en
n’endommageant pas les composants.
Les breadboards ont cependant quelques inconvénients. Elles sont encom-
brantes, coûteuses et leurs connexions ont tendance à se desserrer, ce qui peut
entraîner la chute de composants critiques, surtout si la breadboard est trans-
portée d’un endroit à l’autre. La figure 13.2 illustre parfaitement cela. Malgré tous
les efforts, le bouton-poussoir est connecté de manière trop lâche sur la platine
d’essai et il risque de tomber si le circuit est manipulé de façon trop brusque.

Découverte de la breadboard /209


Figure 13.2 Exemple de circuit sur une breadboard avec des composants pas assez bien fixés

C’est une des raisons, parmi beaucoup d’autres, pour lesquelles le Raspberry
Pi est monté sur une carte de circuit imprimé plutôt que sur une breadboard,
bien qu’une breadboard ait certainement été utilisée au début du prototypage.
Il est possible d’imprimer et de graver vos propres circuits à la maison, mais il y
a une étape intermédiaire plus simple qui consiste à utiliser une platine d’essai
pour créer des circuits permanents.
À première vue, une platine d’essai ressemble à une breadboard car sa sur-
face est couverte de petits trous espacés de 2,54 mm. Cependant, à la dif-
férence d’une breadboard, il n’y a aucun mécanisme intelligent pour veiller
à ce que les composants électroniques placés dans ces trous y restent fixés ;
au lieu de cela, il faut les souder sur la platine d’essai. Les platines d’essai
sont souvent désignées par leur appellation commerciale, Veroboard, qui est
une marque déposée par Vero Technologies au Royaume-Uni et Pixel Print au
Canada.
Créer un circuit sur une platine d’essai a de nombreux avantages par rap-
port à l’emploi d’une breadboard. Une platine d’essai est nettement moins
coûteuse qu’une breadboard de taille équivalente, et une platine d’essai peut
être découpée à la taille des plus petits circuits. Cela permet également de
créer à partir d’une grande platine d’essai toute une série de petits circuits
indépendants.
Comme les composants sont soudés sur la platine d’essai, c’est aussi beau-
coup plus robuste qu’un prototype sur une breadboard. Un circuit sur une
platine d’essai peut être transporté d’un lieu à un autre, sans grand risque que
l’un de ses composants ne se détache et soit perdu. La figure 13.3 illustre un
bout de platine d’essai retourné pour montrer les pistes de cuivre sur la face
du dessous.

210/ Chapitre 13 : Exploitation du matériel du Pi


Figure 13.3 Pistes de cuivre sur le dessous d’un morceau de platine d’essai

Les platines d’essai sont extrêmement faciles à utiliser, ce qui en fait un


excellent tremplin pour la conception de circuits personnalisés. Toutefois, vous
devez être conscient des choses suivantes avant d’acheter une platine d’essai :
>> Il existe différents types de platine d’essai. Certaines platines d’essai ont sur
la face du dessous des pistes de cuivre qui parcourent toutes les lignes et les
colonnes, tandis que d’autres platines d’essai sont divisées en deux lignes
distinctes avec un creux au milieu, comme sur une breadboard. Il existe
encore un autre type de platine d’essai, souvent appelée carte de projet, qui
n’a aucune piste en cuivre et nécessite l’utilisation de câbles pour relier les
composants électriquement.
>> Une platine d’essai peut être réalisée en différentes épaisseurs et avec dif-
férents matériaux, et un type de platine d’essai est peut-être plus adapté
à un projet particulier qu’un autre type. Par exemple, une platine d’essai
résistant à la chaleur est parfaite pour un circuit qui va être dans un envi-
© Dunod – Toute reproduction non autorisée est un délit.

ronnement à haute température, tandis qu’une platine d’essai plus épaisse


doit être utilisée pour les circuits qui peuvent être exposés à des manipu-
lations brutales.
>> Pour améliorer la disposition des composants sur une platine d’essai, il est
possible de briser les pistes sur le dessous afin de séparer les composants
électriquement. Cela évite de gaspiller l’espace inutilisé et c’est une néces-
sité absolue dans des circuits plus complexes, mais pour obtenir des résul-
tats propres, vous avez besoin d’un petit outil appelé coupe cartes à bande.
N’oubliez pas d’ajouter cet outil à votre liste d’achats si vous prévoyez l’uti-
lisation de platines d’essai, même si une petite mèche peut également faire
l’affaire.

Découverte de la breadboard /211


Il y a aussi quelques astuces à connaître pour faciliter l’utilisation des platines
d’essai :
>> Les pistes de cuivre sur le dessous des platines d’essai ne sont généralement
pas enduites d’un quelconque produit protecteur. Si vous touchez ces pistes,
vous allez ternir le cuivre, ce qui va rendre la soudure plus difficile. Évitez de
toucher le dessous de la platine d’essai à moins de l’utiliser immédiatement ;
si c’est trop tard, prenez une laine d’acier et brossez le cuivre doucement
pour enlever la corrosion avant de commencer à souder.
>> À la différence d’un circuit imprimé, une platine d’essai n’a aucun masque de
soudure, une substance qui empêche la soudure d’aller là où elle n’est pas
censée aller. En conséquence, la soudure est un peu plus compliquée que
sur un circuit imprimé. Il est également facile de faire accidentellement une
jonction entre deux pistes avec une soudure trop large. Dans ce cas, utilisez
votre tresse à dessouder pour enlever l’excès de soudure et réessayez.
>> Les trous d’une platine d’essai facilitent son découpage pour son insertion
dans des formats personnalisés, mais les bords restent coupants et vous devez
prendre le temps de les limer avant d’assembler votre circuit. Assurez-vous de
porter un masque pendant cette opération car la poussière produite par le
ponçage d’une platine d’essai n’est pas particulièrement saine à respirer.

Conseils pour bien souder


Avoir un fer à souder est une chose, savoir comment l’utiliser en est une autre.
La soudure, comme toute compétence, s’acquiert par la pratique. Si vous suivez
les conseils de cette section et si vous vous entraînez, vous allez rapidement créer
des soudures propres et nettes.

Mise en garde

Cela peut paraître évident, mais cela vaut la peine de le sou-


ligner : les fers à souder deviennent très chauds pendant
leur utilisation. Assurez-vous de ne toucher aucune surface
métallique, même si la panne n’est pas en contact, et faites
attention à l’emplacement où vous posez le fer à souder. Si
possible, achetez un fer muni d’un support ou bien dotez-
vous d’un support séparé résistant à la chaleur. Ne laissez
jamais sans surveillance un fer à souder chaud et si vous le
faites tomber, n’essayez jamais de le rattraper !

La soudure (qui est en fait un brasage en électronique) consiste à faire fondre


une petite quantité de métal pour former un joint entre deux éléments. Si vous
retournez le Raspberry Pi, vous verrez de nombreux exemples de soudure. Les
plus grands composants sont connectés en utilisant ce qu’on appelle des trous

212/ Chapitre 13 : Exploitation du matériel du Pi


traversants (c’est-à-dire des trous pratiqués dans le circuit imprimé), dans les-
quels les pattes des composants sont insérées puis soudées. Les composants plus
petits sont fixés grâce à un montage en surface.
La soudure n’est pas du métal pur car elle contient aussi une substance appe-
lée flux, qui est conçue pour nettoyer les impuretés présentes sur les surfaces
à souder afin de garantir un joint aussi propre que possible. La plupart des sou-
dures électroniques comprennent trois à cinq couches de flux. Vous pouvez éga-
lement acheter du flux séparément sous forme de pâte ou sous forme liquide,
bien que cela ne soit pas nécessaire pour la plupart des travaux réalisés par les
hobbyistes.
Avant de commencer à souder, assurez-vous de disposer d’un espace de tra-
vail propre et bien éclairé. En outre, assurez-vous que la zone est bien aérée. Les
fumées dégagées par la soudure ne sont pas très bonnes pour la santé, et même
s’il est peu probable qu’elles se concentrent à des niveaux dangereux étant donné
le faible volume de soudure, il est toujours préférable de s’y exposer au minimum.
De plus, vous devez protéger la surface de travail. Il n’est pas rare que de
petites gouttes de soudure fondue tombent si bien qu’elles peuvent brûler la table
et laisser des marques. Vous pouvez acheter un tapis antistatique (la figure 13.4
illustre un exemple), mais un magazine sur papier glacé fonctionne aussi bien.
N’utilisez pas des feuilles d’un journal bon marché car la soudure brûlante pour-
rait traverser le papier fin avant qu’elle ne refroidisse.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 13.4 Exemple d’espace de travail pour la soudure avec un tapis protecteur antistatique

Si vous faites un travail délicat, où vous devez vous rapprocher pour mieux voir,
vous devriez porter des lunettes de protection. Le flux bouillant à l’intérieur de la
soudure peut parfois gicler, et si vous en recevez une goutte dans l’œil, vous allez

Conseils pour bien souder /213


souffrir… Les lunettes vous protégeront aussi quand vous coupez les pattes des
composants qui dépassent des trous traversants.
Que ces mises en garde ne vous découragent pas cependant de vous essayer
à la soudure. Bien que la soudure soit extrêmement chaude, elle refroidit rapide-
ment et les brûlures sont non seulement rares, mais également presque toujours
sans conséquence. Respectez votre matériel, mais n’en ayez pas peur.
Quand votre surface de travail est protégée, mettez en place votre équi-
pement. Posez le fer du côté de la main dont vous vous servez pour souder et
positionnez-le de telle sorte que le câble n’encombre pas votre espace de travail.
Assurez-vous que vous pouvez déplacer le fer librement avant de le brancher. Si
le câble se bloque sur quelque chose, vous risquez de vous brûler.
Humidifiez votre éponge avec de l’eau, mais sans excès car elle doit être
humide, mais pas trempée. Cette précaution est importante : l’éponge humide
sert à nettoyer le fer, et si elle est sèche, elle brûlera et pourra endommager la
panne du fer à souder qui est fragile.
Il faudra attendre quelques minutes pour que le fer à souder atteigne sa tem-
pérature de fonctionnement. Si vous avez acheté un fer à température contrô-
lée, la température de fonctionnement est normalement indiquée par une lampe
qui s’allume ou s’éteint, ou bien par un affichage numérique de la température
(consultez le mode d’emploi de votre fer à souder pour savoir comment les tem-
pératures sont indiquées).
Une fois la température de fonctionnement atteinte, il faut préparer le fer à
souder à l’aide d’un processus appelé étamage. Procédez de la manière suivante :
1/ Placez l’extrémité du fil à souder sur la panne du fer, ce qui permet de faire
fondre une petite quantité de soudure sur le fer. Veillez à ne pas trop en faire
fondre sur le fer car c’est non seulement du gaspillage, mais surtout les excès
de soudure peuvent tomber sur le plan de travail.
2/ Essuyez la panne du fer sur l’éponge. Si elle grésille et crache, c’est que l’éponge
est trop humide. Laissez refroidir l’éponge, puis retirez-la du support et essorez-la.
3/ Essuyez la panne jusqu'à ce qu’elle soit recouverte d’une couche argentée de
soudure (figure 13.5). Si nécessaire, appliquez plus de soudure sur la panne.

Figure 13.5 Panne de fer à souder en train d’être étamée avec de la soudure

214/ Chapitre 13 : Exploitation du matériel du Pi


Ce processus d’étamage de la panne protège contre les dommages et garantit que
la chaleur sera bien transmise sur les surfaces à souder. Un mauvais étamage de la
panne du fer à souder est l’une des causes les plus fréquentes de la mauvaise qualité
des soudures. Il faudra répéter cette opération plusieurs fois si vous avez beaucoup
de connexions à souder, et vous devrez recommencer à la fin de la session de soudure
afin de protéger la panne quand le fer à souder se refroidit. En général, si la panne
du fer à souder perd son revêtement brillant, il faut répéter le processus d’étamage.
Quand le fer est préparé correctement, il faut commencer à souder. Mettez en
place les éléments à souder (par exemple, un circuit imprimé et les pattes d’un
composant) sur le plan de travail et veillez à avoir une vue dégagée. Tirez une
bonne longueur de fil à souder de sa bobine et commencez à souder les compo-
sants en respectant ces étapes élémentaires :
1/  Si vous soudez des composants sur une carte de circuit imprimé ou une platine
d’essai en les passant dans des trous traversants, placez les pattes du com-
posant dans les trous et repliez-les vers l’extérieur pour que le composant ne
tombe quand la carte sera retournée.
2/ La carte étant fixée correctement sur le plan de travail, placez la panne du fer
contre le composant et le contact en cuivre sur la carte. Il est important que le
fer touche les deux éléments. Si le fer n’est en contact qu’avec un seul élément,
le joint sera de mauvaise qualité.
3/ Il ne faut que quelques secondes pour que la zone soit suffisamment chaude.
Comptez jusqu'à trois, puis posez le fil à souder contre le composant et les
contacts en cuivre (figure 13.6). Si la soudure ne fond pas, retirez le fil, comptez
quelques secondes de plus et essayez à nouveau. Si elle ne fond toujours pas,
essayez de repositionner la panne.
4/ Quand la soudure se déverse, vous la verrez aspirée dans le trou de la carte.
Cela signifie que la surface est assez chaude pour assurer une bonne soudure.
Si la soudure flotte, c’est que la surface n’est pas encore assez chaude.
5/ Retirez d’abord le fil à souder du joint, puis le fer (si vous retirez d’abord le fer,
la soudure va durcir et votre fil à souder restera collé au contact !).
© Dunod – Toute reproduction non autorisée est un délit.

Si tout se passe bien, vous vous retrouvez avec une soudure solide qui va durer
de nombreuses années. Sinon, ne soyez pas découragé ; il suffit d’appuyer le fer
contre le joint pour faire fondre la soudure et ensuite utiliser de la tresse à des-
souder si vous avez besoin de nettoyer l’excès de soudure. Un joint de soudure
parfaite devrait avoir la forme d’un volcan qui s’élève de la surface de la carte pour
aller jusqu’à la patte du composant.
Ne laissez jamais le fer en contact avec les éléments à souder pendant plus de
quelques secondes. Ceci est particulièrement important quand on doit souder des
composants sensibles à la chaleur comme les circuits intégrés, qui peuvent être
endommagés par un contact prolongé avec un fer à souder chaud. Si vous utilisez
une station de soudure à température contrôlée, assurez-vous que la température

Conseils pour bien souder /215


est réglée à un niveau qui convient pour le fil à souder utilisé (vérifiez sur l’embal-
lage de la soudure ou sur la notice technique pour plus de détails).

Figure 13.6 Soudure d’un composant dans le trou traversant d’une carte de circuit imprimé

Lorsque vous avez terminé, n’oubliez pas d’étamer à nouveau la panne du fer.
Si vous ne le faites pas, la panne peut se corroder quand le fer ne sera plus utilisé
et il faudra la remplacer beaucoup plus tôt que prévu.

Astuce

N’oubliez pas de chauffer avec le fer les deux surfaces à


souder. Si vous ne chauffez qu’une seule surface, vous allez
produire ce qu’on appelle une soudure sèche ou froide, où
la soudure n’est pas correctement collée à l’autre surface.
Au fil du temps, ce joint posera des problèmes et il faudra à
nouveau faire une soudure.

Comme toute compétence, la soudure demande de l’entraînement. De nom-


breux magasins d’électronique vendent des kits qui comprennent un circuit
imprimé et une sélection de composants que vous pouvez utiliser pour vous
entraîner à souder des composants dans des trous traversants. Certaines cartes
additionnelles pour le Raspberry Pi sont fournies sous la forme de kits, et le Ras-
pberry Pi Zéro lui-même nécessite quelques soudures pour exploiter pleinement
ses capacités de sortie vidéo composite et les ports du GPIO.
/> Chapitre
Port GPIO
14

Le port GPIO (general-purpose input-output, en français : entrées-sorties à


usage général) du Raspberry Pi est situé dans le coin supérieur gauche de la
carte. Le port est équipé de deux rangées de 20 broches mâles espacées de
2,54 mm, à l’exception du Raspberry Pi Zéro où les broches doivent être sou-
dées (cette opération est expliquée à la fin de ce chapitre). L’espacement de ces
broches (2,54 mm représentent d’ailleurs 0,1 pouce) est conforme à ce que l’on
rencontre partout en électronique, notamment dans les platines d’essai et les
breadboards.

Identification de la version de votre carte


Tous les Raspberry Pi modernes, excepté le Compute Module à vocation indus-
trielle, disposent d’un port GPIO à 40 broches normalisé. Si vous avez un Rasp-
berry Pi modèle A+, modèle B+, Raspberry Pi 2, Raspberry Pi 3 ou Raspberry Pi
Zéro, vous avez la version la plus récente du port GPIO et vous devez utiliser le
schéma de brochage illustré à la figure 14.1.
Il existe deux autres types de port GPIO, qui ne se retrouvent que sur les pre-
mières versions du Raspberry Pi. Ceux-ci sont immédiatement reconnaissables
par rapport à la conception actuelle de 40 broches, car ils n’ont que 26 broches
© Dunod – Toute reproduction non autorisée est un délit.

disposées en deux rangées de 13. Ce port GPIO plus court se trouve sur le Ras-
pberry Pi modèle A et modèle B. Si vous possédez le tout premier modèle de
Raspberry Pi, un modèle A, vous devez utiliser le schéma de brochage illustré à
la figure 14.2.
Les possesseurs du Raspberry Pi modèle B doivent identifier leur numéro de
version. Les dernières versions, qui se distinguent par la présence d’un connec-
teur étiqueté P5 vide et située juste en dessous du port GPIO, sous la carte,
doivent utiliser le brochage illustré à la figure 14.2, comme pour le Raspberry Pi
modèle A. Si vous n’avez pas de connecteur marqué P5, vous avez alors la pre-
mière version du Raspberry Pi modèle B révision 1, qui est le seul modèle à utiliser
le brochage illustré à la figure 14.3.

Identification de la version de votre carte /217


Figure 14.1 Définitions des broches du port GPIO du Raspberry Pi

Figure 14.2 Ancien brochage à 26 broches du port GPIO du premier Raspberry Pi

Pour de plus amples détails sur les différentes versions de la carte et la manière
de les distinguer, reportez-vous au chapitre 1.

218/ Chapitre 14 : Port GPIO


Figure 14.3 Brochage du port GPIO de la première version du Raspberry Pi modèle B révision 1

Schémas de brochage du port GPIO


Chaque broche du port GPIO a sa propre fonction, plusieurs broches marchant
ensemble pour former des interfaces particulières. La figure 14.1 illustre la dispo-
sition du port GPIO (pour les modèles A+, B+, Pi 2, Pi 3 et Pi Zéro).
Vous devez toujours vous référer à ce schéma avant de brancher quoi que ce soit
sur le port GPIO du Raspberry Pi ; si vous branchez un périphérique sur une mau-
vaise broche, vous pouvez endommager à la fois le périphérique et le Raspberry Pi.
Si vous examinez le diagramme de la figure 14.2 (pour les modèles A ou B à
partir de la révision 2) vous remarquerez peut-être qu’il est identique aux 26 pre-
mières broches du schéma actuel à 40 broches. Il s’agit d’un choix délibéré de
© Dunod – Toute reproduction non autorisée est un délit.

conception pour assurer la compatibilité ascendante ; les dispositifs conçus pour


se connecter sur le port GPIO à 26 broches fonctionnent très bien lorsqu’ils sont
connectés sur les 26 premières broches du port GPIO à 40 broches plus récent.
La dernière variante de port GPIO se trouve sur un seul modèle de Raspberry
Pi : le tout premier modèle B révision 1. Si vous en avez un exemplaire, nous vous
adressons nos félicitations car vous possédez ce qui est devenu aujourd’hui un
objet de collection ; avec ce Pi, utilisez le brochage de la figure 14.3.
Les numéros des broches du port GPIO sont séparés en deux rangées, avec
la ligne du bas comportant les nombres impairs et la ligne du haut les nombres
pairs. Il est important de garder cela à l’esprit lorsque vous travaillez avec le port
GPIO du Pi car la plupart des autres appareils utilisent un système différent pour

Schémas de brochage du port GPIO /219


la n
­ umérotation des broches. D’autre part, comme il n’y a aucun marquage évident
pour se repérer sur le Pi, il est facile de se tromper et de prendre une broche pour
une autre.
Bien que le port GPIO du Pi fournisse une alimentation en 5 V, produite à
partir du courant provenant de la prise micro-USB (disponible sur la broche 2),
le fonctionnement interne du Pi repose sur une logique en 3,3 V. Cela signifie
que les composants du Pi fonctionnent avec une alimentation en 3,3 V (dispo-
nible sur la broche 1). Si vous avez l’intention de créer un circuit qui s’interface
avec le Pi via son port GPIO, assurez-vous d’utiliser des composants compa-
tibles avec la logique en 3,3 V ou bien employez un convertisseur de niveau
logique.

Mise en garde
Si vous connectez une alimentation en 5 V à n’importe quelle broche du port GPIO
du Raspberry Pi ou si vous reliez directement une des broches d’alimentation
(broches 2 et 4) à n’importe quelle autre broche, vous allez endommager votre
Pi. Comme le port est câblé directement aux broches du processeur Broadcom
BCM283x, vous allez causer des dommages irréversibles. Soyez toujours très pru-
dent lorsque vous travaillez avec le port GPIO.

Caractéristiques du GPIO
Selon votre modèle de Raspberry Pi, le port GPIO fournit par défaut au moins
huit broches à usage général : les broches 7, 11, 12, 13, 15, 16, 18 et 22. Ces bro-
ches peuvent prendre trois états : high, où la broche fournit une tension posi-
tive de 3,3 V, low, où la tension est égale à 0 V ou à la masse, et input (entrée).
Les deux sorties correspondent à 1 et à 0 en logique binaire et peuvent être
utilisées pour activer ou désactiver d’autres composants. Vous trouverez plus
d’informations sur ce sujet plus loin dans ce chapitre. Les Raspberry Pi qui ont
un port GPIO de 40 broches offrent un certain nombre de broches supplémen-
taires à usage général, qui sont décrites dans le schéma de brochage illustré à
la figure 14.1.

Mise en garde
La logique interne du Pi fonctionne en 3,3 V, ce qui le différencie de nombreux
microcontrôleurs courants, comme le célèbre Arduino et ses variantes, qui fonc-
tionnent généralement en 5 V. Les dispositifs conçus pour l’Arduino peuvent ne
pas fonctionner avec le Pi sauf si un translateur de niveau ou un isolateur optique
vient s’intercaler entre les deux. De la même manière, si l’on relie directement au
port GPIO du Pi les broches d’un microcontrôleur en 5 V, cela ne fonctionnera pas
et cela peut endommager de façon irréversible le Pi.

220/ Chapitre 14 : Port GPIO


En plus de ces broches à usage général, le port GPIO comporte des broches
spécialisées dans la gestion des bus particuliers. Ces bus, qui sont décrits dans
les paragraphes qui suivent, peuvent être activés ou désactivés comme cela a été
décrit au chapitre 6.

// Bus série UART


Le bus série UART (Universal Asynchronous Receiver/Transmitter) fournit une
interface série simple sur deux fils. Lorsqu’un port série est configuré dans le
fichier cmdline.txt (voir le chapitre 7), c’est ce bus série qui sert de port pour les
messages. La connexion du bus série UART du Pi à un dispositif capable d’afficher
des données permet de révéler les messages du noyau Linux. Si vous rencontrez
des difficultés à faire démarrer le Pi, cela peut constituer un outil de diagnostic
pratique, en particulier si rien ne s’affiche à l’écran.
Le bus série UART est accessible sur les broches 8 et 10, la broche 8 transpor-
tant le signal d’émission et la broche 10 le signal de réception. Vous pouvez régler
la vitesse dans le fichier cmdline.txt, la vitesse étant généralement de 115 200
bits par seconde (bps).

// Bus I²C
Comme son nom l’indique, le bus I²C (Inter-Integrated Circuit) est conçu pour
permettre des communications entre plusieurs circuits intégrés. Dans le cas du Pi,
l’un de ces circuits intégrés est le processeur Broadcom BCM2835 qui constitue
le cœur du système. Ces broches sont reliées à des résistances pull-up situées sur
le Pi, ce qui signifie qu’il n’y a pas besoin de résistances externes pour accéder à
la fonctionnalité I²C.
Le bus I²C est accessible sur les broches 3 et 5, la broche 3 fournissant le signal
de la ligne de données série (SDA) et la broche 5 le signal de la ligne d’horloge
série (SCL). Le bus I²C disponible sur ces broches est en fait l’un des deux bus
fournis par la puce BCM2835 : il s’agit du bus 0 sur un Raspberry Pi modèle B révi-
sion 1 et du bus 1 sur tous les autres Raspberry Pi. Le second bus I²C est réservé
à l’usage du Module de caméra et à l’écran tactile.
© Dunod – Toute reproduction non autorisée est un délit.

// Bus SPI
Le bus SPI (Serial Peripheral Interface) est un bus série synchrone qui offre
des performances améliorées par rapport au bus I²C. Le bus SPI a quatre fils
avec plusieurs lignes Chip Select, qui permettent de communiquer avec plusieurs
périphériques cibles.
Le bus SPI du Pi est disponible sur les broches 19, 21 et 23, avec deux lignes
Chip Select sur les broches 24 et 26. La broche 19 fournit le signal MISO (Master
Output, Slave Input), la broche 21 le signal MISO (Master Input, Slave Output), la
broche 23 le signal SLCK (Serial Clock) utilisé pour synchroniser la communica-
tion, les broches 24 et 26 les signaux Chip Select pour gérer jusqu'à deux péri-
phériques esclaves indépendants.

Caractéristiques du GPIO /221


Bien que des bus supplémentaires soient présents dans le processeur
BCM283x du Raspberry Pi, ils ne sont pas exploités par le port GPIO et ne sont
donc pas disponibles.

Utilisation du Port GPIO en Python


Après la théorie, il est temps de passer à la pratique. Dans cette section, vous
allez apprendre à construire et à programmer deux circuits électroniques simples
qui illustrent la manière dont on peut utiliser les entrées et les sorties du port
GPIO.
Comme vous l’avez vu dans le chapitre 11, Python qui est un langage de pro-
grammation convivial et puissant, n’est cependant pas adapté à toutes les situa-
tions. Bien qu’il fonctionne très bien pour les circuits simples que vous allez créer
dans ce chapitre, ce langage n’offre pas ce qu’on appelle un système temps réel
déterministe. Pour la majorité des utilisateurs, cela n’a aucune conséquence, mais
si vous prévoyez d’utiliser le Pi pour gérer un réacteur nucléaire ou une plate-
forme robotique complexe, il est préférable d’employer un langage de bas niveau,
comme le C++, voire l’assembleur et d’exécuter les programmes sur un micro-
contrôleur temps réel.
Si vous avez besoin d’un véritable système temps réel pour votre projet, le Pi
n’est pas un choix idéal. Au lieu de cela, envisagez l’emploi d’un microcontrôleur,
comme l’Arduino qui est open source, ou bien un microcontrôleur issu de la famille
MSP430 de Texas Instruments. Ces deux appareils, qui peuvent s’interfacer avec
le Pi par le biais du port GPIO (en utilisant les bus décrits ci-dessus) ou grâce au
bus USB, offrent un environnement temps réel spécialisé pour le contrôle et la
détection.

// Sortie GPIO : faire clignoter une LED


Pour le premier exemple, vous devez construire un circuit simple composé
d’une résistance et d’une LED. La LED fournit une confirmation visuelle du fait
que le port GPIO du Pi réalise bien ce que votre programme Python lui demande
de faire. La résistance sert à limiter le courant consommé par la LED afin qu’elle
ne grille pas.

Valeur d’une résistance pour limiter le courant


Une LED a besoin qu’une résistance limite le courant qui la traverse pour l’empê-
cher de griller. Sans résistance, une LED fonctionne en général pendant une très
courte période avant de griller et d’avoir besoin d’être remplacée. Savoir qu’une
résistance est nécessaire est une chose, mais c’en est une autre que de savoir
choisir la bonne résistance. Si vous optez pour une valeur trop élevée, la lumière
de la LED sera extrêmement faible, voire ne parviendra pas du tout à éclairer ; et si
la valeur est trop faible, la LED grillera.

222/ Chapitre 14 : Port GPIO


Pour calculer la résistance de la valeur requise, vous devez connaître le courant
direct de votre LED. Il s’agit du courant maximal que la LED peut consommer avant
d’être endommagée, et qui se mesure en milliampères (mA). Il faut aussi connaître
la tension directe de la LED. Cette dernière valeur, exprimée en volts, devrait être
au maximum de 3,3 V ; si elle est plus élevée, la LED nécessite une alimentation
externe et un dispositif de commutation que l’on appelle transistor pour qu’elle
fonctionne avec le Pi.
Le moyen le plus simple pour déterminer la valeur d’une résistance est d’appli-
quer la formule R = (V – F)/I, où R est la résistance en ohms, V la tension directe
de la LED, F la tension de la LED, et I le courant direct maximal de la LED en
ampères (1 000 mA valant 1 A).
Si l’on prend l’exemple d’une LED rouge classique avec un courant direct de
25 mA, une tension directe de 1,7 V et une alimentation de 3,3 V fournie par le
port GPIO du Pi, vous pouvez calculer la résistance nécessaire de la manière
suivante : (3,3 – 1,7) / 0,025 = 64. Ainsi, une résistance de 64 KΩ ou une valeur
supérieure protégera la LED. Comme vous trouverez rarement dans le com-
merce des résistances avec cette valeur, il faudra choisir la première valeur
supérieure disponible afin de protéger la LED. Dans notre exemple, la plus
proche valeur couramment disponible est 68 KΩ, ce qui protégera efficace-
ment la LED.
Si vous ne connaissez pas la tension et le courant de vos LED (par exemple, si
la LED n’est pas livrée avec une notice technique, ou si c’est une LED récupérée
dans des déchets électroniques), péchez par excès de prudence et installez une
résistance suffisamment importante. Si la LED n’éclaire pas assez, vous pourrez
toujours réviser à la baisse, mais il est impossible de réparer une LED qui a été
grillée.

Pour assembler le circuit, vous avez besoin d’une breadboard, de deux fils de
raccordement, d’une LED et d’une résistance pour limiter le courant (voir l’enca-
dré « Calcul de la valeur d’une résistance pour limiter le courant »). Bien qu’il soit
possible d’assembler le circuit sans breadboard en reliant les fils ensemble, une
© Dunod – Toute reproduction non autorisée est un délit.

breadboard est un bon investissement qui facilite le montage et le démontage


des circuits de prototypes.
En supposant que vous utilisiez une breadboard, assemblez le circuit de la
manière suivante pour qu’il corresponde à celui illustré à la figure 14.4 :
1/ Insérez la LED dans la breadboard afin que la longue patte (l’anode) soit dans
une ligne et la patte plus courte (la cathode) dans une autre ligne. Si vous met-
tez les pattes de la LED sur la même ligne, elle ne fonctionnera pas.
2/ Insérez une patte de la résistance dans la même ligne que la patte la plus
courte de la LED et l’autre patte de la résistance dans une ligne vide. Le sens
dans lequel sont placées les pattes de la résistance n’a pas d’importance, car
une résistance est un dispositif non-polarisé (il est indépendant du sens).

Utilisation du Port GPIO en Python /223


3/ À l’aide d’un câble de raccordement, connectez la broche 11 du port GPIO (ou la
broche correspondante sur une carte d’interface connectée au port GPIO) à la
même ligne que la longue patte de la LED.
4/ Utilisez un autre câble de raccordement pour relier la broche 6 du port GPIO
(ou la broche correspondante d’une carte d’interface connectée au port GPIO)
à la ligne qui ne contient qu’une seule patte de la résistance et aucune des
pattes de la LED.

Figure 14.4 Circuit sur une breadboard d’une simple LED activée sur une sortie du GPIO

Mise en garde
Soyez très prudent quand vous connectez des câbles au port GPIO. Comme nous
l’avons déjà mentionné plus haut dans ce chapitre, vous pouvez causer des dégâts
sérieux au Pi si vous connectez les mauvaises broches.

À ce stade, il ne se passera rien et c’est parfaitement normal : par défaut, les


broches GPIO sont mises hors circuit. Si vous voulez vérifier votre circuit immé-
diatement, déplacez le fil de la broche 11 à la broche 1 pour allumer la LED. Veillez
toutefois à ne pas la connecter à la broche 2. Une résistance qui est appropriée
pour limiter le courant d’une alimentation de 3,3 V est insuffisante pour protéger
une LED connectée à du 5 V. N’oubliez pas de remettre en place le fil de la bro-
che 11 avant de continuer.
Pour exploiter la LED dans quelque chose d’utile, nous allons démarrer un
nouveau projet Python. Comme pour les projets du chapitre 11, vous pouvez
utiliser un éditeur de texte ou bien le logiciel IDLE inclus dans la distribution
Raspbian.

224/ Chapitre 14 : Port GPIO


Avant de pouvoir utiliser le port GPIO en Python, vous devez importer une
bibliothèque dans votre projet Python. En conséquence, commencez le fichier
par la ligne suivante :
import RPi.GPIO as GPIO
N’oubliez pas que Python fait la différence entre les majuscules et les
minuscules, si bien que vous devez saisir RPi.GPIO exactement comme cela
apparaît. Pour permettre à Python d’exploiter le temps (en d’autres termes,
pour faire clignoter la LED, plutôt que de se contenter de l’allumer et de
l’éteindre), vous devez également importer le module time. Ajoutez la ligne
suivante au projet :
import time
Les bibliothèques étant importées, il est temps de s’attaquer aux ports GPIO.
La bibliothèque GPIO facilite l’exploitation des broches du port GPIO grâce aux
instructions GPIO.output et GPIO.input. Toutefois, avant de pouvoir les utiliser,
vous devez indiquer à la bibliothèque GPIO quels numéros de broches corres-
pondent aux emplacements physiques sur le Raspberry Pi, et initialiser les bro-
ches en tant qu’entrées ou sorties. Dans cet exemple, la broche 11 est une sortie,
et il faut donc ajouter la ligne suivante au projet :
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
La dernière ligne indique à la bibliothèque GPIO que la broche 11 doit être confi-
gurée en tant que sortie. Si vous contrôlez des appareils supplémentaires, vous
pouvez ajouter plus de lignes GPIO.setup dans le projet. Pour l’instant, toutefois,
une seule broche suffit.
La broche étant configurée en tant que sortie, vous pouvez activer ou désac-
tiver son alimentation en 3,3 V d’une manière parfaitement binaire. L’instruction
GPIO.output (11, True) active la broche, alors que GPIO.output (11, False) la
désactive. La broche mémorise son dernier état, de telle sorte que si vous exécu-
tez seulement une commande d’activation de la broche, puis quittez votre pro-
gramme Python, la broche conservera son état tant qu’on ne lui aura pas donné
un ordre contraire.
Bien que vous puissiez vous contenter de n’ajouter que l’instruction GPIO.
© Dunod – Toute reproduction non autorisée est un délit.

output (11, True) au projet Python pour activer la broche, il est plus intéres-
sant de faire clignoter la LED. Tout d’abord, ajoutez la ligne suivante pour créer
une boucle infinie dans le programme :
while True:
Ensuite, ajoutez les lignes suivantes pour activer la broche, attendre
2 secondes, puis la désactiver à nouveau avant d’attendre deux autres secondes.
Assurez-vous que chaque ligne commence par quatre espaces pour signifier
qu’elle fait partie de la boucle infinie while :
  GPIO.output(11, True)
  time.sleep(2)
  GPIO.output(11, False)
  time.sleep(2)

Utilisation du Port GPIO en Python /225


Le programme fini devrait ressembler à ceci :

import RPi.GPIO as GPIO


import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
while True:
    GPIO.output(11, True)
    time.sleep(2)
    GPIO.output(11, False)
    time.sleep(2)

Enregistrez le fichier sous le nom gpiooutput.py. Si vous utilisez un environne-


ment de développement Python comme IDLE, vous pouvez exécuter le programme
directement dans l’IDE à partir du menu Run. Si vous avez un terminal ouvert, vous
pouvez exécuter directement le fichier avec la commande python gpiooutput.py. Si
tout se passe bien, vous devriez voir la LED commencer à clignoter à intervalles régu-
liers. Bravo, vous venez de créer votre premier périphérique de sortie pour le Pi ! Vous
pouvez quitter ce programme en appuyant sur la combinaison de touches Ctrl + C.
Si ça ne fonctionne pas, ne paniquez pas. Vérifiez d’abord toutes vos
connexions. Les trous d’une breadboard sont assez petits, et il est facile d’insérer
un composant dans une rangée pour constater par la suite que ce n’était pas la
bonne. Vérifiez ensuite que vous avez connecté le circuit aux bonnes broches du
port GPIO ; comme il n’a aucun marquage sur le Pi, il est malheureusement facile
de commettre des erreurs. Vérifiez enfin vos composants : si la tension directe de
votre LED est supérieure à 3,3 V ou si votre résistance a une valeur trop impor-
tante, la LED ne s’allumera pas.
Bien que cet exemple soit basique, c’est une bonne illustration de certains concepts
fondamentaux. Si l’on veut étendre les fonctionnalités de ce projet, on peut rempla-
cer la LED par une sonnette afin de réaliser une alarme sonore ou bien par un ser-
vomoteur dans le cadre d’une plateforme robotique si on y ajoute des composants
supplémentaires. Le code utilisé pour activer et désactiver les broches GPIO peut
être intégré dans d’autres programmes, et on peut ainsi provoquer l’allumage de la
LED lorsqu’on reçoit un nouveau courriel ou bien lorsqu’un ami rejoint un canal IRC.

// Entrée GPIO : lire l’état d’un bouton


Pouvoir utiliser le GPIO en tant que sortie est sans conteste pratique, mais cela
devient beaucoup plus utile encore si vous pouvez combiner ce dispositif avec une
ou plusieurs entrées. Dans l’exemple suivant, vous allez voir comment brancher
un bouton-poussoir sur une autre broche du GPIO et lire son statut en Python.
Si vous avez déjà réalisé le montage de l’exemple précédent, vous pouvez
débrancher les câbles ou bien les laisser en l’état car cet exemple utilise des bro-

226/ Chapitre 14 : Port GPIO


ches différentes, si bien que les deux projets peuvent coexister. Si vous laissez en
place le montage de l’exemple précédent, n’oubliez pas d’utiliser des lignes diffé-
rentes sur la breadboard pour les nouveaux composants, sinon vous constaterez
que les choses ne fonctionnent pas tout à fait comme prévu.
Montez le circuit en vous servant de la figure 14.5 comme modèle :
1/ Insérez le bouton-poussoir dans la breadboard. La plupart des commutateurs
ont deux ou quatre pattes. Il n’y a que deux pattes qui ont de l’importance dans
le circuit. Si le bouton a quatre pattes, elles seront installées par paires ; vérifiez
la fiche technique du bouton-poussoir pour savoir quelles pattes vont ensemble.
2/ Connectez une résistance de 10 KΩ sur la même ligne que l’une des pattes du
bouton-poussoir et qui soit une ligne inutilisée. Il s’agit d’une résistance pull-up
qui fournit au Pi une tension de référence afin qu’il sache quand on appuie sur
le bouton.
3/ Connectez la patte inutilisée de la résistance pull-up à la broche 1 du GPIO. Ceci
fournit la tension de référence de 3,3 V.
4/ Connectez la patte inutilisée de l’interrupteur du bouton-poussoir à la broche 6
du GPIO. Ceci fournit la connexion à la masse.
5/ Pour finir, connectez la broche 12 du GPIO à l’autre patte de l’interrupteur
du bouton-poussoir sur la même ligne que la résistance de 10  KΩ. Votre
breadboard devrait maintenant ressembler au montage illustré à la figure 14.5.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 14.5 Montage sur une breadboard d’une simple entrée sous forme de bouton-poussoir

Le circuit que vous venez de construire crée un montage où la broche d’entrée


(en l’occurrence la broche 12 du GPIO), est constamment à l’état high grâce à la
résistance pull-up qui est connectée à l’alimentation 3,3 V. Quand on appuie sur
le bouton, le circuit est relié à la terre et passe à l’état low, ce qui indique à votre
programme Python que le bouton a été activé.

Utilisation du Port GPIO en Python /227


Vous vous demandez sans doute pourquoi la résistance est nécessaire, et pour-
quoi l’interrupteur ne connecte pas directement la broche 12 à la broche 6 ou à la
broche 1. Tout cela est possible, mais la broche serait alors dans un état instable
qui empêcherait de savoir si elle est dans l’état high ou dans l’état low. Cela aurait
pour conséquence que le bouton pourrait sembler enfoncé alors que ce n’est pas
le cas, et inversement, on pourrait avoir du mal à détecter si le bouton est enfoncé.
Ouvrez un nouveau fichier Python, soit dans un éditeur de texte, soit en utili-
sant l’un des environnements de développement intégré disponibles sur le Ras-
pberry Pi. Commencez par importer la même bibliothèque GPIO que celle de
l’exemple précédent :
import RPi.GPIO as GPIO
Vous n’avez pas besoin d’importer la bibliothèque time, parce que cet exemple
ne nécessite pas d’instructions de synchronisation. Vous allez activer la broche 12
en tant qu’entrée, ce qui se fait de la même manière que pour une broche de sor-
tie, seule la dernière partie de l’instruction étant modifiée en conséquence :
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.IN)
Si vous n’utilisez pas la broche 12, assurez-vous de changer le numéro de bro-
che dans l’instruction précédente.
Comme dans l’exemple précédent, l’étape suivante consiste à créer une boucle
infinie qui vérifie constamment la broche d’entrée pour voir si elle passe à l’état
low (en d’autres termes, si on a appuyé sur le bouton). Commencez la boucle avec
la ligne de code suivante :
while True:
La lecture de l’état d’une broche d’entrée est très comparable à la définition de
l’état d’une broche de sortie, à une exception près : avant de pouvoir faire quelque
chose d’intéressant avec la valeur obtenue, vous devez la stocker dans une
variable. L’instruction suivante indique à Python de créer une nouvelle variable
appelée input_value (comme cela a été décrit au chapitre 12) et de lui affecter la
valeur actuelle de la broche 12 :
  input_value = GPIO.input(12)
Bien que le programme puisse être exécuté maintenant et fonctionner, il ne
fait rien d’utile. Pour vous assurer que vous comprenez ce qui se passe, ajoutez
l’instruction suivant print afin d’obtenir un feedback :
  if input_value == False:
    print("On a appuyé sur le bouton.")
    while input_value == False:
      input_value = GPIO.input(12)
Les deux dernières lignes (la deuxième instruction while et la deuxième ins-
truction input_value constituent une boucle imbriquée) sont importantes. Même
sur le processeur du Raspberry Pi, qui est relativement peu puissant par rapport
au processeur d’un ordinateur classique, les programmes Python s’exécutent très
rapidement. Cette boucle imbriquée dit à Python de vérifier l’état de la broche 12
tant qu’elle est toujours à l’état low, c’est-à-dire tant que l’on appuie sur le bouton.
Sans cette boucle, le programme continuerait de boucler tant que le bouton est

228/ Chapitre 14 : Port GPIO


enfoncé, et quelle que soit la rapidité de vos réflexes, vous verriez le message
s’afficher à l’écran plusieurs fois, ce qui induirait l’utilisateur en erreur.
Le programme final devrait ressembler à ceci :

import RPi.GPIO as GPIO


GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.IN)
while True:
  input_value = GPIO.input(12)
  if input_value == False:
    print("On a appuyé sur le bouton.")
    while input_value == False:
   input_value = GPIO.input(12)

Enregistrez le fichier sous le nom gpioinput.py, puis exécutez-le depuis le terminal


avec la commande python gpioinput.py. Dans un premier temps, rien ne se passera,
mais si vous appuyez sur le bouton-poussoir, le programme imprime le message de la
ligne 7 sur le terminal (figure 14.6). Relâchez le bouton et appuyez dessus à nouveau,
et le message se répète jusqu'à ce que vous appuyiez sur les touches Ctrl + C.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 14.6 Sortie du programme gpioinput.py affichée dans le terminal

Comme dans l’exemple précédent, il s’agit d’un programme simple que l’on
peut adapter à de nombreuses autres utilisations. Le même code peut servir à
détecter si les broches d’un autre appareil, par exemple un capteur ou un micro-
contrôleur, sont à l’état high ou low.

Utilisation du Port GPIO en Python /229


En modifiant le code pour qu’il scrute plusieurs boutons, chaque bouton étant
relié à une broche du GPIO, vous pouvez même créer un simple contrôleur de jeu
à quatre boutons. Par exemple, vous pourriez combiner le code de l’exemple pré-
cédent avec le jeu du serpent du chapitre 12 et transformer le Raspberry Pi en une
console de jeux simple. Vous pouvez également combiner les deux exemples d’en-
trée et de sortie en un seul programme, qui attend que l’on appuie sur le bouton
pour ensuite allumer la LED en envoyant l’état high sur la broche de sortie. Pour
vous assurer que vous avez bien assimilé les concepts de cette section, essayez de
créer ce programme maintenant. Si vous êtes coincé ou si voulez simplement véri-
fier votre programme, reportez-vous à l’annexe A où figure un exemple de solution.

Soudure du connecteur GPIO du Pi Zéro


Le Raspberry Pi Zéro est unique dans la famille des Pi et pas seulement à cause de
sa petite taille : il est le seul modèle à être commercialisé avec un connecteur GPIO
dont les broches sont absentes. Cela offre une plus grande souplesse : en effet, si vous
avez besoin seulement de quelques broches dans votre projet, vous pouvez souder
les fils directement sur le connecteur pour économiser de l’espace ; et si vous n’avez
pas du tout besoin de port GPIO, le Pi Zéro n’en sera encore que plus petit.
Si vous souhaitez cependant utiliser le Pi Zéro avec des cartes additionnelles,
vous allez devoir souder vos propres connecteurs. Pour ce faire, vous aurez besoin
du matériel suivant (figure 14.7) :
>> un fer à souder et de la soudure ;
>> un Raspberry Pi Zéro ;
>> des broches mâles avec un espacement de 2,54 mm.

Figure 14.7 Équipement pour souder un connecteur GPIO sur un Pi Zéro

230/ Chapitre 14 : Port GPIO


L’installation de broches mâle rend le Pi Zéro compatible avec la norme HAT et
n’importe quelle carte additionnelle conçue pour la famille du Raspberry Pi. Sinon,
vous pouvez utiliser des connecteurs femelles pour faciliter la fixation du Pi Zéro
à une breadboard à l’aide de fils de raccordement standard mâle-mâle. Si vous ne
savez pas où acheter les outils et les matériaux, reportez-vous au chapitre 13 ou
aux compléments électroniques de l’ouvrage pour obtenir une liste de fournisseurs.
Les connecteurs mâles sont généralement livrés sous la forme de longues
barrettes. Un revendeur de Raspberry Pi offrira sans doute un ensemble sous la
forme de 2 rangées de 20 broches, adapté pour une utilisation immédiate avec le
Pi Zéro ; d’autres fournisseurs peuvent offrir des bandes de 36 broches ou plus.
Si vous avez ce dernier modèle avec 32 broches, comptez 20 broches et cou-
pez entre la vingtième broche et le reste de la bande à l’endroit où le plastique
comporte une entaille. Faites la même chose avec une autre bande et placez une
bande dans chaque rangée de trous du connecteur GPIO du Pi Zéro (figure 14.8).

Mise en garde
Les fers à souder deviennent très chauds pendant leur utilisation, et la soudure
elle-même contient des produits chimiques dangereux pour votre santé. Faites très
attention lorsque vous utilisez un fer à souder, et assurez-vous que votre espace
de travail est bien rangé, ne comporte pas de matériaux inflammables et soit bien
aéré. Lavez-vous les mains avant et après l’utilisation de soudure.

Commencez par insérer vos broches espacées de 2,54 mm, en partant du haut


de la carte où se trouvent les principaux ports. Retournez le Pi Zéro, en main-
tenant les broches en place (vous pouvez vous faciliter la tâche en utilisant du
scotch, ou bien une breadboard pour maintenir les broches en place). Le plastique
© Dunod – Toute reproduction non autorisée est un délit.

Figure 14.8 Placement des connecteurs mâles dans un Pi Zéro

Soudure du connecteur GPIO du Pi Zéro /231


noir des broches doit être plaqué contre la surface supérieure du Pi Zéro, avec les
broches qui dépassent légèrement de la surface inférieure, en pointant à présent
vers le haut. Assurez-vous que les broches sont plaquées contre la carte et aussi
droites que possible, car si vous les soudez alors qu’elles forment un angle, la
fixation du matériel deviendra alors très difficile.
Quand votre fer a atteint la bonne température, nettoyez la panne et étamez-la
(reportez-vous au chapitre 13). Tenez la panne contre l’une des broches, en vous assu-
rant qu’elle touche à la fois la broche et le point de soudure circulaire en cuivre qui
entoure le trou dans la carte du circuit. Après trois secondes ou plus, poussez le fil
à souder contre la broche et soudez le point (pas la panne du fer) pour qu’il puisse
fondre (figure 14.9). Si vous avez un bon contact, la soudure doit sembler être aspirée
dans la base de la broche ; si ce n’est pas le cas, repositionner votre fer et réessayez.

Figure 14.9 Soudure des broches du connecteur GPIO du Pi Zéro

Quand vous avez soudé une broche, répétez l’opération sur les 39 broches res-
tantes afin de fixer parfaitement le connecteur GPIO. Nettoyez la panne de votre
fer à souder et étamez-la à nouveau, et débranchez le fer afin de laisser refroidir
à la fois le fer à souder et le Pi Zéro. Si vous avez utilisé du scotch pour maintenir
les broches en place, vous pouvez à présent le retirer. Si vous souhaitez une fini-
tion impeccable, vous pouvez aussi laver les résidus de flux de la soudure sur le
Pi Zéro avec n’importe quel nettoyeur de flux que l’on trouve dans le commerce.
Avant de rebrancher le Pi Zéro, regardez attentivement les points de soudure
pour vous assurer que vous n’avez pas créé de court-circuit sur les broches en
utilisant trop de soudure. Si c’est le cas, faites chauffer votre fer et utilisez-le pour
faire fondre la soudure puis retirez tout excès avec de la tresse à dessouder ou
une pompe à dessouder pour ne pas endommager le Pi Zéro.
/> Chapitre
Module de caméra
15

Conçue par des ingénieurs travaillant pour la Fondation Raspberry Pi, le module
de caméra est un dispositif ultra compact qui permet de prendre des photos et
des vidéos. Ce module, qui se connecte à l’interface CSI (Camera Serial Interface)
du Raspberry Pi, mesure seulement 25 mm sur son bord le plus long et ne pèse
que 3 grammes (figure 15.1).
© Dunod – Toute reproduction non autorisée est un délit.

Figure 15.1 Module de caméra Raspberry Pi

Depuis son lancement, le module de caméra a trouvé sa place dans des projets
variés, qui vont du système domotique de vidéosurveillance à des expériences de
vision plus complexes qui suivent les gestes du visage ou de la main de l’utilisa-
teur. Le module s’est même rapproché de l’espace à la suite de projets de photo-
graphie où un Raspberry Pi est fixé sur un ballon météo pour prendre des images
en direct à haute altitude.

Soudure du connecteur GPIO du Pi Zéro /233


Le module caméra est construit autour d’un capteur de 8 mégapixels (qui est
couramment utilisé dans les smartphones) situé derrière un objectif à focale
fixe. Le module fonctionne en tandem avec le processeur graphique du Rasp-
berry Pi pour garantir que la vidéo en haute résolution et les photos peuvent
être capturées sans surcharger le processeur principal du Pi ou sans exiger trop
de mémoire.

Pourquoi utiliser le module de caméra ?


Si vous n’avez pas besoin de capturer des photos ou des vidéos, vous n’avez
pas besoin du module caméra. Il s’agit en effet d’un accessoire optionnel et le Pi
fonctionne très bien sans. Il est également possible d’ajouter la vision à votre Pi en
utilisant d’autres produits, comme des webcams qui se connectent à un port USB.
Toutefois, le Pi n’a qu’un nombre limité de ports USB, et ceux-ci sont souvent
utilisés pour des fonctions plus critiques, comme un clavier, une souris ou un
adaptateur réseau sans fil. Ceci est particulièrement important dans le cas du
Raspberry Pi modèle A, qui possède un seul port USB.
Le module officiel de caméra a d’autres avantages par rapport à une webcam
classique : il consomme beaucoup moins d’énergie, ce qui signifie qu’il ne va pas
alourdir la consommation électrique du Raspberry Pi ni vider les batteries dans
un projet mobile ou solaire ; Il offre une capture d’images à une résolution pouvant
atteindre 8 mégapixels et une capture vidéo à une résolution Full HD en 30 images
par seconde ; enfin, le module est beaucoup plus petit que les caméras USB.
Le module de caméra est compatible avec tous les modèles et toutes les versions
de Raspberry Pi, alors si vous n’avez pas encore décidé de l’opportunité d’ajouter
une caméra à votre projet, ne vous inquiétez pas ; vous pouvez choisir n’importe
quel modèle de Pi maintenant et rajouter le module de caméra ultérieurement.

Choix du Module de caméra


Il y a deux variantes principales du module de caméra Raspberry Pi : la version
standard et la version infrarouge. La version standard est le modèle dont vous avez
besoin si vous avez l’intention de prendre des photos en couleur et de la vidéo dans
un environnement bien éclairé, ou en fournissant votre propre éclairage.
Le module de caméra infrarouge est une version modifiée de la version standard
dont le filtre infrarouge est retiré en usine au moment de sa production. En plein
jour, cela se traduit par une image légèrement dégradée par rapport à la version
standard. Dans l’obscurité, cependant, cela vous permet d’illuminer une scène avec
une lumière infrarouge qui est invisible pour l’œil humain ; il y a assez de lumière
pour que la caméra prenne une photo ou une vidéo en noir et blanc de la zone envi-
ronnante. Vous noterez que le module de caméra infrarouge est vendu sans LED
infrarouges si bien que vous aurez besoin d’acheter en plus des LED, ou une torche
infrarouge standard, pour mettre en œuvre ce mode de vision nocturne.

234/ Chapitre 15 : Module de caméra


Il y a deux grandes révisions du module de caméra actuellement disponibles.
Toute version dont le numéro est compris entre v1.0 et v1.9 dispose d’un capteur
de 5 mégapixels ; les versions dont le numéro commence par un 2 (par exemple,
v2.0, v2.1, etc.) ont un capteur d’image haute résolution de 8 mégapixels, ce qui
améliore la qualité des images. Ces deux révisions sont disponibles en version
standard et en version infrarouge.

Installation du module de caméra


Le module de caméra, tout comme le Raspberry Pi lui-même, est fourni
sous la forme d’un simple circuit imprimé. Bien qu’il soit assez robuste, vous
devez faire attention lorsque vous le manipulez pour ne pas endommager ses
composants, en particulier la lentille en plastique située sur le capteur de la
caméra.
Le module de caméra se connecte au Pi par une nappe, un câble semi-rigide
mince qui doit être inséré dans le connecteur CSI du Raspberry Pi. À la livraison de
la caméra, une extrémité de la nappe est déjà insérée dans le module, un des côtés
de l’autre extrémité est de couleur bleue et l’autre côté a des contacts argentés
qui sont visibles. Ces contacts, qui se raccordent aux broches du connecteur CSI
du Pi, permettent de transférer les données et le courant entre le Pi et le module
de caméra.
Le connecteur CSI, qui est étiqueté S5 ou CAMERA, se trouve sur le côté droit
de la carte, près des ports USB (figure 15.2). Le connecteur CSI d’un Raspberry Pi
modèle B se situe juste à gauche du port Ethernet ; sur un modèle A, on le trouve
© Dunod – Toute reproduction non autorisée est un délit.

Figure 15.2 Connecteur CSI sur un Raspberry Pi 3 modèle B

Installation du module de caméra /235


au même endroit, juste à gauche de l’espace sur la carte en dessous des ports
USB. Certains modèles peuvent avoir un connecteur CSI recouvert par une pro-
tection constituée d’un film plastique que vous devrez décoller avant d’installer
la caméra.
Il y a un connecteur similaire situé sur le côté gauche du Raspberry Pi. Il
s’agit du connecteur DSI (Display Serial Interface) qui est conçu pour connec-
ter le Pi à un écran à cristaux liquides. Ces deux ports ne sont pas interchan-
geables et si vous connectez la caméra sur le port DSI, elle ne fonctionnera
pas.
Avant d’insérer la nappe, il faut soulever légèrement de petits ergots situés
de chaque côté du connecteur afin de libérer de l’espace pour insérer la nappe.
Vous pouvez faire cela avec vos ongles, mais soyez prudent. Ces ergots doivent
se soulever facilement et rester en place quand ils sont à quelques millimètres
au-dessus du connecteur CSI (figure 15.3). Vous pouvez alors les incliner délica-
tement en les éloignant du connecteur HDMI, ce qui vous donne plus d’espace
pour insérer la nappe.

Figure 15.3 Il faut soulever les ergots du connecteur CSI


avant d’insérer la nappe

Insérez l’extrémité libre de la nappe dans le port CSI, en vous assurant que
les contacts argentés sont orientés vers la gauche du Pi et la partie bleue de
la nappe vers la droite. Enfoncez doucement la nappe jusqu’au bout, en faisant
attention à ne pas la plier, et repoussez ensuite les ergots pour fixer le tout
(figure 15.4). Lorsqu’elle est correctement insérée, la nappe doit ressortir du
connecteur ­parfaitement droite et doit supporter que l’on tire légèrement des-
sus. Ne tirez cependant pas trop fort sur la nappe lors du test, car cela pourrait
l’endommager.

236/ Chapitre 15 : Module de caméra


Figure 15.4 Nappe du module de caméra solidement insérée
dans le connecteur CSI

Mise en garde

La nappe fournie avec le module de caméra du Raspberry Pi


est relativement robuste et supporte même une utilisation
quotidienne. On peut cependant l’endommager si on la plie.
Quand vous insérez la nappe ou bien déplacez la caméra,
faites bien attention de ne pas plier la nappe sur elle-même.
Si vous endommagez votre nappe, vous en trouverez de
rechange (y compris des nappes plus longues) chez la plu-
part des revendeurs de Pi.

Lorsque vous utilisez le module de caméra avec un boîtier Raspberry Pi, vous
devez en général glisser la nappe dans une fente mince ou bien entre les couches
© Dunod – Toute reproduction non autorisée est un délit.

de plastique. Certains boîtiers ne sont pas parfaitement compatibles avec le


module de caméra. Dans ces boîtiers, il vous faudra peut-être laisser de côté le
couvercle du boîtier pour faire passer la nappe. Placez le module de caméra de
telle sorte que la nappe soit en bas. Si ce n’est pas possible, vous apprendrez, plus
loin dans ce chapitre, à activer une option du logiciel pour faire basculer l’image
qui a été capturée à l’envers.
La dernière étape de l’installation physique de la caméra consiste à enlever de
l’objectif la petite protection constituée d’un film plastique. Vous pouvez simple-
ment la décoller en tirant doucement sur la languette. Il est tentant de la laisser en
place pour protéger la lentille, mais tout ce que vous allez enregistrer aura alors
une teinte bleue désagréable.

Installation du module de caméra /237


Activation du mode caméra
Le logiciel pour piloter le module de caméra du Raspberry Pi est inclus dans
la distribution Raspbian par défaut. Si vous utilisez une version particulièrement
ancienne, vous constaterez peut-être qu’il manque les fichiers pour gérer la
caméra ; si tel est le cas, mettez à jour votre système à l’aide de la commande sui-

>_
vante saisie dans la console ou le terminal (voir le chapitre 3 pour plus de détails) :
sudo apt-get update && sudo apt-get upgrade

Vous aurez cependant besoin de modifier certains paramètres du système


afin que le module de caméra fonctionne correctement. L’enregistrement vidéo
exige en particulier que la partie du GPU du processeur BCM283x du Pi ait au
moins 128 Mo de mémoire disponible. Si cette valeur est inférieure, vous pour-
rez prendre des photos, mais l’enregistrement vidéo ne fonctionnera pas. Pour
plus d’informations sur la façon de modifier cette répartition, reportez-vous au
chapitre 6.
La meilleure façon de vous assurer que votre Pi est prêt à utiliser la caméra
consiste à exécuter l’outil de configuration raspi-config. Dans le terminal, sai-

>_
sissez la commande suivante pour charger l’outil :
sudo raspi-config

Dans le menu qui apparaît, sélectionnez l’option 5 (Interfacing Options) en


utilisant les touches du curseur et en appuyant sur la touche Entrée, puis l’op-
tion 1 (Camera). Activez la caméra dans l’écran qui s’affiche en sélectionnant le
bouton Oui (figure 15.5) et appuyez sur la touche Entrée à nouveau pour reve-
nir au menu précédent. Si le mode caméra était désactivé auparavant, vous êtes
invité à redémarrer le Pi.

Figure 15.5 Activation du mode caméra dans l’outil de configuration raspi-config

238/ Chapitre 15 : Module de caméra


Astuce

Si vous ne trouvez pas d’option caméra dans raspi-config,


vous avez sans doute une version obsolète de Raspbian. Sai-
sissez dans un terminal la commande sudo apt-get update
&& sudo apt-get upgrade pour mettre à jour votre système
d’exploitation ; redémarrez ensuite le Pi et essayez d’exécu-
ter raspi-config à nouveau.

Une fois que le Pi a redémarré, votre module de caméra est prêt à l’emploi.
Il y a cependant une dernière étape qui est facultative : si vous voulez visionner
les photos prises depuis la console de Raspbian sans avoir à charger l’interface
utilisateur graphique, vous devez installer l’utilitaire fbi qui permet de visualiser

>_
des images. Pour ce faire, saisissez la commande suivante :
sudo apt-get install fbi

Pour afficher des images en utilisant cet outil (figure 15.6), il suffit de saisir la

>_
commande suivie du nom d’une image :
FBI -a fichier-image.jpg
© Dunod – Toute reproduction non autorisée est un délit.

Figure 15.6 Affichage d’une image à l’aide de l’utilitaire fbi

Pour quitter fbi, appuyez sur la touche Q ou sur Echap.

Activation du mode caméra /239


Enregistrement de photos
La meilleure façon de vérifier que l’appareil fonctionne correctement est d’es-
sayer de prendre une photo. Le module de caméra utilise un logiciel personnalisé
appelé raspistill pour prendre des photos qui sont enregistrées par défaut au
format JPEG (Joint Photographic Experts Group), format qui est utilisé par la
plupart des appareils photo numériques et les smartphones.
Le logiciel de la caméra s’exécute à partir de la console ou du terminal. Pour
obtenir de meilleurs résultats, exécutez le logiciel depuis la console sans avoir
chargé l’interface utilisateur graphique à l’aide de la commande startx (voir le
chapitre 3 pour plus de détails).
La commande raspistill accepte un certain nombre d’arguments facultatifs
qui contrôlent les paramètres tels que la résolution horizontale et verticale de
l’image capturée, le mode d’exposition de l’appareil, le type de fichier enregistré
et le niveau de compression appliqué à l’image finale. Si la commande est exécu-
tée sans options, les paramètres par défaut sont utilisés.
Pour tester l’appareil, exécutez l’application raspistill depuis la console en

>_
saisissant la commande suivante :
raspistill -o testcapture.jpg

Cette commande affiche en direct un aperçu pendant 5 secondes (figure 15.7).


Si vous bougez les doigts devant la caméra pendant ce laps de temps de cinq
secondes, vous les verrez apparaître dans la fenêtre d’aperçu. Lorsque les
cinq secondes sont passées, la photo est prise et la fenêtre de prévisualisation
d
­ isparaît.

Figure 15.7 Application de capture raspistill affichant une image prévisualisée en direct

240/ Chapitre 15 : Module de caméra


Astuce

Parfois, la position de la nappe du module de caméra ne per-


met pas de placer la caméra dans le bon sens. Si la prévisua-
lisation affiche une image à l’envers, utilisez les paramètres
-vf (retournement vertical) ou -hf (retournement horizon-
tal) pour corriger l’orientation de l’image. Il suffit d’ajouter
l’option à la fin de la ligne de commande.

Quand la prévisualisation est terminée, l’option -o (comme output, pour sortie)


enregistre un fichier JPEG ayant le nom testcapture.jpg. Lorsque vous utilisez
cette option, vous pouvez modifier le type de fichier enregistré avec le paramètre
-e (pour encodage). Actuellement, outre le format JPG, les types de fichiers sui-
vants sont pris en charge : BMP (bitmap), PNG (Portable Network Graphics) et GIF
(Graphics Interchange Format). Pour enregistrer une image au format PNG, par

>_
exemple, utilisez la commande suivante :
raspistill -o testcapture.png -e png

Pour enregistrer dans un autre format que le format PNG, il suffit de passer en
paramètre à l’option -e le format dans lequel on veut enregistrer l’image (bmp,
gif ou jpg). Si vous oubliez dans la commande l’option -e, le fichier sera toujours
enregistré, mais au format JPEG.
Deux autres options, qui sont couramment utilisées, permettent d’ajuster la
largeur et la hauteur de l’image capturée. Cela peut se révéler très pratique pour
la capture d’images en basse résolution dans le cadre d’un projet de vision par
ordinateur, ou tout simplement pour économiser de l’espace sur la carte SD.
Vous pouvez régler la largeur de l’image capturée avec l’option -w et la hau-
teur avec -h. Ces options sont la plupart du temps utilisées ensemble pour défi-
nir la résolution globale de l’image. Pour capturer une image d’une largeur de
1 920 pixels sur une hauteur de 1 080 pixels (qui est la même résolution que celle

>_
d’un téléviseur HD ou d’un film en Blu-ray), saisissez la commande suivante :
raspistill -w 1920 -h 1080 -o fullhdcapture.jpg
© Dunod – Toute reproduction non autorisée est un délit.

La dernière option de base à connaître est -t, qui contrôle le délai d’attente
de la prévisualisation. Par défaut, raspistill affiche un aperçu en direct de
5 secondes avant de capturer une photo, mais l’option -t permet de modifier
cette valeur par défaut. Le délai doit être spécifié en millisecondes. Pour capturer

>_
une image après un délai de 10 secondes, utilisez la commande suivante :
raspistill -t 10000 -o dixsecondescapture.jpg

Pour diminuer le délai et prendre la photo presque immédiatement (ce qui


peut être très utile si vous utilisez le logiciel à partir d’un script, comme cela sera
démontré plus loin dans ce chapitre), utilisez une valeur de 1 :

Enregistrement de photos /241


>_ raspistill -t 1 -o capture_immediate.jpg

Le nom de fichier précisé après l’option -o peut être choisi librement, mais vous
devez toujours ajouter l’extension appropriée à votre type de fichier (.jpg, .png, .bmp
ou .gif).
Pour une description complète de toutes les options de raspistill, reportez-
vous à l’annexe B. Vous pouvez également saisir la commande suivante pour affi-

>_
cher la liste des options :
raspistill --help | less

Enregistrement vidéo
De la même manière qu’il y a une application dédiée à la capture des images
pour le module de caméra Raspberry Pi, il y a une autre application pour la cap-
ture vidéo : raspivid. L’utilisation de raspivid est similaire à celle de raspistill,
mais il existe plusieurs différences que vous devez connaître avant de commencer.
La différence la plus importante entre raspivid et raspistill réside dans l’op-
tion -t. Avec raspistill, l’option -t indique le délai de prévisualisation avant la
capture de l’image, alors qu’avec raspivid, l’option -t indique la limite tempo-
relle de l’enregistrement de la vidéo. Si vous indiquez la valeur 0, l’enregistrement
vidéo est permanent, ce qui remplira rapidement votre carte SD ou votre périphé-
rique de stockage externe…
Comme avec raspistill, la valeur par défaut de l’option –t est de cinq
secondes. Ainsi, pour vérifier que la caméra fonctionne et enregistrer une courte
vidéo, vous pouvez saisir la commande suivante (l’option -o préciser toujours le

>_
nom du fichier de sortie) :
raspivid -o testvideo.h264

Cette commande enregistre une vidéo de 5 secondes dans un format appelé


h.264. Contrairement à raspistill, il n’y a aucune option pour enregistrer le
fichier dans un format différent : raspivid utilise l’accélération matérielle du pro-
cesseur BCM283x du Pi pour assurer l’enregistrement et seul le format h.264 est
pris en charge comme format de capture.
Si vous lisez la vidéo, vous remarquerez qu’il n’y a pas de son. Malheureuse-
ment, le module de caméra n’inclut pas de microphone. Bien qu’il soit possible
d’enregistrer du son en connectant au Pi certains microphones USB ou des cartes
son, le son devra être capturé à l’aide d’un logiciel séparé, puis mixé avec le fichier
vidéo ultérieurement à l’aide d’un logiciel de montage vidéo.
Il existe d’autres options prises en charge par raspistill qui sont également
opérationnelles avec raspivid. Par exemple, pour définir la largeur et la hauteur

>_
de la vidéo enregistrée, utilisez les options -w et –h, comme dans l’exemple suivant :
raspivid -w 1280 -h 720 -o hdvideo.h264

242/ Chapitre 15 : Module de caméra


Pour enregistrer une vidéo plus longue, modifiez l’option -t en spécifiant le
temps de la vidéo en millisecondes. Pour enregistrer une minute de vidéo, saisis-

>_
sez la commande suivante :
raspivid -t 60000 -o minutevideo.h264

Astuce

Bien que le format h.264 soit un format vidéo relativement


efficace, un enregistrement en haute résolution peut occu-
per un espace disque considérable. Si vous enregistrez des
vidéos plus longues, assurez-vous d’avoir assez d’espace
libre sur votre carte SD ou bien branchez un périphérique de
stockage USB, comme un disque dur externe.

Vous pouvez découvrir plus d’options pour raspivid en lisant l’annexe B ou en

>_
consultant la liste des options disponibles avec la commande suivante :
raspivid --help | less

Réaliser un time-lapse
Jusqu’ici, vous avez appris les rudiments de l’utilisation du module de caméra.
Il est maintenant temps de voir comment on peut utiliser la caméra dans un véri-
table projet. Le principal avantage du Raspberry Pi par rapport à une caméra
connectée est sa capacité à être programmé pour différentes tâches. Dans cet
exemple, vous allez transformer votre Raspberry Pi couplé au module de caméra
en un système de photographie en time-lapse.
Le logiciel raspistill a une option time-lapse intégrée, -tl. En utilisant cette
option, il est possible de définir une durée en millisecondes entre les captures d’image
automatisées. La valeur que vous allez choisir dépendra en grande partie de ce que
vous essayez de photographier : si vous voulez photographier en time-lapse l’évo-
© Dunod – Toute reproduction non autorisée est un délit.

lution de la météo sur une journée, vous pouvez définir un délai de capture de dix
secondes ; en revanche, si vous souhaitez documenter la construction d’un bâtiment
sur une période de plusieurs mois, un délai d’une demi-heure est plus approprié.
Lors du choix de la fréquence de capture des images, essayez d’estimer le
nombre d’images que vous allez générer : une capture pendant un mois avec
un déclenchement de l’appareil toutes les dix secondes générera environ
242 000 images, qui, à des résolutions élevées, peuvent suffire à remplir la carte
SD de votre Pi. Pensez aussi à la longueur de la vidéo finale que vous allez géné-
rer : capturer des milliers d’images pour obtenir au final une vidéo de 30 secondes
est du gaspillage, alors que si vous ne capturez qu’une centaine d’images pour
une vidéo censée durer une heure, le résultat sera très médiocre.

Réaliser un time-lapse /243


Pour commencer, ouvrez un terminal ou utilisez la console et créez un dossier

>_
pour vos images :
cd ~
mkdir timelapse
cd timelapse

Dans votre nouveau dossier, débutez le processus de capture avec la com-

>_
mande suivante :
raspistill -o frame%08d.jpg -tl 10000 -t 600000

Tandis que raspistill, par défaut, générerait un fichier unique qui écrase-
rait donc l’image capturée chaque fois qu’une photo serait prise à l’issue du délai
défini par l’option time-lapse, dans cet exemple le nom de fichier contient une
instruction, %08D, qui indique d’insérer un numéro incrémentiel dans le nom de
fichier chaque fois qu’une photo est prise. Ces numéros sont des numéros à huit
chiffres, avec des zéros en en-tête, si bien qu’ils sont classés dans l’ordre où les
images sont capturées, même si vous en prenez 10 000 000. L’option -tl 10000
indique au logiciel de capturer une image toutes les dix secondes, ce qui constitue
un bon point de départ pour tester cette fonctionnalité. L’option -t indique que la
capture dure pendant dix minutes (600 secondes, soit 600 000 millisecondes).
Lorsque vous testez l’option time-lapse, vous pouvez modifier ces deux
valeurs : une option –tl courte générera plus d’images pour un résultat final plus
fluide, alors qu’un délai plus long permettra de capturer des images sur une plus
longue période de temps sans remplir votre espace de stockage. Le délai exprimé
par l’option -t doit toutefois durer aussi longtemps qu’il le faut pour que vous
ayez le temps de capturer la totalité de l’événement ; en cas de doute, définissez
une valeur plus élevée que celle dont vous avez besoin et vous pourrez, si cela est
nécessaire, interrompre la capture en cours avec les touches Ctrl + C (vous ne
perdrez aucune des images déjà capturées).
L’option time-lapse (accéléré) est souvent utilisée pour passer en accéléré une
tâche longue ou complexe dans une vidéo de divertissement. Dans les publicités,
des vidéos en accéléré, qui peuvent s’avérer extrêmement coûteuses à réaliser,
sont souvent utilisées pour filmer la croissance des plantes, la construction de
bâtiments ou le flux de la circulation routière. Les Raspberry Pi savent faire toutes
ces choses, mais à coût dérisoire.
Les images que vous avez capturées peuvent être transformées en vidéo, avec
un logiciel de montage vidéo ou bien avec l’utilitaire avconv. Bien que avconv
puisse s’exécuter sur le Raspberry Pi lui-même, c’est un programme exigeant
beaucoup de ressources et qui peut prendre un temps considérable à produire un
résultat si vous avez un grand nombre d’images en haute résolution à convertir.
Si vous avez la patience de réaliser la conversion sur un Pi, installez avconv avec

>_
la commande suivante :
sudo apt-get install libav-tools

244/ Chapitre 15 : Module de caméra


>_
Vous pouvez transformer vos images en une vidéo en saisissant :
avconv -r 10 -i frame%08d.jpg -r 10 -vcodec libx264 timelapse.mp4

Cette commande crée une vidéo avec une fréquence de dix images par seconde
à partir des images JPEG enregistrées précédemment par raspistill. Pour
accélérer encore plus la vidéo, vous pouvez modifier l’option -r : -r 15 affichera
15 images par seconde et -r 20, 20 images par seconde, et ainsi de suite. La vidéo
convertie peut ensuite être partagée directement ou téléchargée sur un site de
streaming vidéo comme YouTube, Dailymotion ou Vimeo.
© Dunod – Toute reproduction non autorisée est un délit.
/> Chapitre
Matériels
additionnels
16

Le Raspberry Pi est bien plus qu’un simple ordinateur sur une seule carte ; il
s’agit d’un écosystème complet. Le faible coût du Pi, sa disponibilité immédiate
ainsi que ses connecteurs d’extension ont déclenché une véritable révolution
créatrice parmi les ingénieurs et les makers du monde entier qui ont construit des
centaines de périphériques compatibles avec le Pi, dont beaucoup se connectent
via le port GPIO.
Outre des sociétés qui produisent des accessoires, la Fondation Raspberry Pi
a conçu une gamme de modules additionnels qui étendent les capacités du Ras-
pberry Pi. Certains d'entre eux, comme le module caméra du Raspberry Pi et
l’adaptateur Wi-Fi, ont déjà été évoqués plus haut dans ce livre. Les autres maté-
riels seront abordés dans ce chapitre, avec des instructions pour leur installation
et leur utilisation.
Au moment de la rédaction de cet ouvrage, la Fondation Raspberry Pi avait
produit les matériels additionnels suivants :
>> Bloc d’alimentation universel : fournit une alimentation de qualité pour
n’importe quel modèle de Raspberry Pi ou tout autre appareil ayant une
prise micro-USB (voir le chapitre 2).
>> Adaptateur Wi-Fi : utilisé pour ajouter des fonctionnalités de réseau sans fil
© Dunod – Toute reproduction non autorisée est un délit.

à un Raspberry Pi via un port USB (voir le chapitre 5).


>> Kit adaptateur Raspberry Pi Zéro : convertit la prise micro-USB OTG du Pi
Zéro et le port mini-HDMI en leurs équivalents de taille normale et fournit des
barrettes de broches mâles à souder sur le port GPIO (voir le chapitre 14).
>> Module caméra : se branche sur le connecteur CSI du Pi pour filmer et
prendre des photos (voir le chapitre 15).
>> Boîtier officiel : boîtier en plastique en cinq morceaux, conçu pour abri-
ter un modèle B+, Pi 2 ou Pi 3 tout en offrant un accès à tous les ports et
connexions.
>> Écran tactile 7 pouces : se branche sur le connecteur DSI du Pi pour fournir
une sortie vidéo en couleur ainsi qu’une interface tactile.

Réaliser un time-lapse /247


>> Sense HAT : un module multifonction à la norme HAT qui fournit des cap-
teurs d’orientation, de pression, d’humidité et de température ainsi qu’une
matrice d’affichage LED 8 × 8.
Tous ces accessoires sont disponibles auprès des partenaires officiels de la
Fondation Raspberry Pi et chez d’autres fournisseurs en ligne (voir les complé-
ments électroniques de cet ouvrage).

Boîtier officiel du Raspberry Pi


Conçu pour protéger le Raspberry Pi sans bloquer l’accès à ses ports ni à ses fonc-
tionnalités, le boîtier officiel Raspberry Pi (figure 16.1) se compose de cinq parties. Le
bas et le haut du boîtier maintiennent en place le Pi solidement fixé et les panneaux
latéraux ainsi que le couvercle qui sont amovibles peuvent fermer l’ensemble ou bien
laisser l’accès au port GPIO et à n’importe quel module HAT connecté.

Figure 16.1 Boîtier officiel Raspberry Pi

Mise en garde

Le boîtier officiel Raspberry Pi est compatible avec les


modèles B+, Pi  2 et Pi  3. Ce boîtier est également utili-
sable avec le modèle A+, bien que la longueur plus courte
du modèle A+ rende plus difficile l’accès au port USB. Le
boîtier n’est pas compatible avec le Raspberry Pi Zéro ou le
Compute Module, ni avec les premiers modèles de Raspberry
Pi B ou A.

248/ Chapitre 16 : Matériels additionnels


// Installation
L’installation du boîtier est simple et ne nécessite aucun outil, car il a été
conçu pour s’emboîter sans effort et il n’y a aucune vis ni boulons. Commencez
par enlever les deux panneaux latéraux. Séparez la moitié supérieure du fond
en appuyant sur les deux encoches, indiquées par des triangles pointant vers le
haut, au bout du boîtier avec le logo du Raspberry Pi, et en tirant vers le haut.
La moitié supérieure se soulève d’un côté et lorsque le dessus est dégagé, vous
pouvez la déclipser.
À ce stade, vous pouvez également ôter le couvercle en le poussant par le des-
sous de la partie supérieure du boîtier ; si vous n’avez pas besoin d’avoir accès au
port GPIO et n’envisagez pas d’installer un module HAT, vous pouvez laisser en
place le couvercle.
Une fois le boîtier démonté en cinq parties, insérez votre Raspberry Pi en le
plaçant à l’intérieur de la partie inférieure du boîtier et en alignant les petits
taquets en plastique avec les trous de fixation du Raspberry Pi (figure 16.2). Le
Pi repose simplement au sommet de taquets situés près de la fente de la carte
micro-SD et du connecteur DSI ; pliez doucement le boîtier et poussez-le pour que
les taquets apparaissent à travers les trous de fixation du Pi afin de le maintenir
en place. Si vous avez un module HAT, connectez-le à présent au port GPIO.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 16.2 Montage du Raspberry Pi dans le boîtier officiel

Prenez la moitié supérieure du boîtier, avec ou sans son couvercle, et alignez


les encoches avec leurs trous correspondants avant d’appuyer sur le dessus du
boîtier du côté des ports USB et Ethernet (figure 16.3). Assurez-vous que les
clips de fixation des deux côtés sont alignés avant de pousser le boîtier jusqu’à
entendre un léger clic.

Boîtier officiel du Raspberry Pi /249


Figure 16.3 Assemblage de la partie supérieure du boîtier

Fixez le premier panneau latéral, qui a des découpes pour l’alimentation et les
ports HDMI et audiovisuel analogique, en le poussant doucement jusqu'à ce que
vous entendiez un clic. Fixez de la même façon le deuxième panneau latéral qui
est plein, ou ne le mettez pas en place afin de fournir un accès facile au port GPIO.
C’est terminé et vous pouvez admirer votre ouvrage !

Écran tactile de 7 pouces


L’écran tactile 7 pouces transforme tout Raspberry Pi en un appareil de type
tablette, en offrant un affichage tactile 10 points et un écran de résolution 800
x 480 en couleur. En utilisant l’écran tactile, il est possible d’interagir avec un
Raspberry Pi sans aucun accessoire externe, comme un clavier ou une souris
(figure 16.4), tout en conservant l’accès au port GPIO du Pi.
La prise en charge de l’écran tactile du Raspberry Pi est automatique dans la
distribution Raspbian et ses dérivées. Si vous utilisez un autre système d’exploita-
tion, consultez son site Web pour obtenir plus d’informations sur sa compatibilité
avant d’acheter et d’installer cet écran.

// Installation
Commencez par défaire l’écran de son emballage, en prenant particulièrement
soin des bords de l’écran et de la nappe mince qui se connecte à la carte adapta-
teur, à l’arrière du châssis de l’écran (figure 16.5). Si vous endommagez ce câble,
vous ne pourrez plus utiliser l’écran tactile ; en outre, les bords de l’écran peuvent
se fissurer si vous ne les manipulez pas avec soin. La surface de l’écran tactile
est protégée par une couche de plastique ; pour éviter de rayer l’écran, laissez la
couche protectrice en place jusqu'à ce que vous ayez finalisé l’installation.

250/ Chapitre 16 : Matériels additionnels


Figure 16.4 Utilisation de l’écran tactile 7 pouces du Raspberry Pi

Sortez la nappe de son emballage et tournez-la afin que les contacts


argentés soient orientés vers le haut. Identifiez le connecteur DSI sur le bord
gauche de la carte adaptateur à l’arrière de l’écran et soulevez doucement
les languettes du cache qui protège la prise afin de la rendre accessible.
Faites glisser l’extrémité de la nappe dans le connecteur DSI, les contacts
argentés vers le haut, et appuyez doucement sur les languettes du cache
pour garantir que la prise soit bien en place (figure 16.6). Tirez légèrement
sur la nappe pour vérifier qu'elle est bien connectée ; si elle se libère, tirez
sur les languettes du cache de la prise pour remettre à nouveau en place la
© Dunod – Toute reproduction non autorisée est un délit.

Figure 16.5 La nappe mince de l’écran tactile est très fragile

Écran tactile de 7 pouces /251


nappe et essayer de la fixer. Ne vous inquiétez pas si vous constatez que l’on
voit encore un bout de la partie argentée lorsque la nappe est en place, car
c’est tout à fait normal.

Figure 16.6 Installation de la nappe sur la carte adaptateur

Si les vis fournies avec l’écran tactile sont déjà fixées aux montants métalliques,
enlevez-les à l’aide d’un tournevis cruciforme. Si le montant commence à tourner,
tenez-le entre les doigts pour le maintenir en place pendant que vous enlevez la
vis, puis tournez doucement pour le resserrer. Prenez votre Pi et placez-le de telle
sorte que les trous de montage soient au sommet des montants (le port HDMI
étant orienté vers le bas), et que le connecteur DSI soit le plus proche de la nappe
qui sort de l’adaptateur. Placez les vis dans les trous de fixation et serrez-les, mais
pas trop parce que cela risquerait d’endommager le Pi et l’écran.
Si votre Pi n’a pas de carte micro-SD insérée, mettez en une maintenant avant
de soulever les languettes de la prise du connecteur DSI pour l’ouvrir. Prenez l’ex-
trémité libre de la nappe et insérerez-la dans le connecteur DSI du Pi, les contacts
argentés orientés vers le corps du Pi (figure 16.7) ; la nappe doit former une courbe
régulière entre le Pi et la carte adaptateur sans aucune torsion. Repoussez les
languettes pour bien fixer la nappe et encore une fois, vérifiez qu’elle est correc-
tement connectée en tirant légèrement dessus.
Pour allumer l’écran tactile, insérez un câble micro-USB connecté à une ali-
mentation 5 V de bonne qualité dans le connecteur micro-USB situé en bas de la
carte adaptateur. Vous pouvez ensuite utiliser un second câble micro-USB et une
deuxième alimentation de 5 V pour fournir du courant au Pi, ou bien vous bran-
cher directement sur la carte adaptateur. Le principal avantage de cette dernière
solution est que vous n’aurez besoin que d’un seul câble allant de l’écran à une
prise électrique.

252/ Chapitre 16 : Matériels additionnels


Figure 16.7 Installation de la nappe sur le Raspberry Pi

Il y a deux façons d’alimenter le Pi à partir de l’écran tactile. Le plus simple est


de placer le connecteur USB d’un câble micro-USB sur le port USB situé sur le côté
droit de la carte adaptateur, puis de placer le connecteur micro-USB sur l’entrée
micro-USB d’alimentation du Pi. Une autre méthode consiste à utiliser les câbles
de raccordement femelle-femelle qui sont livrés avec l’écran pour câbler la carte
adaptateur directement sur le port GPIO du Pi, si vous ne prévoyez pas d’utiliser
un matériel additionnel ; prenez le câble de raccordement noir et branchez-le entre
la broche la plus à droite du GPIO de la carte adaptateur et la broche 6 du GPIO du
© Dunod – Toute reproduction non autorisée est un délit.

Figure 16.8 Alimentation du Pi à partir du port GPIO de l’écran tactile

Écran tactile de 7 pouces /253


Pi ; utilisez ensuite le câble de raccordement rouge pour relier la broche la plus à
gauche du GPIO de la carte adaptateur à la broche 4 du GPIO du Pi (figure 16.8).
Assurez-vous de vérifier vos connexions pour éviter d’endommager les appareils ; si
vous ne vous souvenez plus du rôle de chaque broche, reportez-vous au chapitre 14.
Pour terminer, branchez l’écran tactile, et le Pi si vous ne l’alimentez pas à
partir de la carte adaptateur. Le Pi va démarrer et utiliser automatiquement
l’écran comme écran principal. L’écran tactile peut suivre simultanément jusqu'à
10 doigts et ne nécessite pas d’étalonnage ; faites glisser votre doigt sur l’écran
pour déplacer le curseur de la souris et tapez sur l’écran pour cliquer.

Sense HAT
Le Sense HAT est une carte d’entrées-sorties multifonction, conçue pour être
utilisée dans le programme Astro Pi ; actuellement, cette carte est en orbite
autour de la terre dans le cadre d’un projet scientifique mené dans la Station spa-
tiale internationale. Ses capteurs embarqués indiquent l’orientation et la position
de la carte (grâce à un gyroscope, un accéléromètre et un magnétomètre), ainsi
que la pression atmosphérique, la température et l’humidité de l’air ambiant. Une
matrice d’affichage LED 8 × 8 fournit une sortie, et des interactions sont pos-
sibles grâce au joystick du Sense HAT (figure 16.9).

Figure 16.9 Sense HAT

Le programme Astro Pi offre une multitude de ressources pour les utilisateurs


du Sense HAT, avec des exemples de projets tournant en Python et Scratch. Ces
projets sont disponibles sur le site officiel astro-pi.org ; vous y trouverez aussi

254/ Chapitre 16 : Matériels additionnels


des informations sur la manière dont le Sense HAT est utilisé pour recueillir des
informations sur la Station spatiale internationale.

Mise en garde

Le Sense HAT est compatible avec les Raspberry Pi modèles


A+, B+, Pi 2 et Pi 3. Il est également compatible avec le Ras-
pberry Pi Zéro à condition qu’un adaptateur réseau USB soit
utilisé pendant l’installation ou qu’une carte micro-SD avec le
logiciel préinstallé soit insérée et que les connecteurs GPIO
aient été soudés. Le Sense HAT n’est pas compatible avec les
premiers Raspberry Pi, les modèles A et B, ni avec le Compute
Module. Pour obtenir plus d’informations sur les différences
entre les modèles de Raspberry Pi, reportez-vous au chapitre 1.

// Installation
Commencez par fixer les quatre montants fournis avec le Sense HAT dans les
trous de fixation du Raspberry Pi à l’aide d’un tournevis cruciforme et des quatre
vis livrées. Placez l’une des vis dans un trou de fixation du Raspberry Pi et mainte-
nez le tout en place pendant que vous vissez le montant de fixation sur le dessus
du Pi sans trop serrer (figure 16.10). Si vous utilisez un Pi Zéro, vous ne pourrez
fixer que deux montants ; ceux-ci doivent être insérés dans les deux trous de mon-
tage du haut. Ensuite, placez le Sense HAT sur les broches GPIO du Pi, en veillant
à aligner soigneusement les broches avec le connecteur femelle sur le dessous
du Sense HAT. Enfin, fixez le Sense HAT avec les quatre vis restantes, à nouveau
en veillant à ne pas trop serrer.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 16.10 Installation des montants du Sense HAT

Sense HAT /255


Contrairement aux autres dispositifs présentés dans ce chapitre, le Sense
HAT nécessite l’installation de logiciels supplémentaires avant de pouvoir être
utilisé (figure 16.11). Assurez-vous que votre Raspberry Pi a une connexion
Internet active (si vous utilisez un modèle A+ ou Pi Zéro, vous devez utiliser
un adaptateur réseau USB ou installer temporairement votre carte micro-SD
dans un modèle B+, Pi 2 ou Pi 3 pour cette étape). Saisissez ensuite la com-
mande suivante dans la console ou dans un terminal pour installer le logiciel

>_
du Sense HAT :
wget -O – http://www.raspberrypi.org/files/astro-pi/astro-pi-install.sh
--no-check-certificate | bash

Figure 16.11 Installation du logiciel du Sense HAT

Comme le processus d’installation peut prendre jusqu'à 20 minutes sur un Ras-


pberry Pi modèle A+ et B+, et environ cinq minutes sur les modèles plus rapide
(Pi 2 et Pi 3), soyez patient. Lorsque le processus est terminé, vous devez redé-

>_
marrer votre Pi avec la commande suivante :
sudo reboot

Quand le Pi a redémarré, le Sense HAT est prêt à l’emploi.

// Programmation du Sense HAT


C’est en programmant en Python que vous pourrez commencer à utiliser le
Sense HAT le plus rapidement. Commencez par expérimenter le Sense HAT par
un exemple simple où vous ne testerez que la sortie. Créez un nouveau fichier

256/ Chapitre 16 : Matériels additionnels


Python (voir le chapitre 11 pour savoir comment procéder) avec le contenu
suivant :
#!/usr/bin/env python
from sense_hat import SenseHat
sense = SenseHat()
sense.show_message ("Hello, world!")
Enregistrez le fichier et exécutez-le ; vous verrez alors votre message défiler
sur la matrice de LED du Sense HAT (figure 16.12). La fonction sense.show_mes-
sage est la méthode naturelle pour obtenir une sortie depuis le Sense HAT sans
avoir à connecter un écran ; on peut aussi utiliser la matrice de LED pour faire
défiler différentes couleurs.

Figure 16.12 Message défilant sur la matrice de LED du Sense HAT

Pour lire les capteurs embarqués du Sense HAT, créez un nouveau fichier
© Dunod – Toute reproduction non autorisée est un délit.

Python avec le contenu suivant :


#!/usr/bin/env python
from sense_hat import SenseHat
sense = SenseHat()
while True:
  température = sense.get_temperature()
  pression = sense.get_pressure()
  humidité = sense.get_humidity()
   sense.show_message ("La température est %d, la pression est %d, et l’humidité
est %d." % (température,pression, humidité)
Ce programme, qui s’exécute dans une boucle infinie, met constamment à jour
les mesures des capteurs et les affiche sur la matrice de LED. Pour arrêter le pro-
gramme, appuyez sur Ctrl + C.

Sense HAT /257


Astuce

Tous les composants électroniques génèrent de la chaleur


résiduelle et le Pi ainsi que le Sense HAT ne font pas excep-
tion à cette règle. Vous remarquerez que la valeur lue par le
capteur de température du Sense HAT est supérieure à celle
de la pièce et qu’elle s’élève si la matrice de LED est utilisée…

Pour utiliser les données de l’accéléromètre, du gyroscope et du magnéto-


mètre afin de déterminer l’orientation du Sense HAT, créez un nouveau fichier
Python avec le contenu suivant :
#!/usr/bin/env python
from sense_hat import SenseHat
sense = SenseHat()
while True:
  orientation = sense.get_orientation()
  print "Tangage %d, roulis %d, lacet %d" % (orientation['pitch'],
orientation['roll'], orientation['yaw'])
Enregistrez et exécutez le fichier pour visualiser les valeurs affichées dans
la console ou le terminal. Déplacez le Sense HAT dans tous les sens, et vous
verrez que les valeurs changent en fonction de la direction et de l’angle du Pi
(figure 16.13). La fonction sense.get_orientation récupère les valeurs des trois
capteurs positionnels (accéléromètre, gyroscope et magnétomètre) pour amélio-
rer la précision ; si l’on ne souhaite lire la valeur que d’un seul capteur, il faut uti-
liser sense.get_accelerometer, sense.get_gyroscope, ou sense.get_compass.
Comme dans l’exemple précédent, ce programme s’exécute dans une boucle infi-
nie et pour le quitter, vous devez appuyer sur Ctrl + C.

Figure 16.13 Utilisation des capteurs de position du Sense HAT

258/ Chapitre 16 : Matériels additionnels


On trouvera d’autres exemples, y compris pour utiliser la manette de jeux, dans
le dossier /usr/src/sense-hat/examples/python-sense-hat. Pour copier ces
exemples dans un sous-dossier appelé sense-hat de votre dossier home, saisissez

>
les commandes suivantes :
mkdir ~/sense-hat

_
cp /usr/src/sense-hat/examples/python-sense-hat/* ~/sense-hat
sudo chown pi:pi ~/sense-hat/*

Si votre nom d’utilisateur n’est pas pi, n’oubliez pas de changer le nom d’uti-
lisateur et le nom de groupe dans la dernière commande chown afin que votre
nom d’utilisateur soit autorisé à modifier les fichiers. Vous êtes alors libre de
modifier ces exemples comme bon vous semble, de les transformer pour un
tout autre usage ou tout simplement de les tester sans crainte d’altérer les
originaux.
Vous trouverez la documentation complète de l’API du Sense HAT à pythonhosted.
org/sense-hat, et des ressources supplémentaires ainsi que des exemples en Python
et en Scratch à astro-pi.org et raspberrypi.org/resources.

Norme HAT
Le Sense HAT est l’une des nombreuses cartes additionnelles pour le Raspberry
Pi basée sur la norme HAT (Hardware Attached on Top, en français : matériel fixé
sur le dessus).La Fondation Raspberry Pi a créé le standard HAT pour faciliter le
travail des développeurs qui produisent des matériels et leur garantir le fonc-
tionnement de leur production sur les Raspberry Pi modèles A+, B+, Pi 2, Pi 3 et
Pi Zéro.
La norme couvre à la fois la conception physique et électrique des cartes addition-
nelles. Pour se conformer à la norme HAT, la carte doit se connecter aux 40 broches
du port GPIO et avoir des trous de fixation qui s’alignent avec ceux du Raspberry Pi
modèle B+ et des modèles plus récents. La carte doit également être rectangulaire
et mesurer 65 mm par 56 mm, afin de garantir qu'elle s’adapte parfaitement sur le
dessus du Raspberry Pi modèle A+ et des modèles plus larges.
© Dunod – Toute reproduction non autorisée est un délit.

La partie électrique de la norme HAT nécessite que le concepteur inclue un module


EEPROM (mémoire en lecture seule programmable et effaçable électriquement)
sur la carte. Il s’agit d’un petit espace de stockage, tout comme la carte micro-SD
du Pi, qui contient des informations sur le fonctionnement de la carte, la manière
dont sont utilisées les broches du GPIO du Pi et une arborescence des périphé-
riques pour intégrer la carte dans le système d’exploitation.
Pour l’utilisateur, le standard HAT est une garantie que la carte est compatible avec
tous les modèles de Raspberry Pi, à partir du modèle B+. Cela signifie que si vous
avez un modèle A ou un modèle B, vous ne pouvez donc pas utiliser les modules à
la norme HAT parce que votre Pi n’a de port GPIO avec 40 broches.
Vous trouverez plus d’informations sur la norme HAT à github.com/raspberrypi/hats
Annexes

/> Annexe A 263


Recettes Python

/> Annexe B 269


Mise en route du Raspberry Pi

/> Annexe C 279


Administration système Linux
/> Annexe
Recettes Python
A

Les recettes suivantes reproduisent le code source des exemples 3 et 4 du cha-


pitre 11, ainsi qu’un exemple de solution pour un programme combinant la gestion
des entrées et des sorties du GPIO qui est évoqué au chapitre 14. Chaque code
source est disponible dans les compléments en ligne de cet ouvrage. Nous avons
choisi de laisser tel quel le code source de la version anglaise de ce livre, mais
vous trouverez en plus dans les compléments en ligne une version française de
ces exemples avec une traduction des commentaires ainsi qu’une adaptation du
code aux spécificités du clavier AZERTY.

Raspberry Snake (chapitre 11, Exemple 3)


#!/usr/bin/env python
# Raspberry Snake
# Written by Gareth Halfacree for the Raspberry Pi User Guide
import pygame, sys, time, random
from pygame.locals import *
pygame.init()
fpsClock = pygame.time.Clock()
playSurface = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Raspberry Snake')
© Dunod – Toute reproduction non autorisée est un délit.

redColour = pygame.Color(255, 0, 0)
blackColour = pygame.Color(0, 0, 0)
whiteColour = pygame.Color(255, 255, 255)
greyColour = pygame.Color(150, 150, 150)
snakePosition = [100,100]
snakeSegments = [[100,100], [80,100], [60,100]]
raspberryPosition = [300,300]
raspberrySpawned = 1
direction = 'right'


Annexe A : Recettes Python /263

changeDirection = direction
def gameOver():
    gameOverFont = pygame.font.Font('freesansbold.ttf', 72)
  gameOverSurf = gameOverFont.render ('Game Over', True, greyColour)
  gameOverRect = gameOverSurf.get_rect()
  gameOverRect.midtop = (320, 10)
  playSurface.blit(gameOverSurf, gameOverRect)
  pygame.display.flip()
  time.sleep(5)
  pygame.quit()
sys.exit()
while True:
  for event in pygame.event.get():
    if event.type == QUIT:
      pygame.quit()
      sys.exit()
    elif event.type == KEYDOWN:
      if event.key == K_RIGHT ou event.key == ord('d'):
        changeDirection = 'right'
      if event.key == K_LEFT ou event.key == ord('a'):
        changeDirection = 'left'
      if event.key == K_UP ou event.key == ord('w'):
        changeDirection = 'up'
      if event.key == K_DOWN ou event.key == ord('s'):
        changeDirection = 'down'
      if event.key == K_ESCAPE:
        pygame.event.post(pygame.event.Event(QUIT))
  if changeDirection == 'right' and not direction == 'left':
    direction = changeDirection
  if changeDirection == 'left' and not direction == 'right':
    direction = changeDirection
  if changeDirection == 'up' and not direction == 'down':
    direction = changeDirection
  if changeDirection == 'down' and not direction == 'up':
    direction = changeDirection
  if direction == 'right':
    snakePosition[0] += 20
  if direction == 'left':
    snakePosition[0] -= 20
  if direction == 'up':
    snakePosition[1] -= 20


264/ Annexe A : Recettes Python

  if direction == 'down':
    snakePosition[1] += 20
  snakeSegments.insert(0,list(snakePosition))
if snakePosition[0] == raspberryPosition[0] and snakePosition[1] ==
  
raspberryPosition[1]:
    raspberrySpawned = 0
  else:
    snakeSegments.pop()
  if raspberrySpawned == 0:
    x = random.randrange(1,32)
    y = random.randrange(1,24)
    raspberryPosition = [x*20,y*20]
    raspberrySpawned = 1
  playSurface.fill(blackColour)
  for position in snakeSegments:
      
pygame.draw.rect(playSurface,whiteColour,Rect(position[0],
position[1], 20, 20))
  
pygame.draw.rect(playSurface,redColour,Rect(raspberryPosition[0],
raspberryPosition[1], 20, 20))
  pygame.display.flip()
  if snakePosition[0] &gt; 620 ou snakePosition[0] &lt; 0:
    gameOver()
  if snakePosition[1] &gt; 460 ou snakePosition[1] &lt; 0:
    gameOver()
  for snakeBody in snakeSegments[1:]:
    if snakePosition[0] == snakeBody[0] and snakePosition[1] == snakeBody[1]:
      gameOver()
  fpsClock.tick(20)

Liste des utilisateurs d’IRC (chapitre 11, Exemple 4)


© Dunod – Toute reproduction non autorisée est un délit.

#!/usr/bin/env python
# IRC User List
# Written by Tom Hudson for the Raspberry Pi User Guide
# http://tomhudson.co.uk/
import sys, socket, time
RPL_NAMREPLY = '353'
RPL_ENDOFNAMES = '366'
irc = {
    'host': 'chat.freenode.net',


Annexe A : Recettes Python /265

  'port': 6667,
  'channel': '#raspiuserguide',
  'namesinterval': 5
}
user = {
  'nick': 'botnick',
  'username': 'botuser',
  'hostname': 'localhost',
  'servername': 'localhost',
  'realname': 'Raspberry Pi Names Bot'
}
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Connecting to %(host)s:%(port)s…' % irc
try:
  s.connect((irc['host'], irc['port']))
except socket.error:
  print 'Error connecting to IRC server %(host)s:%(port)s' % irc
  sys.exit(1)
s.send('NICK %(nick)s\r\n' % user)
s.send('USER %(username)s %(hostname)s %(servername)s : %(realname)s\r\n' % user)
s.send('JOIN %(channel)s\r\n' % irc)
s.send('NAMES %(channel)s\r\n' % irc)
read_buffer = ''
names = []
while True:
  read_buffer += s.recv(1024)
  lines = read_buffer.split('\r\n')
  read_buffer = lines.pop()
  for line in lines:
    response = line.rstrip().split(' ', 3)
    response_code = response[1]
    if response_code == RPL_NAMREPLY:
      names_list = response[3].split(':')[1]
       names += names_list.split(' ')
    if response_code == RPL_ENDOFNAMES:
      print '\nUsers in %(channel)s:' % irc
      for name in names:
        print name
      names = []
      time.sleep(irc['namesinterval'])
      s.send('NAMES %(channel)s\r\n' % irc)

266/ Annexe A : Recettes Python


Entrée et sortie GPIO (chapitre 14)
#!/usr/bin/env python
# Raspberry Pi GPIO Input/Output example
# Written by Gareth Halfacree for the Raspberry Pi User Guide
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.IN)
GPIO.output(11, False)
while True:
    input_value = GPIO.input(12)
    if input_value == False:
    print "The button has been pressed. Lighting LED."
    GPIO.output(11, True)
    while input_value == False:
      input_value = GPIO.input(12)
    print "The button has been released. Extinguishing LED."
    if input_value == True:
    GPIO.output(11, False)
© Dunod – Toute reproduction non autorisée est un délit.
/> Annexe
Guide de référence
rapide du module
B
de caméra
du Raspberry Pi
Le module de caméra du Raspberry Pi est livré avec des applications pour cap-
turer les images fixes et les vidéos, chaque logiciel ayant de nombreuses options
pour contrôler le résultat final. Vous trouverez ci-dessous les options des utili-
taires raspistill et raspivid. Pour de plus amples informations, reportez-vous
au chapitre 15.

Options partagées
Les options suivantes, qui sont listées par ordre alphabétique, sont communes
à raspistill et raspivid. Les options qui sont spécifiques à chaque application
sont listées après cette section.
>> -? ou --help : affiche toutes les options et leur syntaxe.
>> -a ou --annotate : autorise l’application d’annotations textuelles à des
vidéos ou des photos. Tout texte passé entre guillemets à la suite de cette
option sera affiché sur toutes les photos ou les vidéos capturées. Outre ce
texte, on peut ajouter d’autres informations en adoptant la syntaxe sui-
vante : -a N ou --annotate N, où N est l’un des nombres décrits ci-dessous
ou bien la somme de plusieurs nombres si l’on souhaite afficher plusieurs
­informations  :
© Dunod – Toute reproduction non autorisée est un délit.

• 1 : affiche le texte fourni par l’utilisateur sur la ligne de commande.


• 2 : affiche le texte fourni par une application appelant l’utilitaire sous la
forme d’un module.
• 4 : affiche la date du jour.
• 8 : affiche l’heure actuelle.
• 16 : affiche les paramètres de l’obturateur de la caméra.
• 32 : affiche les paramètres de l’autofocus de la caméra.
• 64 : affiche les paramètres du gain de la caméra.
• 128 : affiche les paramètres de l’objectif de la caméra.
• 256 : affiche les paramètres du mouvement de la caméra.

Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi /269


• 512 : affiche le nombre d’images par seconde.
• 1024 : utilise un fond noir.
>> -ae ou – annotateex : contrôle le format des annotations textuelles : taille,
couleur du texte, couleur de l’arrière-plan, avec des couleurs spécifiées en
hexadécimal au format YUV et des tailles allant de 6 à 160 (32 est la valeur
par défaut).
>> -awb ou --awb (balance des blancs automatique) : définit la température
de couleur des photos et des vidéos avec une série de valeurs prédéfinies.
Si vos photos ou vos vidéos tirent sur le bleu ou l’orange, essayez d’abord de
modifier cette option. Voici la liste des valeurs possibles pour cette option :
off, auto, sun, cloud, shade, tungsten, fluorescent, incandescent, flash
et horizon.
>> -awbg ou – awbgains : définit les gains des canaux bleu et rouge qui doivent
être appliqués quand la balance des blancs automatique est désactivée (la
valeur est exprimée sous la forme d’un nombre en virgule flottante).
>> -br ou --brightness (luminosité) : ajuste la luminosité des photos ou des
vidéos. Cette option est exprimée sous la forme de nombres entiers, dans
une plage qui va de 0 (luminosité minimale) à 100 (luminosité maximale).
>> -cfx ou --colfx (effets de couleur) : autorise l’utilisateur à modifier l’espace
colorimétrique YUV pour un contrôle précis de l’image. Les valeurs doivent
être exprimées sous la forme U:V, où U contrôle la chrominance et V la lumi-
nance. Une valeur de 128:128 permet d’obtenir une image en niveaux de gris.
>> -co ou --contrast (contraste) : modifie le contraste des photos ou des
vidéos. Cette option est exprimée sous la forme de nombres entiers, dans
une plage qui va de -100 (contraste minimal) à 100 (contraste maximal).
>> -d ou --demo (mode de démonstration) : l’option -d exécute raspistill
ou raspivid en mode démonstration, ce qui affiche une prévisualisation qui
teste les différentes options de la caméra. Dans ce mode, aucune image n’est
prise, même si vous spécifiez un fichier de sortie avec l’option --output.
>> -drc ou --drc (contrôle de la plage dynamique) : modifie l’image en aug-
mentant la plage disponible pour la capture des zones plus sombres de
l’image et en diminuant la plage disponible des zones plus claires, ce qui
améliore la visibilité de l’image dans des conditions de faible lumière. Les
valeurs possibles de cette option sont : off, low, medium, et high.
>> -ev ou --ev (valeur d’exposition) : permet à la caméra d’augmenter ou de
diminuer la valeur d’exposition, ce qui éclaire ou assombrit les photos ou les
vidéos. À la différence des paramètres de luminosité et de contraste, qui
s’appliquent après la capture des images, cette option modifie la prise réelle
des photos et des vidéos. Les valeurs possibles de cette option sont : de -10
à 10, 0 étant la valeur par défaut.
>> -ex ou --exposure (mode d’exposition) : définit le paramètre d’exposi-
tion automatique de la caméra, qui contrôle le temps que met la caméra à

270/ Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi


capturer une image individuelle ou bien la trame d’une vidéo et qui dépend
en grande partie de la lumière ou de la vitesse du sujet : les objets qui se
déplacent rapidement ont besoin d’une courte vitesse d’exposition afin qu’ils
ne soient pas flous, alors que les prises de vue quand la lumière est faible
demandent un temps d’exposition long. Les valeurs possibles de cette option
sont : off, auto, night, nightpreview, backlight, spotlight, sports, snow,
beach, verylong, fixedfps, antishake et fireworks.
>> -f ou --fullscreen (prévisualisation en plein écran) : affiche l’image de
prévisualisation en plein écran et annule toute autre option de prévisualisa-
tion définie auparavant.
>> -h ou --height (hauteur) : spécifie la hauteur ou la résolution verticale des
photos ou des vidéos. La hauteur désirée est définie en pixels ; par exemple,
une capture en Full HD nécessite une hauteur de 1080 pixels. La valeur mini-
male est 64 et la valeur maximale dépend de ce qui est capturé (photo ou
vidéo) et du modèle de la caméra (5 mégapixels ou 8 mégapixels).
>> -hf ou --hflip (retournement horizontal) : retourne la photo ou la vidéo sur
son axe horizontal, comme si on la regardait dans un miroir.
>> -ifx ou --imxfx (effets d’image) : active l’un des nombreux effets spéciaux
programmés sur une image ou une vidéo. Les valeurs possibles de cette
option sont : none, negative, solarise, sketch, denoise, emboss, oilpaint,
hatch, gpen, pastel, watercolour, film, blur, saturation, colourswap,
washedout, posterise, colourpoint, colourbalance et cartoon. Pour vous
faire une idée de tous ces paramètres, utilisez l’option du mode démonstra-
tion.
>> -ISO ou --ISO (sensibilité ISO) : définit la sensibilité de la caméra à la
lumière. Une faible valeur ISO fournit une image plus claire, mais nécessite
un temps d’exposition plus long ; une valeur ISO plus élevée permet d’effec-
tuer une prise de vue dans un temps d’exposition très court, ce qui permet
de capturer des sujets qui se déplacent rapidement ou qui sont faiblement
éclairés, tout en créant plus de bruit dans l’image. Les valeurs de cette
option vont de 100 à 800.
© Dunod – Toute reproduction non autorisée est un délit.

>> -k ou --keypress (mode de capture avec une touche) : capture les photos
ou les vidéos quand on appuie sur la touche Entrée, à la place de la capture
automatique. Quand on prend des photos, une image est prise chaque fois
que l’on appuie sur la touche Entrée ; quand on filme une vidéo, l’appui sur
la touche Entrée permet de basculer entre le mode enregistrement et le
mode pause. Dans les deux cas, l’appui sur la touche X, suivi par l’appui sur
la touche Entrée quitte l’application et arrête le processus de capture.
>> -md ou --mode (mode du capteur) : définit le mode du capteur, qui contrôle
la résolution, le format de l’image, la fréquence des images en fps (frames
per second, c’est-à-dire images par seconde), le champ de vision et le binning
(mode d’optimisation du capteur où les pixels sont combinés ; cela réduit

Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi /271


la quantité de données transmises et améliore les performances en cas de
faible luminosité). Les valeurs possibles pour cette option sont :
• 0 : choisit de manière automatique le mode qui convient le mieux.
• 1 : choisit le mode 1920×1080 (Full HD) 16:9 avec une vitesse de 1 à 30 fps,
un champ de vision partiel, et pas de binning.
• 2 : définit un mode 2592×1944 4:3 avec une vitesse de 1 à 15 fps, un champ
de vision total, et pas de binning.
• 3 : définit un mode2592×1944 4:3 avec une vitesse de 0.1666 à 1 fps, un
champ de vision total, et pas de binning.
• 4 : définit un mode 1296×972 4:3 avec une vitesse de 1 à 42 fps, un champ
de vision total, et un binning 2x2.
• 5 : définit un mode 1296×730 16:9 avec une vitesse de 1 à 49 fps, un champ
de vision total, et un binning 2×2.
• 6 : définit un mode 640×480 4:3 avec une vitesse de 42.1 à 60 fps, un
champ de vision total, et un mode binning 2×2 plus skip.
• 7 : définit un mode 640×480 4:3 avec une vitesse de 60.1 à 90 fps, un
champ de vision total, et un mode binning 2×2 plus skip.
>> -mm ou --metering (mode de mesure) : définit le mode de mesure de la
lumière pour le capteur des photos et des vidéos, qui contrôle l’exposition
automatique, la balance des blancs et options de sensibilité ISO. Les valeurs
possibles de cette option sont : average, spot, backlit et matrix.
>> -n ou --nopreview (pas de prévisualisation) : n’affiche pas de fenêtre de
prévisualisation lors de la capture.
>> -o ou --output (fichier de sortie) : définit le nom du fichier à enregistrer. Il
peut s’agir d’un nom de fichier et le fichier sera alors créé dans le répertoire
en cours, ou bien chemin absolu. Si vous utilisez raspistill ou raspivid
avec une autre application qui attend des données via l’entrée standard,
vous pouvez détourner les données via la sortie standard en utilisant un
trait d’union (-) comme nom de fichier.
>> -op ou --opacity (opacité de la prévisualisation) : contrôle la transparence
de la fenêtre de prévisualisation. Les valeurs possibles sont des entiers sur
une plage allant de 0 à 255, où 0 est une transparence complète (la fenêtre
est donc invisible) et 255 est totalement visible. En utilisant une valeur
proche de 128, cela permet de voir la fenêtre de prévisualisation tout en
apercevant le texte qui s’affiche derrière.
>> -p ou --preview (contrôle de la fenêtre de prévisualisation) : définit la
taille de la fenêtre de prévisualisation et l’emplacement où elle apparaît.
Les valeurs sont X, Y, W et H où X et Y sont les coordonnées des pixels du coin
supérieur gauche de la fenêtre, et W et H sont respectivement la largeur et la
hauteur de la fenêtre de prévisualisation en pixels.
>> -roi ou --roi (zone d’intérêt) : permet de spécifier une partie du capteur de
la caméra comme source de capture, au lieu que ce soit la totalité du cap-

272/ Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi


teur ; cela permet de recadrer l’image capturée. Cette option est exprimée
sous la forme de coordonnées normalisées en virgule flottante, avec des
valeurs comprises entre 0,0 et 1,0. Pour utiliser le quart du capteur dans le
coin supérieur gauche, par exemple, les valeurs 0,0,0.25,0.25 doivent être
employées.
>> -rot ou --rotation (rotation de la capture) : fait tourner l’image ou la vidéo
capturée selon n’importe quel angle arbitraire. Les valeurs de cette option
sont un nombre entier de degrés, où 0 indique une absence de rotation et
359 la plus grande rotation possible. Les valeurs indiquées sont arrondies
vers le bas avec le multiple le plus proche de 90 degrés, ce qui donne en fait
des angles de rotation de 0, 90, 180 et 270 degrés.
>> -sa ou --saturation (saturation) : ajuste la saturation des couleurs de
l’image ou de la vidéo capturée. Cette option est exprimée sous la forme de
nombres entiers, dans une plage qui va de -100 (saturation minimale) à 100
(saturation maximale).
>> -sh ou --sharpness (netteté) : ajuste la netteté de l’image ou de la vidéo
capturée. Cette option est exprimée sous la forme de nombres entiers, dans
une plage qui va de -100 (netteté minimale) à 100 (netteté maximale).
>> -s ou --signal (mode de signal) : contrôle la capture des images ou des
vidéos via un signal USR1, envoyé à partir d’un autre processus du système.
Bascule en mode enregistrement ou en mode pause de la même manière que
l’option mode de capture avec une touche.
>> -ss ou --shutter (vitesse de l’obturateur) : contrôle manuellement la
vitesse de l’obturateur de la caméra en microsecondes, avec une valeur
maximale de 6 000 000 microsecondes (6 secondes).
>> -st ou --stats (affichage des statistiques) : affiche les statistiques concer-
nant la capture, notamment l’exposition, les gains et la balance des blancs
au cours du processus de capture.
>> -t ou --timeout (délai de capture) : contrôle le délai en millisecondes d’ap-
parition de la fenêtre de prévisualisation. Bien que ce paramètre figure dans
les deux outils, son action est différente d’un utilitaire à l’autre. Avec ras-
© Dunod – Toute reproduction non autorisée est un délit.

pistill, l’option --timeout définit le délai avant la prise de vue ; avec ras-
pivid, l’option définit la durée d’enregistrement de la vidéo. Une valeur de 0
avec raspistill affiche indéfiniment la prévisualisation et ne prend jamais
de photo ; une valeur de 0 avec raspivid enregistre indéfiniment. S’il n’est
pas spécifié, la valeur par défaut du paramètre est égale à 5 secondes (soit
5 000 millisecondes).
>> -v ou --verbose (mode bavard) : le mode bavard dit à l’application de cap-
ture d’afficher autant d’informations que possible sur ce qu’elle fait dans
le terminal ou la console. Cette option n’est en général utilisée que pour le
débogage du logiciel car elle permet à l’utilisateur de voir à quel moment la
capture échoue.

Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi /273


>> -vf ou --vflip (retournement vertical) : retourne l’image sur l’axe verti-
cal. Cette option est la plupart du temps utilisée quand la caméra ne peut
pas être positionnée correctement à cause de la nappe de la caméra. Si la
caméra n’est pas complètement renversée, essayez d’utiliser l’option de
rotation pour contrôler l’image capturée.
>> -vs ou --vstab (stabilisation vidéo) : tente de corriger le tremblement du
capteur de la caméra. On utilise cette option habituellement quand le Rasp-
berry Pi ou son module de caméra est tenu à la main, ou fixé à un robot, un
véhicule, ou tout autre plateforme en mouvement.
>> -w ou --width (largeur) : spécifie la largeur (résolution horizontale) de
l’image ou de la vidéo capturée. Cette option est définie avec la valeur sou-
haitée en pixels ; par exemple, une capture en Full HD nécessite une largeur
de 1920 pixels. La valeur minimale est 64 et la valeur maximale dépend du
type de capture (photo ou vidéo).

Options de raspistill
Conçu pour capturer les images fixes, raspistill a certaines options spéci-
fiques qui ne s’appliquent pas à raspivid. Voici la liste de ces options :
>> -bm ou --burst (capture en mode rafale) : capture plusieurs photos sans
repasser par le mode de prévisualisation, ce qui empêche de perdre des
images quand on capture des images sur un délai très court.
>> -dt ou --datetime (mode date heure) : quand on capture plusieurs images,
utilise un horodatage dans le nom du fichier (format Année Mois Jour Heure
Minute Seconde) au lieu d’un numéro d’image incrémenté.
>> -e ou --encoding (format d’encodage) : définit le format de sortie de
l’image. Cela n’affecte pas l’extension du fichier de sortie, qui doit être chan-
gée manuellement à l’aide de l’option --output. Les valeurs possibles de
cette option sont : jpg, bmp, gif, et png.
>> -fp ou – fullpreview (mode complet de prévisualisation) : utilise la même
résolution pour l’image de prévisualisation en direct que pour la capture.
Cela fournit une représentation fidèle de l’image qui sera capturée, mais
l’option est limitée à 15 images par seconde. Cela élimine le délai de commu-
tation du capteur pendant la capture rapide, de la même manière que lors-
qu’on utilise l’option du mode rafale ; il ne faut pas utiliser ces deux options
en même temps.
>> -fs ou – framestart (numéro de départ de l’image) : spécifie le numéro à partir
duquel on doit commencer à compter les images capturées, qui est utilisé dans
le nom de fichier. Cette option peut être utilisée pour poursuivre une série de
captures qui a été interrompue sans avoir à écraser les fichiers existants.
>> -g ou – gl (texture GL) : trace une image de prévisualisation avec une tex-
ture GL au lieu d’utiliser le composant de rendu vidéo.

274/ Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi


>> -gc ou – glcapture (enregistre la mémoire tampon de trame GL) : sauve-
garde les données de la mémoire tampon de la trame (framebuffer) GL au
lieu de l’image de la caméra.
>> -gs ou – glscene (affiche la scène GL) : affiche le choix de l’utilisateur de la
scène GL ES 2.0 en utilisant les données graphiques de la caméra.
>> -gw ou – glwin (fenêtre GL) : trace une fenêtre GL ES 2.0, spécifiée sous la
forme de coordonnées du coin supérieur gauche (encadrées par un guillemet
simple), suivis par la largeur et la hauteur (par exemple, '0,0,1920,1080').
>> -l ou – latest (lien vers la dernière image) : crée un lien du système de
fichiers vers la dernière image capturée en employant un nom de fichier
fourni par l’utilisateur.
>> -q ou --quality (qualité JPEG) : définit le niveau de compression de l’image
enregistrée au format JPEG, ce qui est sans effet quand l’option est utilisée
avec un autre format d’encodage. Plus la valeur est basse, plus l’image finale
sera petite ; une valeur de 100 fournira la meilleure qualité possible, alors
qu’une valeur de 0 produira une taille de fichier la plus petite possible. Une
valeur de 90 est un bon compromis entre la taille et la qualité.
>> -r ou --raw (enregistre les données Bayer) : enregistre la sortie du filtre de
couleur Bayer de la caméra sous la forme de métadonnées dans les images
JPEG, ce qui est sans effet quand on emploie un autre format d’encodage.
Ces données supplémentaires (la sortie du capteur de la caméra sans inter-
polation) peuvent être utilisées dans les applications d’édition pour recons-
truire une image de meilleure qualité ou plus détaillée, mais elles ne sont
normalement pas nécessaires.
>> -th ou --thumb (vignettes) : définit la taille et la qualité des vignettes enre-
gistrées avec les images JPEG, ce qui est sans effet quand on emploie un
autre format d’encodage. La valeur doit être exprimée sous la forme X:Y:Q,
où X est la largeur, Y la hauteur, et Q la qualité JPEG de la vignette sur une
plage allant de 0 à 100 ; la valeur none désactive les vignettes.
>> -tl ou --timelapse (mode timelapse) : configure raspistill en mode time-
lapse, où les images sont capturées selon un intervalle qui est défini. En
© Dunod – Toute reproduction non autorisée est un délit.

général, cela est utile quand on emploie raspistill avec un script ou une
application tierce en définissant le fichier de sortie sur la sortie standard avec
un trait d’union (-) ; quand on utilise cette option avec un nom de fichier dans
l’option --output, le fichier est écrasé chaque fois qu’une nouvelle image est
capturée. La valeur de cette option doit être le délai entre les captures en mil-
lisecondes. raspistill s’arrêtera toujours après --timeout secondes.
>> -ts ou --timestamp (horodatage) : quand on capture plusieurs images, uti-
lise la date et l’heure actuelle dans le nom de fichier (en employant le format
UNIX d’horodatage) au lieu d’un numéro d’image incrémenté.
>> -x ou --exif (métadonnées EXIF) : autorise l’écriture de métadonnées per-
sonnalisées EXIF (Exchangable Image File Format) dans une image JPEG, ce

Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi /275


qui est sans effet quand on utilise un autre format d’encodage. Les métadon-
nées doivent être exprimées sous la forme ‘clé=valeur’, par exemple pour
indiquer le nom du photographe : -x 'Author=Gareth Halfacree'. L’option
--x none désactive l’enregistrement des métadonnées EXIF.

Options de raspivid
Conçu pour capturer des images animées, raspivid a des options spécifiques
qui ne s’appliquent pas à raspistill. Voici la liste de ces options :
>> -b ou --bitrate (bitrate) : définit le bitrate (débit) de la vidéo capturée, en
bits par seconde (bps). Plus le bitrate est élevé, meilleure sera la qualité de la
vidéo finale, mais cela aura un impact sur la taille du fichier. À moins d’avoir
des besoins très précis, vous ne devez pas modifier ce paramètre et laisser
la valeur par défaut.
>> -c ou --circular (tampon circulaire) : enregistre en permanence la vidéo
dans une mémoire tampon, en écrivant les séquences les plus récentes (spé-
cifiées par l’optin -t ou --timeout) sur le disque quand on appuie sur la
touche Entrée ou qu’un signal USR1 est reçu.
>> -cd ou --codec (codec) : donne le choix entre deux codecs possibles : H264
(codec par défaut) ou MJPEG.
>> -e ou --penc (encodage de la prévisualisation) : utilise la fenêtre de pré-
visualisation pour afficher les images vidéo après qu’elles sont passées par
l’encodeur. Fournit une prévisualisation précise de la vidéo finale ; cette
option est principalement utilisée quand on veut optimiser le bitrate d’en-
codage.
>> -fl ou --flush (vidage des tampons) : vide les tampons afin de réduire la
latence.
>> -fps ou --framerate (fréquence de trame) : définit la fréquence de trame de
la vidéo capturée, en images par seconde. Un chiffre élevé procure une vidéo
fluide, alors qu’un chiffre plus bas occupera moins d’espace sur le disque.
L’enregistrement à une fréquence supérieure à 30 images par seconde, qui
peut être transformé en ralenti avec une application d’édition vidéo, ne fonc-
tionnera probablement qu’à des résolutions inférieures (définies avec les
options --width et --height).
>> -g ou --intra (Intra Refresh Period) : définit la fréquence à laquelle une
iframe doit être capturée. Une iframe est une image complète, et non pas les
modifications enregistrées depuis la dernière image. Plus la fréquence des
iframes sera élevée, meilleure sera la qualité de la vidéo, notamment quand
il y a des changements de plans rapides, mais la taille des fichiers sera plus
importante.
>> -i ou --initial (mode initial) : contrôle le mode dans lequel sera raspivid
quand il s’exécute : enregistrement (mode par défaut) ou pause.

276/ Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi


>> -if ou --irefresh (Intra Refresh Type) : définit le type d’iframe qui doit être
utilisé (cyclic, adaptive, both ou cyclicrows).
>> -ih ou --inline (en-têtes inline) : insère des en-têtes inline (SPS, PPS) dans
le flux vidéo.
>> -pf ou --profile (profil) : choisit un profil (baseline, main ou high) à utiliser
quand on encode la vidéo avec le code H264.
>> -pts ou – save-pts (horodatage) : enregistre l’horodatage dans le fichier
vidéo de sortie, qui peut être utilisé par mkvmerge.
>> -qp ou --qp (quantification) : active la quantification avec une valeur de
paramètre qui doit être comprise entre 10 et 40, 0 (la valeur par défaut)
désactivant la quantification.
>> -sg ou --segment (sortie segmentée) : segmente la sortie en plusieurs
fichiers, la longueur de chaque fichier étant spécifiée en millisecondes.
>> -sn ou --start (débit de segment) : spécifie un numéro de segment à partir
duquel la sortie segmentée doit commencer, la valeur par défaut étant 1.
>> -sp ou --split (découpage) : quand on utilise un déclenchement basé sur une
touche du clavier ou sur un signal, ou bien le mode temporisé, l’option split
commencera un nouveau fichier chaque fois que logiciel est placé en mode
enregistrement, au lieu d’ajouter la prise de vue à la fin du fichier existant.
>> -td ou --timed (mode temporisé) : bascule continuellement entre les modes
enregistrement et pause en fonction d’une durée exprimée en millisecondes
sous la forme enregistrement,pause (ainsi pour enregistrer 30 secondes
puis faire une pause d’une minute, l’option sera -td 30000,60000).
>> -wr ou --wrap (wrap) : spécifie un numéro de segment après lequel le logi-
ciel doit repasser au premier segment et commencer à écraser les fichiers
existants.
>> -x ou --vectors (vecteurs) : affiche les vecteurs de déplacement inline dans
le nom de fichier spécifié.
© Dunod – Toute reproduction non autorisée est un délit.
/> Annexe
Modes d’affichage
HDMI
C

Vous pouvez utiliser les valeurs des tableaux C.1 et C.2 avec l’option hdmi_mode
du fichier config.txt pour modifier le format de sortie vidéo HDMI. Pour de plus
amples informations, consultez le chapitre 7.

Tableau C.1 HDMI Groupe 1 (CEA)

Valeur Description
1 VGA (640×480)
2 480p 60 Hz
3 480p 60 Hz (format d’image 16:9)
4 720p 60 Hz
5 1080i 60 Hz
6 480i 60 Hz
7 480i 60 Hz (format d’image 16:9)
8 240p 60 Hz
9 240p 60 Hz (format d’image 16:9)
10 480i 60 Hz (quadruplement des pixels)
11 480i 60 Hz (quadruplement des pixels) (format d’image 16:9)
© Dunod – Toute reproduction non autorisée est un délit.

12 240p 60 Hz (quadruplement des pixels)


13 240p 60 Hz (quadruplement des pixels) (format d’image 16:9)
14 480p 60 Hz (doublement des pixels)
15 480p 60 Hz (doublement des pixels) (format d’image 16:9)
16 1080p 60 Hz
17 576p 50 Hz
18 576p 50 Hz (format d’image 16:9)
19 720p 50 Hz
20 1080i 50 Hz
21 576i 50 Hz

Annexe C : Modes d’affichage HDMI /279


Valeur Description
22 576i 50 Hz (format d’image 16:9)
23 288p 50 Hz
24 288p 50 Hz (format d’image 16:9)
25 576i 50 Hz (quadruplement des pixels)
26 576i 50 Hz (quadruplement des pixels) (format d’image 16:9)
27 288p 50 Hz (quadruplement des pixels)
28 288p 50 Hz (quadruplement des pixels) (format d’image 16:9)
29 576p 50 Hz (doublement des pixels)
30 576p 50 Hz (doublement des pixels) (format d’image 16:9)
31 1080p 50 Hz
32 1080p 24 Hz
33 1080p 25 Hz
34 1080p 30 Hz
35 480p 60 Hz (quadruplement des pixels)
36 480p 60 Hz (quadruplement des pixels) (format d’image 16:9)
37 576p 50 Hz (quadruplement des pixels)
38 576p 50 Hz (quadruplement des pixels) (format d’image 16:9)
39 1080i 50 Hz (suppression réduite)
40 1080i 100 Hz
41 720p 100 Hz
42 576p 100 Hz
43 576p 100 Hz (format d’image 16:9)
44 576i 100 Hz
45 576i 100 Hz (format d’image 16:9)
46 1080i 120 Hz
47 720p 120 Hz
48 480p 120 Hz
49 480p 120 Hz (format d’image 16:9)
50 480i 120 Hz
51 480i 120 Hz (format d’image 16:9)
52 576p 200 Hz
53 576p 200 Hz (format d’image 16:9)
54 576i 200 Hz
55 576i 200 Hz (format d’image 16:9)
56 480p 240 Hz
57 480p 240 Hz (format d’image 16:9)
58 480i 240 Hz
59 480i 240 Hz (format d’image 16:9)

280/ Annexe C : Modes d’affichage HDMI


Tableau C.2 HDMI Groupe 2 (DMT)

Valeur Description
1 640×350 85 Hz
2 640×400 85 Hz
3 720×400 85 Hz
4 640×480 60 Hz
5 640×480 72 Hz
6 640×480 75 Hz
7 640×480 85 Hz
8 800×600 56 Hz
9 800×600 60 Hz
10 800×600 72 Hz
11 800×600 75 Hz
12 800×600 85 Hz
13 800×600 120 Hz
14 848×480 60 Hz
15 1024×768 43 Hz, incompatible avec le Raspberry Pi
16 1024×768 60 Hz
17 1024×768 70 Hz
18 1024×768 75 Hz
19 1024×768 85 Hz
20 1024×768 120 Hz
21 1152×864 75 Hz
22 1280×768 (suppression réduite)
23 1280×768 60 Hz
24 1280×768 75 Hz
25 1280×768 85 Hz
26 1280×768 120 Hz (suppression réduite)
© Dunod – Toute reproduction non autorisée est un délit.

27 1280×800 (suppression réduite)


28 1280×800 60 Hz
29 1280×800 75 Hz
30 1280×800 85 Hz
31 1280×800 120 Hz (suppression réduite)
32 1280×960 60 Hz
33 1280×960 85 Hz
34 1280×960 120 Hz (suppression réduite)
35 1280×1024 60 Hz
36 1280×1024 75 Hz

Annexe C : Modes d’affichage HDMI /281


Valeur Description
37 1280×1024 85 Hz
38 1280×1024 120 Hz (suppression réduite)
39 1360×768 60 Hz
40 1360×768 120 Hz (suppression réduite)
41 1400×1050 (suppression réduite)
42 1400×1050 60 Hz
43 1400×1050 75 Hz
44 1400×1050 85 Hz
45 1400×1050 120 Hz (suppression réduite)
46 1440×900 (suppression réduite)
47 1440×900 60 Hz
48 1440×900 75 Hz
49 1440×900 85 Hz
50 1440×900 120 Hz (suppression réduite)
51 1600×1200 60 Hz
52 1600×1200 65 Hz
53 1600×1200 70 Hz
54 1600×1200 75 Hz
55 1600×1200 85 Hz
56 1600×1200 120 Hz (suppression réduite)
57 1680×1050 (suppression réduite)
58 1680×1050 60 Hz
59 1680×1050 75 Hz
60 1680×1050 85 Hz
61 1680×x1050 120 Hz (suppression réduite)
62 1792×1344 60 Hz
63 1792×1344 75 Hz
64 1792×1344 120 Hz (suppression réduite)
65 1856×1392 60 Hz
66 1856×1392 75 Hz
67 1856×1392 120 Hz (suppression réduite)
68 1920×1200 (suppression réduite)
69 1920×1200 60 Hz
70 1920×1200 75 Hz
71 1920×1200 85 Hz
72 1920×1200 120 Hz (suppression réduite)
73 1920×1440 60 Hz

282/ Annexe C : Modes d’affichage HDMI


Valeur Description
74 1920×1440 75 Hz
75 1920×1440 120 Hz (suppression réduite)
76 2560×1600 (suppression réduite)
77 2560×1600 60 Hz
78 2560×1600 75 Hz
79 2560×1600 85 Hz
80 2560×1600 120 Hz (suppression réduite)
81 1366×768 60 Hz
82 1920×1080 (1080p) 60 Hz
83 1600×900 (suppression réduite)
84 2048×1152 (suppression réduite)
85 1280×720 (720p) 60 Hz
86 1366×768 (suppression réduite)
© Dunod – Toute reproduction non autorisée est un délit.
Index

1-Wire 104 Bluetooth organisation physique  69


connexion de périphériques  52 préparation sous Linux  50
A
boîtier 248 préparation sous OSX  51
Acorn 29
installation 249 préparation sous Windows  51
adaptateur USB sans fil  44
boot 100 chargeur électrique  45
affichage
configuration avancée  116 bouton 204 clavier
breadboard 204, 209 AZERTY 109
dépannage 80
Broadcom 29 connexion 37
alimentation 45
bureau 59 dépannage 77
dépannage 78
bus I²C  221 sans fil  38
application
désinstallation 74 bus série UART  221 cmdline.txt 126
installation 70, 73 bus SPI  221 compte utilisateur
création 66
© Dunod – Toute reproduction non autorisée est un délit.

installation en ligne de
commande 71 C config.txt  115
mise à jour  75 cache L2 connecteur CSI  235
recherche 72 désactivation 124
connexion automatique  101
apt 71, 72 caméra 103, 233 connexion réseau  41
ARM 29 avantages par rapport à une
consommation électrique  78
webcam 234
audio contrôle à distance  103
guide de références  269
connexion 36 CSI 233, 235
installation 235
lecture depuis la console  131
time-lapse 243 D
B versions 234 Debian 59, 63
BCM2835 22, 30 carte SD  24, 39 démarrage
BCM2836 22, 30 formatage 40 configuration avancée  119
BCM2837 22, 30 organisation logique  67 diagnostics 81

Index /285
dépannage 77 I Minecraft 191
DHCP 42 Minecraft Pi Edition
I²C 104, 221
diode ACT  81 API 191
IDLE 168
diode PWR  81 installation 192
ifconfig  82
distribution Linux  49 lancement 192
Image Writer  51
DSI 23, 36 programmation 195
infrarouge 234
DVI 35 mise à jour  75
installation
moc 131
à l'aide de NOOBS  46
E mode test  125
manuelle 48
écran montage 65
interface CSI  233
connexion 33 mot de passe par défaut  59
interfaces
écran tactile 7 pouces  250 modification  99
activation et désactivation  102
électronique
achat des composants  207
iwconfig  92 N
nom d’utilisateur par défaut  59
équipement de base  203 J
NOOBS
environnement graphique jeu de caractères  108
copie sur une carte SD  40
lancement 59
K fichiers de configuration  113
F Kodi 135
installation 39
installation sur une carte SD  39
fer à souder  205
Fondation Raspberry Pi  9, 10,
L téléchargement 39
12, 15 langue 108 norme HAT  259
matériel officiel  247 LED 204
calcul de la résistance  222 O
fuseau horaire  109
LibreELEC 64 opérateurs booléens  161
G LibreOffice  141, 144 origine du nom Raspberry Pi  13
gestionnaire de paquets  71 Linux 30 OSMC 64, 133
Gimp 145 administration 55 choix de la langue
d'interface 135
GNU/Linux Voir Linux  30 commande cd  58
configuration  139
GPIO 23, 217 commande ls  58
streaming depuis Internet  136
bus 221 commande mkdir  58
streaming depuis un réseau
caractéristiques 220 commande mv  58 local 137
clignotement d'une LED  222 commande rm  58 outil de configuration  97
lecture de l'état d'un commande rmdir  58 overclocking 105
bouton 226 distributions 49, 55 configuration avancée  120
programmation en Python  222 glossaire 56 overscan 101
schémas de brochage  219 groupes 67
soudure du Raspberry Pi présentation 55 P
Zéro 230 pays 108
localisation 107
versions 217 performances 105
logiciel
GPU activation 238 photo
répartition de la mémoire  107 configuration avancée  126 capture 240
groupe 67 logique booléenne  161 Pidora 64
PIXEL 59
H M platine d’essai  205, 210
HAT 259 matériel port GPIO Voir GPIO  217
HDMI 35 configuration avancée  115 projet Raspberry Pi
modes d'affichage  279 historique 11
matériel additionnel  247
home cinéma  131 media center  131, 133 pygame 178
hostname 100 mémoire Python
hub USB  38 répartition 125 versions 168

286/ Index
Python 167 Raspbian 47, 59 soudure 205
boucle while  175 alternatives 64 conseils pour bien souder  212
connexion au réseau  185 applications 59 souris
constantes 185 environnement graphique  59 connexion 37
création d'un jeu  178 installation de logiciels  70 dépannage 78
création d'une variable  174 origine 63 sans fil  38
environnement de raspi-config  98 SPI 104, 221
développement intégré  168
raspistill 240 SSH 103
exécution d'un module  171 options 269, 274
startx 59
premier programme  168
raspivid 242 stockage externe  64
programmation du GPIO  222 options 269, 276
programme exécutable  172 sudo 57, 67
Remote GPIO  104 super-utilisateur 66
recettes 263
réseau
système de fichiers  67
R configuration  85
expansion 99
connexion 41
Raspberry Pi système d’exploitation
diagnostics 82
alimentation 45 installation 45
applications cloud  141 préférences 86
recommandé 47
architecture 29 test de connexion  88
system-on-chip Voir SoC  22
arrêt 76 réseau filaire  42
boîtier officiel  248 configuration  85 T
caractéristiques 21 paramétrage via la console  87
The MagPi  15
configuration avancée  113 réseau sans fil  43 time-lapse 243
dépannage 77 configuration  89
étymologie 13 connexion 90, 95 U
historique du projet  11 paramétrage via la console  91 UART 221
installation 33
résistance 204 USB
interfaces 102
code des couleurs  206 alimentation 79
magazine 15
RISC 29 hub 37, 38
matériel additionnel  247
root 66 micro 38
modèles 21
module de caméra  233 OTG 38
S
outil de configuration  97 UTF-8 108
Scratch 151
programmation 151
répartition de la mémoire  125
animations 155 V
interfaçage avec du VGA 35
stockage externe  41
matériel 163
usages 17 vidéo
premier programme  152
ventes 16 capture 242
programmation d'un jeu  157
Raspberry Pi 2  26 vidéo composite  34
© Dunod – Toute reproduction non autorisée est un délit.

sprite 153
Raspberry Pi 3  27 VNC 103
structures de contrôle  154
Raspberry Pi Compute Module  21
Raspberry Pi modèle A  24
Sense HAT  254 W
programmation 256
Raspberry Pi modèle A+  25 Wi-Fi 43
shebang 168 adaptateur USB  44
Raspberry Pi modèle B  24
shutdown 76 pays 111
Raspberry Pi modèle B+  25
SoC 22
Raspberry Pi Zéro  28
soudure du connecteur sortie HDMI  35 Z
GPIO 230 sortie vidéo composite  34 zone géographique  109

S-ar putea să vă placă și