Outils pour utilisateurs

Outils du site


dev:esp:esp32:micropython

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
dev:esp:esp32:micropython [2020/08/10 20:54] – créée yoanndev:esp:esp32:micropython [2021/04/04 08:53] (Version actuelle) – Modification commande flash ESP32 77.192.232.26
Ligne 3: Ligne 3:
 ====== ESP32: Micropython ====== ====== ESP32: Micropython ======
  
-Micropython est une implémentation légère et compacte de l' interpréteur python. Il peut être installé directement sur le microcontrôleur ESP32.+**MicroPython** est une implémentation légère et compacte de l' interpréteur Python 3. Il inclus un petit sous ensemble de la bibliothèque standard Python et est optimisé pour s'exécuter sur microcontrôleur ( tel qu'un ESP32) ou en environnement contraint (en ressources matérielles). Le cœur Micropython utilise 256Ko d'espace en flash et 16 Ko de RAM.
  
-Micropython est compatible avec python3, il intègre des modules permettant d’accéder directement au matériel.+Un **pyboard MicroPython** est un circuit électronique sur lequel a été flashé Micropython. Il s'y exécute directement (bare metal) et offre alors via son environnement interactif et ses fonctionnalités l'équivalent d'un système d'exploitation bas niveau permettant de gérer tous types de projets électroniques; d'ajouter et de modifier facilement des scripts qui seront interprétés (il intègre et gère un système de fichiers).
  
-Micropython est flashé sur le microcontrôleur, il donne ensuite accès a un système de fichier qui permet d'ajouter et de modifier facilement les scripts qui seront interprétés.+MicroPython est un langage de haut niveau facilement lisible et intégrant de fonctionnalités modernes et avancées telles qu'un environnement interactif (REPL), la gestion des nombres flottants, les listes et dictionnaires, des générateurs, la gestion des exceptions etc.
  
-On ajoute autant de scripts et de modules que souhaité dans la limite de la mémoire flash disponible. +L'environnement REPL de python offre aux phases de conceptions et aux tests une grande réactivité/souplesse/facilité de réalisation.
- +
-le fichier main.py est executé après boot.py+
  
 Pour les performances, il est possible de créer des modules en C et en assembleur. Pour les performances, il est possible de créer des modules en C et en assembleur.
-L'environnement REPL de python offre aux phases de conceptions et de tests une grande réactivité/souplesse. 
  
-Micropython est un langage de haut niveau facilement lisible et intégrant de nombreuses fonctionnalités/paradigmes modernes. 
  
 +===== Installer Micropython sur l'ESP32 =====
 +
 +==== A partir des binaires ====
 +
 +Il va falloir:
 +  - Récupérer le binaire Micropython (firmware) compilé pour l'esp32.
 +  - Flasher le binaire sur le microcontrôleur via esptool.
 +
 +Récupérer la dernière version du firmware sur:
 +  *[[https://micropython.org/download/esp32/]]
 +
 +Le firmware doit être flashé sur l'ESP via **esptool** le programme du constructeur (Espressif))
 +
 +  * [[https://github.com/espressif/esptool]]
 +
 +création d'un environnement virtuel Python
 +<code bash>
 +python3 -m venv esptool
 +source esptool/bin/activate
 +
 +pip3 install esptool
 +</code>
 +
 +===== Premiere installation ====
 +
 +Brancher la carte
 +
 +afficher les messages système:
 +<code bash>
 +dmesg | tail
 +</code>
 +
 +<file>
 +[19606.286934] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 +[19606.286938] usb 1-4: Product: CP2102 USB to UART Bridge Controller
 +[19606.286941] usb 1-4: Manufacturer: Silicon Labs
 +[19606.286944] usb 1-4: SerialNumber: 0001
 +[19606.338930] usbcore: registered new interface driver usbserial_generic
 +[19606.339009] usbserial: USB Serial support registered for generic
 +[19606.344277] usbcore: registered new interface driver cp210x
 +[19606.344917] usbserial: USB Serial support registered for cp210x
 +[19606.345122] cp210x 1-4:1.0: cp210x converter detected
 +[19606.347886] usb 1-4: cp210x converter now attached to ttyUSB0
 +</file>
 +
 +Ici la carte est attachée par le système sur le port ttyUSB0.
 +
 +Tester la connexion
 +<code bash>
 +esptool.py --port /dev/ttyUSB0 flash_id
 +</code>
 +
 +Si tout se passe correctement on obtient un résultat du type:
 +<file>
 +esptool.py v2.8
 +Serial port /dev/ttyUSB0
 +Connecting........__
 +Detecting chip type... ESP32
 +Chip is ESP32D0WDQ6 (revision 1)
 +Features: WiFi, BT, Dual Core, Coding Scheme None
 +Crystal is 40MHz
 +MAC: 30:ae:a4:41:69:4c
 +Uploading stub...
 +Running stub...
 +Stub running...
 +Manufacturer: c8
 +Device: 4016
 +Detected flash size: 4MB
 +Hard resetting via RTS pin...
 +</file>
 +
 +<note>
 +Pour pouvoir utiliser le port série, l'utilisateur doit appartenir au groupe **dialout**. Si ce n'est pas le cas:
 +<code bash>
 +sudo adduser my_user dialout
 +newgrp dialout
 +</code>
 +</note>
 +
 +Si Micropython est installé pour la première fois, il faut effacer entièrement la mémoire flash
 +
 +<code bash>
 +esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
 +</code> 
 +
 +Le firmware peut alors être installé:
 +<code bash>
 +esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 micropython-esp32-firmware-file.bin
 +</code>
 +
 +<note>
 +Il est possible de réduire le débit en ajoutant l'option **%%--baud%%** à la ligne de commande en cas d'erreurs lors du flashage (par exemple baisser à 115200 en ajoutant l'option %%--baud 115200%%).
 +</note>
 +
 +
 +===== A partir des sources =====
 +
 +Micropython est écrit en C99, il est sous licence open source. les sources sont disponibles sur github
 +
 +  * https://github.com/micropython/micropython
 +
 +===== Hello World =====
 +
 +Il faut maintenant interagir avec Micropython s’exécutant sur le microcontrôleur ESP32. Le REPL Micropython est disponible via le port série: il faut donc un programme capable de lire/écrire sur le port série:
 +  * picocom -b 115200 /dev/ttyUSB0
 +  * screen /dev/ttyUSB0 115200
 +  * minicom -D /dev/ttyUSB0
 +
 +
 +Presser <key>ctrl</key>+<key>d</key> pour rebooter le microcontroleur, il affiche alors sur le port série la version de Micropython:
 +<file>
 +PY: soft reboot
 +MicroPython v1.12-663-g9883d8e81 on 2020-08-11; ESP32 module with ESP32
 +Type "help()" for more information.
 +</file>
 +
 +<code python>
 +from machine import Pin
 +
 +led = Pin(2, Pin.OUT)
 +
 +led.on()
 +led.off()
 +</code>
  
 ===== Références ===== ===== Références =====
  
  
 +  * http://micropython.org/
 +  * http://docs.micropython.org/en/latest/
 +  * http://docs.micropython.org/en/latest/esp32/tutorial/intro.html#esp32-intro
   * https://www.youtube.com/watch?v=w15-EQASP_Y   * https://www.youtube.com/watch?v=w15-EQASP_Y
   * https://www.youtube.com/watch?v=5W3WvXAmDJc   * https://www.youtube.com/watch?v=5W3WvXAmDJc
  
dev/esp/esp32/micropython.1597092892.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)