Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. MicroPython et Pyboard
  3. Environnement de travail
Extrait - MicroPython et Pyboard Python sur microcontrôleur : de la prise en main à l'utilisation avancée
Extraits du livre
MicroPython et Pyboard Python sur microcontrôleur : de la prise en main à l'utilisation avancée
3 avis
Revenir à la page d'achat du livre

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.

images/04RI01.png

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.

images/04RI02.png

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).

images/04RI31.png

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).

images/04RI30.png

É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).

images/04RI32.png

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).

images/04RI33.png

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.

images/04RI09.png

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.

images/05RI54.png

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).

images/04RI20.png

RShell explorant le système de fichiers MicroPython

L’utilitaire RShell sera détaillé...