Premiers pas avec la carte uPesy ESP32S3DevKit
(Mis à jour le 12/10/2023)
Ce guide va vous aider pour vos premières utilisations de votre uPesy ESP32S3 DevKit : une carte basée sur la puissante puce ESP32S3, conçue des applications gourmandes en CPU et mémoire.
Comment programmer facilement l’ESP32S3 ?
Avertissement
Si c’est la première fois que vous touchez à une carte ESP32, je vous conseille de commencer par une carte basée sur le module ESP32 Wroom classique, au lieu du modèle ESP32S3 plus récent et plus complexe.
La programmation de l’ESP32S3 se fait avec les mêmes outils qu’un module ESP32 classique. Vous devez juste vous assurer d’avoir une version récente du portage Arduino , qui intègre les nouveaux modèles.
Programmer l’ESP32S3 avec MicroPython
MicroPython est déjà installé sur la carte uPesy ESP32S3. Vous pouvez directement utiliser votre éditeur préféré pour programmer la carte.
Programmer l’ESP32S3 avec du code Arduino dans l’IDE
Si vous partez de zéro, le lien vers le tutoriel pour installer et programmer l’ESP32 dans l’application Arduino IDE . Si vous déjà les outils d’installés, je vous recommande vivement d’utiliser la dernière version disponible :
Ensuite, vous pouvez choisir comme carte :
En attendant que la carte uPesy ESP32S3 soit répertoriée dans la liste, vous pouvez choisir le modèle basique “ESP32S3 Dev Module” qui fera très bien l’affaire.
Voici la configuration que je vous conseille de mettre pour les différents paramètres.
Note
La plupart concernent l’USB, que je déconseille d’utiliser dans un premier temps. Le plus important est l’activation de la PSRAM
Communication avec la carte ESP32S3
Comme vous avez pu le remarquer, la carte possède 2 ports USB. Il y a deux manières de programmer le module ESP32S3 :
Via l’UART avec un convertisseur USB → UART. C’est exactement la même manière qu’avec l’ESP32 classique. C’est le connecteur USB-C de droite.
Via l’USB natif. L’ESP32S3 peut communiquer directement en USB avec l’ordinateur. Même s’il présente certains avantages, il est plus difficile à mettre en place et est plus susceptible de bugger lors de la réalisation de vos programmes (Mode Deep Sleep par exemple). C’est le connecteur USB-C de gauche.
La méthode UART sera toujours prioritaire par rapport à l’USB.
Note
Je vous conseille donc d’utiliser le mode UART pour commencer.
Astuce
Avoir 2 ports USB distincts peut permettre de debugger un programme qui communique en USB à un périphérique externes via la liaison UART. Et vice-versa.
Communication via la liaison série (UART)
Contrairement aux autres cartes ESP32 d’uPesy, ce modèle utilise le convertisseur CH340. Si vous ne l’avez jamais utilisé sur une autre carte, l’installation du driver sera probablement nécessaire. Sur les versions récentes de Windows, le driver s’installe automatiquement lors du branchement de la carte à l’ordinateur (connexion Internet requise).
Au début, en allant dans le gestionnaire de périphériques, le CH340 n’est pas reconnu.
Ensuite une fois que l’installation automatique du driver est finie, le CH340G est bien détecté en tant que convertisseur USB → UART.
Note
Si l’installation automatique du CH340 ne se fait pas, vous pouvez essayer de forcer la recherche les nouvelles mises à jour dans Windows Update.
Sinon, vous pouvez toujours installer manuellement le drive. Ce tutoriel en français qui explique bien la procédure.
Comme avec l’ESP32 classique, le convertisseur met en mode DOWNLOAD
l’ESP32S3 automatiquement lors du téléversement d’un programme. Vous pouvez toujours le faire manuellement avec la manipulation des boutons EN
et BOOT
.
Vous pouvez ensuite choisir le port COM
dans Outils → Port et flasher le programme Blink suivant :
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(2, OUTPUT);
Serial.begin(115200);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
Serial.println("LED Allumée");
delay(250); // wait for a second
digitalWrite(2, LOW); // turn the LED off by making the voltage LOW
delay(250); // wait for a second
Serial.println("LED Eteinte");
}
Pour la LED RGB (Librairie FastLED requise installable depuis l’Arduino IDE) :
#include <FastLED.h>
#define LED_PIN 38
#define NUM_LEDS 1
#define BRIGHTNESS 64
#define LED_TYPE WS2812B
#define COLOR_ORDER RGB
CRGB leds[NUM_LEDS];
#define UPDATES_PER_SECOND 100
CRGBPalette16 currentPalette;
TBlendType currentBlending;
void setup() {
delay( 3000 ); // power-up safety delay
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
currentPalette = RainbowColors_p;
currentBlending = LINEARBLEND;
}
void loop()
{
static uint8_t startIndex = 0;
startIndex = startIndex + 1; /* motion speed */
FillLEDsFromPaletteColors( startIndex);
FastLED.show();
FastLED.delay(1000 / UPDATES_PER_SECOND);
}
void FillLEDsFromPaletteColors( uint8_t colorIndex)
{
uint8_t brightness = 255;
for( int i = 0; i < NUM_LEDS; ++i) {
leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
colorIndex += 3;
}
}
Note
Même si vous changez de programme, la LED conserve sa dernière couleur enregistrée dans sa mémoire (Il y a une mini puce logique incluse dans la LED).
Communication via USB (CDC & DFU)
La communication USB sera détaillée dans la documentation complète de la carte ultérieurement.
ESP32 Pinout : Comprendre les broches de l’ESP32
L’ESP32S3 possède beaucoup plus de broches que l’ESP32 classique. Les périphériques sont globalement les mêmes (SPI, I2C…).
La carte possède 2 LEDs intégrées:
Une LED blue sur la broche
GPIO2
(comme sur les cartes uPesy ESP32)Une LED RGB (type WS2812B Mini) sur la broche
38
, contrôlable via des librairies.
Si besoin, vous pouvez consulter le tutoriel sur le fonctionnement détaillé de chaque broche de l’ESP32S3 (ESP32S3 Pinout) pour avoir plus de précisions sur les pins de l’ESP32.
Apprendre la programmation sur l’ESP32
Le code est globalement identique à celui de l’ESP32 classique via le portage Arduino-ESP32. Il faut juste adapter les numéros des broches en conséquences. Vous trouverez plus d’informations à ce sujet sur la page détaillé du pinout de l’ESP3S3.
Documentation technique de l’ESP32S3
Pour finir la découverte de cette nouvelle carte, je vous encourage fortement à lire la documentation de la carte uPesy ESP32S3 DevKit , pour en apprendre davantage sur ses caractéristiques techniques et suivre les recommandations d’usage.