Carte Pico(W)
Comment accéder à distance à l’interpréteur Python ?
-
Depuis un IDE (→ VSCode, Thonny)
-
Avec un émulateur de terminal série en le configurant avec la configuration suivante :
-
baud rate : 115200 bauds
-
data bits : 8
-
parity : none
-
stop bits : 1
-
La fin de ligne doit être CR + LF
-
Avec PuTTY, RealTerm aucun contrôle de flux n’est nécessaire. Cependant, avec Termite, il faut mettre en place un contrôle de flux RTS/CTS pour obtenir un prompt. 🤔
-
-
-
Avec l’outil
mpremote
Exemples de commandes :pip install --user mpremote (1) python -m mpremote help (2) python -m mpremote connect list (3) python -m mpremote connect COM27 (4) python -m mpremote run free.py (5) python -m mpremote fs ls (6) python -m mpremote mip install https://raw.githubusercontent.com/mcauser/micropython-tm1637/master/tm1637.py (7) python -m mpremote cp :fs-info.py . (8) python -m mpremote cp ./get-exif.py : (9) python -m mpremote cp ./tm1637.py :/lib/tm1637.py (10)
1 Installation de l’outil avec pip
. Remarque : ce paquet n’est pas présent dans les dépôts Anaconda2 Aide sur les commandes disponibles dans mpremote
3 Commande qui affiche les ports série sur lesquels une carte Pico est branchée 4 Accès au REPL de la carte Pico(W) sur le port indiqué (ici COM27
)5 Exécution en RAM du script python free.py
présent sur la machine depuis laquelle on accède à la carte Pico(W)6 Liste les fichiers présents sur la Pico(W) 7 Installation du module tm1637
8 copie le fichier fs-info.py
présent dans la racine de la Pico(W) dans le répertoire courant du PC de développement9 copie le fichier `get-exif.py``présent dans le répertoire courant du PC de développement dans la racine de la Pico(W) 10 copie le fichier tm1637.py
présent dans le répertoire courant du PC de développement dans le répertoire\lib
de la Pico(W) -
Avec l’outil
rshell
:Pour l’utiliser, il faut d’abord l’installer :
python -m pip install rshell conda install pyreadline3 (1)
1 cette installation est nécessaire sur Windows sous peine d’avoir l’erreur “AttributeError: module 'collections' has no attribute 'Callable'” lors du lancement de l’exécution de rshell
Une fois installé, on peut l’exécuter en lui fournissant le port où est connecté la Pico(W) :
(rpi-pico) [C:\Users\claud] (00:03:37) > rshell -p com27 Using buffer-size of 32 Connecting to com27 (buffer-size 32)... Trying to connect to REPL connected Retrieving sysname ... rp2 Testing if ubinascii.unhexlify exists ... Y Retrieving root directories ... /lib/ Setting time ... Aug 20, 2024 16:15:09 Evaluating board_name ... pyboard (1) Retrieving time epoch ... Jan 01, 1970 Welcome to rshell. Use the exit command to exit rshell. C:\Users\claud> boards (2) pyboard @ COM27 connected Epoch: 1970 Dirs: /lib /pyboard/lib C:\Users\claud> df (3) Filesystem Block size Blocks Used Available Capacity Mounted on /lib@pyboard 4096 212 6 206 3% /pyboard/lib C:\Users\claud> cd /pyboard (4) /pyboard> ls (5) lib/ fs-info.py /pyboard> cp fs-info.py /Users/claud/fs.py (6) Copying '/pyboard/fs-info.py' to '/Users/claud' ...
1 Nom sous lequel la carte est reconnue 2 Commande qui affiche les cartes connectées ainsi que les répertoires mappés dessus 3 Affiche le taux d’utilisation de la mémoire flash attribuée au système de fichiers 4 se déplace à la racine du système de fichiers 5 affiche les fichiers/répertoires du répertoire courant 6 Copie le fichier fs-info.py
dans le répertoireC:\Windows\Users\claud
du PC de développement
Comment afficher les ressources disponibles ?
-
Aide sur les modules :
>>> help('modules') (1) __main__ asyncio/__init__ hashlib rp2 _asyncio asyncio/core heapq select _boot asyncio/event io socket _boot_fat asyncio/funcs json ssl _onewire asyncio/lock lwip struct [...] >>> import json >>> help(json) (2) object <module 'json'> is of type module __name__ -- json dump -- <function> dumps -- <function> load -- <function> loads -- <function> >>> import machine >>> help(machine.Pin.board) (3) object <class 'board'> is of type type GP0 -- Pin(GPIO0, mode=ALT, pull=PULL_DOWN, alt=31) GP1 -- Pin(GPIO1, mode=ALT, pull=PULL_DOWN, alt=31) [...] LED -- Pin(EXT_GPIO0, mode=IN) WL_GPIO0 -- Pin(EXT_GPIO0, mode=IN) [...]
1 Liste des modules présents sur la carte. Noter la présence de simples quotes autour de modules
2 Liste des fonctions disponibles dans le module json
après son importation3 Liste des constantes prédéfinies désignant les broches -
Mémoire disponible :
On peut exécuter le script suivant :
free.pyimport os stat = os.statvfs("/") size = stat[1] * stat[2] free = stat[0] * stat[3] used = size - free KB = 1024 MB = 1024 * 1024 print("Size : {:,} bytes, {:,} KB, {} MB".format(size, size / KB, size / MB)) print("Used : {:,} bytes, {:,} KB, {} MB".format(used, used / KB, used / MB)) print("Free : {:,} bytes, {:,} KB, {} MB".format(free, free / KB, free / MB)) if size > 8 * MB : board, flash = "Unknown", 16 * MB elif size > 4 * MB : board, flash = "Unknown", 8 * MB elif size > 2 * MB : board, flash = "Unknown", 4 * MB elif size > 1 * MB : board, flash = "Pico", 2 * MB else : board, flash = "Pico W", 2 * MB print("{} board with {} MB Flash".format(board, flash // MB))
Resultat d’exécution :C:\Users\claud>python -m mpremote run ./free.py Size : 868,352 bytes, 848 KB, 0.828125 MB Used : 16,384 bytes, 16 KB, 0.015625 MB Free : 851,968 bytes, 832 KB, 0.8125 MB Pico W board with 2 MB Flash
On peut aussi obtenir l’information depuis
rshell
/pyboard> df (3) Filesystem Block size Blocks Used Available Capacity Mounted on /lib@pyboard 4096 212 6 206 3% /pyboard/lib
🞄 🞄 🞄