17
Programmez un Raspberry Pi™

programmez un raspberry pi™medias.dunod.com/document/9782100706594/Feuilletage.pdf · 2014-01-28 · comment écrire des programmes pour le Pi à l’aide du langage populaire Python

  • Upload
    ngodan

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

programmez un raspberry pi™

Retrouvez aussi :

La Boîte à outils Arduino105 techniques pour réussir vos projetsMichael Margolis416 pagesDunod, 2013

Raspberry PiPrise en main et premières réalisationsChristian Tavernier224 pagesDunod, 2013

Arduino Maîtrisez sa programmation et ses cartes d’interfaceChristian Tavernier232 pagesDunod, 2011

Arduino Applications avancéesChristian Tavernier224 pagesDunod, 2012

Simon monk

Programmez un Raspberry Pi™

Initiation avec Python

Traduit de l’américain par Dominique Maniez

L’édition originale de cet ouvrage a été publiée en anglais par McGraw-Hill Global Education Holdings, LLC, sous le titre Programming the Raspberry PiTM, Getting Started with Python,

ISBN : 978-0-07-180783-7.

Copyright © 2013 by The McGraw Hill Companies. All rights reserved.

Toutes les marques citées dans cet ouvrage sont des marques déposées par leurs propriétaires respectifs.

© Dunod, Paris, 2014 pour la traduction françaiseISBN 978-2-10-070659-4

V

C h a p i t r e pa g e

Avant- propos 1

Remer ciements 2

1 Intro duc tion 31.1 Qu’est- ce que le Raspberry Pi ? 41.2 Que peut- on faire avec un Raspberry Pi ? 51.3 Tour d’hori zon du Raspberry Pi 51.4 Ins tal la tion du Raspberry Pi 71.5 Démar rer le sys tème 141.6 Résumé 15

2 Prise en main 172.1 Linux 182.2 Le bureau 182.3 Inter net 202.4 Ligne de commande 212.5 Appli ca tions 232.6 Res sources Inter net 252.7 Résumé 25

3 Bases de Python 273.1 IDLE 283.2 Nombres 323.3 Variables 323.4 Boucles for 343.5 Simulation de lancers de dés 353.6 IF 373.7 While 413.8 Résumé 42

4 Chaînes, listes et dic tion naires 434.1 Théo rie des chaînes 444.2 Listes 464.3 Fonc tions 49

TABLE DES MATIÈRES

Vi

programmez un raspberry pi

4.4 Jeu du pendu 514.5 Dic tion naires 584.6 Tuples 594.7 Excep tions 614.8 Résumé de fonctions 624.9 Résumé 68

5 Modules, classes et méthodes 695.1 Modules 705.2 Orien ta tion objet 745.3 Définitiondesclasses 745.4 Héri tage 765.5 Résumé 79

6 Fichiers et Inter net 816.1 Fichiers 826.2 Pickling 876.3 Inter net 886.4 Résumé 90

7 Inter faces uti li sa teur gra phiques 917.1 Tkinter 927.2 Hello World 927.3 Conver tis seur de tem pé ra ture 937.4 Autres contrôles d’inter face uti li sa teur 977.5 Boîtes de dia logue 1047.6 Menus 1067.7 Le Canvas 1077.8 Résumé 108

8 Pro gram ma tion de jeux 1098.1 Pygame 1108.2 Hello Pygame 1108.3 Un jeu avec des fram boises 1128.4 Résumé 121

9 Interfaçage du maté riel 1239.1 Connexions des broches GPIO 1249.2 Connexion directe aux broches GPIO 1259.3 Cartes exten sion 1269.3 Cartes de pro to ty page 1309.4 Arduino et le Pi 1329.5 Résumé 135

tabLe Des matiÈres

Vii

10 Pro jet de pro to ty page d’une hor loge 13710.1 Maté riel néces saire 13810.2 Assem blage du maté riel 13910.3 Logi ciel 14110.4 Phase 2 14310.5 Résumé 146

11 Le RaspiRobot 14711.1 Maté riel néces saire 14811.2 Phase 1 : créa tion d’un robot basique 14911.3 Phase 2 : ajout d’un télé mètre et d’un écran 15511.4 Résumé 160

12 Pour aller plus loin 16112.1 Res sources Linux 16212.2 Res sources Python 16212.3 Res sources Raspberry Pi 16312.4 Autres lan gages de pro gram ma tion 16412.5 Appli ca tions et pro jets 16612.6 Résumé 166

