Programmez Un Raspberry Pi - Dunod

Transcription

programmezun raspberry pi

Retrouvez aussi :La Boîte à outils Arduino105 techniquespour réussir vos projetsMichael Margolis416 pagesDunod, 2013ArduinoMaîtrisez sa programmationet ses cartes d’interfaceChristian Tavernier232 pagesDunod, 2011Raspberry PiPrise en mainet premières réalisationsChristian Tavernier224 pagesDunod, 2013ArduinoApplications avancéesChristian Tavernier224 pagesDunod, 2012

Simon MonkProgrammezun Raspberry pi Initiation avec PythonTraduit de l’américainpar Dominique Maniez

L’édition originale de cet ouvrage a été publiée en anglais par McGraw-Hill Global EducationHoldings, 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éespar leurs propriétaires respectifs. Dunod, Paris, 2014 pour la traduction françaiseISBN 978-2-10-070659-4

TABLE DES MATIÈRESChapitre1234pa g eAvant- propos1Remer ciements2Intro duc tion1.1 Qu’est- ce que le Raspberry Pi ?1.2 Que peut- on faire avec un Raspberry Pi ?1.3 Tour d’hori zon du Raspberry Pi1.4 Ins tal la tion du Raspberry Pi1.5 Démar rer le sys tème1.6 Résumé345571415Prise en main2.1 Linux2.2 Le bureau2.3 Inter net2.4 Ligne de commande2.5 Appli ca tions2.6 Res sources Inter net2.7 Résumé1718182021232525Bases de Python3.1 IDLE3.2 Nombres3.3 Variables3.4 Boucles for3.5 Simulation de lancers de dés3.6 IF3.7 While3.8 Résumé272832323435374142Chaînes, listes et dic tion naires4.1 Théo rie des chaînes4.2 Listes4.3 Fonc tions43444649V

programmez un raspberry pi4.44.54.64.74.84.956789Jeu du penduDic tion nairesTuplesExcep tionsRésumé de fonctionsRésumé515859616268Modules, classes et méthodes5.1 Modules5.2 Orien ta tion objet5.3 Défi ni tion des classes5.4 Héri tage5.5 Résumé697074747679Fichiers et Inter net6.1 Fichiers6.2 Pickling6.3 Inter net6.4 Résumé8182878890Inter faces uti li sa teur gra phiques7.1 Tkinter7.2 Hello World7.3 Conver tis seur de tem pé ra ture7.4 Autres contrôles d’inter face uti li sa teur7.5 Boîtes de dia logue7.6 Menus7.7 Le Canvas7.8 Résumé9192929397104106107108Pro gram ma tion de jeux8.1 Pygame8.2 Hello Pygame8.3 Un jeu avec des fram boises8.4 Résumé109110110112121Interfaçage du maté riel9.1 Connexions des broches GPIO9.2 Connexion directe aux broches GPIO9.3 Cartes exten sion9.3 Cartes de pro to ty page9.4 Arduino et le Pi9.5 Résumé123124125126130132135VI

TABLE DES MATIÈRES101112Pro jet de pro to ty page d’une hor loge10.1 Maté riel néces saire10.2 Assem blage du maté riel10.3 Logi ciel10.4 Phase 210.5 Résumé137138139141143146Le RaspiRobot11.1 Maté riel néces saire11.2 Phase 1 : créa tion d’un robot basique11.3 Phase 2 : ajout d’un télé mètre et d’un écran11.4 Résumé147148149155160Pour aller plus loin12.1 Res sources Linux12.2 Res sources Python12.3 Res sources Raspberry Pi12.4 Autres lan gages de pro gram ma tion12.5 Appli ca tions et pro jets12.6 Résumé161162162163164166166Annexe : Liste des principales fonctions de Pygame167Index177VII

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 genscommencent à 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, oubien 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 gagepopu laire Python. En outre, il vous apprend à créer une inter faceuti 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 ladis 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 couvrel’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 aufil des cha pitres de pro gres ser gra duel le ment. Les concepts sontillus trés par des exemples d’appli ca tions qui vous per mettent decommen cer à pro gram mer votre Raspberry Pi. Trois cha pitressont consa crés à la pro gram ma tion et à l’uti li sation du connec teurGPIO du Raspberry Pi, qui per met à l’appa reil d’être relié à despéri phériques élec tro niques externes. Ces cha pitres comprennentdeux pro jets : la réa li sa tion d’une hor loge à LED et la construc tiond’un robot complet avec un télé mètre à ultra sons. 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 cetouvrage : Nombres, variables et concepts de base du lan gage Python Chaînes, listes, dic tionnaires et struc tures de don nées enPython1

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é rielL’inté gra lité des lis tings de code de cet ouvrage est dis po niblesur 100706594.Remer ciementsComme tou jours, je remer cie Linda pour sa patience et son sou tien.Je sou haite aussi remer cier Andrew Robinson et mon fils, MatthewMonk, pour leur relec ture tech nique d’une grande par tie del’ouvrage. Sur veillez la sor tie du livre d’Andrew sur le RaspberryPi car je suis cer tain qu’il sera excellent.2

