Un robot détecteur d'obstacles est un type de robot équipé de capteurs lui permettant de détecter et d'éviter les obstacles dans son environnement. Ce type de robot utilise différents capteurs pour identifier les objets, murs, ou autres obstacles et adapte sa trajectoire pour éviter des collisions. Il est utilisé dans diverses applications, comme la navigation autonome, les véhicules intelligents, ou encore les aspirateurs robotisés.
Voici les principaux éléments et capteurs qu’un robot détecteur d’obstacles peut utiliser :
Capteurs infrarouges (IR) : Ils émettent un faisceau infrarouge et détectent les obstacles en mesurant la réflexion du signal. Si le faisceau est renvoyé vers le capteur, un obstacle est détecté.
Capteurs ultrasonores : Ils fonctionnent comme des radars, en envoyant des ondes ultrasonores qui rebondissent sur les objets. Le robot mesure le temps pris par l’onde pour revenir, ce qui permet de calculer la distance.
LIDAR (Light Detection and Ranging) : Ce capteur envoie des impulsions lumineuses pour détecter la distance et la forme des objets autour du robot, offrant une cartographie détaillée de l’environnement.
Caméras et vision par ordinateur : En utilisant des caméras et des algorithmes de traitement d'image, certains robots peuvent détecter et analyser visuellement les obstacles pour les éviter.
Capteurs tactiles ou de pression : Ces capteurs détectent les obstacles seulement au moment de l'impact. Cela permet une réaction immédiate, mais sans prévenir à l'avance.
Applications : Un robot détecteur d'obstacles est utilisé dans les secteurs industriels, pour des tâches de surveillance ou d'exploration, ainsi que dans la robotique de service (robots aspirateurs, tondeuses automatiques, etc.). Ces robots sont également essentiels pour les véhicules autonomes qui doivent naviguer en toute sécurité dans des environnements complexes.
Un robot détecteur d'obstacles commandé par ESP32 avec un capteur ultrasonique HC-SR04 et un servomoteur est conçu pour détecter des obstacles et ajuster sa trajectoire pour les éviter. L'ajout d'un servomoteur au capteur ultrasonique permet de déplacer le capteur sur un angle donné (gauche, centre, droite) pour scanner l'environnement. Cela permet au robot d’analyser plusieurs directions et de prendre des décisions plus précises pour contourner les obstacles.
Le robot utilise une série d’étapes pour détecter, analyser et réagir aux obstacles en combinant la rotation du capteur ultrasonique et le contrôle des moteurs. Voici comment cela se déroule :
1- Initialisation :
Le servomoteur est fixé au capteur HC-SR04 et positionné au centre du robot pour qu’il puisse balayer de gauche à droite.
La carte ESP32 initialise les broches de commande des moteurs, du capteur HC-SR04, et du servomoteur.
2- Détection des Obstacles :
Le servomoteur fait pivoter le capteur ultrasonique à différents angles (par exemple -45°, 0°, +45°) pour scanner les distances à gauche, au centre et à droite.
À chaque position (gauche, centre, droite), le capteur ultrasonique mesure la distance jusqu’aux obstacles.
3- Prise de Décision :
Si la distance mesurée au centre est inférieure au seuil défini (par exemple, 15 cm), cela signifie qu'un obstacle est devant le robot.
Le robot compare ensuite les distances à gauche et à droite pour déterminer dans quelle direction tourner.
Il tourne vers la direction où la distance est la plus grande, indiquant une zone sans obstacle.
4- Évitement de l'Obstacle :
Le robot change de direction en fonction des informations de distance recueillies.
Une fois l’obstacle contourné, le servomoteur ramène le capteur en position centrale et le robot continue d'avancer.
5- Boucle Continue :
Le processus de détection, décision et mouvement se répète en continu, permettant au robot de naviguer de manière autonome dans son environnement.
Carte ESP32:
La carte ESP32 est la carte de contrôle principale du robot. Elle est programmée pour lire les données des capteurs et contrôler les moteurs en fonction des informations reçues.
Capteurs HC-SR04:
Ces capteurs à ultrasons sont utilisés pour détecter la distance entre le robot et l'objet à suivre. Chaque capteur est composé d'un émetteur et d'un récepteur ultrasonique. L'émetteur envoie un signal ultrasonique qui rebondit sur l'objet et revient au récepteur. En mesurant le temps que prend le signal pour revenir, le capteur peut calculer la distance entre le robot et l'objet.
Servomoteur :
Positionné pour faire pivoter le capteur HC-SR04, permettant au robot de scanner dans différentes directions.
Module L298N:
Le module L298N est un pont en H permettant de contrôler des moteurs à courant continu (DC) ou des moteurs pas à pas. Associé à un ESP32, il peut être utilisé pour piloter les deux moteurs du robot voiture.
Kit robot voitures de 2 roues
Le robot aura besoin de moteurs pour se déplacer et de roues pour assurer la mobilité. Les moteurs peuvent être de types différents en fonction de la conception du robot, mais ils doivent être compatibles avec le module L298N.
Le châssis est la structure du robot sur laquelle sont montés les autres composants. Il peut être fabriqué à partir de divers matériaux tels que le plastique, le bois ou le métal, et sa conception dépendra de la taille et de la forme souhaitées pour le robot.
Alimentation électrique :
Le robot aura besoin d'une source d'alimentation électrique pour fonctionner. Cela peut être une batterie rechargeable ou des piles, en fonction de la portabilité et de la durée d'utilisation souhaitées.
Câblage et connecteurs :
Des fils électriques et des connecteurs seront nécessaires pour relier les différents composants entre eux et à la carte Arduino UNO.
Plaque d'essai (Breadboard) :
On utilise la plaque d'essai pour faciliter le câblage des différents composants.
VCC → Borne (+) de la battreie 9V ou 3V3 de la carte ESP32
GND → GND.
Trig → GPIO12 (ou autre GPIO).
Echo → GPIO14 (ou autre GPIO).
VCC → Borne (+) de la battreie 9V
GND → GND.
Signal (PWM) → GPIO13 (ou autre GPIO pour contrôler la position).
VCC → Alimentation moteur (battreie 9V).
GND → GND.
ENA → GPIO33 (pour PWM de la vitesse).
IN1, IN2 → GPIO25, GPIO26 (contrôle de la direction du moteur 1).
IN3, IN4 → GPIO27, GPIO32 (contrôle de la direction du moteur 2).
OUT1, OUT2 → Moteur 1.
OUT3, OUT4 → Moteur 2.
Voici un code simplifié pour illustrer le fonctionnement de ce robot détecteur d’obstacles avec un capteur HC-SR04 et un servomoteur.
Ce code utilise la bibliothèque HCSR04 pour lire les données reçues par le capteur ultrason HC-SR04 et la bibliothèque AFMotor pour commander le module L293D.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
#include <HCSR04.h> #include <AFMotor.h> #include <Servo.h> Servo myservo; // create servo object to control a servo AF_DCMotor motor1(3); // connecter les deux moteurs des roues du robot au module L293D AF_DCMotor motor2(4); // definition des broches du capteur HC-SR04 const int trigPin = 4; const int echoPin = 7; int distance,distance_droite,distance_gauche; int pos; // initialisation du capteur avec les broches utilisees. UltraSonicDistanceSensor distanceSensor(trigPin, echoPin); void setup() { myservo.write(90); // tell servo to go to position 90 myservo.attach(10); // attaches the servo on pin 10 to the servo object motor1.setSpeed(100); motor2.setSpeed(100); // initialisation du port serie a 9600 band pour afficher les valeurs mesurees par le capteur. Serial.begin(9600); } void loop() { distance = distanceSensor.measureDistanceCm(); Serial.println(distance); delay(50); if ((distance<15)and(distance>0)){ // le capteur HC-SR04 détecte un obstacle motor1.run(RELEASE); // le robot s'arrete motor2.run(RELEASE); delay(500); motor1.run(BACKWARD); // le robot recule motor2.run(BACKWARD); delay(500); motor1.run(RELEASE); // le robot s'arrete motor2.run(RELEASE); for (pos = 90; pos > 10; pos -= 1) { // Faire tourner le capteur HC-SR04 vers la droite myservo.write(pos); delay(15); } delay(500); distance_droite = distanceSensor.measureDistanceCm(); // calculer la distance entre le capteur HC-SR04 et un obstacle s'il existe delay(500); for (pos = 0; pos < 170; pos += 1) { // Faire tourner le capteur HC-SR04 à gauche // in steps of 1 degree myservo.write(pos); delay(15); } delay(500); distance_gauche = distanceSensor.measureDistanceCm();// calculer la distance entre le capteur HC-SR04 et un obstacle s'il existe delay(500); for (pos = 170; pos > 90; pos -= 1) { // retour à la position initiale myservo.write(pos); delay(15); delay(500); } if (distance_droite<distance_gauche){ motor2.run(FORWARD); // faire tourner le robot à gauche delay(1000); motor2.run(RELEASE); delay(500); } else { motor1.run(FORWARD); // aire tourner le robot à droite delay(1000); motor1.run(RELEASE); delay(500); } } else if (distance>0) { motor1.run(FORWARD); // faire avancer la voiture motor2.run(FORWARD); } } |
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info