ebook img

arduino : premiers pas en informatique embarquée PDF

533 Pages·2016·10.04 MB·French
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview arduino : premiers pas en informatique embarquée

ARDUINO : PREMIERS PAS EN INFORMATIQUE EMBARQUÉE Eskimon, olyte 19 février 2016 Table des matières 1 Introduction 7 1.0.1 Apprentissagedesbases . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Découverte de l’Arduino 9 2.1 Présentationd’Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1 Qu’est-cequec’est? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.2 PourquoichoisirArduino? . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.1.3 LescartesArduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.4 Listed’achat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2 Quelquesbasesélémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.1 Lecourant,latensionetlamasse . . . . . . . . . . . . . . . . . . . . . . 24 2.2.2 Larésistanceetsaloi! . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.2.3 Lemicrocontrôleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2.4 Lesbasesdecomptage(2,10et16) . . . . . . . . . . . . . . . . . . . . . . 31 2.3 Lelogiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.3.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.3.2 Interfacedulogiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.3.3 Approcheetutilisationdulogiciel . . . . . . . . . . . . . . . . . . . . . . 40 2.4 Lematériel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.4.1 Présentationdelacarte . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.4.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.4.3 Fonctionnementglobal . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.5 LelangageArduino(1/2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.5.1 Lasyntaxedulangage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.5.2 Lesvariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.5.3 Lesconditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 2.6 LelangageArduino(2/2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.6.1 Lesboucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.6.2 Lesfonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.6.3 Lestableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 3 Gestion des entrées / sorties 95 3.1 Notrepremierprogramme! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 3.1.1 Ladiodeélectroluminescente . . . . . . . . . . . . . . . . . . . . . . . . 95 3.1.2 Parquoioncommence? . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 3.1.3 Créerleprogramme:lesbonsoutils! . . . . . . . . . . . . . . . . . . . . 101 3.1.4 Commenttoutcelafonctionne? . . . . . . . . . . . . . . . . . . . . . . . 109 3.2 Introduireletemps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.2.1 Commentfaire? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.2.2 FaireclignoterungroupedeLED . . . . . . . . . . . . . . . . . . . . . . . 118 3.2.3 Réaliserunchenillard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 3 Tabledesmatières 3.2.4 Fonctionmillis() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 3.3 TPFeuxdesignalisationroutière . . . . . . . . . . . . . . . . . . . . . . . . . . 129 3.3.1 Préparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 3.3.2 Énoncédel’exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 3.3.3 Correction! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 3.4 Unsimplebouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 3.4.1 Qu’est-cequ’unbouton? . . . . . . . . . . . . . . . . . . . . . . . . . . 134 3.4.2 Récupérerl’appuidubouton . . . . . . . . . . . . . . . . . . . . . . . . . 141 3.4.3 InteragiraveclesLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 3.4.4 Lesinterruptionsmatérielles . . . . . . . . . . . . . . . . . . . . . . . . 152 3.5 Afficheurs7segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 3.5.1 Premièreapproche:côtéélectronique . . . . . . . . . . . . . . . . . . . . 155 3.5.2 Affichersonpremierchiffre! . . . . . . . . . . . . . . . . . . . . . . . . . 161 3.5.3 Techniquesd’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 3.5.4 UtilisationdudécodeurBCD . . . . . . . . . . . . . . . . . . . . . . . . . 166 3.5.5 Utiliserplusieursafficheurs . . . . . . . . . . . . . . . . . . . . . . . . . 171 3.5.6 Contraintesdesévènements . . . . . . . . . . . . . . . . . . . . . . . . . 180 3.6 [TP]Parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 3.6.1 Consigne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 3.6.2 Correction! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 4 La communication avec Arduino 195 4.1 Généralitéssurlavoiesérie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 4.1.1 Communiquer,pourquoi? . . . . . . . . . . . . . . . . . . . . . . . . . . 195 4.1.2 LanormeRS232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 4.1.3 ConnexionsérieentreArduinoet… . . . . . . . . . . . . . . . . . . . . . 203 4.1.4 Audelàd’Arduinoaveclaconnexionsérie . . . . . . . . . . . . . . . . . . 208 4.2 Envoyeretrecevoirdesdonnéessurlavoiesérie . . . . . . . . . . . . . . . . . . 210 4.2.1 Préparerlavoiesérie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 4.2.2 Envoyerdesdonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 4.2.3 Recevoirdesdonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 4.2.4 [Exercice]Attentionàlacasse! . . . . . . . . . . . . . . . . . . . . . . . . 222 4.3 [TP]Baignadeinterdite! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 4.3.1 SujetduTPsurlavoiesérie . . . . . . . . . . . . . . . . . . . . . . . . . . 224 4.3.2 Correction! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 4.3.3 Améliorations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 4.4 [Annexe]Ordinateuretvoiesériedansunautrelangagedeprogrammation . . . . 240 4.4.1 EnC++avecQt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 4.4.2 EnC#(.Net) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 4.4.3 EnPython . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 5 Les grandeurs analogiques 257 5.1 Lesentréesanalogiquesdel’Arduino . . . . . . . . . . . . . . . . . . . . . . . . 257 5.1.1 Unsignalanalogique:petitsrappels . . . . . . . . . . . . . . . . . . . . . 257 5.1.2 Lesconvertisseursanalogiques–>numériqueouCAN . . . . . . . . . . . . 259 5.1.3 Lectureanalogique,onyvient… . . . . . . . . . . . . . . . . . . . . . . . 268 5.1.4 Exempled’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 5.1.5 Unemeilleureprécision? . . . . . . . . . . . . . . . . . . . . . . . . . . 276 4 Tabledesmatières 5.2 [TP]Vu-mètreàLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 5.2.1 Consigne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 5.2.2 Correction! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 5.2.3 Amélioration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 5.3 Etlessorties“analogiques”,enfin…presque! . . . . . . . . . . . . . . . . . . . 284 5.3.1 Convertirdesdonnéesbinairesensignalanalogique . . . . . . . . . . . . . 284 5.3.2 LaPWMdel’Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 5.3.3 TransformationPWM->signalanalogique . . . . . . . . . . . . . . . . . . 297 5.3.4 ModifierlafréquencedelaPWM . . . . . . . . . . . . . . . . . . . . . . . 305 5.4 [Exercice]Uneanimation“YouTube” . . . . . . . . . . . . . . . . . . . . . . . . 309 5.4.1 Énoncé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 5.4.2 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 6 Les capteurs et l’environnement autour d’Arduino 315 6.1 Généralitéssurlescapteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 6.1.1 CapteuretTransducteur . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 6.1.2 Uncapteur,çacapte! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 6.1.3 Lescaractéristiquesd’uncapteur . . . . . . . . . . . . . . . . . . . . . . . 321 6.2 Différentstypesdemesures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 6.2.1 ToutOuRien,uncapteurquisaitcequ’ilveut . . . . . . . . . . . . . . . . 323 6.2.2 Capteursàrésistancedesortievariable . . . . . . . . . . . . . . . . . . . 328 6.2.3 Capteursàtensiondesortievariable . . . . . . . . . . . . . . . . . . . . . 338 6.2.4 Étalonnersoncapteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 6.3 Descapteursplusévolués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 6.3.1 Capteuràsortieenmodulationdelargeurd’impulsion(PWM) . . . . . . . . 354 6.3.2 Capteuràsignaldesortiedefréquencevariable . . . . . . . . . . . . . . . 358 6.3.3 Capteurutilisantunprotocoledecommunication . . . . . . . . . . . . . . 360 7 Le mouvement grâce aux moteurs 363 7.1 Lemoteuràcourantcontinu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 7.1.1 Unmoteur,çafaitquoiaujuste? . . . . . . . . . . . . . . . . . . . . . . . 363 7.1.2 Alimenterunmoteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 7.1.3 Piloterunmoteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 7.1.4 EtArduinodanstoutça? . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 7.2 Unmoteurquiadelatête:leServomoteur . . . . . . . . . . . . . . . . . . . . . 415 7.2.1 Principeduservomoteur . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 7.2.2 Lacommanded’unservomoteur . . . . . . . . . . . . . . . . . . . . . . . 423 7.2.3 Arduinoetlesservomoteurs . . . . . . . . . . . . . . . . . . . . . . . . . 427 7.2.4 L’électroniqued’asservissement . . . . . . . . . . . . . . . . . . . . . . . 430 7.2.5 Unpeud’exercice! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 7.2.6 Testerunservomoteur“non-standard” . . . . . . . . . . . . . . . . . . . 438 7.3 Apetitspas,lemoteurpas-à-pas . . . . . . . . . . . . . . . . . . . . . . . . . . 440 7.3.1 Lesdifférentsmoteurspas-à-pasetleurfonctionnement . . . . . . . . . . 440 7.3.2 Seservirdumoteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 7.3.3 UtilisationavecArduino . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 8 L’affichage, une autre manière d’interagir 465 8.1 LesécransLCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 8.1.1 UnécranLCDc’estquoi? . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 5 Tabledesmatières 8.1.2 Quelécranchoisir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 8.1.3 Commentons’ensert? . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 8.2 VotrepremiertextesurleLCD! . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 8.2.1 EcriredutextesurleLCD . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 8.2.2 Sedéplacersurl’écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 8.2.3 Créeruncaractère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 8.3 [TP]SupervisionavecunLCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 8.3.1 Consigne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 8.3.2 Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 9 Internet of Things : Arduino sur Internet 493 9.1 Découvertedel’EthernetsurArduino . . . . . . . . . . . . . . . . . . . . . . . . 493 9.1.1 Unréseauinformatiquec’estquoi? . . . . . . . . . . . . . . . . . . . . . 493 9.1.2 LeshieldEthernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 9.1.3 Unpeudevocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 9.2 ArduinoetEthernet:client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 9.2.1 ClientetrequêtesHTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 9.2.2 Utilisationdushieldcommeclient . . . . . . . . . . . . . . . . . . . . . . 499 9.2.3 Exercice,lirel’uptimedeEskimon.fr . . . . . . . . . . . . . . . . . . . . . 512 9.3 ArduinoetEthernet:serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 9.3.1 Préparerl’Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 9.3.2 Répondreetservirdesdonnées . . . . . . . . . . . . . . . . . . . . . . . 514 9.3.3 Agirsurunerequêteplusprécise . . . . . . . . . . . . . . . . . . . . . . . 517 9.3.4 Sortirdesonréseauprivé . . . . . . . . . . . . . . . . . . . . . . . . . . 527 9.3.5 FaireuneinterfacepourdialogueravecsonArduino . . . . . . . . . . . . . 528 10Conclusion 533 10.1 Allerplusloin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 10.2Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 6 1 Introduction Bienvenueàtoutesetàtouspouruntutorielsurl’électroniqueetl’informatiqueensemble!:) Cequenousallonsapprendreaujourd’huiestunmélanged’électroniqueetdeprogrammation. Onvaeneffetparlerd’informatiqueembarquéequiestunsous-domainedel’électroniqueetqui al’habiletéd’unirlapuissancedelaprogrammationàlapuissancedel’électronique. Nousallons,dansunpremiertemps,voircequ’estl’électroniqueetlaprogrammation.Puisnous enchaînerons sur la prise en main du système Arduino, un système d’informatique embarquée grandpublic.Enfin,jevousferaiuncourstrèsrapidesurlelangageArduino,maisilposerales basesdelaprogrammation.Unefoiscesétapespréliminairesachevées,nouspourronsentamer notrepremierprogrammeetfaireunpasdansl’informatiqueembarquée. 1.0.1 Apprentissage des bases Lecoursestcomposédefaçonàcequelesbasesessentiellessoientregroupéesdanslespremières parties.C’est-à-dire,pourcommencerlalecture,vousdevrezlirelesparties1et2.Ensuite,les parties3et4sontégalementessentiellesetsontàliredansl’ordre. Aprèscela,vousaurezacquistouteslesbasesnécessairespourpoursuivrelalecturesereinement. C’est seulement alors que vous pourrez sélectionner les chapitres selon les connaissances que voussouhaitezacquérir. 7 2 Découverte de l’Arduino Danscettepremièrepartie,nousferronsnospremierspasavecArduino.Nousallonsavanttout voirdequoiils’agitexactement,essayerdecomprendrecommentcelafonctionne,puisinstalle- ronslematérieletlelogicielpourensuiteenchaînersurl’apprentissagedulangagedeprogram- mationnécessaireaubonfonctionnementdelacarteArduino.Soyezdoncattentifafindebien comprendretoutcequejevaisvousexpliquer.Sanslesbases,vousn’irezpasbienloin…;) 2.1 Présentation d’Arduino Commentfairedel’électroniqueenutilisantunlangagedeprogrammation?Laréponse,c’estle projetArduinoquil’apporte.Vousallezlevoir,celui-ciaétéconçupourêtreaccessibleàtouspar sasimplicité.Maisilpeutégalementêtred’usageprofessionnel,tantlespossibilitésd’applica- tionssontnombreuses. 2.1.1 Qu’est-ce que c’est? UneéquipededéveloppeurscomposéedeMassimoBanzi,DavidCuartielles,TomIgoe,GianlucaMartino, DavidMellisetNicholasZambettiaimaginéunprojetrépondantaudouxnomdeArduinoetmettant enœuvreunepetitecarteélectroniqueprogrammableetunlogicielmultiplateforme,quipuisse êtreaccessibleàtoutunchacundanslebutdecréerfacilementdessystèmesélectroniques.Étant donnéqu’ilyadesdébutantsparminous,commençonsparvoirunpeulevocabulairecommun propreaudomainedel’électroniqueetdel’informatique. 2.1.1.0.0.1 Une carte électronique Une carte électronique est un support plan, flexible ourigide,généralementcomposéd’epoxyoudefibredeverre.Ellepossèdedespistesélectriques disposéessurune,deuxouplusieurscouches(ensurfaceet/oueninterne)quipermettentlamise enrelationélectriquedescomposantsélectroniques.Chaquepisterelietelcomposantàtelautre, defaçonàcréerunsystèmeélectroniquequifonctionneetquiréaliselesopérationsdemandées. 9 2 Découvertedel’Arduino Figure : Exemple de carte électronique : Ar- duinoSeverino-(CC-BY-SA,arduino.cc) Figure : Carte Arduino Duemilanove - (CC-BY-SA,arduino.cc) Évidemment, tous les composants d’une carte électronique ne sont pas forcément reliés entre eux.Lecâblagedescomposantssuitunplanspécifiqueàchaquecarteélectronique,quisenomme leschémaélectronique. 10

Description:
Un site en anglais arduino.cc et un autre en français arduino.cc où vous Imaginons, vous êtes en train de faire avancer un robot. Le deuxième type serait une conversation normale où chacun des interlocuteurs est poli et.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.