Raspberry Pi 3 - Guide de l'Utilisateur - Dunod

November 1, 2017 | Author: João Monteiro | Category: Raspberry Pi, Computer Science, Usb, Internet Forum, Linux
Share Embed Donate


Short Description

Informática...

Description

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 Commissioning 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

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

/>1

  À la découverte du Raspberry Pi 21 Tour du propriétaire de la carte 21 Modèle A / B 24 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 Connexion d’un dispositif de stockage externe Raccordement au réseau Connexion de l’alimentation Installation du système d’exploitation Connexion de périphériques Bluetooth

/>3   Administration système Linux

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

39 41 41 45 45 52 55 55 58 59 64 66 70 76

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

/>5   Configuration du réseau

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

77 78 80 81 82

85 85 89

/>6   Outil de Configuration du Raspberry Pi

97 97 98 102 105 107

/>7

113 113 115 124 125

Exécution de l’outil de configuration Onglet Système Onglet Interfaces Onglet Performance Onglet Localisation

  Configuration avancée du Raspberry Pi Éditer les fichiers de configuration avec NOOBS Paramètres du matériel : config.txt Désactivation du cache L2 Répartition de la mémoire

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 131 133 136 137 139

/>9  Le Raspberry Pi comme machine de productivité

141 141 144 145

Lecture audio depuis la console Un media center avec OSMC Lecture en streaming depuis Internet Lecture en streaming depuis un réseau local Configuration d’OSMC Applications cloud LibreOffice Édition graphique avec Gimp

#3 

Programmation du pi

/>10  Introduction à Scratch

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

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

/>11  Introduction à Python

Présentation de Python Exemple 1 : Hello World ! Exemple 2 : entrées, variables, et boucles Exemple 3 : créer un jeu avec pygame Exemple 4 : connexion au réseau avec Python Pour aller plus loin

167 167 168 173 178 185 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 203 206 207 209 212

/>14  Port GPIO

217 217 219 220 222 230

/>15   Module de caméra

233 234 234 235 238 240 242 243

/>16   Matériels additionnels

247 248 250 254

Équipement électronique Lecture des codes couleur des résistances Approvisionnement en composants Découverte de la breadboard Conseils pour bien souder Identification de la version de votre carte Schémas de brochage du port GPIO Caractéristiques du GPIO Utilisation du port GPIO en Python Soudure du connecteur GPIO du Pi Zéro

Pourquoi utiliser le module de caméra ? Choix du module de caméra Installation du module de caméra Activation du mode caméra Enregistrement de photos Enregistrement vidéo Réaliser un time-lapse Boîtier officiel du Raspberry Pi Écran tactile de 7 pouces Sense HAT

# 

Annexes

/>Annexe A : Recettes Python />Annexe B : G uide de référence rapide du module de caméra du Raspberry Pi

263 269

/>Annexe C : Modes d’affichage HDMI

279

Index

285

8/ Table des matières

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

/>

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 activité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 graphique 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 souvent ils s’en sortent également beaucoup mieux que papa et maman pour paramé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’ordinateur à 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ération 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, concepteurs, avocats, ou chimistes. Introduction /9

