Différences entre versions de « Hack-pycom-lopy-toolbox »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(6 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
{{LOPY-NAV}}
 
{{LOPY-NAV}}
 
{{traduction}}
 
 
Voir liens [https://docs.pycom.io/pycom_esp32/pycom_esp32/toolsandfeatures.html https://docs.pycom.io/pycom_esp32/pycom_esp32/toolsandfeatures.html]
 
  
 
== ESP32 et Modules Pycom ==
 
== ESP32 et Modules Pycom ==
 
Voici les caractéristiques principales des plateformes ESP_32 de Pycom.io et les modules disponibles.
 
Voici les caractéristiques principales des plateformes ESP_32 de Pycom.io et les modules disponibles.
* 512 Kb available for the user as internal storage, (external SD card support available)
+
* 512 Kb disponible pour le stockage interne utilisateur (support carte SD externe disponible)
* Up to 96 Kb of RAM available for python code.
+
* Jusqu'à 96 Kb de RAM disponible pour le code python.
* Hardware floating point unit
+
* Support matériel de la virgule flottante
 
* Jusqu'à [https://docs.pycom.io/pycom_esp32/library/machine.Pin.html#machine.Pin 24 broches GPIO]
 
* Jusqu'à [https://docs.pycom.io/pycom_esp32/library/machine.Pin.html#machine.Pin 24 broches GPIO]
 
* 2x [https://docs.pycom.io/pycom_esp32/library/machine.UART.html#machine.UART UARTs] (port série)
 
* 2x [https://docs.pycom.io/pycom_esp32/library/machine.UART.html#machine.UART UARTs] (port série)
Ligne 25 : Ligne 21 :
 
* [https://docs.pycom.io/pycom_esp32/library/uhashlib.html#module-uhashlib hashlib] algorithme de hachage (''hash'') MD5, SHA1, SHA256, SHA384 et SHA512
 
* [https://docs.pycom.io/pycom_esp32/library/uhashlib.html#module-uhashlib hashlib] algorithme de hachage (''hash'') MD5, SHA1, SHA256, SHA384 et SHA512
 
* [https://docs.pycom.io/pycom_esp32/library/ucrypto.AES.html#ucrypto.AES Encryptage AES]
 
* [https://docs.pycom.io/pycom_esp32/library/ucrypto.AES.html#ucrypto.AES Encryptage AES]
* SSL/TLS support <.ussl>`
+
* Support SSL/TLS (.ussl)`
  
Click the links in the list above to see more details on that feature. For all available modules and libraries, please visit the [https://docs.pycom.io/pycom_esp32/library/index.html#firmware-api-reference Firmware API Reference] section.
+
Cliquez sur les liens de la liste ci-dessus pour avoir plus de détail sur la fonctionnalité. Pour tous les modules et bibliothèques disponibles, vous pouvez vous référer [https://docs.pycom.io/pycom_esp32/library/index.html#firmware-api-reference Référence API du Firmware] (''pycom.io'').
  
 
=== Fiches Techniques ===
 
=== Fiches Techniques ===
If you want to find out how things are connected, visit the [https://docs.pycom.io/pycom_esp32/pycom_esp32/datasheets.html#datasheets datasheets section]. Here you’ll find the datasheets for all of our products.
+
Si vous désirez plus d'information sur les connexion entre les éléments, visitez la [https://docs.pycom.io/pycom_esp32/pycom_esp32/datasheets.html#datasheets section fiche technique] (''Pycom.io''). Vous y trouverez les fiches techniques de tous les produits Pycom.
  
 
== REPL via Telnet et port série ==
 
== REPL via Telnet et port série ==
Ligne 38 : Ligne 34 :
  
 
== Boot Mode et Safe Boot ==
 
== Boot Mode et Safe Boot ==
If you power up normally, or press the reset button, the LoPy will boot into standard mode; the {{fname|boot.py}} file will be executed first, then {{fname|main.py}} will run.
+
Mode de démarrage et mode "sans échec"...
 +
 
 +
Si vous démarrer normalement votre carte, ou si vous pressez le bouton "Reset", le Lopy/WiPy2 démarre en mode standard; le fichier {{fname|boot.py}} sera exécuté en premier, ensuite le fichier {{fname|main.py}} sera exécuté.
 +
 
 +
Il est possible de modifier la séquence de démarrage en plaçant la broche {{fname|P12}} (G28) '''au niveau haut''' (connectez la sur le broche 3V3) durant la phase de réinitialisation. Cette procédure permet également de revenir à une ancienne version du Firmware. Le LoPy/WiPy2 peut maintenir 3 versions différents du Firmware qui sont:
 +
* Le firmware d'usine
 +
* L'image précédente du Firmware
 +
* L'image actuelle du Firmware (celle exécutée au démarrage du WiPy2/Lopy)
  
You can override this boot sequence by pulling {{fname|P12}} (G28) '''up''' (connect it to the 3V3 output pin) during reset. This procedure also allows going back in time to old firmware versions. The LoPy can hold up to 3 different firmware versions, which are: the factory firmware plus 2 OTA images.
+
Après le "Reset", si la broche {{fname|P12}} est maintenue au niveau haut, '''la LED heartbeat commence à clignoter lentement en orange'''. Si la broche est toujours maintenue au niveau haut après 3 secondes Alors la LED commence à clignoter un peu plus rapidement et le LoPy/WiPy2 sélectionnera la précédente image pour booter. Si c'est cette image que vous voulez utiliser alors relâchez la broche {{fname|P12}} avant que 3 autres secondes ne s'écoulent. '''S'''i après ce nouveau délai de 3 secondes la broche P12 est toujours au niveau haut '''A'''lors c'est le firmware d'usine qui est sélectionné (la LED clignote rapidement pendant une seconde et demi puis le WiPy2/Lopy procède au démarrage).
  
After reset, if {{fname|P12}} is held high, the heartbeat LED will start flashing slowly in orange color, if after 3 seconds the pin is still being held high, the LED will start blinking a bit faster and the LoPy will select the previous OTA image to boot. If the previous user update is the desired firmware image, {{fname|P12}} must be released before 3 more seconds elapse. If after 3 seconds later, the pin is still high the factory firmware will be selected, the LED will flash quickly for 1.5 seconds and the LoPy will proceed to boot. The firmware selection mechanism is as follows:
+
Le mécanisme de sélection du firmware est le suivant:
  
'''Safe Boot Pin {{fname|P12}} released during:'''
+
'''Broche "Safe Boot" {{fname|P12}} relâchée durant:'''
* '''Les 3 premières secondes''' - Safe boot, ''latest'' firmware is selected
+
* '''Les 3 premières secondes''' - Safe boot, ''dernier'' firmware sélectionné
* '''Les 3 secondes suivantes''' - Safe boot, '''previous''' user update selected
+
* '''Les 3 secondes suivantes''' - Safe boot, la mise-à-jour utilisateur '''précédente'''
* '''La dernière seconde et demi''' - Safe boot, the '''factory''' firmware is selected
+
* '''La dernière seconde et demi''' - Safe boot, le firmware '''d'usine''' est sélectionné
  
On all of the above 3 scenarios, safe boot mode is entered, meaning that the execution of both {{fname|boot.py}} and {{fname|main.py}} is skipped. This is useful to recover from crash situations caused by the user scripts. The selection made during safe boot is not persistent, therefore after the next normal reset the latest firmware will run again.
+
Pour les trois scénarios ci-dessus, le mode "sans échec" (safe boot) est activé, ce qui signifie que l'exécution des deux fichiers {{fname|boot.py}} et {{fname|main.py}} sont suspendu. C'est pratique pour se sortie d'une situation bloquante/crash causée par un script utilisateur. La sélection faite durant le mode "Sans Echec" (safe boot) n'est pas persistant. Par conséquent, le dernier firmware est de nouveau exécuté après un redémarrage/Reset de la carte.
  
 
Il est possible de [[Hack-pycom-lopy-toolbox#R.C3.A9initialisation_du_syst.C3.A8me_de_fichier|reformater la mémoire flash interne]] si vous rencontrez des problèmes avec le système de fichier.
 
Il est possible de [[Hack-pycom-lopy-toolbox#R.C3.A9initialisation_du_syst.C3.A8me_de_fichier|reformater la mémoire flash interne]] si vous rencontrez des problèmes avec le système de fichier.
  
 
== Reset / Réinitialisation ==
 
== Reset / Réinitialisation ==
 +
La carte est équipé d'une méthode de réinitialisation matérielle (bouton "Reset") et réinitialisation logicielle (Soft Reset).
  
There are soft resets and hard resets. A soft reset simply clears the state of the MicroPython virtual machine, but leaves hardware peripherals unaffected. To do a soft reset, simply press Ctrl+D on the REPL, or within a script do:
+
La réinitialisation logicielle efface tous les états de la machine virtuelle MicroPython MAIS laisse l'état matériel des périphériques non affecté. Pour faire une réinitialisation logicielle, pressez simplement la combinaison de touche Ctrl+D dans l'invite de commande REPL -OU- exécutez le code suivant:
  
 
  <nowiki>>>> import sys
 
  <nowiki>>>> import sys
 
>>> sys.exit()</nowiki>
 
>>> sys.exit()</nowiki>
  
A hard reset is the same as performing a power cycle to the board. In order to hard reset the LoPy, press the switch on the board or:
+
Un reset matériel revient à faire un faire un cycle d'alimentation (débrancher/rebrancher) de la carte. Pour faire un Reset matériel sur le LoPy ou WiPy2, presser le bouton "Reset" de la carte ou saisissez le code suivant:
  
 
  <nowiki>>>> import machine
 
  <nowiki>>>> import machine
Ligne 74 : Ligne 78 :
  
 
== Gestion des interruptions ==
 
== Gestion des interruptions ==
In Pycom’s ESP32 MicroPython port there are no restrictions on what you can do within an interrupt handler. For example, other ports don’t allow you to allocate memory inside the handler or use sockets.
+
Dans le portage MicroPython pour ESP32 de Pycom, il n'y a pas de restriction sur ce qui peut être réalisé dans une fonction d'interruption (dit "''interrupt handler''"). Par exemple, d'autres portages ne permettent pas l'utilisation d'un socket ou d'allouer de la mémoire dans la fonction d'interruption.
 +
 
 +
Ces limitations ont étés levées en gérant le mécanisme d'interruption de façon différente. Lorsqu'une interruption est déclenchée, un message est ajoutée dans une queue de traitement, ce qui notifie un thread qui, lui, appelle la fonction d'interruption (''callback handler'') adéquate. Une telle fonction d'interruption reçoit un argument. Par défaut c'est un objet associé avec un événement.
 +
 
 +
Le programmeur peut faire ce qu'il veut dans une fonction d'interruption, comme créer de nouvelles variables, ou même envoyer des paquets de donnée sur le réseau. Gardez juste à l'esprit que les interruptions sont traitées séquentiellement. Essayez donc de finir des fonctions d'interruption aussi courte et rapide que possible.
  
These limitations were raised by handling the interrupt events differently. When an interrupt happens, a message is posted into a queue, notifying a separate thread that the appropriate callback handler should be called. Such handler would receive an argument. By default it is the object associated with the event.
+
Il y a actuellement deux classes supportant les mécanismes d'interruption, il s'agit de la classe [https://docs.pycom.io/pycom_esp32/library/machine.Timer.html#machine.Timer.Alarm|Alarm] cet de la classe [https://docs.pycom.io/pycom_esp32/library/machine.Pin.html#machine.Pin Pin] (pour les broches). Les deux classes offrent une méthode {{fname|.callback()}} qui active les interruptions et enregistre la fonction de rappel (''le fonction d'interruption'') à appeler lorsqu'il y a une interruption.
  
The programmer can do whatever is needed inside the callback, such as creating new variables, or even sending network packets. Just keep in mind that interrupts are processed sequentially, so try to keep the handlers as quick as possible in order to attend them all in a short time.
+
{{ambox|text=Actuellement, le système d'interruption peut traiter une queue de traitement de 16 interruptions max.}}
  
Currently there are 2 classes supporting interrupts, there the [https://docs.pycom.io/pycom_esp32/library/machine.Timer.html#machine.Timer.Alarm|Alarm] class and the [https://docs.pycom.io/pycom_esp32/library/machine.Pin.html#machine.Pin Pin]. Both classes provide the {{fname|.callback()}} method that enables the interrupt and registers the given handler. More details about the usage along with examples can be found in their respective sections.
+
== Tutoriels Pycom ==
 +
Vous trouverez tous les tutoriels PyCom sur cette page:
  
{{ambox|text=Currently the interrupt system can queue up to 16 interrupts.}}
+
* [https://docs.pycom.io/pycom_esp32/pycom_esp32/tutorial/index.html Tutorials and examples] (''Pycom.io, anglais'')
  
 
{{LOPY-TRAILER}}
 
{{LOPY-TRAILER}}

Version actuelle datée du 27 mars 2017 à 09:20


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

ESP32 et Modules Pycom

Voici les caractéristiques principales des plateformes ESP_32 de Pycom.io et les modules disponibles.

  • 512 Kb disponible pour le stockage interne utilisateur (support carte SD externe disponible)
  • Jusqu'à 96 Kb de RAM disponible pour le code python.
  • Support matériel de la virgule flottante
  • Jusqu'à 24 broches GPIO
  • 2x UARTs (port série)
  • SPIs
  • Timers
  • RTC
  • PWM
  • ADC
  • DAC
  • I2C
  • SD
  • WiFi
  • Bluetooth
  • LoRa (uniquement disponible sur LoPy)
  • hashlib algorithme de hachage (hash) MD5, SHA1, SHA256, SHA384 et SHA512
  • Encryptage AES
  • Support SSL/TLS (.ussl)`

Cliquez sur les liens de la liste ci-dessus pour avoir plus de détail sur la fonctionnalité. Pour tous les modules et bibliothèques disponibles, vous pouvez vous référer Référence API du Firmware (pycom.io).

Fiches Techniques

Si vous désirez plus d'information sur les connexion entre les éléments, visitez la section fiche technique (Pycom.io). Vous y trouverez les fiches techniques de tous les produits Pycom.

REPL via Telnet et port série

REPL signifie Read Evaluate Print Loop (boucle de lecture-évaluation-affichage), c'est le nom donné à la ligne de commande interactive de MicroPython qui vous offre un accès en ligne de commande sur votre plateforme MicroPython (PyBoard, WiPy, WiPy2, LoPy).

Nous avons traité ce point en détail dans notre "Telnet et FTP" pour WiPy2 et LoPy.

Boot Mode et Safe Boot

Mode de démarrage et mode "sans échec"...

Si vous démarrer normalement votre carte, ou si vous pressez le bouton "Reset", le Lopy/WiPy2 démarre en mode standard; le fichier boot.py sera exécuté en premier, ensuite le fichier main.py sera exécuté.

Il est possible de modifier la séquence de démarrage en plaçant la broche P12 (G28) au niveau haut (connectez la sur le broche 3V3) durant la phase de réinitialisation. Cette procédure permet également de revenir à une ancienne version du Firmware. Le LoPy/WiPy2 peut maintenir 3 versions différents du Firmware qui sont:

  • Le firmware d'usine
  • L'image précédente du Firmware
  • L'image actuelle du Firmware (celle exécutée au démarrage du WiPy2/Lopy)

Après le "Reset", si la broche P12 est maintenue au niveau haut, la LED heartbeat commence à clignoter lentement en orange. Si la broche est toujours maintenue au niveau haut après 3 secondes Alors la LED commence à clignoter un peu plus rapidement et le LoPy/WiPy2 sélectionnera la précédente image pour booter. Si c'est cette image que vous voulez utiliser alors relâchez la broche P12 avant que 3 autres secondes ne s'écoulent. Si après ce nouveau délai de 3 secondes la broche P12 est toujours au niveau haut Alors c'est le firmware d'usine qui est sélectionné (la LED clignote rapidement pendant une seconde et demi puis le WiPy2/Lopy procède au démarrage).

Le mécanisme de sélection du firmware est le suivant:

Broche "Safe Boot" P12 relâchée durant:

  • Les 3 premières secondes - Safe boot, dernier firmware sélectionné
  • Les 3 secondes suivantes - Safe boot, la mise-à-jour utilisateur précédente
  • La dernière seconde et demi - Safe boot, le firmware d'usine est sélectionné

Pour les trois scénarios ci-dessus, le mode "sans échec" (safe boot) est activé, ce qui signifie que l'exécution des deux fichiers boot.py et main.py sont suspendu. C'est pratique pour se sortie d'une situation bloquante/crash causée par un script utilisateur. La sélection faite durant le mode "Sans Echec" (safe boot) n'est pas persistant. Par conséquent, le dernier firmware est de nouveau exécuté après un redémarrage/Reset de la carte.

Il est possible de reformater la mémoire flash interne si vous rencontrez des problèmes avec le système de fichier.

Reset / Réinitialisation

La carte est équipé d'une méthode de réinitialisation matérielle (bouton "Reset") et réinitialisation logicielle (Soft Reset).

La réinitialisation logicielle efface tous les états de la machine virtuelle MicroPython MAIS laisse l'état matériel des périphériques non affecté. Pour faire une réinitialisation logicielle, pressez simplement la combinaison de touche Ctrl+D dans l'invite de commande REPL -OU- exécutez le code suivant:

>>> import sys
>>> sys.exit()

Un reset matériel revient à faire un faire un cycle d'alimentation (débrancher/rebrancher) de la carte. Pour faire un Reset matériel sur le LoPy ou WiPy2, presser le bouton "Reset" de la carte ou saisissez le code suivant:

>>> import machine
>>> machine.reset()

Réinitialisation du système de fichier

If you device’s filesystem gets corrupted (very unlikely, but possible), you can format it very easily by doing:

>>> import os
>>> os.mkfs('/flash')

Resetting the flash filesystem deletes all files inside the internal LoPy storage (not the SD card), and restores the files boot.py and main.py back to their original states after the next reset.

Gestion des interruptions

Dans le portage MicroPython pour ESP32 de Pycom, il n'y a pas de restriction sur ce qui peut être réalisé dans une fonction d'interruption (dit "interrupt handler"). Par exemple, d'autres portages ne permettent pas l'utilisation d'un socket ou d'allouer de la mémoire dans la fonction d'interruption.

Ces limitations ont étés levées en gérant le mécanisme d'interruption de façon différente. Lorsqu'une interruption est déclenchée, un message est ajoutée dans une queue de traitement, ce qui notifie un thread qui, lui, appelle la fonction d'interruption (callback handler) adéquate. Une telle fonction d'interruption reçoit un argument. Par défaut c'est un objet associé avec un événement.

Le programmeur peut faire ce qu'il veut dans une fonction d'interruption, comme créer de nouvelles variables, ou même envoyer des paquets de donnée sur le réseau. Gardez juste à l'esprit que les interruptions sont traitées séquentiellement. Essayez donc de finir des fonctions d'interruption aussi courte et rapide que possible.

Il y a actuellement deux classes supportant les mécanismes d'interruption, il s'agit de la classe [1] cet de la classe Pin (pour les broches). Les deux classes offrent une méthode .callback() qui active les interruptions et enregistre la fonction de rappel (le fonction d'interruption) à appeler lorsqu'il y a une interruption.

Tutoriels Pycom

Vous trouverez tous les tutoriels PyCom sur cette page:


Tutoriel PyCom Getting started (ESP_32) sous copyright de Damien George et contributeurs en ce qui concerne MicroPython et/ou PyCom en ce qui concerne les informations relatives a WiPy et LoPy.

Tutoriel traduit par Meurisse D. pour MCHobby.be

Traduit avec l'autorisation de micropython.org - Translated with the authorisation of micropython.org

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.