Se connecter sur le shell du Raspberry Pico en ligne de commande

Objectif :

C’est de se connecter sur le shell du Raspberry Pico via la ligne de commande Linux

Distribution de travail : Lubuntu 22.04

Pour en savoir plus :
https://mikeesto.medium.com/uploading-to-the-raspberry-pi-pico-without-thonny-53de1a10da30
https://www.twilio.com/blog/programming-raspberry-pi-pico-microcontroller-micropython
https://www.mfitzp.com/using-micropython-raspberry-pico/

1/ Il faut tout d’abord connaître le device (port série) où est connecté le Raspberry Pico.

– Ainsi, sous Linux, avant de brancher le Raspberry Pico, lister les devices des ports séries :

util01@station40:~$ ls /dev/tty*
/dev/tty /dev/tty20 /dev/tty33 /dev/tty46 /dev/tty59 /dev/ttyS12 /dev/ttyS25
/dev/tty0 /dev/tty21 /dev/tty34 /dev/tty47 /dev/tty6 /dev/ttyS13 /dev/ttyS26
/dev/tty1 /dev/tty22 /dev/tty35 /dev/tty48 /dev/tty60 /dev/ttyS14 /dev/ttyS27
/dev/tty10 /dev/tty23 /dev/tty36 /dev/tty49 /dev/tty61 /dev/ttyS15 /dev/ttyS28
/dev/tty11 /dev/tty24 /dev/tty37 /dev/tty5 /dev/tty62 /dev/ttyS16 /dev/ttyS29
/dev/tty12 /dev/tty25 /dev/tty38 /dev/tty50 /dev/tty63 /dev/ttyS17 /dev/ttyS3
/dev/tty13 /dev/tty26 /dev/tty39 /dev/tty51 /dev/tty7 /dev/ttyS18 /dev/ttyS30
/dev/tty14 /dev/tty27 /dev/tty4 /dev/tty52 /dev/tty8 /dev/ttyS19 /dev/ttyS31
/dev/tty15 /dev/tty28 /dev/tty40 /dev/tty53 /dev/tty9 /dev/ttyS2 /dev/ttyS4
/dev/tty16 /dev/tty29 /dev/tty41 /dev/tty54 /dev/ttyprintk /dev/ttyS20 /dev/ttyS5
/dev/tty17 /dev/tty3 /dev/tty42 /dev/tty55 /dev/ttyS0 /dev/ttyS21 /dev/ttyS6
/dev/tty18 /dev/tty30 /dev/tty43 /dev/tty56 /dev/ttyS1 /dev/ttyS22 /dev/ttyS7
/dev/tty19 /dev/tty31 /dev/tty44 /dev/tty57 /dev/ttyS10 /dev/ttyS23 /dev/ttyS8
/dev/tty2 /dev/tty32 /dev/tty45 /dev/tty58 /dev/ttyS11 /dev/ttyS24 /dev/ttyS9
util01@station40:~$

– Brancher ensuite le Raspberry Pico.

– Relister les devices :

util01@station40:~$ ls /dev/tty*
/dev/tty /dev/tty21 /dev/tty35 /dev/tty49 /dev/tty62 /dev/ttyS16 /dev/ttyS3
/dev/tty0 /dev/tty22 /dev/tty36 /dev/tty5 /dev/tty63 /dev/ttyS17 /dev/ttyS30
/dev/tty1 /dev/tty23 /dev/tty37 /dev/tty50 /dev/tty7 /dev/ttyS18 /dev/ttyS31
/dev/tty10 /dev/tty24 /dev/tty38 /dev/tty51 /dev/tty8 /dev/ttyS19 /dev/ttyS4
/dev/tty11 /dev/tty25 /dev/tty39 /dev/tty52 /dev/tty9 /dev/ttyS2 /dev/ttyS5
/dev/tty12 /dev/tty26 /dev/tty4 /dev/tty53 /dev/ttyACM0 /dev/ttyS20 /dev/ttyS6
/dev/tty13 /dev/tty27 /dev/tty40 /dev/tty54 /dev/ttyprintk /dev/ttyS21 /dev/ttyS7
/dev/tty14 /dev/tty28 /dev/tty41 /dev/tty55 /dev/ttyS0 /dev/ttyS22 /dev/ttyS8
/dev/tty15 /dev/tty29 /dev/tty42 /dev/tty56 /dev/ttyS1 /dev/ttyS23 /dev/ttyS9
/dev/tty16 /dev/tty3 /dev/tty43 /dev/tty57 /dev/ttyS10 /dev/ttyS24
/dev/tty17 /dev/tty30 /dev/tty44 /dev/tty58 /dev/ttyS11 /dev/ttyS25
/dev/tty18 /dev/tty31 /dev/tty45 /dev/tty59 /dev/ttyS12 /dev/ttyS26
/dev/tty19 /dev/tty32 /dev/tty46 /dev/tty6 /dev/ttyS13 /dev/ttyS27
/dev/tty2 /dev/tty33 /dev/tty47 /dev/tty60 /dev/ttyS14 /dev/ttyS28
/dev/tty20 /dev/tty34 /dev/tty48 /dev/tty61 /dev/ttyS15 /dev/ttyS29