1Chapitre123456789101112pa g eIntro duc tionIntroduction31.1 Qu’est- ce que le Raspberry Pi ?1.2 Que peut- on faire avec un Raspberry Pi ?1.3 Tour d’hori zon du Raspberry Pi1.4 Ins tal la tion du Raspberry Pi1.5 Démar rer le sys tème1.6 Résumé45571415Prise en main17Bases de Python27Chaînes, listes et dic tion naires43Modules, classes et méthodes69Fichiers et Inter net81Inter faces uti li sa teur gra phiques91Pro gram ma tion de jeux109Interfaçage du maté riel123Pro jet de pro to ty page d’une hor loge137Le RaspiRobot147Pour aller plus loin1613

programmez un raspberry piLe Raspberry Pi a débuté sa commer cia li sa tion à la fin du mois defévrier 2012 et les sites web des dif fé rents four nis seurs où 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 doncsuscite- t-il autant d’inté rêt ?1.1 Qu’est- ce que le Raspberry Pi ?Le Raspberry Pi, illus tré à la figure 1.1, est un ordi na teur qui s’exé cute sous le sys tème d’exploi ta tion Linux. Il pos sède deux portsUSB aux quels vous pou vez rac cor der un cla vier et une sou ris, etune sor tie vidéo HDMI (High- Definition Multimedia Inter face) àlaquelle vous pou vez connecter un télé vi seur ou un moni teur. Denom breux moni teurs ne pos sèdent qu’un connec teur VGA et leRaspberry Pi ne fonc tion nera pas avec ce type de sor tie. Enrevanche, si votre moni teur a un connec teur DVI, il existe desadap ta teurs HDMI- DVI bon mar ché.Figure 1.1Raspberry Pi.Quand le Raspberry Pi démarre, on obtient le bureau Linux qui estillus tré à la figure 1.2. Il s’agit vrai ment d’un ordi na teur complet,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 (unedis tri bu tion Debian), et un envi ron ne ment de fenê trage quis’appelle LXDE.4

chapitreIntro duc tion1Figure 1.2Bureau du Raspberry Pi.Le Raspberry Pi est petit (de la taille d’une carte de cré dit) et d’unprix par fai te ment abor dable (le prix de départ est à moins de30 euros). Son prix modique s’explique par le fait que cer tainscompo 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 vousdevez donc trou ver un char geur micro- USB de 5 volts (commecelui de votre télé phone, mais sans doute avec une ali men ta tionplus puis sante). Une ali men ta tion USB et un câble micro- USBsont sou vent uti li sés pour cela. Dunod – Toute reproduction non autorisée est un délit.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’onpeut faire avec un ordi na teur de bureau sous Linux, à quelquesexcep tions près. Le Raspberry Pi uti lise une carte SD à la placed’un disque dur, bien que l’on puisse le bran cher à un disque durUSB. On peut modi fier des docu ments bureau tiques, sur fer surInter 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 ledes tine par ti cu liè re ment à être uti lisé comme media center. Il peutlire des vidéos et on peut l’ali men ter à par tir du port USB que l’ontrouve sur de nom breux télé vi seurs.1.3 Tour d’hori zon du Raspberry PiLa figure 1.3 inven to rie les dif fé rentes par ties d’un Raspberry Pi.La figure illustre un Raspberry Pi modèle B, qui se dif fé ren cie dumodèle A par la pré sence d’un connec teur RJ-45, ce qui lui per metde se connec ter à un réseau.5

