Installer et prendre en main l'éditeur de code Python Geany

Travailler dans l'interpréteur, en mode REPL, c'est bien pour apprendre, faire des tests, mais l'objectif final est d'écrire des codes en MicroPython et par conséquent, on a logiquement besoin d'un éditeur de texte, idéalement à coloration syntaxique.

La doc officielle de la Raspberry Pi Foundation suggère d'utiliser un éditeur appelé Thonny : c'est une première possibilité donc.

Mais plutôt que d'utiliser un nouvel outil, j'ai tendance à conseiller de rester sur un éditeur polyvalent qui fait très bien le job, j'ai nommé Geany.

Note

Geany est d'autant plus intéressant qu'il est léger, et qu'il sert par ailleurs d'IDE pour écrire des codes Python "système". Inutiles de multiplier les outils différents donc. Mais si vous préférer faire un autre choix, libre à vous. Et comme vous allez le voir ici, Geany peut être configuré pour être utilisé simultanément avec Python "système" et MicroPython.

Y'a le choix !

Comme vous pouvez le voir, avec Micropython, on a le choix des outils : choix du client série, choix de l'éditeur... Au final, c'est la conséquence de la "plasticité" de Micropython qui ne vous fige ni dans un environnement de travail précis, ni sur une carte précise d'ailleurs. Une liberté bien sympathique qui permettra également de créer facilement ses propres interfaces, etc. Mais çà sera pour plus tard.

Installer Geany

Commencer par installer Geany selon votre cas. Sous Gnu/Linux, avec la commande :

sudo apt-get update
sudo apt-get install geany

Sinon, téléchargez-le sur le site : https://www.geany.org/Download/Releases Mais je déconseille cette façon de faire.

Créer un répertoire pour mettre vos codes Micropython

Aller sur votre bureau (ou ailleurs mais souvenez-en) et créer un répertoire où vous placerez vos codes MicroPython. Vous pouvez considérer ce répertoire comme votre répertoire de développement Micropython.

Créer donc un répertoire sur le poste fixe sur lequel vous travailler et où vous mettrez vos scripts micropython.

Installer Pyboard.py

Pour que Geany puisse "discuter" avec la carte, on va avoir besoin d'un utilitaire de communication, utilitaire fourni par le proet MicroPython.

Ce script qui est un script Python "classique" va permettre d'envoyer les codes à l'interpréteur micropython depuis le poste fixe.

Créer un répertoire sur le poste fixe où vous mettrez vos scripts micropython.

La première chose à faire est de déposer DANS LE REPERTOIRE DU POSTE FIXE où vous allez écrire vos codes micropython, le script Python "classique" suivant :

https://github.com/micropython/micropython/blob/master/tools/pyboard.py

Ce script va servir à lancer l'exécution du script micropython de son choix facilement.

A noter que vous pouvez facilement le télécharger en ligne de commande avec un Terminal ouvert dans votre répertoire Micropython (étant dans le répertoire, clic droit > ouvrir un Terminal ici) :

wget https://raw.githubusercontent.com/micropython/micropython/master/tools/pyboard.py

Configurer Geany

Ensuite, ouvrir Geany et créer un fichier vide que vous enregistrerez en l'appelant test.py ( aller dans Fichier > Nouveau > Enregistrer sous > test.py ) A noter qu'on peut aussi créer facilement ce fichier en étant dans un Terminal ouvert dans le répertoire en faisant :

geany test.py

Ensuite, aller dans le menu "Construire > Définir les commandes de construction", créer un bouton "MicroPython" en section "Exécuter"

et dans le champ mettre :

python3 pyboard.py --device '/dev/ttyACM0' "%f"

Note

Cette commande exécute le script pyboard.py à partir du Python desktop : pyboard.py reçoit en paramètres le port série utilisé (à adapter à votre situation le cas échéant) et le nom du fichier courant. Ceci a pour effet de lancer l'éxécution du script Python et d'afficher le résultat dans la console de Geany !!

ce qui donne :

Saisissez simplement :

print("Hello world !") 

ensuite, l'exécuter par Menu > COnstruire > MicroPython !

Note

Quand on lance le code de cette façon, on a un terminal qui s'ouvre dans Geany avec les sorties du code. Si on ferme ce terminal, le code n'est pas stoppé : il continue son exécution et on peut se connecter via le port série par exemple depuis une autre interface, terminal série notamment, pour communiquer avec le code.

Une fois que vous avez tout çà vous êtes parés.

Encore plus fort : téléverser façon Arduino

La précédente commande va flasher le programme dans la carte Micropython mais en RAM, pas en Flash et il ne sera pas actif au démarrage suivant. Pour obtenir un comportement "à la Arduino", autrement dit un programme téléversé s'exécutera à chaque reset ou nouveau démarrage, il faut utiliser la commande suivante dans Geany au lieu de la précédente :

python3 pyboard.py --device /dev/ttyACM0 -f cp "%f" :main.py && python3 pyboard.py --device /dev/ttyACM0 -c 'machine.reset()' --no-follow

Par contre, avec cette façon de faire, vous n'aurez plus les messages d'erreur du code. A réserver à mon avis à des codes opérationnels.

Adapter le chemin série à votre situation +++ !

C'est cadeau !

Cette dernière commande m'a demandé un peu de recherche, quelques essais et de "jugeote" pour l'obtenir, mais elle fonctionne à merveille et est une excellente façon de simplfier l'utilisation d'une carte Micropython, "façon Arduino". C'est à dire programmation définitive de la carte.