Annexe : Liste des principales fonctions de Pygame 167

Index 177

1

AvAnT- pRopoS

À mes frères, Andrew et Tim Monk, pour leur amour et leur sagesse.

Le Raspberry Pi est vite devenu un phé no mène mon dial. Les gens commencent à décou vrir le poten tiel d’un ordi na teur poly valent à 30 euros qui peut ser vir de sta tion de tra vail, de media center, ou bien encore de contrô leur d’un sys tème domotique.

Cet ouvrage explique en termes simples, à la fois aux non-pro-gram meurs et aux pro gram meurs qui découvrent le Raspberry Pi, comment écrire des pro grammes pour le Pi à l’aide du lan gage popu laire Python. En outre, il vous apprend à créer une inter face uti li sa teur gra phique et des jeux simples avec le module Pygame.

Les pro grammes de ce livre sont prin ci pa le ment écrits en Python 3, mais Python 2 est par fois uti lisé quand cela est néces saire pour la dis po ni bi lité des modules. Dans cet ouvrage, nous uti li sons la dis-tri bu tion Raspbian Wheezy qui est recom man dée par la Fon da-tion Raspberry Pi.

Ce livre débute par une intro duc tion au Raspberry Pi qui couvre l’achat des acces soires et l’ins tal la tion du maté riel et du logi ciel. Vient ensuite une intro duc tion à la pro gram ma tion qui per met au fildeschapitresdeprogressergraduellement.Lesconceptssontillus trés par des exemples d’appli ca tions qui vous per mettent de commen cer à pro gram mer votre Raspberry Pi. Trois cha pitres sont consa crés à la pro gram ma tion et à l’uti li sation du connec teur GPIO du Raspberry Pi, qui per met à l’appa reil d’être relié à des péri phériques élec tro niques externes. Ces cha pitres comprennent deux pro jets : la réa li sa tion d’une hor loge à LED et la construc tion d’unrobotcompletavecuntélémètreàultrasons.Enfin,l’annexeprésente la liste des principales fonctions de Pygame.

Voici une liste des prin ci paux sujets qui sont trai tés dans cet ouvrage :

Nombres, variables et concepts de base du lan gage Python•

Chaînes, listes, dic tionnaires et struc tures de don nées en •Python

2

programmez un raspberry pi

Modules et orien ta tion objet•

Fichiers et Inter net•

Inter face uti li sa teur gra phique avec Tkinter•

Pro gram ma tion des jeux avec Pygame•

Inter façage avec le maté riel • via le connec teur GPIO

•Exemples de pro jets impli quant du maté riel

L’inté gra lité des lis tings de code de cet ouvrage est dis po nible sur http://www.dunod.com/contenus-complementaires/ 9782100706594.

ReMeR CIeMents

Comme tou jours, je remer cie Linda pour sa patience et son sou tien.

JesouhaiteaussiremercierAndrewRobinsonetmonfils,MatthewMonk, pour leur relec ture tech nique d’une grande par tie de l’ouvrage. Sur veillez la sor tie du livre d’Andrew sur le Raspberry Pi car je suis cer tain qu’il sera excellent.

C h a p i t r e pa g e

3

1 InTRo Duc TIon

1 Introduction 3

1.1 Qu’est- ce que le Raspberry Pi ? 41.2 Que peut- on faire avec un Raspberry Pi ? 51.3 tour d’hori zon du Raspberry Pi 51.4 Ins tal la tion du Raspberry Pi 71.5 Démar rer le sys tème 141.6 Résumé 15

2 Prise en main 17

3 Bases de Python 27

4 Chaînes, listes et dic tion naires 43

5 Modules, classes et méthodes 69

6 Fichiers et Inter net 81

7 Inter faces uti li sa teur gra phiques 91

8 Pro gram ma tion de jeux 109

9 Interfaçage du maté riel 123

10 Pro jet de pro to ty page d’une hor loge 137

11 Le RaspiRobot 147

12 Pour aller plus loin 161

4

programmez un raspberry pi

Le Raspberry Pi a débuté sa commer cia li sa tionàlafindumoisdefévrier2012et lessiteswebdesdiférents fournisseursoù l’onpou vait pas ser commande ont été immé dia te ment pris d’assaut. Qu’est- ce que ce petit appa reil a de si spé cial et pour quoi donc suscite- t-il autant d’inté rêt ?

