uPiCraft, un IDE dédié au développement d'objets connectés en MicroPython pour ESP8266, ESP32, microbit, pyBoard • Domotique et objets connectés à faire soi-même

Dans les deux précédents articles (déballage de la Wemos LoLin32 Lite sous MicroPython et comment (ré)installer le firmware MicroPython ), nous avons découvert succinctement le firmware MicroPython pré-installé sur la Wemos LoLin32 Lite. Le MicroPython est un portage du langage Python adapté aux micro-contrôleurs. On dispose d’un interpréteur (REPL et WebREPL depuis un navigateur) ainsi que d’un système de fichier qui permet de gérer les scripts. L’interpréteur de commande REPL (ou WebREPL) est parfait pour faire des tests, prendre en main l’environnement et faire des opérations de maintenance (configuration WiFi, gestion des scripts, arrêter un script…) mais c’est loin d’un éditeur.
Heureusement, l’équipe de Dfrobot a développé un petit éditeur de code (IDE) simple et très efficace. Il est même capable d’installer le firmware MicroPython dès qu’on branche une nouvelle carte de développement. Il supporte les cartes à base d’ESP32, ESP8266, Pyboard, WyPi et Micro:bit de la BBC. Nous allons découvrir tout ça maintenant

Installer uPyCraft sur Windows

Pour le moment l’IDE uPyCraft n’est disponible que pour Windows. Je l’ai testé sur un Windows 10 64-bits sans aucun plantage. Les versions pour macOS et Linux sont annoncées mais le lien n’est pas encore actif. Le code source n’est malheureusement pas proposé au téléchargement, impossible donc pour nous d’adapter et de compiler le code pour d’autres plateformes. La page de téléchargement d’uPiCraft est ici. uPiCraft est livré sous la forme d’un exécutable qui ne nécessite aucun installation. C’est très pratique pour l’emporter sur une clé USB.

Une documentation en partie traduite en anglais (le reste est en chinois) est accessible depuis le menu d’aide ou directement sur cette page web. Heureusement, Google translate peut venir à notre secours !

Installer le firmware MicroPython sur un ESP8266 ou ESP32

Si vous n’avez pas encore testé le firmware MicroPython, c’est peut être le moment. Munissez vous d’une carte ESP8266 ou ESP32. Ici, j’ai utilisé une Wemos d1 mini. Branchez la carte sur un port USB et lancer uPiCraft. Dans le menu Tools, ouvrez le sous-menu Serial et sélectionnez le port COM sur lequel est branché la carte. uPiCraft est capable d’installer le firmware sur les cartes à base d’ES8266, ESP32 ainsi que sur les cartes microbit de la BBC.

Il y a deux méthodes pour installer le firmware. La première consiste à se connecter à la carte en cliquant sur l’icône de connexion (attention, l’icône est inversée).

Si le firmware n’est pas détecté, une fenêtre s’ouvre et propose d’installer ce dernier. La seconde méthode consiste à appeler l’utilitaire d’installation Burn Firmware depuis le menu Tools.

Plusieurs options sont disponibles :

  • Il faut indiquer le type de carte : ESP8266, ESP32 ou microbit
  • On peut effacer la mémoire flash, la commande erase_flash de l’outil esptool.py. C’est préférable
  • Indiquer le port COM si plusieurs cartes sont connectées. Attention à le pas vous tromper, le mieux est de débrancher les autres cartes !
  • uPicraft est capable d’aller récupérer la dernière version disponible du firmware pour la carte sélectionnée. Une connexion internet est nécessaire pour cela
  • Sinon, on peut indiquer le chemin vers un firmware récupéré directement sur le site officiel de MicroPython ici

On termine en lançant l’installation du firmware.

Fonctionnalités proposées par uPiCraft

uPiCraft derrière son interface simple met à disposition toutes les fonctionnalités que l’on connait déjà sur les outils en ligne de commande rshel (présenté dans ce tutoriel) ou ampy d’Adafruit. L’énorme avantage d’uPiCraft est de pouvoir développer directement sur la carte. On peut à tout moment téléverser (Download) ou téléverser et exécuter (Download And Run) le script. On a également accès au système de fichier. On peut naviguer dans l’arborescence des dossiers et réaliser des

Le Workspace (espace de travail)

On dispose d’un espace de travail (Workspace) qui permet de gérer les projets.

Menu Fichier

Les options du menu fichier sont très classiques. Outre les fonctions de création, ouverture et sauvegarde de fichier, on y trouve également le menu Examples qui regroupe les exemples par catégories. Certains exemples sont de simples raccourcis qui indique l’exemple qui utilise la fonction recherchée. L’option flush Directory permet d’actualiser les dossiers et les fichiers de la barre de navigation latérale. C’est pratique lorsqu’on ajoute ou déplace manuellement des fichiers dans le workspace. C’est d’ailleurs le seul moment à notre disposition pour le moment pour organiser les fichiers dans le workspace. Il faut obligatoirement passer par le gestionnaire de fichier de Windows pour déplacer manuellement les fichiers dans les dossiers des projets.