La programmation, c’est amusant ! Programmer, c’est gratifiant, créatif et amusant. On peut créer de magnifiques 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 avancions tout doucement sur le projet Raspberry Pi, nos convictions ont été fortement é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 rabattre 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éces10/ Introduction

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

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 catalyseur. 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 remarquable 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 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’enseignais 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 premiè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 programmation 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 destiné 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 diffé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’université se retrouvaient chez les jeunes qui postulaient à un emploi. J’ai réuni mes collè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 ?

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

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 puissante 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 multimé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. 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 retrouviez face à une invite de commande. Il fallait bien saisir quelques instructions pour commencer, mais la majorité des utilisateurs n’allaient pas au-delà. Pourtant, 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 profiteraient 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 connecter (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 service 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 ordinateur 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 critères : avec la caméra intégrée, il était bien plus cher que ce que nous avions suggé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 scolaires 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 Raspberry 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’affluer. 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 comptions 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é

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

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 maintenant 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 collectifs de programmeurs, etc. et il se trouve toujours quelqu’un dans l’assistance qui a eu l’occasion d’échanger avec moi ou Liz ma femme (qui anime la communauté) 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’emballer 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 element14 et RS Components, tous deux fournisseurs britanniques en microélectronique et d’envergure internationale. Tandis qu’ils exécutaient leur contrat pour la production et la distribution, nous pouvions nous concentrer sur le développement 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 succè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 produit 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 !

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

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 ordinateur 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, l’élan bavard de Noël. Et puis, étant moi-même passionné par la conquête spatiale, 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écouvriraient 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 souhaitais 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

1

Mise en route

/> chapitre 1

21

/> chapitre 2

33

/> chapitre 3

55

/> chapitre 4

77

/> chapitre 5

85

/> chapitre 6

97

/> chapitre 7

113

À la découverte du Raspberry Pi Mise en route du Raspberry Pi Administration système Linux Dépannage

Configuration du réseau Outil de configuration du Raspberry Pi Configuration avancée du Raspberry Pi

/>

Chapitre 

1

À la découverte du Raspberry Pi

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 commencer 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.

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

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érablement 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 Raspberry 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étenez 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 certaines différences, notamment l’impossibilité d’utiliser les modules additionnels conformes à la norme HAT (Hardware Attached on Top), qui est étudiée au chapitre 16. Si vous vous trouvez dans la situation où vous avez besoin de fonctionnalité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 (systemon-chip : en français, système sur une puce) qui fournit au Pi des fonctionnalité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

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

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 composite, 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 miniHDMI 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 analogique 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 chapitre 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 (Display 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 (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 Raspberry 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 comporte 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 standard HAT, qui est décrit au chapitre 16. Si vous avez un Raspberry Pi modèle A ou modèle B, vous pouvez sans difficulté 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+

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

Les premiers modèles A et B ont eu beaucoup de succès, mais ils ont été rapidement 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 inauguré 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.

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, dispose 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’augmentation 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 nouveau processeur : le SoC BCM28360. Doté de quatre cœurs alors que le premier 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

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

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 processeur : 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.

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 compatibilité 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 ».

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

// 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 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’architecture 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 architecture 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 ordinateurs 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 capacité 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 traduit 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 prenant 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énommée ARMv6. Le SoC BCM2836 qui est au cœur du Raspberry Pi 2 utilise la nouvelle 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 disponibilité 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 : Microsoft Windows ou Apple OS X. Ces deux plateformes ne sont pas open source, 30/ Chapitre 1 : À la découverte du Raspberry Pi

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

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 systè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 philosophie 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é porté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 également 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 portables 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’utilisation 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 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 compatibles 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 installés sous Windows et OS X afin d’offrir une expérience familière sur l’ensemble des trois plateformes.

/>

Chapitre

2

Mise en route du Raspberry Pi

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 supplé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 à établir 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.

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

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’exploiter 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 voyez sur votre écran.

Connexion de l’écran Avant de pouvoir commencer à utiliser votre Raspberry Pi, vous devez connecter un écran. Le PI prend en charge trois sorties vidéo différentes : la vidéo composite, 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 interfé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). Contrairement à 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.

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

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 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 Raspberry 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 connecteur mini-HDMI à la place d’un connecteur de taille normale. Pour utiliser la sortie 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 amplifié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’électronique, mais vous pouvez aussi les acheter à un prix encore plus avantageux en ligne.

Connexion d’un clavier et d’une souris

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

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 minimum, 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 éventuellement acheter un adaptateur PS/2 vers USB, mais sachez que certains claviers 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 directement sur ces ports. Si vous utilisez un modèle A ou A+, vous devez acheter 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écepteur USB.

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 lorsqu’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 Raspberry 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 appareils. Avant de configurer un clavier et une souris Bluetooth, vous devez cepen38/ 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.

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

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 systè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 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’Association 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 format 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 doubleclic sur le fichier de l’archive, vous devriez pouvoir l’ouvrir sur la plupart des systè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 dispositifs peuvent être des disques durs classiques, des disques SSD (solid-state drive), ou même des clés USB (figure 2.5).

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

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 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 équipements 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 routeur, 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écessite 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 automatiquement. Quand un câble réseau est connecté, le Pi reçoit automatiquement les informations dont il a besoin pour accéder à Internet, lors du chargement de son système d’exploitation, grâce au protocole DHCP (Dynamic Host Configuration 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 configurer votre PC en mode bridge pour qu’il établisse une liaison 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.

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

Figure 2.6 Port Ethernet du Raspberry Pi 3

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’exploitation 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 Raspberry 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’adaptateur 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 exclusivement 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éalement 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ériphériques alimentés par une prise micro-USB ; par exemple, le Pi 3 peut nécessiter 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 intermittents 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 ordinateur 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 courant nécessaire au bon fonctionnement du Pi. Connectez le câble d’alimentation 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 :

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

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 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’installation 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 clavier 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 redimensionné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

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

Si vous ne voyez qu’un écran vide alors que les voyants d’alimentation 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électionner 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, confirmez 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 et une barre de progression vous renseigne sur l’état d’avancement de l’installation (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 systè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’exploitation ou pour modifier les différents paramètres du Pi, reportez-vous au chapitre 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 installant le logiciel manuellement, vous pouvez choisir d’installer des systèmes d’exploitation 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 systè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 volumineux, 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électionnée, vous devez la décompresser sur votre système. Dans la plupart des systè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 distincts. 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.

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

Mise en garde Dans les instructions suivantes, vous allez employer un utilitaire 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. Assurezvous de bien lire les instructions de chaque section et notez l’adresse du lecteur de votre carte SD avec soin. Relisez plusieurs 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 commande 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/ Saisissez

sudo 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 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 ! 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, saisissez 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 !

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

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 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 programme 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 processus, il est possible que le Pi ne démarre pas lorsque vous y insérez la carte SD. Si cela se produit, recommencez le processus 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 suppriment 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.

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

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 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

3

Administration système Linux

La plupart des distributions modernes Linux sont conviviales et dotées d’une interface utilisateur graphique qui facilite l’accomplissement des tâches courantes. 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.

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

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 communication 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 multiples 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 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 Windows 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 endommager 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épertoires 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 premiè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 de bureau

Logiciel pour améliorer l’aspect de l’interface graphique. GNOME 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 de paquets

Utilitaire pour assurer le suivi et l’installation des nouveaux 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é superutilisateur.

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.

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

Terminal et interface graphique Comme dans OS X et Windows, il existe généralement deux façons principales d’atteindre 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 saisissez la commande cd suivi du nom du répertoire dans lequel vous souhaitez 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 fonctionnalité 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 commandes 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 distributions Linux qui se caractérise par sa stabilité, une compatibilité élevée et d’excellentes 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’utilisation 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 version 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émentaires à l’aide du gestionnaire de paquets de la distribution, apt. Raspbian inclut un environnement de bureau nommé PIXEL (Pi Improved ­Xwindows Environment, 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’exploitation 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.

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

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 conservant l’interface graphique en arrière-plan, maintenez enfoncées les touches Ctrl + Alt, puis appuyez sur F1 avant de relâcher les deux touches.

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’écriture 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ébutants en programmation. >> Mathematica : puissant logiciel de calcul issu des mathématiques symboliques 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 logiciels relativement complexes. 60/ Chapitre 3 : Administration système Linux

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

>> Python 2 (IDLE) : IDE écrit spécialement pour Python. Vous en saurez plus sur l’utilisation de IDLE quand vous apprendrez à écrire vos propres programmes 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 certains 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’éditeur d’équations de Microsoft. >> LibreOffice Writer : application de traitement de texte équivalente à Microsoft 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 officiel 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 permettent à 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’importe 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’interface 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 modifier 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 utilisateurs, 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.

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

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.

// 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 distribution à part entière qui est très populaire. Raspbian, qui est donc un fork (dérivation) 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 également basée sur Debian, alors que Mint, une des distributions les plus populaires 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éristique 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’ordinateurs personnels Archimedes, qui, comme le Raspberry Pi, reposait sur un processeur ARM, RISC OS est un système d’exploitation rapide et facile à utiliser avec une interface graphique conviviale. Suite à la séparation des activité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 nettement 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’exploitation 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épertoires, 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).

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

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

À 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ériphé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 personnels, 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 utilisateurs. 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 utilisateur 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’utilisateur 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 utilisateur (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’utilisateur. 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.

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

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.

// 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 descendant 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 stocker 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émarrer 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 emplacement. >> etc : stocke différents fichiers de configuration, notamment la liste des utilisateurs 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’exploitation. 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 superutilisateur (root) sont conservés ici. >> sbin : stocke des fichiers binaires spéciaux, principalement ceux qui sont utilisé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’exploitation. Ce dossier est vide pour la distribution Raspbian. >> sys : il s’agit d’un répertoire virtuel qui stocke des informations système utilisé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.

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

// 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. La première partition du disque est une petite partition (environ 75 Mo) formaté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 système de fichiers spécifique à Linux et conçu pour la sécurité des données et l’accè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’installation 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émentaires 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.

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

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

La désinstallation des logiciels est aussi facile que leur installation : il suffit de cliquer sur la case cochée à côté du nom du logiciel que vous souhaitez 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 gestionnaire de paquets. Lorsque vous ajoutez ou supprimez un logiciel dans l’interface 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 permet 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 disponibles 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 »

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

Astuce Si votre recherche renvoie trop de paquets différents qui sont impossibles à visualiser sur un seul écran, vous pouvez dire à Linux que vous voulez faire une pause sur chaque 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’affichage 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 souhaitez 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 également 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 commande 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 commande à 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 possibilité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

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

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

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 manuellement 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 automatiquement.

/>

Chapitre

4

Dépannage

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 complexes, 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.

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

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 dessous pour voir si sa puissance nominale est exprimée en milliampères (mA). Il s’agit 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 à diagnostiquer. 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’apparaissent 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 incompatible 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 problè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 pointeur 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 accessoires. 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 processus appelé négociation . Le Pi n’a pas de processus de négociation pour l’alimentation, ce qui peut causer des problèmes lorsque vous essayez d’alimenter le Pi à partir du port USB d’un PC. Si les modèles ayant une faible consommation, 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 fonctionnait 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 clignote 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 disparaître ce carré lorsque vous modifiez la quantité d’énergie consommée par le systè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

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

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 Raspberry Pi. Lorsqu’il est connecté à l’alimentation, le wattmètre USB commence à afficher les statistiques sur la qualité de l’alimentation. Ces statistiques incluent 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 puissant 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 alimentations 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 nominale 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émentaire, 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ériphé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 brancher 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 portions 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 portions de l’écran susceptibles d’être masquées par le cadre qui entoure le téléviseur. 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.

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

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 communiquer 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 problè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. Malheureusement, si vous avez une carte incompatible, vous devrez probablement 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 renoncer 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’adaptateur 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 paramé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 compris 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.

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

>> 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 habituellement 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 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 correctement 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’interface 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

5

Configuration du réseau

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 appareils 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.

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

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 facilite la connexion des ordinateurs qui s’y raccordent. Il arrive cependant que certains réseaux n’aient pas de serveur DHCP, et la configuration du réseau doit donc être manuelle. 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 directement 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 opposé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 remplir 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 paramè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 ordinateurs 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, cliquez sur le bouton Appliquer. Si vous recevez un message d’erreur, vérifiez les informations saisies ; une erreur courante consiste à utiliser un autre caractère que l’espace pour séparer les adresses des serveurs DNS. Si aucun message 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

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

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 configuration de manière dynamique, mais il peut également être modifié pour que l’on puisse saisir manuellement des informations de configuration.

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 Raspberry 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 terminal 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 message 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 configuration. 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 serveur 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 correctement, 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 !

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

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 particulier, car certaines cartes ne prennent en charge que des systèmes d’exploitation 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 utilisé 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’adaptateur 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 utilisé 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 terminal. 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écessite 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

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

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 routeur ou bien sur une carte fournie avec le retour. Sinon, demandez la clé à la personne 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.

// Connexion à un réseau sans fil via la Console Si vous n’utilisez pas l’interface utilisateur graphique avec votre Pi, vous pouvez é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 à proximité. 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

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

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épannage 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. Normalement, 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 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 permet é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

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

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" }

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 prochaine 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. Certains modèles d’adaptateurs sont connus pour provoquer des problèmes avec certains claviers USB. Pour une liste actualisée des cartes qui sont certifiées comme étant valables, ainsi que celles qui sont réputées pour poser des problèmes, visitez 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

6

 Outil de Configuration 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 paramè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 recommandons que les débutants choisissent cette distribution afin de profiter de cet outil.

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

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 paramètres (en particulier, l’option d’overclocking), peuvent endommager irrémédiablement votre Pi. Assurez-vous de lire attentivement chaque section de ce chapitre avant d’utiliser 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émarrer 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 configuration 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.

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

// 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 installé 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ération 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 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, ellemême, ne sera cependant pas endommagée.

// Mot de passe Par défaut, Raspbian comprend, à part le compte root, un seul compte utilisateur 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 commande passwd (voir le chapitre 3 pour plus de détails), mais les débutants trouveront 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’identifier 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 bouton 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 enregistrer 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émarrage. 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.

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

// Splash screen Par défaut, l’option Splash Screen (écran d’accueil) est activée. Cette option affiche, au démarrage du Pi, un écran d’accueil graphique avec la mention « 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 signifie 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 modifiez 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 nouveau 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 cessera 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éactiver 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 Raspberry 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.

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

// VNC VNC (Virtual Network Computing) est un outil qui permet de contrôler à distance 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 à distance à 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 fournie 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 modifications de la configuration.

// 1-wire L’interface 1-Wire est aussi une alternative à I2C et SPI, qui permet de communiquer 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ération 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

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

// Overclock L’overclocking désigne le processus qui consiste à faire tourner un appareil à 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 performances 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 manuellement (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 plupart 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 corruption 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 section 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 nombreux 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 provenant 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 constamment sans vous inviter à vous connecter, vous avez choisi une vitesse trop élevé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’onglet 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 processeur 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 utilisé 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 Raspberry 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 performances 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é.

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

Onglet localisation L’onglet Localisation (adaptation aux contraintes locales) offre la possibilité 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 constater 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 particuliè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 fonction 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 paramè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’Atlantique, les États-Unis et l’Europe. Utilisez les touches de curseur pour sélectionner 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.

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

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 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 systè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’internationalisation : 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 disposition 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 keyboard » 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 configuration 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

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

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 disponibles 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 adaptateur Wi-Fi émet sur une fréquence non autorisée. Dans ces conditions, assurezvous de modifier ce réglage avant d’emporter votre Raspberry Pi en vacances à l’étranger !

/>

Chapitre

7

 Configuration avancée 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 physiquement 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.

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

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 chapitre serviront à ceux qui emploient d’autres distributions ou à 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 configuration ; 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’exploitation, 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.

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

Paramètres du matériel : CONFIG.TXT Le matériel du Pi est contrôlé par les paramètres contenus dans un fichier 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 pouvoir 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 changements qui ont été effectués, il faut tout simplement supprimer le fichier du répertoire /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

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

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 paramè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 modification 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 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 couleurs. Parmi les autres valeurs valides, on peut citer 8 bits par pixel (256 couleurs), 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 problè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 corresponde 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 America). 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 Association) 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 :

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

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.

// 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é cmdline.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 commande à 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 processeur 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établissez 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écompose 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’afficheront à 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 stimuler 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, fonctionnent à 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.

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

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 suivants 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érations. 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 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’endommager 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 engendrer 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 modifications 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’overclocking, 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 supprimer 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é fonctionnent 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 à fonctionner 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’atteindre 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

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

La modification de n’importe quelle option de tension dans le fichier config.txt provoque dans le BCM2835 le déclenchement 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 nominales, 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 : >> over_voltage : ajuste la tension de base du BCM2835. Les valeurs sont indiqué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 processeur 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 performances, 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 systè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 fonctionnalité que la plupart des utilisateurs de Pi ne devraient jamais avoir à expérimenter, 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 normalement. Mise en garde L’activation du mode test ne provoque aucun dommage permanent, mais le Pi ne démarrera pas avec son système d’exploitation 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.

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

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 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 Raspberry 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 normalement 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 simplement 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’apparence 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

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

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 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 fonctionnement 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 pouvez 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 fonctionnent 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 nouvelles que vous avez compilées dans le noyau. Comme avec config.txt, toute modification nécessite un redémarrage pour être effective.

2

Création d’un media center ou d’une machine de productivité /> chapitre 8

131

/> chapitre 9

141

Le Raspberry Pi comme media center Le Raspberry Pi comme machine de productivité

/>

Chapitre

8

 Le  Raspberry  Pi  comme  media  center

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 sortie 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.

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

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 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 programmes (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 distribution. 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 graphiques, 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 éviter 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ésirez 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’arrê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.

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

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 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écodage 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’exploitation 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’installation 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. Assurezvous 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 transfert 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électionnez 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

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

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 instructions 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 maisonnette en bas à droite de l’écran. Sélectionnez System puis Settings, en dessous, 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.

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électionnables sous le menu Vidéo, vous pourrez enrichir l’installation d’impressionnantes 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éfiezvous 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 maintenant 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.

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

Lecture en streaming depuis un réseau local Le programme OSMC prend en charge le standard UPnP (Universal Plug and Play) pour le streaming, ce qui lui permet de se connecter à toute une série d’appareils 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 partager 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 standard 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 solution pour y accéder avec OSMC. Pour paramétrer la connexion d’OSMC à votre serveur de réseau local, choisissez 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 directement 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ésirez 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électionnez 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’ajoutez 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

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

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 toujours une apparence identique : une série d’icônes tout autour d’un logo OSMC au centre (figure 8.8).

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éliorer 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 fonctionnalité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 journalisation, 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

9

Le Raspberry Pi comme machine de productivité

Très polyvalent, le Raspberry Pi peut devenir votre ordinateur de bureau d’entré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 scolaires. Cet usage n’affecte pas ses capacités de plateforme de programmation et d’expérimentation.

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

Astuce 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 accessibles 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 fonctions avancées et moins de formats de fichiers pris en charge. Elles sont également 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 utiliser 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 populaire. 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 fonctionnalité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 smartphones, est compatible avec le logiciel d’entreprise ThinkFree Server. Vous pouvez accéder au service à : online.thinkfree.com.

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

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écessaire d’installer un nouveau navigateur. Les instructions suivantes permettent d’installer Iceweasel, une des versions de Firefox, le célèbre navigateur open 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 mentionné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 LibreOffice. 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 format. 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

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

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’illustration, 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’appelle 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).

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 simultané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 fonctionnement 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

3

Programmation du pi /> chapitre 10

151

/> chapitre 11

167

/> chapitre 12

191

Introduction à Scratch Introduction à Python

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

Minecraft Pi Edition

Édition graphique avec Gimp /149

/>

Chapitre

10

Introduction à Scratch

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 programmes. 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.

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

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 programmation. 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 pensée informatique et introduit les concepts clés à la base de tous les langages de programmation. 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 interface 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 activité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’environnement de développement Scratch disponible sous Linux. Si vous avez suivi les instructions 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 nouveau 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 affiché 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

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

Pour commencer, lancez Scratch qui se trouve sur dans le menu Programmation. 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 apparaissent. 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 parcourant 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.

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 constatera 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écessairement ê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é enregistré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

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

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 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 Mouvement de la palette de blocs. C’est la section visible par défaut lorsqu’un nouveau 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 premier 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’importants 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.

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

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

Exemple n° 3 : un simple jeu 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 permet 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’enregistrer 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’espace. 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.

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

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

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’apparence 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 rencontrent, 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 maintenant 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 boolé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éutiliser 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.

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

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é?. 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 apparence 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 commence, 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.

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

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 Édition et en sélectionnant Start GPIO server, soit en le lançant depuis un programme 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érotation 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 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 connectée à la broche n° 11 (physique), c’est-à-dire la broche GPIO 17, clignoter à un intervalle 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 programme 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 presserez 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

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

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 comprennent beaucoup d’images en couleur. La section Support du site Web officiel de Scratch, qui est hébergé par le MIT à 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édagogique, 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 gratuite 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 liaisons 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 nouvelle 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 programmes 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

11

Introduction à Python

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 programmation Python.

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

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 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 Fondation 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 gratuitement 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 programme 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 commencer avec un nouveau langage de programmation consiste à créer un programme 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 Development 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 diffé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.

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

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 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

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

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 programme 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.

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 logiciel 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 terminal : 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 saisissant : 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. Maintenant que le fichier est placé dans /usr/local/bin, qui est un emplacement répertorié 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 :

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

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.

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écessaires à 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 à comprendre à 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’utilisateur 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'injecter 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 commande 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 afficher 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’utilisateur 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 deuxiè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 == ?

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

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 grand que, < moins grand que, >= signifie plus grand ou égal à, > 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 pratiques 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 trouverez 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 introduction et d'excellents exemples. Vous pouvez en télécharger un exemplaire ou en acheter une version imprimée à inventwithpython.com.

/>

Chapitre

12

Minecraft Pi Edition

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 tunneliers d’un monde ouvert à tous les possibles. Des millions de jeux sur ordinateurs, 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.

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

Introduction à Minecraft Pi Edition Créée par Aron Nieminen et Daniel Frisk, collaborateurs chez Mojang, la version 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 activité 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 Edition 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’environnement 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évelopper leur goût pour la programmation.

Installation de Minecraft Si vous utilisez la dernière version du système d’exploitation Raspbian, Minecraft 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 instants. 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 automatiquement. 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

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

Figure 12.1 Exécution de Minecraft Pi Edition

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 chargement 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 rencontre aucun ennemi, et il n’y a aucune contrainte de temps. C’est une introduction 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 respectivement à 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

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

Le jeu consiste à placer ou à retirer des blocs jusqu’à la construction complè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.

Hacker Minecraft Le secret du succès éducatif de Minecraft Pi Edition tient dans son API qui permet 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 principale 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 programmes. 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, minecraftkevin, 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 programmation 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 apparaî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 suivantes 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()

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

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 programme. 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 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 surface 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écisé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 Minecraft. 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

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

jeu, en maintenant la pression sur la touche Alt et en pressant de manière successive 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éé ailleurs, 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.

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 ressources 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.

4

Exploitation du matériel /> chapitre 13

203

/> chapitre 14

217

/> chapitre 15

233

/> chapitre 16

247

Exploitation du matériel du Pi Port GPIO

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

Module de caméra Matériels additionnels

Hacker Minecraft /201

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

/>

Chapitre

13

Exploitation du matériel du Pi

Dans les chapitres précédents, vous avez appris comment le Raspberry Pi pouvait 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éessorties à 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 circuits 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 utilisant différents protocoles, dont SPI (Serial Peripheral Interface) et I²C (InterIntegrated Circuit). Le chapitre 14 fournit des détails sur l’exploitation des broches 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’électronique : É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 composants 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 multibrin. 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 composants 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 courantes 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 puissant 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

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

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’obtenir 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épensez pas une fortune pour un fer à souder, mais si votre budget vous le permet, 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 adapté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 soudure é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. >> Brucelles : les composants électroniques peuvent être très petits et difficiles à manier si bien que des brucelles vous seront très utiles. Si vous envisagez 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 souder. 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 relativement 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 corrigé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 retirer 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 couleur 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 correspond à 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 Ω.

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

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 comprise entre 2,09 MΩ et 2,31 MΩ). 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 magasins (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 entrepô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-tobusiness), 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 commande 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 commande 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 également 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 rapport 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 composants 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

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

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 prototypage 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 particulier 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 premiè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

Découverte de la breadboard Les breadboards sans soudure sont excellentes pour créer rapidement des circuits 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 encombrantes, coûteuses et leurs connexions ont tendance à se desserrer, ce qui peut entraîner la chute de composants critiques, surtout si la breadboard est transporté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 surface est couverte de petits trous espacés de 2,54 mm. Cependant, à la diffé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 rapport à 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 beaucoup 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

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

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 diffé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 environnement à haute température, tandis qu’une platine d’essai plus épaisse doit être utilisée pour les circuits qui peuvent être exposés à des manipulations 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écessité absolue dans des circuits plus complexes, mais pour obtenir des résultats 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’utilisation 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 souligner : 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 dotezvous 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

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

traversants (c’est-à-dire des trous pratiqués dans le circuit imprimé), dans lesquels 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 appelé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 soudures électroniques comprennent trois à cinq couches de flux. Vous pouvez également 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 travail 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 pourrait traverser le papier fin avant qu’elle ne refroidisse.

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 rapidement 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 équipement. 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 tempé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 tempé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 composants 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 composant 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.

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

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 !). 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 à dessouder 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’emballage 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 nombreux 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 Raspberry 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

14

Port GPIO

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 soudé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.

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

Identification de la version de votre carte Tous les Raspberry Pi modernes, excepté le Compute Module à vocation industrielle, disposent d’un port GPIO à 40 broches normalisé. Si vous avez un Raspberry 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 premiè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 disposées en deux rangées de 13. Ce port GPIO plus court se trouve sur le Raspberry 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 connecteur é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 premiè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

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

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 disposition 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 mauvaise 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 premières broches du schéma actuel à 40 broches. Il s’agit d’un choix délibéré de 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 (disponible 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 compatibles 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 prudent 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 broches peuvent prendre trois états : high, où la broche fournit une tension positive 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émentaires à 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 fonctionnent 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 transportant 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

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

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évision 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.

// 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 communication, les broches 24 et 26 les signaux Chip Select pour gérer jusqu'à deux périphé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 programmation convivial et puissant, n’est cependant pas adapté à toutes les situations. 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 plateforme 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 microcontrô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’appliquer 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 commerce 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 efficacement la LED.

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

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’encadré « 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 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 mettez 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 broche 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 correspondent aux emplacements physiques sur le Raspberry Pi, et initialiser les broches 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 :

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

GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.OUT)

La dernière ligne indique à la bibliothèque GPIO que la broche 11 doit être configuré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ésactiver 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écutez seulement une commande d’activation de la broche, puis quittez votre programme 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. output (11, True) au projet Python pour activer la broche, il est plus intéressant 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 environnement 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éguliers. 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 importante, 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 remplacer la LED par une sonnette afin de réaliser une alarme sonore ou bien par un servomoteur 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 bro226/ Chapitre 14 : Port GPIO

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

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.

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 pourquoi 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 utilisant l’un des environnements de développement intégré disponibles sur le Raspberry 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 sortie, 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 broche 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 instruction 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)

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

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.

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 microcontrô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’entré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érifier 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 coupez 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.

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

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 maintenant 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

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 assurant 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 restantes 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 finition 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

15

Module de caméra

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

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).

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’utilisateur. Le module s’est même rapproché de l’espace à la suite de projets de photographie 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 Raspberry 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 environnante. 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

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

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

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 protection 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 connecter le Pi à un écran à cristaux liquides. Ces deux ports ne sont pas interchangeables 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élicatement 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 dessus. 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

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

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 plupart 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 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 simplement 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 suivante 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 pourrez 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, saisissez 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’option 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 revenir 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. Saisissez 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écuter 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 :

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