1.1 Qu’est- Ce Que Le RAsPBeRRy PI ?

Le Raspberry Pi,illustréàlafigure1.1,estunordinateurquis’exé­cute sous le sys tème d’exploi ta tion Linux. Il pos sède deux ports USB aux quels vous pou vez rac cor der un cla vier et une sou ris, et une sor tie vidéo HDMI (High-­Definition­Multimedia­ Inter­face) à laquelle vous pou vez connecter un télé vi seur ou un moni teur. De nom breux moni teurs ne pos sèdent qu’un connec teur VGA et le Raspberry Pi ne fonc tion nera pas avec ce type de sor tie. En revanche, si votre moni teur a un connec teur DVI, il existe des adap ta teurs HDMI- DVI bon mar ché.

Quand le Raspberry Pi démarre, on obtient le bureau Linux qui est illustréàlafigure1.2.Ils’agitvraimentd’unordinateurcomplet,avec une suite bureau tique, des fonc tion na li tés de lec ture vidéo, des jeux, etc. Mais il ne s’exé cute pas sous Microsoft Windows ; à la place, on a le concur rent open source de Windows, Linux (une dis tri bu tion Debian), et un envi ron ne ment de fenê trage qui s’appelle LXDE.

Figure 1.1 Raspberry Pi.

intro DuC tion 1©

Dun

od –

Tou

te re

prod

uctio

n no

n au

toris

ée es

t un

délit

.chap i tre

5

Figure 1.2 Bureau du Raspberry Pi.

Le Raspberry Pi est petit (de la taille d’une carte de cré dit) et d’un prix par fai te ment abor dable (le prix de départ est à moins de 30 euros). Son prix modique s’explique par le fait que cer tains compo sants ne sont pas inclus avec la carte ou bien sont option-nels (par exemple, la carte est livrée nue, sans boî tier de pro tec-tion). Il n’est pas non plus livré avec une ali men ta tion et vous devez donc trou ver un char geur micro- USB de 5 volts (comme celui de votre télé phone, mais sans doute avec une ali men ta tion plus puis sante). Une ali men ta tion USB et un câble micro- USB sont sou vent uti li sés pour cela.

1.2 Que Peut- on FAIRe AveC un RAsPBeRRy PI ?

On peut pra ti que ment faire avec un Raspberry Pi tout ce que l’on peut faire avec un ordi na teur de bureau sous Linux, à quelques excep tions près. Le Raspberry Pi uti lise une carte SD à la place d’un disque dur, bien que l’on puisse le bran cher à un disque dur USB.Onpeutmodifierdesdocumentsbureautiques,surfersurInter net, et jouer à des jeux (même à des jeux qui ont des gra-phismes évo lués, comme Quake). Le prix bas du Raspberry Pi le des tine par ti cu liè re ment à être uti lisé comme media center. Il peut lire des vidéos et on peut l’ali men ter à par tir du port USB que l’on trouve sur de nom breux télé vi seurs.

1.3 touR D’hoRI zon Du RAsPBeRRy PI

Lafigure1.3inventorielesdiférentespartiesd’unRaspberryPi.LafigureillustreunRaspberryPimodèleB,quisediférenciedumodèle A par la pré sence d’un connec teur RJ-45, ce qui lui per met de se connec ter à un réseau.

6

programmez un raspberry pi

Figure 1.3 Ana to mie d’un Raspberry Pi.

Le connec teur Ethernet RJ-45 est illus tré dans le coin supé rieur gauchedelafigure.Sivousdisposezd’unhubàlamaison,vouspou vez bran cher direc te ment le Raspberry Pi sur votre réseau local. À ce sujet, il faut noter que le Raspberry Pi n’a pas le Wi- Fi intégré.Pourdisposerd’unréseausansfil,vousdevezbrancherunadaptateurUSBsansfilquipeutnécessiter l’installationdepilotes sup plé men taires.

Sous la prise Ethernet, vous trou ve rez deux ports USB, l’un au- dessus de l’autre. Vous pou vez bran cher un cla vier, une sou ris, ou des disques durs externes, mais vous allez vite être à court de prises. C’est la rai son pour laquelle de nom breuses per sonnes uti-lisent un hub USB.