Menu Edit

uPiCraft est un éditeur simple mais qui dispose toutefois d’une vérification syntaxique (option Check Syntax).

Menu Tools

Si vous voulez vous lancer dans le développement d’objets connectés en MicroPython, vous devez absolument tester uPiCraft. L’éditeur de code est capable de vérifier la syntaxe et d’indiquer les lignes concernées en cas d’erreur. La communication avec la carte est totalement transparente. On peut lancer ou interrompre un script à tout moment (avec la touche F5). Le script de démarrage boot.py est très facilement modifiable. Enfin uPiCraft propose quelques librairies qui manquent au firmware (mesures de température ds18b20, HT1632, MLX90614, écran OLED SSD1306, MQTT…). On trouvera également quelques exemples pour prendre en main le langage. On y accède depuis le menu File. La liste des exemples est modifiée en fonction de la carte de développement sélectionnée dans le menu Tools -> Board.

Barre d’icone et menu contextuel

On dispose enfin d’une barre de menu qui regroupe quelques commandes :

  • Créer un nouveau script
  • Ouvrir un fichier
  • Enregistrer le fichier courant
  • Envoyer et lancer le script sur la carte
  • Arrêter le script en cours d’exécution sur la carte
  • Connexion / déconnexion à la carte via le port série (attention, l’icône est inversée
  • Annuler (Undo) / refaire (Redo)
  • Vérifier la syntaxe
  • Effacer la console

On dispose enfin d’un menu contextuel pour réaliser les opérations sur les fichiers. On l’ouvre en faisant un clic droit sur un fichier. Le menu permet de :

  • Run : lance l’exécution du script
  • Open : récupère le script et ouvre celui-ci dans l’éditeur.
  • Close : ferme le fichier dans l’éditeur. Attention, il n’y a pas de vérification. Si des modifications ont été apportées au fichier, il faut déjà les enregistrer et envoyer le fichier avec l’option Download depuis le menu Tools.
  • Delete : efface le foichier
  • Default Run : uPiCraft créé un fichier main.py (lancé automatiquement au démarrage de la carte) et créé un lien vers le fichier pour le lancer au démarrage de la carte. C’est un bonne méthode pour structurer son projet plutôt que de tout coder dans le script main.py. Voici un exemple d’appel de script exec(open(‘./demo.py’).read(),globals())
  • Rename : pour renommer le fichier
  • New Dir : pour créer un nouveau dossier

Remarque concernant la manipulation des fichiers

Comme nous venons de le voir, les nouveaux scripts sont enregistrés dans le workspace. Pour les envoyer sur la carte, on peut procéder de 3 façons :

  • Depuis le menu Tools
    • Download pour le téléverser
    • DownloadAndRun pour le téléverser et l’exécuter directement
  • A l’aide de la souris, on peut directement glisser le fichier sur le device. Il n’est pas possible de déplacer un dossier complet dans cette version

Un petit exemple pour finir

Rien de mieux qu’un petit exemple pour conclure cet article. Allez dans le menu File puis dans les exemples Basic, ouvrez le script Blynk. Modifiez la broche. Ici, j’ai connecté la LED sur la broche D4 qui correspond au GPIO2. En cas de besoin, voici le repérage des broches de l’ESP8266. Contrairement à la programmation des ESP8266 en C++ avec l’IDE Arduino, il n’y a pas de mappage des broches. Par exemple, on doit indiquer 2 au lieu de D4.

38zhoq0okw2omebvybft-4322061

Créer un nouveau script et collez le code ci-dessous en modifiant la broche dans la déclaration (ligne 5).

#hardware platform: FireBeetle-ESP8266

import time
from machine import Pin
led=Pin(2,Pin.OUT)

while True:
  led.value(1)
  time.sleep(0.5)
  led.value(0)
  time.sleep(0.5)

Assurez-vous d’être connecté à l’ESP8266 puis appuyez sur F5 pour téléverser et lancer le script. La Led doit commencer à clignoter immédiatement. Pour interrompre le script, placez le curseur dans la console en bas de l’écran et appuyez sur CTRL + C.


Si la Led est resté allumée, exécutez les commandes suivantes

>>> from machine import Pin
>>> led=Pin(2,Pin.OUT)
>>> led.value(0)

Voilà, j’espère que vous aurez envie d’essayer le MicroPython maintenant. C’est un langage extrêmement puissant et assez simple à prendre en main. Dans le prochain tutoriel, nous verrons comment gérer la connexion WiFi.

Avez-vous aimé cet article ?