Donc, j’ai monté mon ESP32 dans le Parrot Sumo et mis le driver moteur suivant >> https://www.robot-maker.com/shop/drivers-d-actionneurs/56-driver-moteurs-cc-l9110-56.html
Ensuite j’ai demandé un peu d’aide à chat GPT pour faire une version 1 de mon code.
Mon idée c’est d’avoir un serveur Web embarqué dans mon ESP32 afin d’envoyer via cette interface web des commandes à mon robot Parrot Sumo.
Voila ce que j’ai fait comme code (enfin avec l’aide de l’IA), et voila le rendu pour le moment. C’est moche, MAIS cela fonctionne ! 🙂
#include <WiFi.h>
#include <WebServer.h>
#include <analogWrite.h>
const char* ssid = "monwifi";
const char* password = "monpasswifi";
WebServer server(80);
const int AIA = 16; // Moteur1
const int AIB = 17;
const int BIA = 18; // Moteur2
const int BIB = 19;
byte speed_fwd_rev = 255;
byte speed_left_right = 200;
void setup() {
Serial.begin(115200);
pinMode(AIA, OUTPUT);
pinMode(AIB, OUTPUT);
pinMode(BIA, OUTPUT);
pinMode(BIB, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
server.on("/", handleRoot);
server.on("/forward", handleForward);
server.on("/reverse", handleReverse);
server.on("/left", handleLeft);
server.on("/right", handleRight);
server.begin();
Serial.println("Web server started");
}
void loop() {
server.handleClient();
}
void handleRoot() {
String html = "<!DOCTYPE html><html><body>";
html += "<h1>Welcome to the robot control page!</h1>";
html += "<h2>Click the buttons below to control the robot</h2>";
html += "<button onclick=\"location.href='/forward'\">Forward</button><br><br>";
html += "<button onclick=\"location.href='/reverse'\">Reverse</button><br><br>";
html += "<button onclick=\"location.href='/left'\">Left</button>";
html += "<button onclick=\"location.href='/right'\">Right</button>";
html += "</body></html>";
server.send(200, "text/html", html);
}
void handleForward() {
analogWrite(AIA, 0);
analogWrite(AIB, speed_fwd_rev);
analogWrite(BIA, 0);
analogWrite(BIB, speed_fwd_rev);
server.send(200, "text/plain", "Moving forward");
}
void handleReverse() {
analogWrite(AIA, speed_fwd_rev);
analogWrite(AIB, 0);
analogWrite(BIA, speed_fwd_rev);
analogWrite(BIB, 0);
server.send(200, "text/plain", "Moving backward");
}
void handleLeft() {
analogWrite(AIA, 0);
analogWrite(AIB, speed_left_right);
analogWrite(BIA, speed_left_right);
analogWrite(BIB, 0);
server.send(200, "text/plain", "Turning left");
}
void handleRight() {
analogWrite(AIA, speed_left_right);
analogWrite(AIB, 0);
analogWrite(BIA, 0);
analogWrite(BIB, speed_left_right);
server.send(200, "text/plain", "Turning right");
}
void handleSpeedFwd() {
String arg = server.arg(0);
if (arg == "0") {
speed_fwd_rev = 0;
} else if (arg == "1") {
speed_fwd_rev = 100;
} else if (arg == "2") {
speed_fwd_rev = 150;
} else if (arg == "3") {
speed_fwd_rev = 200;
} else if (arg == "4") {
speed_fwd_rev = 255;
}
analogWrite(AIA, 0);
analogWrite(AIB, speed_fwd_rev);
analogWrite(BIA, 0);
analogWrite(BIB, speed_fwd_rev);
server.send(200, "text/plain", "Speed updated");
}