Danslecoininférieurgauchedelafigure,voustrouverezunportaudio qui four nit un signal ana lo gique sté réo pour un casque ou deshaut­parleursamplifiés.LeconnecteurHDMI per met aussi de trans fé rer le son.

À côté de la prise audio se trouve un connec teur vidéo RCA. Vous ne vous ser vi rez pro ba ble ment pas de ce connec teur, à moins que vous n’uti li siez votre Raspberry Pi avec un vieux télé vi seur. Vous emploie rez plu tôt le connec teur HDMI qui est à l’opposé (au som-metdelafigure).LapriseHDMI est de meilleure qua lité, trans-porte le son, et peut être connec tée à un écran avec une prise DVI à l’aide d’un adap ta teur bon mar ché.

ÀladroitedelafichejauneRCA, il y a deux ran gées de broches que l’on nomme broches GPIO (General­ Purpose­ Input/Out­put, soit entrées/sor ties à usage géné ral) et qui per mettent au Raspberry Pi

intro DuC tion 1©

Dun

od –

Tou

te re

prod

uctio

n no

n au

toris

ée es

t un

délit

.chap i tre

7

de se connec ter à des compo sants élec tro niques. Les uti li sa teurs d’Arduino et des autres micro contrô leurs ne seront pas dépay sés par l’idée de broches GPIO. Au cha pitre 11, nous uti li se rons ces broches pour trans for mer le Raspberry Pi en « cer veau » d’un petit robot iti né rant pour contrô ler ses moteurs. Au cha pitre 10, nous uti li se rons le Raspberry Pi pour fabri quer une hor loge à LED.

Le Raspberry Pi a un empla ce ment pour carte SD sous le cir cuit. Cette carte SD doit avoir une taille mini mum de 2 Go. Elle contient le sys tème d’exploi ta tion de l’ordi na teur ainsi que le sys tème de fichiersquipermetdestocker lesdocumentsque l’oncrée.Lacarte SD est une option quand on achète un Raspberry Pi. La pré-pa ra tion de sa propre carte SD s’avère un peu complexe à réa li ser et des four nis seurs comme SK Pang, Farnell et RS Components vendent tous des cartes SD prêtes à l’emploi. Comme il n’y a aucun disque inté gré au Raspberry Pi, cette carte SD consti tue votre véri table ordi na teur et vous pou vez donc la retirer et l’insé-rer dans un autre Raspberry Pi pour retrou ver tout votre envi ron-ne ment de tra vail.

Au- dessus de la carte SD, il y a un port micro- USB qui n’est uti lisé que pour four nir l’ali men ta tion du Raspberry Pi.Celasignifiequevous aurez besoin d’une ali men ta tion avec un connec teur micro- USB à son extrémité. Il s’agit du même type de connec teur que celui qui est uti lisé par de nom breux télé phones mobiles, notam ment la plupart des téléphonesAndroid. Il faut cependant vérifier quevotre ali men ta tion peut four nir au moins un cou rant de 700 mA, sinon votre Raspberry Pi pourra se compor ter de façon erra tique.

Pourceuxquelesspécificationstechniquesintéressent,lagrossepuce car rée au centre de la carte est l’empla ce ment du cœur du sys tème : il s’agit d’un SOC (System­On­a­Chip, ou sys tème sur une puce) de chez Broadcom qui comprend 256 Mo de mémoire ainsi que diférents processeurs (graphique et à usage général) quipilotent le Raspberry Pi.

Vous aurez aussi peut- être remar qué des connec teurs avec un câble plat à côté de la carte SD et entre les prises Ethernet et HDMI. On les utilise respectivement pour un afficheur LCD et unecaméra. Il existe déjà un module pour une caméra et on devrait trouverdansunavenirprocheunmodulepourafficheurLCD.

1.4 Ins tAL LA tIon Du RAsPBeRRy PI

Vous vous faci li te rez la vie en ache tant une carte SD prête à l’emploi et une ali men ta tion quand vous ferez l’acqui si tion de votre Raspberry Pi, et par la même occa sion éga le ment un cla vier

8

programmez un raspberry pi

et une sou ris USB (à moins que vous n’en ayez chez vous qui traînent). Commen çons le pro ces sus d’ins tal la tion en exa mi nant cedontnousauronsbesoinetoùseleprocurer.

