Conception de mon robot à roues omnidirectionnels – Partie 2

Après avoir testé les contrôles via un serveur web embarqué via l’ESP32 je n’étais pas convaincu.
Donc je me suis rabattu sur l’utilisation d’une manette PS4.

Pour rappel, voila donc tout le matériel utilisé dans mon robot :

  • Un microcontrôleur ESP32
  • Quatre moteurs à courant continu avec roues omnidirectionnelles
  • Deux drivers de moteur L298N
  • Une manette PS4
  • Une source d’alimentation (batterie LIPO)
  • Des fils de connexion

Le schéma de câblage est le suivant :

  • Connectez les broches IN1, IN2, IN3 et IN4 du driver de moteur aux broches GPIO 16, 17, 18 et 19 de l’ESP32, respectivement.
  • Connectez les broches IN5, IN6, IN7 et IN8 du driver de moteur aux broches GPIO 25, 26, 27 et 32 de l’ESP32, respectivement.
  • Connectez les broches ENA et ENB du driver de moteur aux broches GPIO 14 et 12 de l’ESP32.
  • Connectez les broches ENA2 et ENB2 du driver de moteur aux broches GPIO 15 et 2 de l’ESP32.
  • Connectez les moteurs aux sorties du driver de moteur.

Voici un résumé des connexions (G pour Gauche et D pour Droite) :

Broche Driver MoteurBroche ESP32
IN1 (G1)16
IN2 (G1)17
IN3 (G2)18
IN4 (G2)19
ENA14
ENB12
IN5 (D1)25
IN6 (D1)26
IN7 (D2)27
IN8 (D2)32
ENA215
ENB22

Configuration Logicielle

Tout d’abord, assurez vous d’avoir installé les bibliothèques nécessaires dans votre Arduino IDE :

  • La bibliothèque PS4Controller pour interagir avec la manette PS4.
  • Le package de carte ESP32.

Pour connecter votre manette PS4 à l’ESP32, vous devrez les associer en utilisant l’adresse MAC de la manette ( https://github.com/aed3/PS4-esp32 )

Explication du Code

  • Setup: Initialise les broches de contrôle des moteurs et configure la connexion avec la manette PS4.
  • Loop: Vérifie continuellement les entrées de la manette PS4 et ajuste les vitesses des moteurs en conséquence.
  • Fonctions de Contrôle des Moteurs:
    • avancer(int speed): Fait avancer le robot.
    • reculer(int speed): Fait reculer le robot.
    • lateralGauche(): Fait déplacer le robot vers la gauche.
    • lateralDroit(): Fait déplacer le robot vers la droite.
    • pivoterGauche(int speed): Fait tourner le robot vers la gauche en inversant le sens des moteurs correspondants.
    • pivoterDroit(int speed): Fait tourner le robot vers la droite en inversant le sens des moteurs correspondants.
    • arreter(): Arrête tous les moteurs.

Conclusion

En suivant ce guide, vous avez construit un robot omnidirectionnel contrôlé par une manette PS4. Cette plateforme offre une grande flexibilité de mouvement, permettant des déplacements avant, arrière, latéraux et des rotations. Vous pouvez améliorer ce projet en ajoutant des capteurs, en l’intégrant à d’autres systèmes ou en affinant la logique de contrôle pour répondre à vos besoins spécifiques.
Enfin, j’ai ajouter une caméra et un VTX ( https://betafpv.com/products/c04-camera-and-vtx-module ) afin d’avoir le retour vidéo de mon robot dans un casque FPV.

N’hésitez pas à modifier le code et à expérimenter avec différentes configurations pour étendre les capacités de ce robot. Je peux fournir les STL d’impression 3D sur demandes :).

Bonne construction !

ps : Dépot GIT : https://github.com/mike37510/OmnidirectionalRobot