programmez un raspberry piFigure 1.3Ana to mie d’unRaspberry Pi.Le connec teur Ethernet RJ-45 est illus tré dans le coin supé rieurgauche de la figure. Si vous dis po sez d’un hub à la mai son, vouspou vez bran cher direc te ment le Raspberry Pi sur votre réseaulocal. À ce sujet, il faut noter que le Raspberry Pi n’a pas le Wi- Fiinté gré. Pour dis po ser d’un réseau sans fil, vous devez bran cherun adap ta teur USB sans fil qui peut néces si ter l’ins tal la tion depilotes 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, oudes disques durs externes, mais vous allez vite être à court deprises. C’est la rai son pour laquelle de nom breuses per sonnes uti lisent un hub USB.Dans le coin infé rieur gauche de la figure, vous trou ve rez un portaudio qui four nit un signal ana lo gique sté réo pour un casque oudes haut- parleurs ampli fiés. Le connec teur HDMI per met ausside trans fé rer le son.À côté de la prise audio se trouve un connec teur vidéo RCA. Vousne vous ser vi rez pro ba ble ment pas de ce connec teur, à moins quevous n’uti li siez votre Raspberry Pi avec un vieux télé vi seur. Vousemploie rez plu tôt le connec teur HDMI qui est à l’opposé (au som met de la figure). La prise HDMI 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é.À la droite de la fiche jaune RCA, il y a deux ran gées de broches quel’on nomme broches GPIO (General Purpose Input/Out put, soitentrées/sor ties à usage géné ral) et qui per mettent au Raspberry Pi6

chapitreIntro duc tionde se connec ter à des compo sants élec tro niques. Les uti li sa teursd’Arduino et des autres micro contrô leurs ne seront pas dépay séspar l’idée de broches GPIO. Au cha pitre 11, nous uti li se rons cesbroches pour trans for mer le Raspberry Pi en « cer veau » d’un petitrobot iti né rant pour contrô ler ses moteurs. Au cha pitre 10, nousuti 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 contientle sys tème d’exploi ta tion de l’ordi na teur ainsi que le sys tème defichiers qui per met de sto cker les docu ments que l’on cré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 seret des four nis seurs comme SK Pang, Farnell et RS Componentsvendent tous des cartes SD prêtes à l’emploi. Comme il n’y aaucun disque inté gré au Raspberry Pi, cette carte SD consti tuevotre 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. Dunod – Toute reproduction non autorisée est un délit.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. Cela signi fie quevous 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 celuiqui est uti lisé par de nom breux télé phones mobiles, notam ment laplu part des télé phones Android. Il faut cepen dant véri fier 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.Pour ceux que les spé ci fi ca tions tech niques inté ressent, la grossepuce car rée au centre de la carte est l’empla ce ment du cœur dusys tème : il s’agit d’un SOC (System On a Chip, ou sys tème sur unepuce) de chez Broadcom qui comprend 256 Mo de mémoire ainsique dif fé rents pro ces seurs (gra phique et à usage géné ral) quipilotent le Raspberry Pi.Vous aurez aussi peut- être remar qué des connec teurs avec uncâble plat à côté de la carte SD et entre les prises Ethernet et HDMI.On les uti lise res pec ti ve ment pour un affi cheur LCD et unecaméra. Il existe déjà un module pour une caméra et on devraittrou ver dans un ave nir proche un module pour affi cheur LCD.1.4 Ins tal la tion du Raspberry PiVous 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 devotre Raspberry Pi, et par la même occa sion éga le ment un cla vier71