FBI -a fichier-image.jpg

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’essayer 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écuté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 permet pas de placer la caméra dans le bon sens. Si la prévisualisation affiche une image à l’envers, utilisez les paramètres -vf (retournement vertical) ou -hf (retournement horizontal) 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 suivants 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

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

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 hauteur avec -h. Ces options sont la plupart du temps utilisées ensemble pour définir 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

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, reportezvous à l’annexe B. Vous pouvez également saisir la commande suivante pour afficher 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 capture 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’option -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 temporelle 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 processeur 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. Malheureusement, 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, saisissez 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 occuper 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

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

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éritable 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’évolution 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 commande suivante :

>_

raspistill -o frame%08d.jpg -tl 10000 -t 600000

Tandis que raspistill, par défaut, générerait un fichier unique qui écraserait 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

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

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

16

Matériels additionnels

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 Raspberry 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 à 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 abriter 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 capteurs 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 fonctionnalité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 utilisable 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

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

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 dessous 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.

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’exploitation, 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 adaptateur, à 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

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

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

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’extré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 correctement connectée en tirant légèrement dessus. Pour allumer l’écran tactile, insérez un câble micro-USB connecté à une alimentation 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 brancher 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

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

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

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 spatiale 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 possibles 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 Raspberry 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

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

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 maintenez 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 montage 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.

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 commande 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 Raspberry 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_message 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.

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

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 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 programme, 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 exception à 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étomè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éliorer la précision ; si l’on ne souhaite lire la valeur que d’un seul capteur, il faut utiliser 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 infinie 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’utilisateur 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

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

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 fonctionnement 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 additionnelles. 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. 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

