Description
Table des matières
- Qu’est-ce que MicroPython ?
- 1. Mise en garde : euphorie imminente !
- 2. Avant-propos : premier contact MicroPython
- 3. Objectifs de l’ouvrage
- 4. Prérequis
- 5. Présentation de MicroPython
- 6. Comparaison MicroPython et Arduino
- 6.1 Arduino
- 6.2 MicroPython
- 7. Intérêt
- 7.1 Python pour l’électronique
- 7.2 Python, un langage populaire
- 7.3 Python et apprentissage rapide
- 7.4 Python et l’enseignement
- 8. Communauté
- 8.1 Bibliothèques et pilotes
- 8.2 Forums
- Plateformes MicroPython
- 1. Préambule
- 2. À l’assaut du monde professionnel
- 3. Critères de sélection
- 3.1 Tension logique
- 3.2 Fréquence CPU
- 3.3 Mémoire RAM
- 3.3.1 Durant la compilation des scripts
- 3.3.2 Durant le fonctionnement du script
- 3.4 Mémoire flash
- 3.5 Calcul en virgule flottante (FPU)
- 3.6 Communication
- 3.7 Communauté
- 3.8 Support matériel de MicroPython
- 4. Vue d’ensemble des plateformes disponibles
- 4.1 STMicroelectronics (Pyboard et Pyboard-D)
- 4.2 STMicroelectronics (NaDHAT PYB405)
- 4.3 Microchip/Atmel (plateformes Adafruit)
- 4.4 Nordic Semiconductor (Micro:bit)
- 4.5 Espressif (ESP8266 et ESP32)
- 4.5.1 ESP8266
- 4.5.2 ESP32
- 4.6 Pycom.io
- 4.7 STMicroelectronics (carte de développement)
- 4.8 Autres plateformes
- 5. MicroPython et CircruitPython
- 6. Pyboard : extensions et communications
- 6.1 Boîtier officiel
- 6.2 LCD Skin
- 6.3 Audio Skin
- 6.4 Support réseau
- 6.5 Support WiFi
- 6.6 Support Bluetooth
- 6.6.1 Module Bluetooth série HC-05
- 6.6.2 Module Bluefruit LE UART Friend
- 7. Pyboard-D : extensions et communications
- 7.1 LCD Skin
- 7.2 Support Ethernet
- 7.3 Support WiFi et Bluetooth
- 7.4 Cartes breakout
- MicroPython Pyboard
- 1. Introduction
- 2. Présentation de la Pyboard
- 2.1 MicroPython
- 2.2 MicroPython Pyboard
- 2.2.1 En cas de problème
- 2.2.2 Premier survol de la Pyboard
- 2.2.3 Examen physique
- 2.3 Système de fichiers MicroPython
- 2.4 Quels connecteurs pour la Pyboard ?
- 2.5 Pyboard et Fritzing
- 3. La Pyboard en détail
- 3.1 Interfaces matérielles
- 3.1.1 LED
- 3.1.2 Bouton utilisateur
- 3.1.3 Bouton Reset
- 3.1.4 Accéléromètre
- 3.1.5 Carte microSD
- 3.1.6 Alimentation de la Pyboard
- 3.1 Interfaces matérielles
- 4. Pyboard : tension logique et courant
- 4.1 Niveau logique et tensions
- 4.2 Niveau logique et Python
- 4.3 Tolérance 5 V
- 4.4 Courants maximum, source et sink
- 4.5 Injection de courant
- 5. Les fonctions alternatives sur la Pyboard
- 5.1 Sortie PWM
- 5.2 Entrée analogique (ADC)
- 5.3 Sortie analogique (DAC)
- 5.4 Bus I2C
- 5.5 Bus SPI
- 5.6 Bus CAN
- 5.7 UART (port série)
- 6. Brochage de la Pyboard
- 6.1 Partie droite
- 6.2 Partie gauche
- 6.3 Partie basse
- 7. Brochage avancé et timers
- 7.1 Broches du STM32
- 7.2 Timers
- 8. Comment détruire sa Pyboard en sept leçons ?
- 8.1 Placer une broche directement à la masse
- 8.2 Brancher des GPIO ensemble
- 8.3 Appliquer une surtension sur une broche d’entrée
- 8.4 Appliquer une tension d’alimentation inversée sur V+
- 8.5 Appliquer une tension supérieure à 3,3 V sur la broche 3V3
- 8.6 Dépasser le courant max d’une broche
- 8.7 Dépasser le courant max du microcontrôleur
- MicroPython Pyboard-D
- 1. Introduction
- 2. MicroPython Pyboard-D
- 2.1 Premier survol de la Pyboard-D
- 2.2 Quels connecteurs pour la Pyboard-D ?
- 2.3 Pyboard-D et Fritzing
- 2.4 Pyboard-D en détail
- 2.4.1 Interfaces matérielles
- 2.4.2 LED RGB
- 2.4.3 Bouton utilisateur
- 2.4.4 Carte microSD
- 2.4.5 Stockage eMMC
- 2.4.6 Horloge temps réel (RTC)
- 2.4.7 Alimentation de la Pyboard-D
- 2.4.8 Contrôle WiFi
- 3. Brochage de la Pyboard-D
- 3.1 Position X
- 3.2 Bus I2C en position X
- 3.3 Position Y
- 4. Carte d’interface WBUS-DIP28
- Environnement de travail
- 1. Avant-propos
- 2. Manipulation de fichiers
- 3. Éditeur de texte
- 3.1 Atom (multiplateforme)
- 3.2 Windows
- 3.3 Linux
- 3.4 Raspbian Linux
- 3.5 Mac OS
- 4. Console série et REPL
- 4.1 PuTTY (multiplateforme)
- 4.2 Picocom (Linux)
- 4.3 Screen (Mac, Linux)
- 5. Outils intégrés
- 5.1 RShell
- 5.1.1 Linux et Raspbian
- 5.1.2 Windows
- 5.1.3 Mac OS
- 5.2 Mu Editor
- 5.2.1 Installation Linux
- 5.2.2 Installation Raspbian
- 5.2.3 Installation Windows et Mac
- 5.1 RShell
- Prise de contrôle
- 1. Installer une carte MicroPython
- 1.1 Sous Windows
- 1.2 Sous Linux
- 1.3 Sous Raspbian (Raspberry Pi)
- 2. Communiquer avec MicroPython
- 3. Utiliser le périphérique de stockage
- 3.1 Effacer des fichiers
- 3.2 Un seul espace de stockage accessible en USB
- 4. REPL : l’invite en ligne de commande
- 4.1 Séquence de contrôle REPL
- 4.2 Options avancées sur REPL
- 4.2.1 Édition de ligne
- 4.2.2 Historique de commandes
- 4.2.3 Autocomplétion
- 4.2.4 Variable « _ »
- 4.3 Outils Python avancés pour REPL
- 4.3.1 Fonction help()
- 4.3.2 Fonction dir()
- 4.3.3 Fonction listdir()
- 4.3.4 Afficher le contenu d’un fichier
- 4.4 Développer avec REPL
- 5. REPL via Bluetooth
- 5.1 À propos de Bluetooth
- 5.2 Module Bluetooth série
- 5.2.1 Brancher le module sur la Pyboard
- 5.2.2 Répliquer REPL sur le port série
- 5.2.3 Appairage sur PC Linux
- 5.2.4 Appairage avec un Smartphone
- 6. RShell
- 6.1 Ligne de commande RShell
- 6.2 REPL sous RShell
- 6.3 Développer avec RShell
- 7. upy-shell
- 8. WebREPL
- 8.1 Activer le démon WebREPL
- 8.2 Client WebREPL
- 8.2.1 WebREPL – Client HTML
- 8.2.2 WebREPL – Client Python
- 9. Support WiFi sur la Pyboard-D
- 9.1 WiFi et réglementation locale
- 9.2 Nom d’hôte et adresse MAC
- 10. Mode station (STA)
- 10.1 Mode STA et scan réseau
- 10.2 Réseau WiFi visible ou masqué
- 10.3 Connexion en mode STA
- 10.4 Contrôle WiFi avancé
- 10.5 Utiliser un socket
- 10.6 Rechercher l’adresse IP d’une Pyboard-D
- 11. Mode point d’accès (AP)
- 1. Installer une carte MicroPython
- Séquence de démarrage
- 1. Séquence de démarrage MicroPython
- 1.1 Séquence de démarrage – Pyboard originale
- 1.2 Séquence de démarrage – Pyboard-D
- 2. Fichier boot.py
- 2.1 Mode de l’interface USB
- 2.2 Connexion WiFi avec boot.py
- 2.3 Activer WebREPL avec boot.py
- 2.4 Script utilisateur à exécuter
- 3. Fichier main.py
- 4. Séquence de démarrage en lumière
- 5. Safe Mode de la Pyboard
- 6. Séquence de démarrage et Pyboard-D
- 1. Séquence de démarrage MicroPython
- Programmer
- 1. Préambule
- 2. Les bibliothèques MicroPython
- 2.1 Le préfixe u
- 2.2 Bibliothèques dans le firmware
- 2.3 Mécanisme de chargement
- 2.4 Où placer les bibliothèques ?
- 2.5 Écrire ses propres bibliothèques
- 2.5.1 Script de test
- 2.5.2 Création des bus
- 3. Bibliothèques disponibles
- 3.1 Bibliothèques standards et micropythonifiées
- 3.2 Bibliothèques propres à MicroPython
- 3.3 Bibliothèques spécifiques à la carte de développement
- 3.3.1 Bibliothèque pyb
- 3.3.2 Bibliothèque lcd160cr
- 4. Bibliothèque machine
- 4.1 Limitation de la portabilité
- 4.2 Quel intérêt pour la portabilité ?
- 4.3 Contenu de la bibliothèque machine
- 5. Bibliothèque pyb
- 6. Bibliothèque os
- 7. Charger et exécuter un script à la volée
- 8. Exploiter l’accéléromètre
- 9. Entrées/sorties
- 9.1 Entrée numérique
- 9.2 Entrée numérique (pull-up interne)
- 9.3 Entrée numérique et déparasitage
- 9.4 Entrée numérique et interruption
- 9.5 Sortie numérique
- 9.5.1 Commander une LED
- 9.5.2 Broche en sortie et courant de court-circuit
- 9.5.3 Montage drain ou source
- 9.6 Entrée analogique
- 9.6.1 Potentiomètre
- 9.6.2 Lecture analogique
- 9.6.3 Précision des convertisseurs
- 9.6.4 Échantillonnage
- 9.6.5 Acquisition de signal et fréquence d’échantillonnage
- 9.6.6 Autres fonctionnalités
- 9.7 Sortie analogique
- 9.7.1 DAC en résolution 8 bits
- 9.7.2 DAC en résolution 12 bits
- 9.7.3 Reproduire un échantillon
- 9.7.4 Sortie analogique au-delà de 3,3 V
- 9.7.5 DAC et système audio
- 9.7.6 Plus d’information sur le DAC
- 9.8 Sortie PWM
- 9.8.1 Commander l’intensité d’une LED
- 9.8.2 Commande de vitesse de moteur
- 9.9 Sortie Servo
- 9.9.1 Synchroniser des servomoteurs
- 9.9.2 Servomoteurs à rotation continue
- 9.9.3 Alimentation des servomoteurs
- 9.9.4 Calibration des servomoteurs
- 10. Identification et mode des broches
- 11. Les timers
- 11.1 Timers disponibles
- 11.2 Fonction de rappel/d’interruption
- 11.3 Fonctions d’interruption et bonnes pratiques
- 11.4 Timers avancés
- 11.5 Le timer WatchDog
- 12. Bus I2C
- 12.1 I2C : comment ça marche ?
- 12.1.1 À propos des bits d’adresse
- 12.1.2 I2C comme un périphérique mémoire
- 12.2 Capteur I2C et pilote MicroPython
- 12.2.1 Où trouver des pilotes ?
- 12.2.2 Comment utiliser un pilote I2C
- 12.2.3 Faut-il créer le bus I2C hors du pilote ?
- 12.3 Connecteurs standardisés pour I2C
- 12.3.1 Connecteur UEXT d’Olimex
- 12.3.2 Connecteur NCD de National Control Devices
- 12.3.3 Connecteur Qwiic de SparkFun
- 12.3.4 Écosystème Feather d’Adafruit Industries
- 12.4 Communication I2C par l’exemple
- 12.4.1 Exemple 1 : accéléromètre de la Pyboard
- 12.4.2 Exemple 2 : ADS1115 (entrées analogiques supplémentaires)
- 12.4.3 Exemple 3 : ajouter une carte MOD-IO
- 12.5 Le bus I2C plus en détail
- 12.5.1 Résistances pull-up et tension logique
- 12.5.2 Vitesse limitée
- 12.5.3 Effet capacitif et longueur de ligne
- 12.6 Augmenter la longueur du bus I2C
- 12.6.1 P82B715PN
- 12.6.2 Carte d’extension différentielle de SJTbits
- 12.1 I2C : comment ça marche ?
- 13. Bus SPI
- 13.1 Utilisation de l’API SPI
- 13.2 Classe SPI du module pyb
- 13.3 Communication SPI par l’exemple
- 13.3.1 Exemple 1 : MOD-VGA (Gameduino sous MicroPython)
- 13.3.2 Exemple 2 : matrice LED
- 14. Interface UART
- 14.1 La trame série
- 14.2 Configurer une ligne série
- 14.3 Émission/réception
- 14.4 Communication UART par l’exemple
- 14.4.1 Exemple 1 : module GPS
- 14.4.2 Exemple 2 : module ESP8266
- 15. Horloge RTC
- 16. Poursuivre l’exploration
- 16.1 Interface CAN
- 16.2 Interface DMX
- Capteurs et interfaces
- 1. Introduction
- 2. Signal numérique
- 2.1 Module relais
- 2.1.1 Mise en garde
- 2.1.2 À réaliser soi-même
- 2.1.3 Modules relais préassemblés
- 2.1.4 Plusieurs modules relais
- 2.1.5 Relais et impulsions électromagnétiques (EMI)
- 2.1.6 PowerSwitchTail
- 2.2 Contact magnétique (interrupteur)
- 2.3 Capteur à effet Hall
- 2.4 Capteur PIR
- 2.5 Encodeur rotatif
- 2.6 LED RGB
- 2.7 Capteur ultrason HC-SR04
- 2.7.1 Brancher le HC-SR04
- 2.7.2 Tester le HC-SR04
- 2.7.3 Bibliothèque
- 2.1 Module relais
- 3. Signal analogique
- 3.1 Capteur de température TMP36
- 3.2 Photorésistance
- 3.3 Capteur de pression différentielle MPXV5010DP
- 3.4 Mesure de courant avec ACS712
- 3.4.1 Mise en garde
- 3.4.2 Charge alternative et relevé alternatif
- 3.4.3 Mesure avec la Pyboard
- 3.5 Sortie analogique
- 4. Interface I2C
- 4.1 MCP23017 : extension d’entrée/sortie
- 4.1.1 Brancher le MCP23017
- 4.1.2 Bibliothèque
- 4.1.3 Tester le MCP23017
- 4.2 ADS1115 : entrée analogique
- 4.2.1 Brancher l’ ADS1115
- 4.2.2 Mille milliards de mille parasites !
- 4.2.3 Le gain programmable
- 4.2.4 Bibliothèque
- 4.2.5 Tester l’ADS1115
- 4.3 DHT11 / DHT22 : humidité et température
- 4.3.1 Brancher le DHT 11
- 4.3.2 Tester le DHT11
- 4.4 BMP280 / BME280 : humidité, pression et température
- 4.4.1 Brancher le BME280
- 4.4.2 Bibliothèque
- 4.4.3 Tester le BME280
- 4.4.4 Calcul d’altitude
- 4.4.5 Modes de fonctionnement du BME280
- 4.5 TSL2561 / TSL2591 : luminosité
- 4.5.1 Brancher le TSL2561
- 4.5.2 Bibliothèque
- 4.5.3 Tester le TSL2561
- 4.5.4 Tester le TSL2591
- 4.6 MOD-IO : relais et entrées optocoupleurs (24 V)
- 4.7 Contrôleur Wii Nunchuck UEXT
- 4.7.1 Brancher le Nunchuk
- 4.7.2 Bibliothèque
- 4.7.3 Tester
- 4.8 MCP4725 : sortie analogique
- 4.8.1 Brancher le MCP4725
- 4.8.2 Bibliothèque
- 4.8.3 Tester le MCP4725
- 4.8.4 Une onde en dos de chameau
- 4.9 MCP9808 : capteur de température de précision
- 4.9.1 Brancher le MCP9808
- 4.9.2 Bibliothèque
- 4.9.3 Tester le MCP9808
- 4.1 MCP23017 : extension d’entrée/sortie
- 5. Contrôle moteur
- 5.1 Servomoteurs sur la Pyboard
- 5.2 L298 : pont-H pour moteur continu
- 5.3 L293D : pont-H pour moteur continu
- 5.4 DRV8833 : contrôleur moteur continu
- 5.5 PCA9685 : contrôleur PWM et servo moteur
- 5.6 A4988 : contrôleur moteur pas-à-pas
- 5.6.1 Découvrir le moteur pas-à-pas
- 5.6.2 Contrôleur de moteur pas-à-pas A4988
- 5.6.3 Tester le A4988
- 6. Afficheurs
- 6.1 LED NeoPixel
- 6.2 SD1306 : afficheur OLED
- 6.2.1 Brancher l’afficheur OLED
- 6.2.2 Installer la bibliothèque
- 6.2.3 Tester l’afficheur OLED
- 6.2.4 Manipulations du FrameBuffer
- 6.2.5 Image PBM
- 6.2.6 Ressources
- 6.3 LCD160CR : afficheur tactile
- 6.3.1 Couleurs en 16 et 24 bits
- 6.3.2 Tester le LCD160CR
- 6.3.3 Autres ressources
- 6.4 MOD-LCD : afficheur à cristaux liquides
- 6.5 Encore plus d’afficheurs
- 6.5.1 Afficheur LCD 2 ou 4 lignes USB/série
- 6.5.2 ILI9341 : afficheur TFT couleur
- 7. Interface UART
- 7.1 Module GPS
- 7.1.1 Brancher le module GPS
- 7.1.2 Bibliothèque
- 7.1.3 Tester le module GPS
- 7.2 Lecteur de carte RFID
- 7.2.1 Brancher le module RFID
- 7.2.2 Bibliothèque
- 7.2.3 Tester le module RFID
- 7.1 Module GPS
- 8. Interface USB HID
- 8.1 Configurer l’interface USB
- 8.2 Fonction usb_mode()
- 8.3 Émuler la souris
- 8.4 Émuler le clavier
- 8.4.1 Activer le mode HID pour un clavier
- 8.4.2 Envoyer une pression de touche
- 8.4.3 Bibliothèque usbhid
- 8.4.4 Créer des touches copier/coller
- 9. Interface réseau
- 9.1 Module Ethernet
- 9.2 Module WiFi
- 9.2.1 ESP8266 en mode AT
- 9.2.2 Pyboard-D
- 9.3 Module Bluetooth HC-05
- 9.4 Support Bluetooth 4.0
- I2C : petit manuel du développeur
- 1. Préambule
- 2. Introduction
- 3. Manipulation de données
- 3.1 Octet et représentation binaire
- 3.2 Représentation binaire et hexadécimale
- 3.3 Manipulation de bits
- 3.3.1 Activer un bit
- 3.3.2 Désactiver un bit
- 3.3.3 Tester un bit
- 3.3.4 Décalage à gauche
- 3.3.5 Décalage à droite
- 3.4 Bytes et bytearray
- 3.5 Petit boutisme (little endian) vers entier 16 bits
- 3.5.1 Dépasser la taille de l’octet (8 bits)
- 3.5.2 Petit boutisme et grand boutisme
- 3.6 Le complément à deux
- 3.7 struct à la rescousse
- 4. Bus I2C
- 4.1 Niveau d’API
- 4.2 Adresses I2C
- 4.3 Scan du bus
- 4.4 Conditions / Start / Stop
- 5. Rétroportage CircuitPython (TSL2591)
- 5.1 Localiser le pilote CircuitPython
- 5.2 Rétroportage étape par étape
- 5.2.1 Mise en place
- 5.2.2 Déroulement du portage
- 5.2.3 Correction des imports et commentaires
- 5.2.4 Correction 1 : I2CDevice -> machine.I2C
- 5.2.5 Correction 2 : _read_u8()
- 5.2.6 Correction 3 : _write_u8()
- 5.2.7 Correction 4 : _read_u16LE()
- 5.3 Et ensuite ?
- 6. Poursuivre l’exploration I2C
- Classes MicroPython courantes
- 1. Les classes MicroPython en français
- 2. La classe ADC
- 2.1 Constructeur
- 2.2 Méthodes
- 3. La classe ADCAll
- 3.1 Constructeur
- 4. La classe DAC
- 4.1 Constructeur
- 4.2 Méthodes
- 5. La classe I2C
- 5.1 Constructeur
- 5.2 Méthodes
- 5.3 Méthodes – opérations primitives
- 5.4 Méthodes – opérations standards
- 5.5 Méthodes – opérations mémoire
- 6. La classe LCD160CR
- 6.1 Constructeur
- 6.2 Méthode statique
- 6.3 Propriétés
- 6.4 Méthodes
- 6.4.1 Configuration de l’écran
- 6.4.2 Manipulation graphique de l’écran
- 6.4.3 Afficher du texte
- 6.4.4 Dessin de primitive
- 6.4.5 Méthodes tactiles
- 6.4.6 Méthodes avancées
- 7. La classe Pin
- 7.1 Constructeur
- 7.2 Méthodes
- 8. La classe RTC
- 8.1 Constructeur
- 8.2 Méthodes
- 9. La classe Servo
- 9.1 Constructeur
- 9.2 Méthodes
- 10. La classe Signal
- 10.1 Constructeur
- 10.2 Méthodes
- 11. La classe SPI
- 11.1 Constructeur
- 11.2 Méthodes
- 12. La classe Timer
- 12.1 Constructeur
- 12.2 Méthodes
- 13. Classe TimerChannel
- 13.1 Méthodes
- 14. Classe UART
- 14.1 Constructeur
- 14.2 Méthodes
- Annexes
Reviews
There are no reviews yet.