programmez un raspberry piet une sou ris USB (à moins que vous n’en ayez chez vous quitraînent). Commen çons le pro ces sus d’ins tal la tion en exa mi nantce dont nous aurons besoin et où se le pro cu rer.Acqui si tion du maté riel néces saireTableau 1.1Kit Raspberry Pi.Le tableau 1.1 liste ce qu’il vous faut pour obte nir un sys tèmeRaspberry Pi tota le ment fonc tion nel.ArticleDis tri bu teur et n d’articleInfor ma tions complé men tairesRaspberry Pi,Modèle A ou BFarnell (www.farnell.com)Newark (www.newark.com)RS Components (www.rs- components.com)La dif fé rence entre les deux modèlesest que le modèle B a une connexionréseau.Char geur USBFarnell : 1734526Char geur USB 5 V USB. Doit pou voirfour nir une ali men ta tion de 700 mA(3 W), mais 1 A (5 W) est pré fé rable.Câblemicro- USBRadioShack : 55048949Farnell : 2115733Adafruit : PID 592Cla vieret sou risMaga sin d’infor ma tiqueTélé/moniteuravec prise HDMIMaga sin d’infor ma tiqueou d’élec tro niqueCâble HDMIMaga sin d’infor ma tiqueou d’élec tro niqueCarte SD(pré parée)SK Pang : RSP-2GBSDNewark : 96T7436Farnell : 2113756Adap ta teur Wi- Fi*Tout cla vier USB fera l’affaire. Lescla viers et les sou ris sans fil qui sontfour nis avec leur propre adap ta teurUSB fonc tionnent éga le ment.http://elinux.org/RPiElinux.org four nit une liste à jour desVerifiedPeripherals#USB WiFi Adaptersadap ta teurs Wi- Fi.Hub USB*Maga sin d’infor ma tiqueAdap ta teur HDMIvers DVI*Newark : 74M6204Maplins : N24CJFarnell : 1428271Câble Ethernet*Maga sin d’infor ma tiqueBoî tier*Adafruit, SK Pang, ou Alliedelec.com* Ces articles sont option nels.8

chapitreIntro duc tion1Bloc d’ali men ta tionLa figure 1.4 illustre un bloc d’ali men ta tion USB clas sique avec uncâble USB- A vers micro- USB.Figure 1.4Bloc d’ali men ta tionUSB.Vous pou vez uti li ser une ali men ta tion d’un ancien lec teur MP3ou quelque chose de simi laire, tant qu’elle a une ten sion de 5 voltset peut four nir suf fi sam ment de cou rant. Il est impor tant de nepas sur char ger l’ali men ta tion car elle pour rait chauf fer et tom beren 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 Adonne au Raspberry Pi un peu de marge qui sera uti li sée par lespéri phériques connec tés à ses ports USB. Si vous regar dez atten ti ve ment les spé ci fi ca tions de l’ali men ta tion, vous devriez êtrecapable de déter mi ner sa capa cité. Il arrive que la capa cité soitexpri mée en watts (W) ; si tel est le cas, elle doit être au moins de3 W. Si elle indique 5 W, cela cor res pond à 1 A. Dunod – Toute reproduction non autorisée est un délit.Cla vier et sou risLe Raspberry Pi fonc tionne avec pra ti que ment n’importe quelscla viers et sou ris USB. Vous pou vez aussi uti li ser la plu part descla viers et des sou ris sans fil (ceux qui marchent avec un dongleque 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êmedongle, ce qui per met de n’uti li ser qu’un seul port USB. Cela serévé lera aussi assez pra tique au cha pitre 10 quand on uti lisera uncla vier sans fil pour contrô ler un robot piloté par un Raspberry Pi.Affi chageLa pré sence d’une sor tie vidéo RCA sur le Raspberry Pi est, pour êtrehon 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 seurLCD de 22 pouces bon mar ché fera par fai te ment l’affaire pour affi cher le contenu du Pi. En fait, vous pou vez vous contenter d’uti li serle télé vi seur fami lial en connec tant le Pi à la télé quand vous en avez9

1.1 Qu'est-ce que le Raspberry Pi ? 4 1.2 Que peut-on faire avec un Raspberry Pi ? 5 1.3 Tour d'horizon du Raspberry Pi 5 1.4 Installation du Raspberry Pi 7 1.5 Démarrer le système 14 1.6 Résumé 15 2 Prise en main 17 2.1 Linux 18 2.2 Le bureau 18 2.3 Internet 20 2.4 Ligne de commande 21 2.5 Applications 23 2.6 Ressources Internet 25