/> Annexe B

269

/> Annexe C

279

Recettes Python Mise en route du Raspberry Pi Administration système Linux

/>

Annexe

A

Recettes Python

Les recettes suivantes reproduisent le code source des exemples 3 et 4 du chapitre 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() © Dunod – Toute reproduction non autorisée est un délit.

playSurface = pygame.display.set_mode((640, 480)) pygame.display.set_caption('Raspberry Snake') 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] > 620 ou snakePosition[0] < 0:     gameOver()   if snakePosition[1] > 460 ou snakePosition[1] < 0:     gameOver()   for snakeBody in snakeSegments[1:]:     if snakePosition[0] == snakeBody[0] and snakePosition[1] == snakeBody[1]:       gameOver()

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

  fpsClock.tick(20)

Liste des utilisateurs d’IRC (chapitre 11, Exemple 4) #!/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':   'realname':

'localhost', '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:

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

    GPIO.output(11, False)

/>

Annexe

B

Guide de référence rapide du module de caméra du Raspberry Pi

Le module de caméra du Raspberry Pi est livré avec des applications pour capturer 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 utilitaires raspistill et raspivid. Pour de plus amples informations, reportez-vous au chapitre 15.

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

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 suivante : -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  : • 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 luminance. 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 augmentant 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’exposition 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

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

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évisualisation 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 minimale 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émonstration. >> -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’effectuer 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. >> -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 cap272/ Annexe B : Guide de référence rapide du module de caméra du Raspberry Pi

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

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 concernant 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’apparition 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 raspistill, l’option --timeout définit le délai avant la prise de vue ; avec raspivid, 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 capture 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 vertical. 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 Raspberry 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 souhaité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écifiques 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 changé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 commutation du capteur pendant la capture rapide, de la même manière que lorsqu’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 texture 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

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