– Identifier ensuite celui qui est apparut, ici :

/dev/ttyACM0

Cela correspond au port série qu’utilise le Raspberry Pico.

2/ Installation de l’outil ‘rshell‘.

util01@station40:~$ pip3 install rshell

3/ Lancer ‘rshell’.

util01@station40:~$ /home/util01/.local/bin/rshell
Connecting to /dev/ttyACM0 (buffer-size 512)...
Trying to connect to REPL connected
Retrieving sysname ... rp2
Testing if sys.stdin.buffer exists ... Y
Retrieving root directories ... /bonjour.mpy/
Setting time ... Nov 29, 2022 19:47:16
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Welcome to rshell. Use Control-D (or the exit command) to exit rshell.
/home/util01>

4/ L’espace de stockage du Raspberry Pico est le répertoire ‘/pyboard/‘.

/home/util01> cd /pyboard/
/pyboard> ls
bonjour.mpy
/pyboard>

5/ Pour visualiser l’aide en-ligne :

/home/util01> help

Documented commands (type help <topic>):
========================================
args cat connect date edit filesize help mkdir rm shell
boards cd cp echo exit filetype ls repl rsync

Use Control-D (or the exit command) to exit rshell.
/home/util01>

 

6/ Activer le shell interactif du Raspberry Pico : REPL (Read-Eval-Print-Loop )

/home/util01> repl
Entering REPL. Use Control-X to exit.
>
MicroPython v1.19.1 on 2022-06-18; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>>
>>>

7/ Depuis REPL, exécuter une commande Python.

>>> print("Raspberry Pico")
Raspberry Pico

8/ Vous avez aussi la possibilité de lancer directement REPL depuis le shell Linux.

util01@station40:~$ /home/util01/.local/bin/rshell repl
Connecting to /dev/ttyACM0 (buffer-size 512)...
Trying to connect to REPL connected
Retrieving sysname ... rp2
Testing if sys.stdin.buffer exists ... Y
Retrieving root directories ... /bonjour.mpy/
Setting time ... Nov 29, 2022 19:57:15
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Entering REPL. Use Control-X to exit.
>
MicroPython v1.19.1 on 2022-06-18; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>>
>>>

9/ Avec l’outil ‘ampy‘, vous pouvez gérer un programme Python en ligne de commande depuis le shell Linux.

On installe donc ‘adadruit-ampy‘ :

util01@station40:~$ pip3 install adafruit-ampy

On transfère tout d’abord un fichier :

/home/util01/.local/bin/ampy --port /dev/ttyACM0 put bonjour.py

Le fichier ‘bonjour.py‘ affiche tout simplement la chaine de caractère : Bonjour tout le monde

On peut vérifier si le fichier a été copier en listant les fichiers :

util01@station40:~/HACKLABFR/mpy$ /home/util01/.local/bin/ampy --port /dev/ttyACM0 ls
/bonjour.mpy
/bonjour.py

Finalement, on exécute le programme Python :

util01@station40:~/HACKLABFR/mpy$ /home/util01/.local/bin/ampy --port /dev/ttyACM0 run bonjour.py
Bonjour tout le monde

Pour supprimer un fichier :

util01@station40:~/HACKLABFR/mpy$ /home/util01/.local/bin/ampy --port /dev/ttyACM0 rm bonjour.py
util01@station40:~/HACKLABFR/mpy$ /home/util01/.local/bin/ampy --port /dev/ttyACM0 ls
/bonjour.mpy

Les commentaires sont fermés