Cet article explique comment programmer un ESP32 et tous ses dérivés (M5StickC, M5Stack, M5Core,...) en utilisant VsCode et l'extension PlatformIO.
Dans VSCode, cliquer sur "Extensions", saisir "platformio" dans la barre de recherche, sélectionner "PlatformIO IDE" et cliquer sur "Install" :
A la fin de l’installation, redémarrer VSCode :
Sur la barre latérale, cliquer sur "PlatformIO", puis sur "Create New Project" :
Cliquer sur "New Project" :
Donner un nom au projet, choisir le modèle de carte utilisé, Framework "Arduino" et changer la Location de manière à l’enregistrer dans votre espace personnel :
La création du projet peut prendre un peu de temps, en profiter pour lire les informations sur la structure des dossiers et fichiers du projet :
Dans l’onglet "PIO Home", cliquer sur "Libraries. Dans la barre de recherche, taper "M5Core2" (ou le nom de la carte que vous utilisez !) et sélectionner la bibliothèque "M5Core2 by M5Stack" :
Cliquer sur "Add to Project" :
Sélectionner le projet :
La bibliothèque est installée dans le dossier ".piolibdeps" du projet. De nombreux exemples sont fournis. Un lien vers cette bibliothèque est créé dans le fichier "platform.ini" situé à la racine du projet :
lib_deps = m5stack/M5Core2@^0.1.5
Le code principal est dans le fichier « src/main.cpp » :
On retrouve la structure type d’un programme Arduino avec les fonctions setup() et loop(). La fonction main() n’est pas visible, elle peut être représentée par cet organigramme :
La fonction setup() est appelée une seule fois au début, ensuite,
comme son nom l’indique, la fonction loop() est exécuté en boucle
Modifier le fichier "main.cpp" avec le code ci-dessous :
#include <M5Core2.h> // Ce code est pour un M5Stack Core2 adapter cette ligne à votre matériel
void setup() {
// put your setup code here, to run once:
M5.begin(true, false, true, true); // Init M5Core
M5.Lcd.setTextSize(2); // Set the font size
M5.Lcd.setTextColor(TFT_YELLOW); // Set the font color to yellow
M5.Lcd.setCursor(80,0);
M5.Lcd.println("Hello World !");
}
void loop() {
// put your main code here, to run repeatedly:
}
Pour compiler et téléverser le code dans la carte, cliquer sur "Upload" :
Vous devez obtenir l’affichage ci-dessous :
La variable M5 est une instance de la classe M5Core2 instanciée dans le fichier "M5Core2.cpp". Dans le programme précédent, on peut voir que la méthode "begin" comporte 5 paramètres optionnels avec une valeur par défaut (laisser le pointeur de la souris au dessus de "begin" pour faire apparaitre les informations).
Il est possible de consulter le code de cette méthode en faisant CTRL + clic sur son nom. On peut constater que si le paramètre "SerialEnable" est à true, le port série du M5Stack est initialisé à 115 200 bauds :
Il fait donc configurer le moniteur série à 115 200 bauds dans le fichier "platformio.ini" :
Pour démarrer le moniteur série, cliquer sur l’icône "Serial Monitor" (Ctrl + Alt + S) :
Le moniteur série s’ouvre en bas de l’écran, les paramètres de connexion sont affichés :
Ajouter la ligne ci-dessous à la fin de la fonction "setup()" et téléverser le programme :
Serial.println("Hello World !");
Vous devez obtenir l’affichage ci-dessous :
Il existe plusieurs méthodes pour écrire sur le port série. Les plus couramment utilisées sont :
Serial est une instance de la classe "HardwareSerial", il est possible d’accéder à sa déclaration en faisant CTRL + CLIC sur "Serial" dans votre code, puis à nouveau CTRL + CLIC sur "HardwareSerial" pour accéder aux méthodes de cette classe.
Article connexe : A A A Foure tout