• Aide
  • Eurêkoi Eurêkoi

Livre

Initiation au langage CircuitPython et à la puce nRF52840 : en moins de 100 lignes de code par projet, avec les cartes Feather Sense et Clue Express d'Adafruit

Résumé

Une présentation du logiciel de programmation CircuitPython, avec un cours complet et des instructions : assemblage des différents composants, installation des bibliothèques requises, programmation, entre autres. ©Electre 2021


  • Contributeur(s)
  • Éditeur(s)
  • Date
    • 2021
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (552 p.) : ill. en coul. ; 24 cm
  • Sujet(s)
  • ISBN
    • 978-2-86661-211-5
  • Indice
    • 681.33 Logique câblée, microprogrammation, microprocesseurs
  • Quatrième de couverture
    • Initiation au langage CircuitPython et à la puce nRF52840 en moins de 100 lignes de code par projet avec les cartes Feather Sense et Clue Express d'Adafruit

      Le langage de programmation Python est apprécié par les pédagogues parce que sa syntaxe le rend facile à comprendre. Il s'est également Imposé chez les Informaticiens expérimentés. La société Adafruit a développé une version spéciale de Python pour l'embarquer sur les microcontrôleurs à 32 bits : CircuitPython

      Ce livre permettra au lecteur de s'initier à la programmation en CircuitPython sur deux cartes : Feather BlueFruit Sense (également appelée Feather nRF52840 Sense) et CLUE nRF52840 Express. Chacune est animée par le SoC nRF52840 de NORDIC avec une architecture à 32 bits.

      Pour ce voyage dans le monde de la programmation embarquée, l'auteur sort du chemin classique, à savoir un cours complet sur la programmation orientée objet appliquée à ce langage. Il préfère emmener le lecteur directement sur le terrain avec des projets qui mettent en oeuvre les cartes et différents périphériques. Plus d'une quarantaine d'exemples et de montages permettent de découvrir la richesse de CircuitPython. Toutefois l'auteur s'est imposé une limite pour ne pas décourager les novices : le code de chaque projet ne dépasse jamais la centaine de lignes. Pour ce qui est du matériel, là aussi la simplicité domine : aucun programmateur, un simple PC suffit ; aucun soudage grâce au câblage sur platine d'essai. Les cartes d'extension FeatherWing à enficher sur la Feather nRF52840 Sense permettent de démultiplier ses fonctions : matrice de LED, enregistreur de données, écran à encre électronique, écran OLED, écran TFT, commande de moteurs, audio, relais...

      Toutes les étapes (assemblage des différents composants, installation des bibliothèques requises, programmation, tests,..) sont expliquées en détail. Le code des différents exemples et projets est disponible sur Github. Le résultat de chaque projet est même présenté sur de courtes vidéos disponibles sur YouTube.

      À la fin de sa lecture, le nouveau Pythonien pourra facilement approfondir les notions abordées et donner vie à ses propres projets grâce aux outils qu'il aura essayés.

      Ce livre s'adresse aux lycéens et étudiants ainsi qu'à toute la communauté des makers.


  • Tables des matières
      • Initiation au langage CircuitPython et à la puc nRF52840 en moins de 100 lignes de code par projet avec les cartes Feather Sense et Clue Express d'Adafruit

      • Michaël Bottin

      • Elektor

      • Préface 11
      • Présentation générale11
      • Ce que vous allez apprendre11
      • Quels sont les prérequis ?12
      • À qui s'adresse ce livre ?12
      • Quel est le contenu de ce livre ?13
      • Ressources en téléchargement14
      • Préface de Ladyada15
      • Partie I17
      • Chapitre 1 • Qu'est-ce que CircuitPython ? 18
      • 1.1 - Historique18
      • 1.2 - Pourquoi utiliser CircuitPython ?20
      • 1.3 - Ressources CircuitPython23
      • 1.4 - Cartes supportant CircuitPython24
      • Chapitre 2 • Carte Adafruit Feather nRF52840 Sense 26
      • 2.1 - Présentation de la carte Feather nRF52840 Sense26
      • 2.1.2 Brochage de la carte30
      • 2.2 - Quelques mots sur le SoC Nordic nRF5284033
      • 2.3 - Caractéristiques des capteurs embarqués sur la carte34
      • Chapitre 3 • Premiers programmes 46
      • 3.1 - Introduction46
      • 3.2 - Branchement de la carte Feather nRF52840 Sense en USB47
      • 3.3 - Mise à jour de la version du microprogramme CircuitPython47
      • 3.4 - Environnement de développement52
      • 3.5 - Utilisation de la console (REPL)57
      • 3.5.1 - Console série57
      • 3.5.2 - REPL - Tester quelques instructions59
      • 3.5.3 - REPL - Obtenir des informations sur la carte62
      • 3.6 - Premiers programmes64
      • 3.6.1 - Lancer d'un dé65
      • 3.6.2 - Lancer d'un dé amélioré67
      • 3.6.3 - Calculatrice68
      • 3.6.4 - Affichage d'une sinusoïde69
      • 3.7 - Sortir proprement du mode programmation70
      • 3.8 - Dépannage71
      • Chapitre 4 • Bases du langage CircuitPython 72
      • 4.1 - Introduction72
      • 4.2 - Programme type en CircuitPython72
      • 4.3 - Bases du langage CircuitPython73
      • 4.3.1 - Concepts de base pour l'écriture du code73
      • 4.3.2 - Forçage de type (cast)76
      • 4.3.3 - Instructions d'affichage76
      • 4.3.4 - Structures de données : listes, tuples et dictionnaires77
      • 4.3.5 - Opérateurs80
      • 4.3.6 - Instructions conditionnelles et les boucles81
      • 4.3.7 - Les fonctions82
      • 4.3.8 - La notion de module83
      • 4.4 - Comprendre l'utilisation des classes d'objets84
      • 4.4.1 - Qu'est-ce qu'un objet ?84
      • 4.4.2 - Qu'est-ce qu'une classe ?84
      • 4.4.3 - Comment accède-t-on aux attributs et aux méthodes d'un objet ?85
      • 4.5 - Limitations du langage CircuitPython85
      • Chapitre 5 • Préparation du matériel 87
      • 5.1 - Quels connecteurs pour la carte Feather nRF52840 Sense ?87
      • 5.2 - Utilisation d'une platine d'essai (breadboard)89
      • 5.3 - Utilisation d'adaptateurs Feather91
      • 5.4 - Reste du matériel92
      • Partie II95
      • Chapitre 6 • Découverte du langage CircuitPython par la pratique 96
      • 6.1 - Entrées/sorties numériques96
      • 6.1.1 - Exemple avec la LED et le bouton internes96
      • 6.1.2 - Exemple avec une LED et un bouton extérieurs à la carte102
      • 6.1.3 - Application : simple testeur de réflexes105
      • 6.2 - Entrées analogiques107
      • 6.2.1 - Module 'analogio'108
      • 6.2.2 - Exemple avec un potentiomètre108
      • 6.2.3 - Application : radar de distance112
      • 6.3 - Sorties PWM118
      • 6.3.1 - Module 'pulesio'120
      • 6.3.2 - Exemple de variation d'intensité lumineuse sur une LED122
      • 6.3.3 - Application : piloter un servomoteur126
      • 6.3.4 - Application : mini-piano131
      • 6.4 - Entrées tactiles136
      • 6.4.1 - Module 'touchio'137
      • 6.4.2 - Exemple de détection tactile137
      • 6.4.3 - Application : mini-piano tactile139
      • 6.5 - Utilisation de bibliothèques supplémentaires144
      • 6.5.1 - Installation de nouvelles bibliothèques pour la carte Feather144
      • 6.5.2 - Quelques recommandations146
      • 6.5.3 - Exempte avec une bibliothèque anti-rebond148
      • 6.5.4 - Exemple avec une bibliothèque servomoteur150
      • 6.5.5 - Exemple avec une bibliothèque de génération de tons153
      • 6.6 - Les différents capteurs intégrés à la carte Feather154
      • 6.6.1 - Bibliothèques utiles pour accéder aux capteurs embarqués155
      • 6.6.2 - Température / Pression / Humidité155
      • 6.6.3 - Indicateur de niveau sonore sur une LED157
      • 6.6.4 - Indicateur de niveau sonore sur une LED NeoPixel160
      • 6.6.5 - Variation de la teinte de la LED NeoPixel par gestes162
      • 6.6.6 - Couleur aléatoire de la LED NeoPixel par accéléromètre167
      • 6.7 - Bus de communication disponibles170
      • 6.7.1 - Module 'busio'170
      • 6.7.2 - Liaison série asynchrone de type UART171
      • 6.7.3 - Liaison série synchrone de type I2C179
      • 6.7.4 - Liaison série synchrone de type SPI183
      • 6.8 - Émulation de périphériques HID190
      • 6.8.1 - Module 'usb_hid'191
      • 6.8.2 - Émulation d'un clavier191
      • 6.8.3 - Émulation de la souris202
      • 6.9 - Quelques informations sur les autres modules disponibles209
      • 6.9.1 - Modules 'Core'209
      • 6.9.2 - Modules additionnels Adafruit209
      • 6.9.3 - Modules additionnels autres210
      • 6.10 - Comment faire si le module de mon composant n'existe pas ?211
      • 6.10.1 - Partir d'une bibliothèque Python211
      • 6.10.2 - Partir d'un code MicroPython217
      • Chapitre 7 • Projets avec les cartes d'extension FeatherWing 221
      • 7.1 - Qu'est-ce qu'une FeatherWing ?221
      • 7.2 - Préparation des modules FeatherWing223
      • 7.3 - Alimentation des projets225
      • 7.4 - FeatherWing DotStar226
      • 7.4.1 Présentation de la carte d'extension226
      • 7.4.2 Projet de station météo locale229
      • 7.5 - FeatherWing Adalogger236
      • 7.5.1 Présentation de la carte d'extension236
      • 7.5.2 Projet d'enregistreur de température239
      • 7.6 - FeatherWing e-Ink246
      • 7.6.1 Présentation de la carte d'extension246
      • 7.6.2 Description du module displayio248
      • 7.6.3 Tutoriel avec le module displayio253
      • 7.6.4 Préparation de ses images266
      • 7.6.5 Projet de badge événementiel267
      • 7.7 - FeatherWing TFT de 2,4 pouces271
      • 7.7.1 Présentation de la carte d'extension271
      • 7.7.2 Projet de Visionneuse d'images272
      • 7.7.3 Projet de thermographe278
      • 7.8 - FeatherWing OLED286
      • 7.8.1 Présentation de la carte d'extension286
      • 7.8.2 Projet de clavier macro pour Windows287
      • 7.9 - FeatherWing Prop-Maker297
      • 7.9.1 Présentation de la carte d'extension297
      • 7.9.2 Projet de voltmètre parlant300
      • 7.9.3 Projet de thermomètre à LED309
      • 7.9.4 Projet de lampe d'ambiance à LED315
      • 7.10 - FeatherWing RTC321
      • 7.10.1 Présentation de la carte d'extension321
      • 7.10.2 Projet d'horloge NeoPixel324
      • 7.11 - FeatherWing RGB Matrix335
      • 7.11.1 Présentation de la carte d'extension335
      • 7.11.2 Projet Pixel Art344
      • 7.11.3 Projet horloge348
      • 7.11.4 Projet de radar de recul353
      • 7.12 - FeatherWing Music Maker359
      • 7.12.1 Présentation de la carte d'extension359
      • 7.12.2 Projet d'instrument MIDI362
      • 7.13 - Utilisation de la Joy FeatherWing378
      • 7.13.1 Présentation de la carte d'extension378
      • 7.13.2 Projet de contrôleur de jeu379
      • 7.14 - FeatherWing servo387
      • 7.14.1 Présentation de la carte d'extension PWM387
      • 7.14.2 Projet de tourelle labyrinthe390
      • 7.15 - Power Relay FeatherWing396
      • 7.15.1 Présentation de la carte d'extension396
      • 7.15.2 Projet de commande à reconnaissance faciale399
      • 7.16 - Utilisation des FeatherWing DC motor/ RFM69411
      • 7.16.1 Présentation de la carte d'extension DC Motor411
      • 7.16.2 Projet de commande de robot roulant414
      • 7.16.3 Présentation de la carte d'extension RFM69420
      • 7.16.4 Projet de commande de robot à distance424
      • 7.17 - Autres FeatherWings433
      • 7.18 - Utilisation de la Feather Click Shield433
      • 7.18.1 Présentation des modules Click Boards435
      • 7.18.2 Présentation de la carte de MikroElektronika436
      • 7.18.3 Projet de télécommande infrarouge437
      • Partie III445
      • Chapitre 8 • Carte Adafruit CLUE nRF52840 Express 446
      • 8.1 - Présentation de la carte CLUE nRF52840 Express446
      • 8.1.1 - Principales caractéristiques447
      • 8.1.2 - Brochage de la carte CLUE449
      • 8.1.3 - Caractéristiques des capteurs embarqués sur la carte CLUE453
      • 8.1.4 - Mise à jour de son micrologiciel CircuitPython453
      • 8.2 - Bibliothèque CircuitPython spécialisée pour CLUE455
      • 8.3 - Interfaçage matériel456
      • 8.4 - Quelques projets avec la carte CLUE nRF52840459
      • 8.4.1 - Projet de sonomètre459
      • 8.4.2 - Projet d'horloge analogique464
      • 8.4.3 - Projet de thermomètre470
      • 8.4.4 - Projet de thermomètre sans contact474
      • 8.4.5 - Projet de taux d'occupation d'une pièce480
      • 8.4.6 - Projet de Pong491
      • 8.4.7 - Projet de radar 2D Laser503
      • 8.4.8 - Projet d'éclairage caméléon512
      • 8.4.9 - Projet de robot autonome détecteur d'obstacles519
      • 8.4.10 - Exemple d'animation528
      • 8.5 - Simulation avec Microsoft Visual Studio Code533
      • Chapitre 9 • Un projet Bluetooth 537
      • 9.1 - Introduction537
      • 9.2 - Commande d'éclairage par Bluetooth537
      • Chapitre 10 • Conclusion 549
      • Index 551

  • Origine de la notice:
    • Electre
  • Disponible - A partir du 25 août 2025 - 681.33 BOT