Environnement de travail
Avant-propos
Ce chapitre présente plusieurs outils pour travailler avec MicroPython Pyboard. À la lecture de ce chapitre, l’utilisateur comprendra qu’il n’est pas cantonné à une configuration donnée, un logiciel donné ou un système d’exploitation donné.
Les outils avec une interface utilisateur fenêtrée sont généralement considérés comme plus confortables à l’usage, même si cela se fait parfois au prix de limitations techniques.
A contrario, les outils en ligne de commande offrent souvent des possibilités avancées et fort utiles. Ces outils pourtant puissants et simples d’usage n’ont que rarement bonne presse auprès des utilisateurs d’environnements graphiques à cause, justement, de leur manque de convivialité.
Interfaces de communication avec la Pyboard
Le premier chapitre exposait les deux interfaces de communication de la Pyboard qui sont :
-
Périphérique de stockage de masse permettant d’accéder aux scripts Python (fichiers) comme sur un lecteur USB.
-
Port USB-série permettant d’accéder à l’interpréteur de commandes Python (REPL) disponible sur le microcontrôleur.
Les outils proposés dans ce chapitre s’appuient donc sur ces moyens de communication.
Les utilisateurs de la Pyboard-D disposant d’une...
Manipulation de fichiers
L’approche la plus simple pour manipuler les fichiers est d’utiliser le navigateur de fichiers du système d’exploitation. En effet, la carte Pyboard expose le système de fichiers MicroPython interne comme un lecteur disque USB. Il est donc très facile de consulter, créer, modifier ou même copier des fichiers depuis ou vers la Pyboard.
Utiliser un navigateur de fichiers avec la Pyboard
Attention cependant à l’effacement des fichiers, car ceux-ci ne sont généralement pas effacés mais parqués dans un répertoire caché qui sert de corbeille. Ces fichiers consomment donc toujours de la place sur le système de fichiers, ce qui peut être gênant lorsque la taille du système de fichiers est limitée à 96 Kio (soit la place disponible en mémoire flash).
Les utilisateurs de Windows utiliseront la combinaison de touches [Ctrl][DEL] pour effacer le fichier sans passer par la corbeille. Les utilisateurs de Linux opteront pour l’effacement (et non la mise « en corbeille »).
Éditeur de texte
Pour travailler avec MicroPython, le seul outil vraiment nécessaire est un éditeur de texte capable de sauvegarder des documents au format UTF-8 (Notepad, Xed, Pluma, Notepad++, Sublime Text).
Ces fichiers peuvent être édités directement sur la carte Pyboard comme cela se ferait avec n’importe quel disque USB. Il est également possible d’éditer le fichier sur ordinateur avant de le copier sur la Pyboard.
Ouvrir un fichier sur Pyboard avec un éditeur de texte
L’éditeur de texte par défaut du système d’exploitation convient parfaitement à la manipulation de scripts Python.
Quel que soit l’environnement utilisé, et comme pour tout script Python, il faut rester cohérent dans l’usage de l’indentation (espaces ou tabulations).
1. Atom (multiplateforme)
Atom est un éditeur de code multiplateforme (Windows, Mac, Linux) open source devenu très populaire malgré sa jeunesse (apparu en 2014).
Atom se présente comme l’éditeur de texte hackable (modifiable) du 21e siècle. Sa qualité et la multitude de greffons disponibles en font un outil de choix pouvant sans problème tenir la comparaison avec Sublime Text, Visual Studio Code ou même VIM (apprécié par les érudits).
Éditeur de code Atom
Atom propose un éditeur multivolet, un gestionnaire de fichiers, une intégration avec GitHub, un outil de remplacement évolué et le système d’autocomplétion.
Ce qui distingue Atom, c’est son gestionnaire de paquets (package manager) et la saisie de commande (command pallet) via la combinaison de touches [Ctrl][Shift] P qui permet d’invoquer facilement, à partir d’un mot-clé, toutes les commandes et options d’Atom (outil qui affiche également les raccourcis clavier associés).
Par exemple, la combinaison [Ctrl][Shift] P et le mot « package » permet d’atteindre rapidement le gestionnaire de paquets (Package and theme manager).
Recherche par mot-clé
Une fois le gestionnaire de paquets ouvert, il est possible de rechercher un paquet particulier (une extension pour l’éditeur Atom).
Recherche et installation de paquet dans l’éditeur Atom
Ci-dessous vous sont présentés...
Console série et REPL
MicroPython expose également un interpréteur de commande Python sur le port série-USB : l’interpréteur REPL (Read-Eval-Print-Loop, boucle de lecture, évaluation et affichage). REPL agit comme un terminal Python. Il permet de saisir des commandes Python sur le microcontrôleur et d’afficher le résultat produit par celui-ci.
L’un des intérêts de la plateforme MicroPython se situe justement dans cette interface permettant d’interagir avec le microcontrôleur. REPL permet de tester des instructions et modules Python et offrira d’inestimables services durant les séances de tests et débogages.
La capture suivante met justement cette fonctionnalité à l’honneur en permettant le chargement du module chess.py (voir instruction import chess sur l’invite de commande >>>). Différents messages sont affichés par les scripts y compris le message d’erreur, pile d’appel et toute l’information nécessaire au débogage.
C’est exactement comme sur un ordinateur sauf que c’est sur un microcontrôleur.
Session REPL : Affichage de messages et erreurs
Le lecteur avisé notera que la session REPL (ligne de commande interactive Python) est démarrée à l’aide d’une commande repl. Celle-ci est saisie dans l’utilitaire...
Outils intégrés
L’interpréteur de commandes disponible sur le port USB-série permet de se passer complètement du périphérique de stockage de masse exposé par la Pyboard. Il est en effet possible, à l’aide d’outils appropriés, de transférer des fichiers et manipuler le système de fichiers de la Pyboard uniquement par l’intermédiaire du port série.
1. RShell
RShell est un utilitaire Python 3 écrit par Dave Hylands et proposant une interface utilisateur similaire au shell Linux. Cet utilitaire est donc destiné à recevoir des commandes de type shell (ls, cp, cd, cat, mkdir...) permettant de transférer des fichiers depuis/vers une carte MicroPython, d’afficher et éditer le contenu de fichiers, de démarrer une session REPL sans quitter l’utilitaire RShell.
RShell est capable d’exploiter les connexions série et/ou Telnet pour communiquer avec une ou plusieurs cartes MicroPython.
Bien qu’il existe d’autres utilitaires, la maîtrise d’un outil comme RShell apporte de réels avantages sur le long terme.
RShell utilisant Python 3, celui-ci s’installe comme un paquet Python à l’aide de l’utilitaire pip3.
a. Linux et Raspbian
Saisissez la commande pip3 (Python Install Package) suivante sur une machine Linux ou un Raspberry Pi pour installer RShell.
sudo pip3 install rshell
Ce qui collecte l’utilitaire et l’installe sur le système.
Installation de RShell
Ensuite, pour utiliser RShell, il suffit de saisir la commande rshell depuis un terminal. L’utilitaire explore les ports série et se connecte automatiquement sur la carte MicroPython présente.
L’exemple ci-dessous montre RShell en action. Les deux commandes ls permettent d’explorer le contenu du système de fichiers de la carte Pyboard (aussi bien la mémoire flash interne que l’éventuelle carte SD connectée sur la carte).
RShell explorant le système de fichiers MicroPython
L’utilitaire RShell sera détaillé...