Acqui si tion du maté riel néces saireLe tableau 1.1 liste ce qu’il vous faut pour obte nir un sys tème Raspberry Pi tota le ment fonc tion nel.

Article Dis­tri­bu­teur­et­n°­d’article Infor­ma­tions­complé­men­taires

Raspberry Pi,Modèle A ou B

Farnell (www.farnell.com)Newark (www.newark.com)

RS Components (www.rs- components.com)

La dif fé rence entre les deux modèles est que le modèle B a une connexion

réseau.

Char geur USB Farnell : 1734526Char geur USB 5 V USB. Doit pou voir four nir une ali men ta tion de 700 mA (3 W), mais 1 A (5 W) est pré fé rable.

Câble micro- USB

RadioShack : 55048949Farnell : 2115733Adafruit : PID 592

Cla vier et sou ris Maga­sin­d’infor­ma­tique

Tout­cla­vier­USB­fera­l’affaire.­Les­cla­viers­et­les­sou­ris­sans­fil­qui­sont­four nis avec leur propre adap ta teur

USB fonc tionnent éga le ment.

Télé/moniteur avec prise HDMI

Maga­sin­d’infor­ma­tique­ ou­d’élec­tro­nique

Câble HDMI Maga­sin­d’infor­ma­tique­ ou­d’élec­tro­nique

Carte SD (pré parée)

SK Pang : RSP-2GBSDNewark : 96T7436Farnell : 2113756

Adap ta teur Wi- Fi* http://elinux.org/RPi_VerifiedPeripherals#USB_WiFi_Adapters

Elinux.org four nit une liste à jour des adap ta teurs Wi- Fi.

Hub USB* Maga­sin­d’infor­ma­tique

Adap ta teur HDMI vers DVI*

Newark : 74M6204Maplins : N24CJFarnell : 1428271

Câble Ethernet* Maga­sin­d’infor­ma­tique

Boî tier* Adafruit, SK Pang, ou Alliedelec.com

* Ces articles sont option nels.

Tableau 1.1 Kit Raspberry Pi.

intro DuC tion 1©

Dun

od –

Tou

te re

prod

uctio

n no

n au

toris

ée es

t un

délit

.chap i tre

9

Bloc d’ali men ta tionLafigure1.4illustreunblocd’alimentationUSB clas sique avec un câble USB- A vers micro- USB.

Vous pou vez uti li ser une ali men ta tion d’un ancien lec teur MP3 ou quelque chose de simi laire, tant qu’elle a une ten sion de 5 volts etpeutfournirsuffi sammentdecourant.Ilestimportantdenepassurchargerl’alimentationcarellepourraitchauferettomberen panne (voire pro vo quer un incen die). Par consé quent, l’ali-men ta tion doit être capable de four nir au moins 700 mA, mais 1 A donne au Raspberry Pi un peu de marge qui sera uti li sée par les péri phériques connec tés à ses ports USB. Si vous regar dez atten ti-vement les spécifications de l’alimentation, vous devriez êtrecapable de déter mi ner sa capa cité. Il arrive que la capa cité soit expri mée en watts (W) ; si tel est le cas, elle doit être au moins de 3 W. Si elle indique 5 W, cela cor res pond à 1 A.

Cla vier et sou risLe Raspberry Pi fonc tionne avec pra ti que ment n’importe quels cla viers et sou ris USB. Vous pou vez aussi uti li ser la plu part des claviersetdessourissansfil(ceuxquimarchentavecundongleque l’on branche sur un port USB). C’est plu tôt une bonne idée, par ti cu liè re ment si le cla vier et la sou ris fonc tionnent sur le même dongle, ce qui per met de n’uti li ser qu’un seul port USB. Cela se révé lera aussi assez pra tique au cha pitre 10 quand on uti lisera un claviersansfilpourcontrôlerunrobotpilotéparunRaspberryPi.

Affi­chageLa pré sence d’une sor tie vidéo RCA sur le Raspberry Pi est, pour être hon nête, un peu sur pre nante car la plu part des uti li sa teurs vont pri-vi lé gier le connec teur HDMI qui est plus moderne. Un télé vi seur LCDde22poucesbonmarchéferaparfaitementl’afairepouraffi­cher le contenu du Pi. En fait, vous pou vez vous contenter d’uti li ser le télé vi seur fami lial en connec tant le Pi à la télé quand vous en avez

Figure 1.4 Bloc d’ali men ta tion

usB.