>> -gc ou – glcapture (enregistre la mémoire tampon de trame GL) : sauvegarde 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 interpolation) peuvent être utilisées dans les applications d’édition pour reconstruire 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 enregistré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 timelapse, où les images sont capturées selon un intervalle qui est défini. En 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 millisecondes. raspistill s’arrêtera toujours après --timeout secondes. >> -ts ou --timestamp (horodatage) : quand on capture plusieurs images, utilise 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 personnalisé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étadonné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’encodage. >> -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 fonctionnera 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

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

>> -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 logiciel 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é.

/>

Annexe

C

Modes d’affichage HDMI

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.

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

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)

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

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

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)

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

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

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)

Index 1-Wire 104

A Acorn 29 adaptateur USB sans fil  44 affichage configuration avancée  116 dépannage 80 alimentation 45 dépannage 78

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

application désinstallation 74

Bluetooth connexion de périphériques  52

organisation physique  69 préparation sous Linux  50 préparation sous OSX  51

boîtier 248 installation 249

préparation sous Windows  51

boot 100

chargeur électrique  45

bouton 204

clavier AZERTY 109

breadboard 204, 209 Broadcom 29

connexion 37

bureau 59

dépannage 77 sans fil  38

bus I²C  221 bus série UART  221

cmdline.txt 126

