Tags:
create new tag
view all tags

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

Introduction

Avant de pouvoir commencer à programmer le processeur ESP32 en MicroPython l’interpréteur doit être installé dans la mémoire flash de la carte CPU. Ce chapitre décrit comment télécharger le code source de MicroPython, comment le compiler et comment transférer le binaire dans la mémoire flash.

Quelques outils

Il est important de garder une structure du système de fichier bien propre pour pouvoir retrouver ses fichiers facilement. Pour cette raison je propose de préparer un classeur /opt/ucad comme classeur de base pour le cours. Dans opt/ucad on crée des classeurs

  • micros/esp32: pour toutes le programmes système du ESP32 (source de Micropython, éditeur, programmeur flash …)

  • doc: pour la documentation comme les fiches techniques du ESP32 ou des capteurs
  • transparents: pour les transparents du cours
  • exercices :
    • problèmes : la description des l’exercices
    • solutions: les solutions des exercices. Le code Python sera téléchargé dans un répertoire github, où les étudiants ont facilement accès
  • Freenove_Ultimate_Starter_Kit_for_ESP32 : la doc et les programmes fourni par Freenove
thonny est environnement de développement intégré (Integrated Development Environment IDE) qui est disponible dans Ubuntu:
sudo apt install thonny

La communication entre l’ESP32 et le PC se fait via une ligne série à l’aide d’un convertisseur USB – ligne série, qui se trouve sur la carte CPU de l’ESP32. Pour l'utiliser on a besoins d’un terminal sériel virtuel comme minicom ou gtkterm. Les deux programmes existent comme paquet Ubuntu et peuvent être installé de la même sorte que thonny :

sudo apt install minicom

Ces programmes doivent encore être configuré pour travaille

  • avec le port /dev/ttyUSB0
  • à 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 être installée et accessible dans le système Linux du PC. En plus les librairies esp-idf sont nécessaires. Télécharger esp-idf:

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

et exécuter install.sh. Ceci devrait installer les compilateurs pour les différentes versions de l'ESP32 dans $HOME/.espressif.

Dans mon .bash_profile j'ai défini 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 été transféré.

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 été rajouté dans la variable PATH.

Pour compiler MicroPython une série de modules Python avec des versions bien spécifiques sont nécessaire. Si on essaie de compiler dans l'environnement Python par défaut on reçoit les erreurs similaire à ceci:

mpCompilErrs.png

On doit alors créer un environnement virtuel Python avec tous les modules nécessaire à la compilation de MicroPython. Pour ce faire on a besoin du paquet python3-venv:

sudo apt install python3-venv

En suite il faut créer 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é, la compilation de MicroPython devrait marcher sans problèmes. Dans mon cas j'ai copié 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 à la source de MicroPython.

On peut effacer tous les résidus d'une compilation précédente avec

make BOARD=WROVER clean

La commande :

make erase

efface tous la contenue de la mémoire flash et

make BOARD=WROVER deploy

transfert l'interpréteur MicroPython fraichement compilé dans la mémoire flash de l'ESP32. Notre interpréteur MicroPython peut maintenant être utilisé avec minicom, ampy ou thonny.

-- Uli Raich - 2021-05-10

Comments

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng mpCompilErrs.png r1 manage 79.8 K 2021-06-17 - 10:46 UliRaich  
PNGpng virtualEnv.png r1 manage 20.1 K 2021-06-17 - 13:58 UliRaich  
Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r5 - 2021-06-20 - UliRaich
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback