Modifications

Sauter à la navigation Sauter à la recherche
2 799 octets ajoutés ,  23 septembre 2018 à 15:11
Ligne 1 : Ligne 1 :  
{{FEATHER-M0-EXPRESS-NAV}}
 
{{FEATHER-M0-EXPRESS-NAV}}
   −
{{traduction}}
   
== Introduction ==  
 
== Introduction ==  
 
Une des fonctionnalités les plus captivante du M0 express est la petite puce mémoire flash additionnel (en SPI) placée sur la carte. Cette mémoire peut être utilisé pour fournir de nombreux services tels que le stockage de fichiers de données, du code Python et plus.
 
Une des fonctionnalités les plus captivante du M0 express est la petite puce mémoire flash additionnel (en SPI) placée sur la carte. Cette mémoire peut être utilisé pour fournir de nombreux services tels que le stockage de fichiers de données, du code Python et plus.
Ligne 97 : Ligne 96 :  
Voilà, nous en avons terminé avec les opérations fondamentales de lecture et d'écriture. Voyez l'exemple '''fatfs_full_usage''' pour un apercu des fonctionnalités avancées tels que la création de répertoire, effacement de fichiers et répertoires, obtention de la taille d'un fichier, etc!  Rappelez vous que pour interagir avec les fichiers CircuitPython, il faudra utiliser la classe '''Adafruit_Feather_M0_CircuitPython''' comme indiqué dans l'exemple ci-dessus!
 
Voilà, nous en avons terminé avec les opérations fondamentales de lecture et d'écriture. Voyez l'exemple '''fatfs_full_usage''' pour un apercu des fonctionnalités avancées tels que la création de répertoire, effacement de fichiers et répertoires, obtention de la taille d'un fichier, etc!  Rappelez vous que pour interagir avec les fichiers CircuitPython, il faudra utiliser la classe '''Adafruit_Feather_M0_CircuitPython''' comme indiqué dans l'exemple ci-dessus!
   −
== Format Flash Memory ==
+
== Formatter  la mémoire Flash ==
The '''fatfs_format''' example will format the SPI flash with a new blank filesystem.  '''Be warned this sketch will delete all data on the flash memory, including any Python code or other data you might have stored!'''  The format sketch is useful if you'd like to wipe everything away and start fresh, or to help get back in a good state if the memory should get corrupted for some reason.
+
L'exemple '''fatfs_format''' formattera le contenu de la FLASH SPI avec un système de fichier flambant neuf.  '''ATTENTION, ce croquis effacera toutes les données de la mémoire flash, inluant tout le code python et autres données que vous pourriez avoir stocké dans la mémoire FLASH!'''.
   −
'''Be aware too the fatfs_format and examples below are not compatible with a CircuitPython-formatted flash chip!'''  If you need to share data between Arduino & CircuitPython check out the '''fatfs_circuitpython''' example above.
+
Le croquis de formatage est utile si vous avez besoin d'effacer TOUS les élément pour redémarrer avec un environnement propre. Le croquis permet également de retrouver un état stable si, pour une raison ou une autre, le système de fichier était corrompu.
   −
To run the format sketch load it in the Arduino IDE and upload it to the Feather M0 board.  Then open the serial monitor at 115200 baud.  You should see the serial monitor display a message asking you to confirm formatting the flash.  If you don't see this message then close the serial monitor, press the board's reset button, and open the serial monitor again.
+
{{ambox|text=Le croquis fatfs_format et les exemples ci-dessous ne sons pas compatibles avec le système de fichier CircuitPython!'''. Si vous avez besoin de partager des données entre Arduino et CircuitPython alors prenez le temps de consulter l'exemple '''fatfs_circuitpython''' ci-dessus.}}
 +
 
 +
Pour executer le croquis de formattage, chargez le dans Arduino IDE et téléversez le sur la carte Feather M0. Ouvrez ensuite le moniteur série (à 115200 baud). Vous devriez voir un message demandant une confirmation avant de formatter la mémoire Flash.  
 +
 
 +
Si vous ne voyez pas ce message alors fermez le moniteur série, appuyez sur le bouton reset et réouvrez le moniteur série.
    
{{ADFImage|FEATHER-M0-ArduinoIDE-SPI-Flash-01.png}}
 
{{ADFImage|FEATHER-M0-ArduinoIDE-SPI-Flash-01.png}}
   −
Type '''OK''' and press enter in the serial monitor input to confirm that you'd like to format the flash memory.  '''You need to enter OK in all capital letters!  '''
+
Saisissez '''OK''' dans le moniteur série et pressez le bouton d'envoi pour confirmer votre intention de formater la mémoire Flash. '''Il est nécessaire de saisir OK en capital!  '''
 +
 
 +
Une fois confirmé, le croquis formattera la mémoire Flash SPI. La processus d'effacement et formatage prend environ une minute. Le croquis affiche un message une fois le formatage terminé. Voilà, vous disposez d'une mémoire FLASH prête à l'emploi et avec un tout nouveau système de fichier.
   −
Once confirmed the sketch will format the flash memory.  The format process takes about a minute so be patient as the data is erased and formatted.  You should see a message printed once the format process is complete.  At this point the flash chip will be ready to use with a brand new empty filesystem.
+
=== Erreur de formattage ===
 +
Si vous n'arrivez pas à formater la mémoire Flash et recevez ce message d'erreur:
 +
<nowiki>Adafruit SPI Flash FatFs Format Example
 +
Flash chip JEDEC ID: 0x1401501
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
This sketch will ERASE ALL DATA on the flash chip and format it with a new filesystem!
 +
Type OK (all caps) and press enter to continue.
 +
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
Partitioning flash with 1 primary partition...
 +
Couldn't read sector before performing write!
 +
Error, f_fdisk failed with error code: 1</nowiki>
   −
== Datalogging Example ==
+
Alors il faut revenir à une version plus ancienne de la bibliothèque en attendant le correction de la bibliothèque.
One handy use of the SPI flash is to store data, like datalogging sensor readings.  The '''fatfs_datalogging''' example shows basic file writing/datalogging.  Open the example in the Arduino IDE and upload it to your Feather M0 board.  Then open the serial monitor at 115200 baud.  You should see a message printed every minute as the sketch writes a new line of data to a file on the flash filesystem.
     −
To understand how to write to a file look in the loop function of the sketch:
+
Voir [https://forums.adafruit.com/viewtopic.php?f=57&t=128979&p=641983#p641983 ce lien sur les forums d'Adafruit].
   −
<syntaxhighlight lang="python">
+
== Exemple de Datalogging ==
   // Open the datalogging file for writingThe FILE_WRITE mode will open
+
Une utilisation pratique de la mémoire flash SPI flash est le stockage de données, comme le datalogging des données des senseurs. L'exemple '''fatfs_datalogging''' montre quelques opérations de datalogging/écriture. Ouvrez l'exemple dans the Arduino IDE et téléversez le sur votre carte Feather M0. Ouvrez ensuite le moniteur série (à 115200 baud), vous devriez voir un message s'afficher toutes les minutes lorsque le croquis écrit une nouvelle ligne dans le système de fichier de la mémoire flash.
   // the file for appending, i.e. it will add new data to the end of the file.
+
 
 +
Voyez le contenu de la fonction {{fname|loop()}} pour comprendre comment écrire dans le fichier:
 +
 
 +
<syntaxhighlight lang="c">
 +
   // Ouvrir le fichier de datalogging en écritureLe mode FILE_WRITE ouvrira
 +
   // le fichier en mode ajout (ajoutera les données en fin de fichier).
 
   File dataFile = fatfs.open(FILE_NAME, FILE_WRITE);
 
   File dataFile = fatfs.open(FILE_NAME, FILE_WRITE);
   // Check that the file opened successfully and write a line to it.
+
   // Vérifie si le fichier est ouvert et écrit des données.
 
   if (dataFile) {
 
   if (dataFile) {
     // Take a new data reading from a sensor, etc. For this example just
+
     // Obtenir les données depuis les senseurs, etc. Dans ce exemple
     // make up a random number.
+
     // nous créons juste un nombre aléatoire.
 
     int reading = random(0,100);
 
     int reading = random(0,100);
     // Write a line to the fileYou can use all the same print functions
+
     // Ecrire une nouvelle ligne dans le fichier.   
     // as if you're writing to the serial monitor. For example to write
+
    // Vous poyvez utiliser les mêmes fonctions print que celles
     // two CSV (commas separated) values:
+
     // utilisées pour afficher des données sur le moniteur série.  
 +
     // Par exemple, pour écrire deux valeurs CSV (séparées par une virgule):
 
     dataFile.print("Sensor #1");
 
     dataFile.print("Sensor #1");
 
     dataFile.print(",");
 
     dataFile.print(",");
 
     dataFile.print(reading, DEC);
 
     dataFile.print(reading, DEC);
 
     dataFile.println();
 
     dataFile.println();
     // Finally close the file when done writing. This is smart to do to make
+
     // Pour finir, fermer le fichier lorsque l'opération
     // sure all the data is written to the file.
+
    // d'écriture est achevée. C'est une facon adéquate pour
 +
    // s'assurer que les données soient bien écrites dans
 +
     // le fichier.
 
     dataFile.close();
 
     dataFile.close();
     Serial.println("Wrote new measurement to data file!");
+
     Serial.println("Nouvelle mesure écrite dans le fichier!");
 
   }
 
   }
 
</syntaxhighlight>
 
</syntaxhighlight>
   −
Just like using the Arduino SD card library you create a '''File''' object by calling an '''open''' function and pointing it at the name of the file and how you'd like to open it ('''FILE_WRITE''' mode, i.e. writing new data to the end of the file).  Notice however instead of calling open on a global SD card object you're calling it on a '''fatfs''' object created earlier in the sketch (look at the top after the #define configuration values).
+
Comme vous le feriez avec la bibliothèque Arduino de la carte SD, vous pouvez créer un objet '''File''' en appelant la fonction '''open''' en indiquant le nom de fichier et le mode d'accès (le mode '''FILE_WRITE''', écrit de nouvelles données en fin de fichier). <font color="red">'''Notez cependant'''</font> qu'à la place d'appeler la fonction global {{fname|open}}, c'est la méthode {{fname|fatfs.open()}} de l'objet système_de_fichier nouvellement créé qu'il faut appeler (voyez les valeurs de configurations juste après #define).
   −
Once the file is opened it's simply a matter of calling '''print''' and '''println''' functions on the file object to write data inside of it.  This is just like writing data to the serial monitor and you can print out text, numeric, and other types of data.  Be sure to close the file when you're done writing to ensure the data is stored correctly!
+
Une fois le fichier ouvert, il suffit simplement d'appeler les fonctions '''print''' et '''println''' sur l'objet fichier pour écrire des données en fin de fichier. C'est exactement comme envoyer des données vers le moniteur série pour y afficher du texte, des valeurs numériques et autres types de donnée.  
   −
== Reading and Printing Files ==
+
Assurez-vous d'avoir correctement fermé le système de fichier pour être certain que les données soient enregistrées correctement dans le fichier!
The '''fatfs_print_file''' example will open a file (by default the data.csv file created by running the '''fatfs_datalogging''' example above) and print all of its contents to the serial monitor.  Open the '''fatfs_print_file''' example and load it on your Feather M0 board, then open the serial monitor at 115200 baud.  You should see the sketch print out the contents of data.csv (if you don't have a file called data.csv on the flash look at running the datalogging example above first).
     −
To understand how to read data from a file look in the '''setup''' function of the sketch:
+
== Lecture et affichage de fichiers ==
 +
L'exemple '''fatfs_print_file''' ouvrira un fichier (le fichier data.csv par défaut, le fichier créé par l'exemple '''fatfs_datalogging''' présenté ci-dessus) et affiche tout son contenu dans le moniteur série.  Ouvrez l'exemple '''fatfs_print_file''' et téléversez le sur votre carte Feather M0, puis ouvrez le moniteur série (à 115200 baud).
   −
<syntaxhighlight lang="python">
+
Vous devriez voir le croquis afficher le contenu du fichier data.csv (si la mémoire flash ne contient pas de fichier data.csv alors vous pouvez ouvrir l'exemple datalogging ci-dessus pour le créer).
   // Open the file for reading and check that it was successfully opened.
+
 
   // The FILE_READ mode will open the file for reading.
+
Voyez le contenu de la fonction {{fname|setup()}} pour comprendre comment s'effectue la lecture du fichier:
 +
 
 +
<syntaxhighlight lang="c">
 +
   // Ouvrir le fichier en lecture et vérifier s'il est correctement ouvert
 +
   // Le mode FILE_READ ouvre le fichier en lecture.
 
   File dataFile = fatfs.open(FILE_NAME, FILE_READ);
 
   File dataFile = fatfs.open(FILE_NAME, FILE_READ);
 
   if (dataFile) {
 
   if (dataFile) {
     // File was opened, now print out data character by character until at the
+
     // Le fichier a été ouvert.
     // end of the file.
+
    // Afficher le contenu caractère par caractère jusqu'à
     Serial.println("Opened file, printing contents below:");
+
     // la fin du fichier.
 +
     Serial.println("Fichier ouvert, contenu affiché ci-dessous:");
 
     while (dataFile.available()) {
 
     while (dataFile.available()) {
       // Use the read function to read the next character.
+
       // Utilisé la fonction read() pour lire le prochain caractère.
       // You can alternatively use other functions like readUntil, readString, etc.
+
       // Il est également possible d'utiliser des fonctions telles
       // See the fatfs_full_usage example for more details.
+
      //    que readUntil, readString, etc.
 +
       // Voyez l'exemple fatfs_full_usage pour plus de détails.
 
       char c = dataFile.read();
 
       char c = dataFile.read();
 
       Serial.print(c);
 
       Serial.print(c);
Ligne 165 : Ligne 193 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
Just like when writing data with the datalogging example you create a '''File''' object by calling the '''open''' function on a fatfs object.  This time however you pass a file mode of '''FILE_READ''' which tells the filesystem you want to read data.
+
Tout comme pour l'écriture de donnée dans l'exemple datalogging, il est nécessaire de créer un objet '''File''' en appelant la fonction '''open''' de l'objet fatfs. Cependant, cette fois, le mode utilisé est '''FILE_READ''', indiquant que l'on désire lire le système de fichier.
 
  −
After you open a file for reading you can easily check if data is available by calling the '''available''' function on the file, and then read a single character with the '''read''' function.  This makes it easy to loop through all of the data in a file by checking if it's available and reading a character at a time.  However there are more advanced read functions you can use too--see the '''fatfs_full_usage''' example or even the <a href="https://www.arduino.cc/en/reference/SD">Arduino SD library documentation</a> (the SPI flash library implements the same functions).
  −
 
  −
== Full Usage Example ==
  −
For a more complete demonstration of reading and writing files look at the '''fatfs_full_usage''' example.  This examples uses every function in the library and demonstrates things like checking for the existence of a file, creating directories, deleting files, deleting directories, and more.
     −
Remember the SPI flash library is built to have the same functions and interface as the <a href="https://www.arduino.cc/en/reference/SD">Arduino SD library</a> so if you have code or examples that store data on a SD card they should be easy to adapt to use the SPI flash library, just create a fatfs object like in the examples above and use its open function instead of the global SD object's open function.  Once you have a reference to a file all of the functions and usage should be the same between the SPI flash and SD libraries!
+
Après avoir ouvert le fichier en lecture, la fonction '''available''' permet de facilement savoir si des données sont disponibles dans le fichier. Ensuite, la fonction '''read''' permet de lire un caractère depuis le fichier. La combinaison de ces deux fonctions permet de réaliser facilement une boucle de lecture qui vérifie la disponibilité de donnée puis la lecture et l'affichage de celle-ci (un caractère à la fois).
   −
== Accessing SPI Flash ==
+
Il existe également des fonctions de lecture avancées que vous pouvez voir dans l'exemple '''fatfs_full_usage''' ou soit dans la [https://www.arduino.cc/en/reference/SD documentation de la classe SD d'Arduino] (la bibliothèque Flash SPI implémente les mêmes fonctions).
Arduino doesn't have the ability to show up as a 'mass storage' disk drive. So instead we must use CircuitPython to do that part for us. Here's the full technique:
      +
== Exemple complet d'utilisation de la Flash ==
 +
Vous pouvez vous référer à l'exemple '''fatfs_full_usage''' pour une démonstration complète concernant la lecture et l'écriture de fichiers. Cet exemple utilise toutes les fonction de la bibliothèque et démontre des opérations tels que le test d'existence d'un fichier, la création de répertoire, effacement de fichier, effacement de fichier, etc.
   −
* Start the bootloader on the Express board. Drag over the latest '''circuitpython''' uf2 file
+
Rappelez vous que la bibliothèque SPI flash est conçue pour exposer les mêmes fonctions et mêmes interfaces que la [https://www.arduino.cc/en/reference/SD la bibliothèque SD d'Arduino]. Par conséquent, les code et exemples stockant des données sur une carte SD seront très facile à adapter pour fonctionner avec la bibliothèque SPI flash. Créez simplement un objet fatfs comme dans les exemples ci-dessus et utilisez la fonction open sur cet objet (en lieu et place de la fonction globale). Une fois que vous avez obtenu une référence sur un fichier, toutes les fonctions et utilisations sont identiques entre la bibliothèque SPI flash et la bibliothèque SD d'Arduino!
* After a moment, you should see a '''CIRCUITPY''' drive appear on your hard drive with '''boot_out.txt''' on it
  −
* Now go to Arduino and upload the '''fatfs_circuitpython''' example sketch from the Adafruit SPI library. Open the serial console. It will successfully mount the filesystem and write a new line to '''data.txt'''
      +
== Accéder à la Flash SPI ==
 +
Arduino n'est malheureusement pas capable d'exposer un périphérique de stockage (dit "''mass storage''" en anglais). Par conséquent, il faut utiliser CircuitPython qui, lui, est capable de faire cela pour nous. Voici la technique à utiliser.Here's the full technique:
 +
* Démarrer le bootloader de votre carte Express. Faites un glisser/déposer de la dernière version du fichier uf2 '''circuitpython'''.
 +
* Après un moment, vous devriez voir apparaître le lecteur '''CIRCUITPY''' contenant un fichier '''boot_out.txt'''. Voilà, le système de fichier est initialisé sur la Flash SPI.
 +
* Ouvrez maintenant Arduino IDE et téléversez l'exemple '''fatfs_circuitpython''' disponible dans la bibliothèque SPI d'Adafruit. Ouvrez la console série pour démarrer le croquis. Voilà, le système de fichier CircuitPython sera correctement monté et le fichier '''data.txt''' créé et initialisé.
    
{{ADFImage|FEATHER-M0-ArduinoIDE-SPI-Flash-02.png}}
 
{{ADFImage|FEATHER-M0-ArduinoIDE-SPI-Flash-02.png}}
   −
 
+
* Revenons sur notre ordinateur, redémarrez le bootloader de la carte Express --ET-- re-glissez/re-déposez '''circuitpython.uf2''' sur le lecteur '''BOOT''' rendu accessible par le bootloader. Voilà, CircuitPython est résintallé sur la carte Express.
* Back on your computer, re-start the Express board bootloader, and re-drag '''circuitpython.uf2''' onto the '''BOOT''' drive to reinstall circuitpython
+
* Au bout d'un moment, le lecteur '''CIRCUITPY''' redevient accessible. Celui-ci expose a nouveau le système de fichier MicroPython de la Flash SPI. Vous pouvez maintenant voir le fichier '''data.txt''', l'ouvrir et en consulté le contenu!
* Check the '''CIRCUITPY''' drive, you should now see '''data.txt '''which you can open to read!
      
{{ADFImage|FEATHER-M0-ArduinoIDE-SPI-Flash-03.png}}
 
{{ADFImage|FEATHER-M0-ArduinoIDE-SPI-Flash-03.png}}
   −
Once you have your Arduino sketch working well, for datalogging, you can simplify this procedure by dragging '''CURRENT.UF2''' off of the '''BOOT''' drive to make a backup of the current program before loading circuitpython on. Then once you've accessed the file you want, re-drag '''CURRENT.UF2''' back onto the '''BOOT''' drive to re-install the Arduino sketch!
+
Une fois que votre croquis de datalogging Arduino fonctionne comme attendu, vous pouvez simplifier la procédure en copiant '''CURRENT.UF2''' depuis le lecteur '''BOOT''' pour faire une copie de sauvegarde de votre programme Arduino. Vous pourrez ensuite charger CircuitPython pour accéder au système de fichier de la Flash SPI et enfin recopier votre '''CURRENT.UF2''' sur le lecteur '''BOOT''' de la carte Express pour réactiver votre croquis Arduino!
 
      
{{FEATHER-M0-EXPRESS-TRAILER}}
 
{{FEATHER-M0-EXPRESS-TRAILER}}
29 917

modifications

Menu de navigation