MicroPython et Pyboard
Python sur microcontrôleur : de la prise en main à l'utilisation avancée
Découvrir et maîtriser MicroPython, Python sur microcontrôleur, avec les cartes Pyboard. Aller au-delà des concepts et découvrir les aspects pratiques du langage Python appliqué aux microcontrôleurs ! Cet ouvrage guide son lecteur de façon didactique dans la mise en œuvre [...]
[lire le résumé du livre]
Auteur : Dominique MEURISSE
Editeur : Eni
Date parution : 01/2020CB Google/Apple Pay, Chèque, Virement
Quel est le sujet du livre "MicroPython et Pyboard"
Découvrir et maîtriserMicroPython, Python sur microcontrôleur, avec les cartes Pyboard. Aller au-delà des concepts et découvrir les aspects pratiques du langage Python appliqué aux microcontrôleurs ! Cet ouvrage guide son lecteur de façon didactique dans la mise en œuvre des cartes Pyboard sans oublier d'explorer la prise de contrôle de composants électroniques que l'on peut y raccorder.
Les Makers pourront facilement y trouver de quoi adapter leur savoir-faire Arduino sur MicroPython, ceux qui ne sont pas encore des Makers pourraient fort bien le devenir, les programmeurs ajouteront sans peine une nouvelle corde à leur arc, les ingénieurs bâtiront de nouveaux ponts entre différents domaines du savoir, l'électronicien découvrira un outil pour produire rapidement des prototypes et les pédagogues pourront conjuguer facilement théorie et expérimentation.
Chapitre après chapitre, le lecteur part ainsi à la découverte de la mise en œuvre de la carte Pyboard (et Pyboard-D), à la réalisation de montages électroniques simples, jusqu'à l'utilisation de techniques avancées telles que la manipulation de différents capteurs et interfaces, des sorties PWM et analogique ou d'un bus I2C. Il peut ainsi apprendre par exemple à allumer une LED, activer un relais, commander des moteurs ou encore acquérir des données environnementales et afficher des informations sur des écrans.
Tout au long du livre, l'auteur propose des trucs et astuces, des points de vulgarisation, des exemples détaillés, des schémas de raccordement, avec différents niveaux de lecture qui donneront envie au lecteur d'aller plus loin dans l'utilisation de la carte Pyboard pour contrôler des objets de la vie de tous les jours.
Quizinclus dans
la version en ligne !Téléchargements
Ingénieur de formation et ancien architecte logiciel, Dominique MEURISSE se passionne pour la programmation des nano-ordinateurs (Raspberry Pi, Odroid, OlinuXino) et des microcontrôleurs (Arduino, Feather, ESP, Pyboard, etc.). Ardent défenseur de Python, MicroPython ou Open-Hardware (Adafruit Industries), sa passion le pousse à participer activement à la rédaction du wiki, du blog et des fiches produits documentées du site de vente en ligne de sa société Microcontrôleur Hobby (MC Hobby SPRL). Fort de cet enthousiasme, il poursuit le partage de son savoir avec l'écriture de ses livres dédiés au langage Python sur microcontrôleur.
En suivant ce lien, retrouvez tous les livres dans la spécialité Techniques de programmation.
Sommaire et contenu du livre "MicroPython et Pyboard - Python sur microcontrôleur : de la prise en main à l'utilisation avancée"
Avant-propos
- Introduction
Qu’est-ce que MicroPython ?
- Mise en garde : euphorie imminente !
- Avant-propos : premier contact MicroPython
- Objectifs de l’ouvrage
- Prérequis
- Présentation de MicroPython
- Comparaison MicroPython et Arduino
- 1. Arduino
- 2. MicroPython
- Intérêt
- 1. Python pour l’électronique
- 2. Python, un langage populaire
- 3. Python et apprentissage rapide
- 4. Python et l’enseignement
- Communauté
- 1. Bibliothèques et pilotes
- 2. Forums
Plateformes MicroPython
- Préambule
- À l’assaut du monde professionnel
- Critères de sélection
- 1. Tension logique
- 2. Fréquence CPU
- 3. Mémoire RAM
- a. Durant la compilation des scripts
- b. Durant le fonctionnement du script
- 4. Mémoire flash
- 5. Calcul en virgule flottante (FPU)
- 6. Communication
- 7. Communauté
- 8. Support matériel de MicroPython
- 1. STMicroelectronics (Pyboard et Pyboard-D)
- 2. STMicroelectronics (NaDHAT PYB405)
- 3. Microchip/Atmel (plateformes Adafruit)
- 4. Nordic Semiconductor (Micro:bit)
- 5. Espressif (ESP8266 et ESP32)
- a. ESP8266
- b. ESP32
- 1. Boîtier officiel
- 2. LCD Skin
- 3. Audio Skin
- 4. Support réseau
- 5. Support WiFi
- 6. Support Bluetooth
- a. Module Bluetooth série HC-05
- b. Module Bluefruit LE UART Friend
- 1. LCD Skin
- 2. Support Ethernet
- 3. Support WiFi et Bluetooth
- 4. Cartes breakout
MicroPython Pyboard
- Introduction
- Présentation de la Pyboard
- 1. MicroPython
- 2. MicroPython Pyboard
- a. En cas de problème
- b. Premier survol de la Pyboard
- c. Examen physique
- 3. Système de fichiers MicroPython
- 4. Quels connecteurs pour la Pyboard ?
- 5. Pyboard et Fritzing
- 1. Interfaces matérielles
- a. LED
- b. Bouton utilisateur
- c. Bouton Reset
- d. Accéléromètre
- e. Carte microSD
- f. Alimentation de la Pyboard
- 1. Niveau logique et tensions
- 2. Niveau logique et Python
- 3. Tolérance 5 V
- 4. Courants maximum, source et sink
- 5. Injection de courant
- 1. Sortie PWM
- 2. Entrée analogique (ADC)
- 3. Sortie analogique (DAC)
- 4. Bus I2C
- 5. Bus SPI
- 6. Bus CAN
- 7. UART (port série)
- 1. Partie droite
- 2. Partie gauche
- 3. Partie basse
- 1. Broches du STM32
- 2. Timers
- 1. Placer une broche directement à la masse
- 2. Brancher des GPIO ensemble
- 3. Appliquer une surtension sur une broche d’entrée
- 4. Appliquer une tension d’alimentation inverséesur V+
- 5. Appliquer une tension supérieure à 3,3V sur la broche 3V3
- 6. Dépasser le courant max d’une broche
- 7. Dépasser le courant max du microcontrôleur
MicroPython Pyboard-D
- Introduction
- MicroPython Pyboard-D
- 1. Premier survol de la Pyboard-D
- 2. Quels connecteurs pour la Pyboard-D ?
- 3. Pyboard-D et Fritzing
- 4. Pyboard-D en détail
- a. Interfaces matérielles
- b. LED RGB
- c. Bouton utilisateur
- d. Carte microSD
- e. Stockage eMMC
- f. Horloge temps réel (RTC)
- g. Alimentation de la Pyboard-D
- h. Contrôle WiFi
- 1. Position X
- 2. Bus I2C en position X
- 3. Position Y
Environnement de travail
- Avant-propos
- Manipulation de fichiers
- Éditeur de texte
- 1. Atom (multiplateforme)
- 2. Windows
- 3. Linux
- 4. Raspbian Linux
- 5. Mac OS
- Console série et REPL
- 1. PuTTY (multiplateforme)
- 2. Picocom (Linux)
- 3. Screen (Mac, Linux)
- Outils intégrés
- 1. RShell
- a. Linux et Raspbian
- b. Windows
- c. Mac OS
- 1. RShell
- 2. Mu Editor
- a. Installation Linux
- b. Installation Raspbian
- c. Installation Windows et Mac
Prise de contrôle
- Installer une carte MicroPython
- 1. Sous Windows
- 2. Sous Linux
- 3. Sous Raspbian (Raspberry Pi)
- Communiquer avec MicroPython
- Utiliser le périphérique de stockage
- 1. Effacer des fichiers
- 2. Un seul espace de stockage accessible en USB
- REPL : l'invite en ligne de commande
- 1. Séquence de contrôle REPL
- 2. Options avancées sur REPL
- a. Édition de ligne
- b. Historique de commandes
- c. Autocomplétion
- d. Variable « _ »
- 3. Outils Python avancés pour REPL
- a. Fonction help()
- b. Fonction dir()
- c. Fonction listdir()
- d. Afficher le contenu d’un fichier
- 4. Développer avec REPL
- 1. À propos de Bluetooth
- 2. Module Bluetooth série
- a. Brancher le module sur la Pyboard
- b. Répliquer REPL sur le port série
- c. Appairage sur PC Linux
- d. Appairage avec un Smartphone
- 1. Ligne de commande RShell
- 2. REPL sous RShell
- 3. Développer avec RShell
- 1. Activer le démon WebREPL
- 2. Client WebREPL
- a. WebREPL - Client HTML
- b. WebREPL - Client Python
- 1. WiFi et réglementation locale
- 2. Nom d’hôte et adresse MAC
- 1. Mode STA et scan réseau
- 2. Réseau WiFi visible ou masqué
- 3. Connexion en mode STA
- 4. Contrôle WiFi avancé
- 5. Utiliser un socket
- 6. Rechercher l’adresse IP d’une Pyboard-D
Séquence de démarrage
- Séquence de démarrage MicroPython
- 1. Séquence de démarrage - Pyboardoriginale
- 2. Séquence de démarrage - Pyboard-D
- Fichier boot.py
- 1. Mode de l’interface USB
- 2. Connexion WiFi avec boot.py
- 3. Activer WebREPL avec boot.py
- 4. Script utilisateur à exécuter
- Fichier main.py
- Séquence de démarrage en lumière
- Safe Mode de la Pyboard
- Séquence de démarrage et Pyboard-D
Programmer
- Préambule
- Les bibliothèques MicroPython
- 1. Le préfixe u
- 2. Bibliothèques dans le firmware
- 3. Mécanisme de chargement
- 4. Où placer les bibliothèques ?
- 5. Écrire ses propres bibliothèques
- a. Script de test
- b. Création des bus
- 1. Bibliothèques standards et micropythonifiées
- 2. Bibliothèques propres à MicroPython
- 3. Bibliothèques spécifiques à lacarte de développement
- a. Bibliothèque pyb
- b. Bibliothèque lcd160cr
- 1. Limitation de la portabilité
- 2. Quel intérêt pour la portabilité ?
- 3. Contenu de la bibliothèque machine
- 1. Entrée numérique
- 2. Entrée numérique (pull-up interne)
- 3. Entrée numérique et déparasitage
- 4. Entrée numérique et interruption
- 5. Sortie numérique
- a. Commander une LED
- b. Broche en sortie et courant de court-circuit
- c. Montage drain ou source
- a. Potentiomètre
- b. Lecture analogique
- c. Précision des convertisseurs
- d. Échantillonnage
- e. Acquisition de signal et fréquence d’échantillonnage
- f. Autres fonctionnalités
- a. DAC en résolution 8 bits
- b. DAC en résolution 12 bits
- c. Reproduire un échantillon
- d. Sortie analogique au-delà de 3,3 V
- e. DAC et système audio
- f. Plus d’information sur le DAC
- a. Commander l’intensité d’uneLED
- b. Commande de vitesse de moteur
- a. Synchroniser des servomoteurs
- b. Servomoteurs à rotation continue
- c. Alimentation des servomoteurs
- d. Calibration des servomoteurs
- 1. Timers disponibles
- 2. Fonction de rappel/d’interruption
- 3. Fonctions d’interruption et bonnes pratiques
- 4. Timers avancés
- 5. Le timer WatchDog
- 1. I2C : comment ça marche ?
- a. À propos des bits d’adresse
- b. I2C comme un périphérique mémoire
- a. Où trouver des pilotes ?
- b. Comment utiliser un pilote I2C
- c. Faut-il créer le bus I2C hors du pilote ?
- a. Connecteur UEXT d’Olimex
- b. Connecteur NCD de National Control Devices
- c. Connecteur Qwiic de SparkFun
- d. Écosystème Feather d’AdafruitIndustries
- a. Exemple 1 : accéléromètrede la Pyboard
- b. Exemple 2 : ADS1115 (entrées analogiquessupplémentaires)
- c. Exemple 3 : ajouter une carte MOD-IO
- a. Résistances pull-up et tension logique
- b. Vitesse limitée
- c. Effet capacitif et longueur de ligne
- a. P82B715PN
- b. Carte d’extension différentiellede SJTbits
- 1. Utilisation de l’API SPI
- 2. Classe SPI du module pyb
- 3. Communication SPI par l’exemple
- a. Exemple 1 : MOD-VGA (Gameduino sous MicroPython)
- b. Exemple 2 : matrice LED
- 1. La trame série
- 2. Configurer une ligne série
- 3. Émission/réception
- 4. Communication UART par l’exemple
- a. Exemple 1 : module GPS
- b. Exemple 2 : module ESP8266
- 1. Interface CAN
- 2. Interface DMX
Capteurs et interfaces
- Introduction
- Signal numérique
- 1. Module relais
- a. Mise en garde
- b. À réaliser soi-même
- c. Modules relais préassemblés
- d. Plusieurs modules relais
- e. Relais et impulsions électromagnétiques(EMI)
- f. PowerSwitchTail
- 1. Module relais
- 2. Contact magnétique (interrupteur)
- 3. Capteur à effet Hall
- 4. Capteur PIR
- 5. Encodeur rotatif
- 6. LED RGB
- 7. Capteur ultrason HC-SR04
- a. Brancher le HC-SR04
- b. Tester le HC-SR04
- c. Bibliothèque
- 1. Capteur de température TMP36
- 2. Photorésistance
- 3. Capteur de pression différentielle MPXV5010DP
- 4. Mesure de courant avec ACS712
- a. Mise en garde
- b. Charge alternative et relevé alternatif
- c. Mesure avec la Pyboard
- 1. MCP23017 : extension d’entrée/sortie
- a. Brancher le MCP23017
- b. Bibliothèque
- c. Tester le MCP23017
- a. Brancher l’ ADS1115
- b. Mille milliards de mille parasites !
- c. Le gain programmable
- d. Bibliothèque
- e. Tester l’ADS1115
- a. Brancher le DHT 11
- b. Tester le DHT11
- a. Brancher le BME280
- b. Bibliothèque
- c. Tester le BME280
- d. Calcul d’altitude
- e. Modes de fonctionnement du BME280
- a. Brancher le TSL2561
- b. Bibliothèque
- c. Tester le TSL2561
- d. Tester le TSL2591
- a. Brancher le Nunchuk
- b. Bibliothèque
- c. Tester
- a. Brancher le MCP4725
- b. Bibliothèque
- c. Tester le MCP4725
- d. Une onde en dos de chameau
- a. Brancher le MCP9808
- b. Bibliothèque
- c. Tester le MCP9808
- 1. Servomoteurs sur la Pyboard
- 2. L298 : pont-H pour moteur continu
- 3. L293D : pont-H pour moteur continu
- 4. DRV8833 : contrôleur moteur continu
- 5. PCA9685 : contrôleur PWM et servo moteur
- 6. A4988 : contrôleur moteur pas-à-pas
- a. Découvrir le moteur pas-à-pas
- b. Contrôleur de moteur pas-à-pas A4988
- c. Tester le A4988
- 1. LED NeoPixel
- 2. SD1306 : afficheur OLED
- a. Brancher l’afficheur OLED
- b. Installer la bibliothèque
- c. Tester l’afficheur OLED
- d. Manipulations du FrameBuffer
- e. Image PBM
- f. Ressources
- a. Couleurs en 16 et 24 bits
- b. Tester le LCD160CR
- c. Autres ressources
- a. Afficheur LCD 2 ou 4 lignes USB/série
- b. ILI9341 : afficheur TFT couleur
- 1. Module GPS
- a. Brancher le module GPS
- b. Bibliothèque
- c. Tester le module GPS
- a. Brancher le module RFID
- b. Bibliothèque
- c. Tester le module RFID
- 1. Configurer l’interface USB
- 2. Fonction usb_mode()
- 3. Émuler la souris
- 4. Émuler le clavier
- a. Activer le mode HID pour un clavier
- b. Envoyer une pression de touche
- c. Bibliothèque usbhid
- d. Créer des touches copier/coller
- 1. Module Ethernet
- 2. Module WiFi
- a. ESP8266 en mode AT
- b. Pyboard-D
I2C : petit manuel du développeur
- Préambule
- Introduction
- Manipulation de données
- 1. Octet et représentation binaire
- 2. Représentation binaire et hexadécimale
- 3. Manipulation de bits
- a. Activer un bit
- b. Désactiver un bit
- c. Tester un bit
- d. Décalage à gauche
- e. Décalage à droite
- 4. Bytes et bytearray
- 5. Petit boutisme (little endian) vers entier 16 bits
- a. Dépasser la taille de l’octet (8bits)
- b. Petit boutisme et grand boutisme
- 6. Le complément à deux
- 7. struct à la rescousse
- 1. Niveau d’API
- 2. Adresses I2C
- 3. Scan du bus
- 4. Conditions / Start / Stop
- 1. Localiser le pilote CircuitPython
- 2. Rétroportage étape par étape
- a. Mise en place
- b. Déroulement du portage
- c. Correction des imports et commentaires
- d. Correction 1 : I2CDevice -> machine.I2C
- e. Correction 2 : _read_u8()
- f. Correction 3 : _write_u8()
- g. Correction 4 : _read_u16LE()
Classes MicroPython courantes
- Les classes MicroPython en français
- La classe ADC
- 1. Constructeur
- 2. Méthodes
- La classe ADCAll
- 1. Constructeur
- La classe DAC
- 1. Constructeur
- 2. Méthodes
- La classe I2C
- 1. Constructeur
- 2. Méthodes
- 3. Méthodes - opérations primitives
- 4. Méthodes - opérations standards
- 5. Méthodes - opérations mémoire
- La classe LCD160CR
- 1. Constructeur
- 2. Méthode statique
- 3. Propriétés
- 4. Méthodes
- a. Configuration de l’écran
- b. Manipulation graphique de l’écran
- c. Afficher du texte
- d. Dessin de primitive
- e. Méthodes tactiles
- f. Méthodes avancées
- 1. Constructeur
- 2. Méthodes
- 1. Constructeur
- 2. Méthodes
- 1. Constructeur
- 2. Méthodes
- 1. Constructeur
- 2. Méthodes
- 1. Constructeur
- 2. Méthodes
- 1. Constructeur
- 2. Méthodes
- 1. Méthodes
- 1. Constructeur
- 2. Méthodes
Annexes
- À propos des annexes
- Mise à jour du firmware
- 1. Pyboard originale
- a. Installer dfu-util
- b. Télécharger le nouveau firmware
- c. Placer la carte en mode DFU
- d. Tester le mode DFU
- e. Flasher le nouveau firmware
- 1. Pyboard originale
- 2. Pyboard-D
- 1. Safe Mode
- 2. Factory Reset
- 1. Logiques TTL 5 V et CMOS 3,3 V
- 2. Sortie 3,3 V vers entrée 5 V
- 3. Sortie 5 V vers entrée 3,3 V
- 4. Conversion bidirectionnelle 5 V - 3,3 V
- 5. Niveau logique et bus I2C
- 6. Conversion et haut débit
- 1. STMicroelectronics (Pyboard et Pyboard D)
- 2. Microchip (cartes CircuitPython ATSAMD)
- 3. Espressif (cartes ESP8266)
- 4. Espressif (cartes ESP32)
- 5. Espressif (console Odroid-GO (ESP32))
- 6. STMicroelectronics (Espruino Pico)
- 7. Pycom (WiPy, LoPy, etc.)
- 8. Nordic Semiconductor (cartes Micro:bit et autres)
- 9. STMicroelectronics (cartes de développement)
- 10. NXP (Teensy)