Raspberry Pi Pico - Lire la configuration depuis la carte SD

Ce guide nous montrera comment utiliser le fichier de configuration sur une carte microSD. Nous apprendrons à propos de :

Fichier de configuration de la carte microSD du Raspberry Pi Pico

Préparation du matériel

1×Raspberry Pi Pico W
1×Raspberry Pi Pico Alternativement:
1×Câble Micro USB
1×Carte Micro SD
1×Module carte Micro SD
1×Fils de connexion
1×Optionnel: Adaptateur carte mémoire MicroSD vers SD
1×Recommandé: Carte d'extension à bornier à vis pour Raspberry Pi Pico

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module de carte microSD

Vous pouvez en apprendre davantage sur le module de carte Micro SD, y compris ses broches, son fonctionnement et la façon de le programmer, dans le guide Raspberry Pi Pico - carte microSD..

Comment ça fonctionne

Les paires clé-valeur sont stockées au préalable sur la carte microSD de cette manière :

  • Chaque paire clé-valeur est sur une ligne différente, séparée par un caractère de nouvelle ligne. La clé et la valeur sont séparées par un caractère =.

Le code pour le Raspberry Pi Pico va rechercher une clé, localiser la valeur correspondante et enregistrer cette valeur dans une variable. Cette variable peut être un int, float ou String.

Diagramme de câblage

Schéma de câblage du module microSD pour Raspberry Pi Pico

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

※ Note:

Si vous possédez un bouclier Ethernet ou n'importe quel bouclier qui dispose d'un emplacement pour carte Micro SD, vous n'avez pas besoin d'un adaptateur Micro SD séparé. Insérez simplement la carte Micro SD dans l'emplacement prévu sur le bouclier.

Comment lire la configuration dans des variables

  • Créez un fichier nommé config.txt sur votre ordinateur en utilisant Notepad ou Notepad++. Copiez les paires clé-valeur suivantes et collez-les dans le fichier config.txt.
myString_1=Hello myString_2=Raspberry Pi PicoGetStarted.com myInt_1=2 myInt_2=-105 myFloat_1=0.74 myFloat_2=-46.08
  1. Insérez la carte microSD dans l'ordinateur en utilisant un lecteur de carte SD USB 3.0.
  2. Assurez-vous que la carte microSD est formatée en FAT16 ou FAT32. Consultez les instructions en ligne si nécessaire.
  3. Déplacez le fichier 'config.txt' dans le répertoire principal de la carte microSD.
  4. Retirez la carte microSD de l'ordinateur.
  5. Branchez la carte microSD sur un Raspberry Pi Pico avec un module de carte microSD tel qu'illustré dans le schéma de câblage fourni.
  6. Copiez le code ci-dessous et ouvrez-le dans l'IDE Thonny.
/* * Ce code Raspberry Pi Pico a été développé par newbiely.fr * Ce code Raspberry Pi Pico est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/raspberry-pico/raspberry-pi-pico-read-config-from-sd-card */ import machine import os import sdcard # Define SPI pins for the Micro SD Card module SPI_SCK_PIN = 2 # The Raspberry Pi Pico pin GP2 connected to SCK SPI_MOSI_PIN = 3 # The Raspberry Pi Pico pin GP3 connected to MOSI SPI_MISO_PIN = 4 # The Raspberry Pi Pico pin GP4 connected to MISO SPI_CS_PIN = 5 # The Raspberry Pi Pico pin GP5 connected to SS (CS) FILE_NAME = "/sd/config.txt" # Variables my_int_1 = 0 my_int_2 = 0 my_float_1 = 0.0 my_float_2 = 0.0 my_string_1 = "" my_string_2 = "" def sd_find_key(key): """Search for a key in the config file and return its value as a string.""" try: f = open(FILE_NAME, "r") for line in f: line = line.strip() if "=" in line: k, v = line.split("=", 1) if k == key: f.close() return v f.close() except Exception as e: print("SD Card: Issue encountered while attempting to open the file", FILE_NAME, e) return None def sd_find_int(key): """Read a key from config file and return as int. """ value = sd_find_key(key) if value is not None: return int(value) return 0 def sd_find_float(key): """Read a key from config file and return as float.""" value = sd_find_key(key) if value is not None: return float(value) return 0.0 def sd_find_string(key): """Read a key from config file and return as string. """ value = sd_find_key(key) if value is not None: return value return "" # Initialize SD card using SoftSPI and sdcard driver spi = machine.SoftSPI(baudrate=1000000, polarity=0, phase=0, sck=machine.Pin(SPI_SCK_PIN), mosi=machine.Pin(SPI_MOSI_PIN), miso=machine.Pin(SPI_MISO_PIN)) cs = machine.Pin(SPI_CS_PIN, machine.Pin.OUT) try: sd = sdcard.SDCard(spi, cs) os.mount(sd, "/sd") print("SD Card initialized.") except Exception as e: print("SD CARD FAILED, OR NOT PRESENT!", e) raise SystemExit my_int_1 = sd_find_int("myInt_1") my_int_2 = sd_find_int("myInt_2") my_float_1 = sd_find_float("myFloat_1") my_float_2 = sd_find_float("myFloat_2") my_string_1 = sd_find_string("myString_1") my_string_2 = sd_find_string("myString_2") print("myInt_1 =", my_int_1) print("myInt_2 =", my_int_2) print("myFloat_1 =", my_float_1) print("myFloat_2 =", my_float_2) print("myString_1 =", my_string_1) print("myString_2 =", my_string_2) os.umount("/sd")
  • Appuyez sur le bouton Upload dans l'IDE Thonny pour transférer le code vers le Raspberry Pi Pico.
  • Regardez les résultats dans le moniteur série.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot SD Card initialized. myInt_1 = 2 myInt_2 = -105 myFloat_1 = 0.74 myFloat_2 = -46.08 myString_1 = Hello myString_2 = Raspberry Pi PicoGetStarted.com
MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡
  • Le moniteur série affiche les mêmes valeurs qui sont enregistrées sur la carte microSD.

Vous pouvez désormais modifier le code pour ajouter plus de variables.

※ Note:

Le code ignore l'ordre des paires clé-valeur. Il recherche la clé du début à la fin du fichier jusqu'à ce qu'il trouve une correspondance.

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !