Je suis suis déniché un microcontrôleur ESP32 de la marque Whadda (??) anciennement Velleman (Ah, ok, toute ma jeunesse ;-) dans la boutique au coin de la rue.
Fiche produit: Whadda ESP32 Development Board
Initiation à l'ESP32 grâce aux vidéos de Tommy Desrochers: d'abord ESP32 #1, puis ESP32 #2, ensuite ESP32 #3, et encore ESP32 #4, pour finir par ESP32 #5
Installation sous Linux
Lors du premier test de téléversement depuis l'API Aduino vers le micorcontrôleur, j'ai reçu deux messages d'erreur:
-
ModuleNotFoundError: No module named 'serial'
: L'API ne trouve pas le module Serial (pour l'affichage de messages du microcontrôleur vers l'API). On va devoir installer le module Serial de Python (Pourquoi Python ??). -
Failed uploading: no upload port provided
: Faute de droit d'écriture sur le port, l'API ne peux écrire pas sur le microcontrôleur. Il faudra donner accès à /dev/ttyUSB0 en ajoutant l’utilisateur au groupe dialout.
Du coup, l'installation sous Linux (Debian 12):
- Download module Serial de Python
# apt install python3-serial
- Ajout de l'utilisateur au groupe dialout:
# /sbin/usermod -aG dialout
+ reboot. - Download Aduino IDE: https://www.arduino.cc/en/software
- Unzip:
$ unzip arduino[…]
- Launch:
$ cd arduino[…]
, suivi de$ ./arduino-ide
- Menu File → Preferences → Additional boards manager URLs: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Menu Tools → Board → Board Manager… → recherche par mot clef ESP32, sélection de la version la plus récente de ESP32 by Espressif Systems, puis Install
- Menu Tools → Board → Esp32 → ESP32 Dev Module
- Menu Tools → Port → /dev/ttyUSB0
1er test:
- Menu File → example → ESP32 → ChipID → GetChipID
- Téléversement vers l'ESP32: Menu Sketch → Upload
- Menu Tools → Serial Monitor
- Change to 115200 Baud
Résultat:
ESP32 Chip model = ESP32-D0WDQ6 Rev 101 This chip has 2 cores Chip ID: 11493932
Stop language server
L'appli fait continuellement appel au "language server" pour l'aide à la programmation (autocomplétion), ce qui ralenti considérablement l'IDE → On supprime: Ctrl
+ Shift
+ p
puis Arduino: Stop Language Server
(à effectuer à chaque ouverture de l'IDE
https://forum.arduino.cc/t/how-to-disable-language-server-in-arduino-ide-2-3-2/1291420/2
Serial Output
void setup() {
Serial.begin(115200);
while (!Serial) continue;
Serial.println("Ready.");
}
void loop() {
}
K2000
[26/09/2014]
Suite illogique des pins GPIO
GPIO-1 en OUTPUT -> conflit avec sortie serial
#include <math.h>
const float pi = 3.14159;
const int ledPin[7] = {5,18,19,21,3,22,23};
void setup() {
for (int i=0; i<7; i++) {
pinMode (ledPin[i], OUTPUT);
}
}
void loop() {
for (float ang=-pi; ang<pi; ang=ang+(2*pi/700)) {
int led = (1+std::sin(ang))*7/2;
digitalWrite (ledPin[led], HIGH);
delay(1);
digitalWrite (ledPin[led], LOW);
}
}