installation 70, 73

bus SPI  221

installation en ligne de commande 71

C

compte utilisateur création 66

mise à jour  75

cache L2 désactivation 124

recherche 72 apt 71, 72 ARM 29 audio connexion 36 lecture depuis la console  131

B BCM2835 22, 30 BCM2836 22, 30 BCM2837 22, 30

caméra 103, 233 avantages par rapport à une webcam 234 guide de références  269 installation 235

config.txt  115 connecteur CSI  235 connexion automatique  101 connexion réseau  41 consommation électrique  78 contrôle à distance  103 CSI 233, 235

time-lapse 243

D

versions 234

Debian 59, 63

carte SD  24, 39 formatage 40 organisation logique  67

démarrage configuration avancée  119 diagnostics 81

Index /285

dépannage 77 DHCP 42 diode ACT  81 diode PWR  81 distribution Linux  49 DSI 23, 36 DVI 35

E écran connexion 33 écran tactile 7 pouces  250 électronique achat des composants  207 équipement de base  203 environnement graphique lancement 59

F

I

Minecraft 191

I²C 104, 221 IDLE 168

Minecraft Pi Edition API 191 installation 192

ifconfig  82

lancement 192

Image Writer  51 infrarouge 234 installation à l'aide de NOOBS  46 manuelle 48 interface CSI  233 interfaces activation et désactivation  102

