Hack-pycom-lopy-toolbox
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.
Actuellement, le système d'interruption peut traiter une queue de traitement de 16 interruptions max. |
Tutoriels Pycom
Vous trouverez tous les tutoriels PyCom sur cette page:
- Tutorials and examples (Pycom.io, anglais)
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.