Plateformes MicroPython
Préambule
Cet ouvrage a pour but d’offrir des fondations concernant le développement de solutions MicroPython et se concentre donc sur la carte originelle MicroPython Pyboard. Il n’empêche que tout ce qui est appris sur une plateforme MicroPython est facilement transposable sur une autre plateforme MicroPython. Le changement d’état d’une broche est identique sur un ESP8266 sous MicroPython, une Pyboard, un WiPy ou un STM32 Discovery kit. Seul le support matériel spécifique (WiFi, LoRa, etc.) de la plateforme cible apportera des fonctionnalités spécifiques.
Le restant de ce chapitre se concentre sur les différentes plateformes MicroPython disponibles de façon à offrir une vue d’ensemble de la progression de MicroPython sur le marché. Il paraît essentiel pour l’auteur d’avoir une idée, même grossière, des cartes et de ce qu’elles peuvent apporter.
Ces éléments étant principalement informatifs, la lecture de ce chapitre peut se poursuivre à un moment plus opportun.
À l’assaut du monde professionnel
La programmation Python sur microcontrôleur (MicroPython) n’est plus un phénomène isolé et atteint aujourd’hui un public beaucoup plus large aussi bien dans le monde des makers que dans le monde professionnel.
Ces dernières années, MicroPython a connu des portages sur de nombreuses plateformes microcontrôleurs réputées aussi bien dans le monde industriel, qu’en laboratoire ou dans l’apprentissage scolaire. Ainsi, MicroPython est sorti depuis longtemps de la niche des makers pour envahir le monde professionnel.
La société PyCom (www.pycom.io) offre des produits MicroPython professionnels axés sur la communication (WiFi, Bluetooth, LoRa, SigFox…). Les efforts de PyCom se portent aujourd’hui sur le traitement multitâche (multi-threading).
Adafruit Industries (www.adafruit.com) est mondialement réputé pour ses produits de prototypage Arduino et Raspberry Pi. Offrant un support MicroPython pour les microcontrôleurs Atmel ATSAMD, Adafruit a fait évoluer MicroPython vers CircuitPython afin de faciliter la prise en main matérielle dans le monde des makers et de l’enseignement. Il n’empêche que la qualité des produits Adafruit trouve aussi sa place dans le monde professionnel. Adafruit produit également de nombreuses bibliothèques CircuitPython...
Critères de sélection
Plusieurs critères entrent en ligne de compte lors de la sélection d’une plateforme de développement MicroPython, certains critères étant prépondérants suivant le domaine d’application dans lequel la plateforme sera exploitée.
Les caractéristiques permettent de comparer les aptitudes des différentes plateformes. Parmi ces caractéristiques, voici celles qui doivent retenir l’attention durant la sélection d’une plateforme.
Critères de sélection d’une plateforme MicroPython
1. Tension logique
Si une tension logique de 5 V était encore courante il y a une décennie, ce n’est plus vraiment le cas aujourd’hui. En effet, les nouvelles générations de microcontrôleurs adoptent une logique en 3,3 V comme nouveau standard de marché. À noter qu’il existe également des logiques en 2,5 V et 1,8 V, mais ces dernières restent cantonnées au monde professionnel.
De nombreux makers issus du monde Arduino devront être particulièrement attentifs à la tension logique. En effet, Arduino Uno et Arduino Mega utilisent une tension logique de 5 V et sont plutôt des « exceptions » dans le monde des microcontrôleurs. La plupart des plateformes récentes utilisent maintenant une tension logique de 3,3 V !
La puissance dynamique d’un processeur correspond à l’activité des portes logiques dans le processeur. Cette puissance se formalise avec la formule Pdyn=C*V2*freq et est proportionnelle au carré de la tension, d’où l’intérêt de diminuer la tension de fonctionnement du microcontrôleur.
Cette diminution de tension au sein du microcontrôleur permet de réduire la consommation énergétique de celui-ci et donc d’augmenter la durée de vie des projets fonctionnant sur batterie.
C’est également pour cette raison que les solutions modernes (ex. : systèmes informatiques) permettent de contrôler la tension de fonctionnement de leurs cœurs. En agissant de la sorte, il est possible de réduire considérablement la consommation énergétique lorsqu’il n’y a pas de traitement à...
Vue d’ensemble des plateformes disponibles
MicroPython a quitté depuis longtemps la niche des produits exotiques.
Aujourd’hui, il existe un large éventail de produits compatibles avec MicroPython allant des gammes professionnelles aux produits éducatifs. Établir une liste complète représente un travail colossal. La liste partielle initialement reprise dans cette section pourrait faire passer cet ouvrage pour un catalogue de produits MicroPython. Compte tenu de sa taille, cette liste est maintenant reprise en annexes (cf. Annexes - Plateformes MicroPython disponibles).
La section reprend une synthèse des plateformes et communautés qui les supportent.
Plateformes et communautés
Plateformes et communautés (suite)
Plateformes et communautés (suite)
1. STMicroelectronics (Pyboard et Pyboard-D)
Pyboard et Pyboard Lite
La toute première application de MicroPython fut réalisée sur un microcontrôleur STM32F405 avec la carte MicroPython Pyboard. Bien que cette carte existe également en version Lite et sans accéléromètre, la carte MicroPython Pyboard originale reste la plateforme de référence dans le domaine.
Carte MicroPython Pyboard originale
La carte Pyboard existe également en version Lite avec le même facteur de forme, mais un microcontrôleur sensiblement différent, permettant ainsi de réduire les coûts avec pour conséquences des performances moindres et un système de fichiers moins grand.
Les cartes Pyboard offrent de nombreux GPIO, une puissance de traitement impressionnante (avec son unité de calcul en virgule flottante), des sorties PWM, des sorties analogiques ainsi que des entrées analogiques dont certaines sont même blindées sur la carte (dite shielded) pour éviter les interférences. En plus de ces fonctionnalités, les bus SPI et I2C sont supportés au niveau matériel, ce qui améliore le taux de transfert en allégeant la charge de traitement sur le microcontrôleur.
La carte Pyboard dispose de suffisamment de ressources pour piloter un quadcopter (drone) et trouvera sans peine sa place dans les laboratoires. Le fait que la Pyboard expose sa mémoire comme un disque USB une fois branchée sur un ordinateur n’est pas étranger à son adoption....
MicroPython et CircruitPython
MicroPython n’est pas le seul mot-clé qui revient depuis le début de l’ouvrage. Le lecteur attentif aura également noté la mention régulière de CircuitPython !
Mascotte MicroPython et mascotte CircuitPython
Lorsqu’Adafruit Industries USA a porté MicroPython sur microcontrôleur Atmel (ATSAMD21, identique à Arduino Zero), ce portage s’est rapidement avéré populaire et porteur de débouchés commerciaux pour la société.
ItsyBitsy d’Adafruit Industries (compatible CircuitPython)
Depuis lors, Adafruit Industries édifie une gamme de produits et un portage systématique de ses breakouts populaires du code C (Arduino) vers la plateforme CircuitPython.
CircuitPython devient donc un écosystème complet édifié autour d’un dérivé de MicroPython.
CircuitPython est-il encore du MicroPython ?
Oui pour certaines raisons et non pour d’autres.
-
Oui, parce que CircuitPython est bien du MicroPython, le firmware développé par Damien George. CircuitPython est une couche de bibliothèques MicroPython offrant une API (interface de programmation) et des services permettant de supporter le matériel proposé par Adafruit Industries.
-
Non, car cette surcouche d’API de CircuitPython permettant d’accéder aux fonctionnalités matérielles du microcontrôleur (modules digitalio, busio, etc) est très différente de celle proposée par MicroPython (module machine qui sera abondamment utilisé...
Pyboard : extensions et communications
Nativement, la carte MicroPython Pyboard ne dispose ni d’écran, ni de support audio, ni de support Ethernet, WiFi ou Bluetooth.
Il est pourtant tout à fait possible d’ajouter des extensions officielles ou autres moyens de communication sur la Pyboard. De quoi permettre à la carte MicroPython de partir à l’assaut du monde et d’en apprendre plus sur ces technologies.
1. Boîtier officiel
Le boîtier officiel est réalisé en aluminium usiné et permet de manipuler la carte en toute sécurité tout en exposant les diverses broches des connecteurs d’entrées/sorties.
Boîtier MicroPython Pyboard
2. LCD Skin
LCD Skin (aussi appelé LCD160cr) est un écran tactile proposant une résolution de 160 x 128 pixels en couleur 16 bits avec une diagonale de 0,91" (23,1 mm).
LCD Skin, écran tactile 160 x 128 pixels
Cette interface est équipée d’un contrôleur spécialisé permettant d’accepter des commandes de contrôle via I2C (ou UART) et d’une interface SPI pour un transfert de données haut débit.
Avec de telles interfaces, la carte LCD Skin peut afficher des vidéos à 30 images par seconde (interface SPI) ou, comme un afficheur intelligent pour afficher du texte, dessiner des formes géométriques ou même servir de terminal pour un script en cours de fonctionnement (et même pour afficher une invite de commandes REPL).
L’interface tactile est basée sur un film résistif qui permet de détecter et localiser un contact simple point sur l’écran. Idéal pour réaliser des interfaces avancées.
Cette carte d’extension et son interface de programmation sont décrites plus en détail dans le chapitre des interfaces (cf. Capteurs et interfaces - Afficheurs).
À noter que la toute nouvelle version du LCD Skin inclut également les connecteurs compatibles avec Pyboard-D.
3. Audio Skin
Audio Skin est un module audio équipé d’un haut-parleur et d’un microphone. Cette carte équipée d’un amplificateur permet d’évaluer les possibilités des sorties analogiques (DAC) pour produire des sons et formes d’ondes....
Pyboard-D : extensions et communications
1. LCD Skin
L’écran tactile de la carte LCD Skin (aussi appelé LCD160cr) déjà présentée pour la carte Pyboard originale est également compatible avec la carte Pyboard-D.
LCD Skin, écran tactile 160 x 128 pixels
La carte LCD Skin expose un double connecteur Pyboard et WBUS (Pyboard-D).
Connecteur WBUS et Pyboard-D
2. Support Ethernet
Étant donné que la carte Pyboard-D dispose d’une connectivité WiFi, il est peu probable que l’interface Ethernet filaire soit d’une quelconque utilité.
Si cela devait cependant être le cas, les modules Ethernet utilisés avec la carte Pyboard originale pourront également l’être avec la carte Pyboard-D.
3. Support WiFi et Bluetooth
La carte Pyboard-D dispose déjà du support WiFi et Bluetooth LE (4.1). Il n’est donc pas nécessaire d’ajouter une interface complémentaire.
4. Cartes breakout
La carte Pyboard-D est plutôt destinée à l’intégration, mais propose néanmoins 16 GPIO au format DIP (facilement accessibles sur un breadboard) et deux fois plus lors de l’utilisation de connecteurs avec empattement 1,27 mm.
La totalité des GPIO est exposée sur les deux connecteurs WBUS à 40 broches disposés sous la carte. Ces connecteurs permettront...