programmation 195 mise à jour  75 moc 131 mode test  125 montage 65 mot de passe par défaut  59 modification  99

iwconfig  92

N

J

nom d’utilisateur par défaut  59

jeu de caractères  108

NOOBS copie sur une carte SD  40

K

fichiers de configuration  113 installation 39

Kodi 135

fer à souder  205 Fondation Raspberry Pi  9, 10, 12, 15 matériel officiel  247 fuseau horaire  109

G

téléchargement 39

langue 108

Gimp 145

O

LibreELEC 64

opérateurs booléens  161

Linux 30 administration 55

GNU/Linux Voir Linux  30

commande cd  58

GPIO 23, 217 bus 221

commande ls  58

caractéristiques 220

norme HAT  259

LED 204 calcul de la résistance  222 LibreOffice  141, 144

gestionnaire de paquets  71

installation sur une carte SD  39

L

origine du nom Raspberry Pi  13 OSMC 64, 133 choix de la langue d'interface 135 configuration  139 streaming depuis Internet  136

commande mkdir  58

streaming depuis un réseau local 137

commande mv  58

clignotement d'une LED  222

commande rm  58

lecture de l'état d'un bouton 226

commande rmdir  58 distributions 49, 55

programmation en Python  222

overclocking 105 configuration avancée  120

