Compilation et installation de l'Interpreteur MicroPython et des programmes outil

Introduction

Avant de pouvoir commencer \xE0 programmer le processeur ESP32 en MicroPython l\x92interpr\xE9teur doit \xEAtre install\xE9 dans la m\xE9moire flash de la carte CPU. Ce chapitre d\xE9crit comment t\xE9l\xE9charger le code source de MicroPython, comment le compiler et comment transf\xE9rer le binaire dans la m\xE9moire flash.

Quelques outils

Il est important de garder une structure du syst\xE8me de fichier bien propre pour pouvoir retrouver ses fichiers facilement. Pour cette raison je propose de pr\xE9parer un classeur /opt/ucad comme classeur de base pour le cours. Dans opt/ucad on cr\xE9e des classeurs
  • micros/esp32: pour toutes le programmes syst\xE8me du ESP32 (source de Micropython, \xE9diteur, programmeur flash \x85)

  • doc: pour la documentation comme les fiches techniques du ESP32 ou des capteurs
  • transparents: pour les transparents du cours
  • exercices :
    • probl\xE8mes : la description des l\x92exercices
    • solutions: les solutions des exercices. Le code Python sera t\xE9l\xE9charg\xE9 dans un r\xE9pertoire github, o\xF9 les \xE9tudiants ont facilement acc\xE8s
  • Freenove_Ultimate_Starter_Kit_for_ESP32 : la doc et les programmes fourni par Freenove
thonny est environnement de d\xE9veloppement int\xE9gr\xE9 (Integrated Development Environment IDE) qui est disponible dans Ubuntu:
sudo apt install thonny

La communication entre l\x92ESP32 et le PC se fait via une ligne s\xE9rie \xE0 l\x92aide d\x92un convertisseur USB \x96 ligne s\xE9rie, qui se trouve sur la carte CPU de l\x92ESP32. Pour l'utiliser on a besoins d\x92un terminal s\xE9riel virtuel comme minicom ou gtkterm. Les deux programmes existent comme paquet Ubuntu et peuvent \xEAtre install\xE9 de la m\xEAme sorte que thonny :
sudo apt install minicom

Ces programmes doivent encore \xEAtre configur\xE9 pour travaille
  • avec le port /dev/ttyUSB0
  • \xE0 115200 baud
  • sans "flow control"
Lancer
sudo minicom -s

Faire les changements dans "Serial port setup" et les sauver avec "Save setup as dfl".

Compiler MicroPython

Pour pouvoir compiler MicroPython le compilateur xtensa-esp32-elf-gcc doit \xEAtre install\xE9e et accessible dans le syst\xE8me Linux du PC. En plus les librairies esp-idf sont n\xE9cessaires. T\xE9l\xE9charger esp-idf:

git clone https://github.com/micropython/micropython.git

et ex\xE9cuter install.sh. Ceci devrait installer les compilateurs pour les diff\xE9rentes versions de l'ESP32 dans $HOME/.espressif.

Dans mon .bash_profile j'ai d\xE9fini les variables d'environnement ESPIDF et IDF_PATH:
  • export ESPIDF=/opt/ucc/micros/esp32/esp-idf
  • export IDF_PATH=/opt/ucc/micros/esp32/esp-idf
ou /opt/ucc/micros/esp32/esp-idf est le classeur dans lequel esp-idf a \xE9t\xE9 transf\xE9r\xE9.

En plus
  • $ESPIDF/tools
  • $HOME/.espressif/tools/xtensa-esp32s2-elf/esp-2020r3-8.4.0/xtensa-esp32s2-elf/bin (le compilateur pour l'ESP32)
a \xE9t\xE9 rajout\xE9 dans la variable PATH.

Pour compiler MicroPython une s\xE9rie de modules Python avec des versions bien sp\xE9cifiques sont n\xE9cessaire. Si on essaie de compiler dans l'environnement Python par d\xE9faut on re\xE7oit les erreurs similaire \xE0 ceci:

mpCompilErrs.png

On doit alors cr\xE9er un environnement virtuel Python avec tous les modules n\xE9cessaire \xE0 la compilation de MicroPython. Pour ce faire on a besoin du paquet python3-venv:

sudo apt install python3-venv

En suite il faut cr\xE9er l'environnement virtuel que j'appelle "esp-idf"

cd $HOME/pythonEnvironnements
python3 -m venv esp-idf

Enfin on active cet environnement :

source esp-idf/bin/activate

Le terminal indique que nous nous trouvons dans le nouvel environnement :

virtualEnv.png

Maintenant nous pouvons installer les modules requis avec pip, par example:
pip3 install pyparsing==2.3.1 

pour installer la version 2.3.1 de pyparsing.

Une fois tous les modules seront install\xE9, la compilation de MicroPython devrait marcher sans probl\xE8mes. Dans mon cas j'ai copi\xE9 le classeur
ports/esp32/boards/GENERIC_SPIRAM dans ports/esp32/boards/WROVER et je compile avec la commande :
make BOARD=WROVER 

Ceci permet de faire des modifications pour notre carte CPU WROVER sans toucher \xE0 la source de MicroPython.

On peut effacer tous les r\xE9sidus d'une compilation pr\xE9c\xE9dente avec

make BOARD=WROVER clean

La commande :

make erase

efface tous la contenue de la m\xE9moire flash et

make BOARD=WROVER deploy

transfert l'interpr\xE9teur MicroPython fraichement compil\xE9 dans la m\xE9moire flash de l'ESP32. Notre interpr\xE9teur MicroPython peut maintenant \xEAtre utilis\xE9 avec minicom, ampy ou thonny.

-- %USERSIG{UliRaich - 2021-05-10}%

Comments

 

This topic: IoT_Course_French > WebHome > CompilationDeLInterpreteursNopMicroPython
Topic revision: 20 Jun 2021, UliRaich