Puisque l'environnement MicroPython comporte un système de fichiers, il est très facile de créer et de lire des fichiers dans la mémoire flash interne du Raspberry Pi Pico. De cette façon, vous pouvez stocker des informations dont votre script a besoin pour bien fonctionner (des préférences de l'utilisateur, par exemple) , enregistrer des mesures prises périodiquement (data logging), etc.
Évidemment, vos fichiers ne doivent pas être trop volumineux (nous disposons d'un espace total de 1,4 Mo) et leur mise à jour ne doit pas être trop fréquente (afin de ne pas provoquer une usure prématurée de votre Raspberry Pi Pico). Pour de nombreuses applications, l'utilisation d'une carte SD (ou d'un autre périphérique de stockage) s'avère préférable, voire nécessaire.
Exemple #1
Dans ce premier exemple, un nombre aléatoire est écrit à l'intérieur d'un fichier texte intitulé "hasard.txt". Le fichier sera automatiquement créé s'il n'existait pas déjà. Puisque j'ai utilisé l'argument "a" (append), le nouveau nombre est ajouté à la fin du fichier, dont le contenu initial demeure intact.
Dans un deuxième temps, le fichier est lu (notez l'utilisation de l'argument "r": read) et son contenu est affiché dans la console.
-
''' | |
Écriture d'un nombre aléatoire dans un fichier | |
enregistré dans la mémoire flash interne du | |
Raspberry Pi Pico. | |
Plus d'infos: | |
https://electroniqueamateur.blogspot.com/2021/10/ecriture-et-lecture-de-fichiers-avec-le.html | |
''' | |
import machine, random # pour la génération du nombre aléatoire | |
random.seed(machine.ADC(26).read_u16()) # obtention de la graine du générateur pseudo-aléatoire | |
file = open ("hasard.txt", "a") # fichier ouvert en écriture | |
file.write(str(random.randint(0, 100000))) # on ajoute un nombre aléatoire | |
file.write('\n') # on passe à la ligne suivante | |
file.close() # fermeture du fichier | |
file = open ("hasard.txt", "r") # fichier ouvert en lecture | |
print("Contenu du fichier: ") | |
print(file.read()) # afichage du contenu du fichier | |
file.close() # fermeture du fichier |
-
Exemple #2
Dans ce deuxième exemple, j'enregistre dans un fichier la date et l'heure de la dernière exécution du script. Dans un premier temps, on ouvre le fichier "date.txt" pour connaître la date et l'heure de l'exécution précédente du fichier. Il est possible que ce fichier n'existe pas encore, d'où l'utilisation de try/except pour éviter que le script s'interrompe avec un message d'erreur.
Ensuite, le fichier est ouvert en écriture pour remplacer l'ancienne date par la nouvelle (cette fois, l'argument est "w", write, et le contenu précédent est donc remplacé par la nouvelle information).
-
''' | |
Lecture / écriture de fichiers avec un Raspberry Pi Pico. | |
Le fichier "date.txt" renferme la date de la dernière exécution du script. | |
On ouvre d'abord le fichier pour lire son contenu, puis on l'ouvre à nouveau pour | |
y inscrire la nouvelle date. | |
Plus d'infos: | |
https://electroniqueamateur.blogspot.com/2021/10/ecriture-et-lecture-de-fichiers-avec-le.html | |
''' | |
from machine import RTC # pour connaître la date et l'heure | |
rtc = RTC() | |
demarrage = rtc.datetime() # obtention de la date et de l'heure | |
print("Date actuelle: {:02d}-{:02d}-{:04d}".format(demarrage[2],demarrage[1],demarrage[0])) | |
print("Heure actuelle: {:02d}:{:02d}:{:02d}".format(demarrage[4],demarrage[5],demarrage[6])) | |
print("") | |
# ouverture du fichier en lecture | |
try: | |
file = open ("date.txt", "r") | |
print("Execution precedente de ce script:") | |
print(file.read()) | |
file.close() | |
except: # si le fichier n'existe pas | |
print("Il s'agit de la premiere execution de ce script.") | |
# mise à jour du fichier (on remplace la date précédente par la nouvelle): | |
file = open ("date.txt", "w") | |
file.write("Date: {:02d}-{:02d}-{:04d}".format(demarrage[2],demarrage[1],demarrage[0])) | |
file.write('\n') | |
file.write("Heure: {:02d}:{:02d}:{:02d}".format(demarrage[4],demarrage[5],demarrage[6])) | |
file.close() | |
-
Gestion des fichiers
Si vous programmez votre Pico avec Thonny, le volet "Fichiers" affiche la liste de tous les fichiers enregistrés dans la mémoire interne du Pico. Il est possible d'effacer un fichier grâce à un clic droit de la souris.
Il est également possible de gérer les fichiers grâce à un script en micropython. Le script ci-dessous, par exemple, affiche la liste des fichiers présents sur le Pico:
-
''' | |
On affiche la liste des fichiers enregistrés | |
dans la mémoire flash interne du Raspberry Pi Pico | |
''' | |
import os | |
print("Liste des fichiers:") | |
print(os.listdir()) |
-
À lire également
- Programmer le Raspberry Pi Pico en MicroPython avec Thonny
- Raspberry Pi Pico et carte SD
- Utilisation de l'horloge interne du Raspberry Pi Pico (machine.RTC)
- Jouer une mélodie avec le Raspberry Pi Pico
Yves Pelletier (Facebook)