glossaire 56

schémas de brochage  219

overscan 101

groupes 67

soudure du Raspberry Pi Zéro 230

présentation 55

versions 217 GPU répartition de la mémoire  107

outil de configuration  97

P

localisation 107

pays 108

logiciel activation 238

performances 105

configuration avancée  126

photo capture 240

groupe 67

logique booléenne  161

Pidora 64

H

M

HAT 259

platine d’essai  205, 210

matériel configuration avancée  115

HDMI 35 modes d'affichage  279

PIXEL 59 port GPIO Voir GPIO  217

matériel additionnel  247

projet Raspberry Pi historique 11

home cinéma  131

media center  131, 133

pygame 178

hostname 100

mémoire répartition 125

Python versions 168

hub USB  38

286/ Index

Python 167 boucle while  175

Raspbian 47, 59 alternatives 64

connexion au réseau  185

applications 59

constantes 185

environnement graphique  59

souris connexion 37

création d'un jeu  178

installation de logiciels  70

création d'une variable  174

origine 63

environnement de développement intégré  168

raspi-config  98

SPI 104, 221

raspistill 240 options 269, 274

SSH 103

raspivid 242 options 269, 276

stockage externe  64

Remote GPIO  104

super-utilisateur 66

exécution d'un module  171 premier programme  168 programmation du GPIO  222 programme exécutable  172 recettes 263

R

réseau configuration  85 connexion 41

Raspberry Pi alimentation 45

diagnostics 82 préférences 86

applications cloud  141

test de connexion  88

architecture 29 arrêt 76 boîtier officiel  248

réseau filaire  42 configuration  85

caractéristiques 21 configuration avancée  113 dépannage 77

paramétrage via la console  87 réseau sans fil  43 configuration  89

étymologie 13 historique du projet  11 installation 33 interfaces 102 magazine 15

dépannage 78 sans fil  38

startx 59 sudo 57, 67 système de fichiers  67 expansion 99 système d’exploitation installation 45 recommandé 47 system-on-chip Voir SoC  22

T The MagPi  15 time-lapse 243

connexion 90, 95

U

paramétrage via la console  91

UART 221

résistance 204 code des couleurs  206

USB alimentation 79

RISC 29

hub 37, 38

modèles 21

root 66

micro 38

module de caméra  233

S

OTG 38

matériel additionnel  247

outil de configuration  97 programmation 151 répartition de la mémoire  125 stockage externe  41 usages 17 ventes 16 © Dunod – Toute reproduction non autorisée est un délit.

soudure 205 conseils pour bien souder  212

Raspberry Pi 2  26 Raspberry Pi 3  27 Raspberry Pi Compute Module  21 Raspberry Pi modèle A  24 Raspberry Pi modèle A+  25 Raspberry Pi modèle B  24 Raspberry Pi modèle B+  25 Raspberry Pi Zéro  28 soudure du connecteur GPIO 230

Scratch 151 animations 155 interfaçage avec du matériel 163 premier programme  152 programmation d'un jeu  157 sprite 153 structures de contrôle  154 Sense HAT  254 programmation 256 shebang 168

UTF-8 108

V VGA 35 vidéo capture 242 vidéo composite  34 VNC 103

W Wi-Fi 43 adaptateur USB  44

shutdown 76 SoC 22

pays 111

sortie HDMI  35

Z

sortie vidéo composite  34

zone géographique  109

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF