Installer et prendre en main le client série

Pour comprendre : principe général

Le principe général est le suivant :

  • on connecte la carte avec Micropython sur le port USB : un port série lui est attribué : /dev/ttyACM0 par exemple sous Gnu/Linux

  • on va alors pouvoir :

    • soit lancer le mode interpréteur et interagir directement avec la carte : TOP pour tester !
    • soit écrire des codes :
      • soit les exécuter dans la foulée en les stockant en RAM
      • soit pouvoir faire exécuter les codes au démarrage en les stockant sur la carte Flash

Ici, nous allons nous concentrer sur le premier outil, le client série. Dans la page suivante, on se concentrera sur le second outil nécessaire, l'éditeur MicroPython.

Prêt ? C'est parti...

C'est quoi le client série ?

Premier outil dont on va avoir besoin, c'est le "client série", qui va permettre de communiquer en "live" avec la carte directement via la connexion USB avec la carte.

Le terminal série ou moniteur série est l'outil qui va permettre de communiquer avec la carte Micropython en mode interpréteur, appelé aussi mode REPL.

Note

Pour mémoire, le langage Python en général et le langage Micropython en particulier, est un langage interprété : les instructions sont exécutées "à la volée" au fur et à mesure que le "moteur Python" les reçoit.

Lorsque l'on envoie les instructions Python manuellement à la volée, on parle de mode "interpréteur" ou REPL : c'est le mode interactif idéal pour un apprentissage, des tests, etc.

L'autre mode possible est bien évidemment l'exécution d'un script Micropython qui pourra soit être chargé en RAM, soit être placé sur la Flash pour ensuite être exécuté au reset de la carte.

Y'a le choix !

Il y a tout plein de clients série, et on a un peu l'embarras du choix. Voici quelques noms pour vous donner un aperçu :

Pour utiliser le mode REPL, on a besoin d'un "moniteur série" ou "terminal série" directement interactif. Parmi les outils possibles, on a :

  • rshell : un terminal série mais pas que, aussi un shell permettant la manipulation des fichiers etc. Plutôt complet (compliqué ?).
  • screen : un terminal série sous Linux qui s'exécute en ligne de commande. Simple à utiliser et choix conseillé. Du projet Gnu. Parfait sur un Pi notamment.
  • minicom : un autre terminal série minimaliste en ligne de commande. Avec des fonctions de transfert de fichier.
  • picocom : idem minicom
  • putty (Windows) : terminal série en ligne de commande sous Windows
  • ampy : comme rshell, en plus simple. Par Adafruit.

On détaille tous ces outils dans une rubrique dédiée du site, mais ce n'est pas le lieu ici : l'idée est juste de vous donner un aperçu.

Le choix conseillé RShell

On va utiliser RShell : cet outil fourni simultanément des fonctions d'utilitaire de gestion de fichier et une fonction d'interpréteur repl. Il est plutôt très utilisé et documenté. En pratique il s'avère surtout simple et efficace et c'est finalement ce qu'on demande à un tel outil.

Si on ne dispose pas de l'installateur pip3, on l'installera au préalable avec :

sudo apt-get install python3-pip

RShell s'installe avec l'installateur Python pip selon :

sudo pip3 installl rshell

Identifier le port série utilisé par le Pi Pico

A ce stade, connecter la carte Micropython à votre ordinateur. La carte va être reconnue comme un port série et sous Linux, vous pourrez l'identifier en faisant dans un terminal :

ls /dev/ttyACM*

Ce qui donne quelque chose comme :

/dev/ttyACM0  /dev/ttyACM1  /dev/ttyACM2  /dev/ttyACM3

Chaque port série correspond à un nom de la forme /dev/ttyACMx et il y en a autant qu'il y a de périphérique connectés à votre poste. Le dernier est celui correspondant au Pi Pico.

Lancement de RShell

A présent nous allons pouvoir lancer RSHell, notre "client série", en faisant :

rshell -p /dev/ttyACM3

Ce qui donne :

Se connecter à la carte en mode interpréteur (dit REPL)

On vient d'obtenir ici l'invite de RShell qui va permettre, et on le verra ultérieurement, de copier des fichiers vers la carte, etc. Mais ici, ce que nous voulons, c'est "discuter" avec la carte en mode interpréteur et pour cela on va activer ce mode dans RShell. A présent, il suffit de se connecter à la carte en mode REPL en faisant :

> repl

On obtient le message d'accueil suivi de l'invite (Micro)Python :

/home/pi> repl
Entering REPL. Use Control-X to exit.
>
MicroPython v1.14 on 2021-02-05; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>>
>>>

Nickel, on a le prompt >>> de l'interpréteur MicroPython.

Note

Pour ceux qui connaissent Python sur desktop, vous voyez ici que l'on obtient l'équivalent de l'invite Python système, sauf que là c'est la carte Micropython avec qui on parle. Bref, si vous connaissez Python, vous allez vite retrouver vos marques !

Si pour une quelconque raison, vous n'avez pas le prompt, appuyer sur entrée ou faire un Reset sur la carte ou bien faire CTRL+B.

Tada... on est paré pour saisir une première commande (Micro)Python :

>>> print("Hello World !")
Hello World !
>>>

Cette fois, tout est OK ! Vous êtes bien connecté à votre carte Pi Pico et vous "discutez" avec (Micro)Python qui vous répond.