Introduction du projet :
Ce projet vise à concevoir et programmer un robot autonome capable de se déplacer et
d'éviter les obstacles en utilisant un capteur à ultrasons. Le robot repose sur un système
d'intelligence simple pour identifier la meilleure direction lorsqu'il rencontre un
obstacle, tout en interagissant dynamiquement avec son environnement pour garantir
un déplacement fluide.
Composants du projet :
Carte Arduino UNO : Le microcontrôleur principal qui exécute les instructions et
contrôle les composants du robot.
Moteurs DC :
o Responsables du mouvement (avant, arrière, rotation).
o Contrôlés grâce à la bibliothèque AFMotor.
Driver Motor Shield L293D : Permet de connecter les moteurs à la carte Arduino.
Capteur à ultrasons (Ultrasonic Sensor) :
o Mesure la distance entre le robot et les obstacles.
o Connecté via les broches TRIG_PIN et ECHO_PIN.
Servo moteur :
o Oriente le capteur pour analyser les distances à gauche et à droite.
Batterie : Fournit l'énergie nécessaire au fonctionnement du robot.
Câbles et connecteurs.
Fonctionnalités principales du robot :
Mouvement de base :
o Avancer : Le robot se déplace en avant lorsqu’il n’y a pas d’obstacles.
o Reculer : Le robot recule lorsqu’il détecte un obstacle à une distance proche.
o Tourner : Le robot choisit la meilleure direction (gauche ou droite) en
fonction des mesures du capteur.
o
Détection des obstacles :
o Le capteur à ultrasons mesure la distance avec les obstacles.
o Si la distance est inférieure à une distance de sécurité prédéfinie
(SAFE_DISTANCE), le robot s'arrête pour éviter la collision.
o
Choix de la meilleure direction :
o Le robot utilise un Servo Moteur pour déplacer le capteur à gauche et à
droite.
o Il compare les distances mesurées des deux côtés et choisit la direction
offrant le plus d’espace libre.
o
Ajustement dynamique de la vitesse :
o La vitesse des moteurs est ajustée en fonction de la distance à l’obstacle
grâce à la fonction map().
o La vitesse augmente ou diminue automatiquement pour assurer une
interaction fluide.
o
Éviter les blocages (Stuck Condition) :
o Si le robot reste bloqué face à un obstacle pendant une longue durée, il
prend des mesures pour se dégager (reculer et changer de direction).
Code source :
Bibliothèques utilisées :
o AFMotor : Pour contrôler les moteurs DC.
o NewPing : Pour interagir avec le capteur à ultrasons.
o Servo : Pour contrôler le Servo moteur.
Principales fonctions :
o readPing() : Lit les mesures du capteur à ultrasons en utilisant une moyenne pour
améliorer la précision.
o avoidObstacle() : Gère l’évitement des obstacles en cas de détection.
o lookAround() : Analyse les distances à droite et à gauche à l’aide du Servo moteur.
o adjustSpeed() : Ajuste la vitesse des moteurs en fonction de la distance détectée.
o checkIfStuck() : Vérifie si le robot est bloqué et prend les mesures nécessaires.
Étapes de réalisation :
1. Connexion des composants :
Connecter le capteur à ultrasons aux broches A0 et A1.
Brancher les moteurs DC au Motor Driver.
Connecter le Servo moteur à la broche 10.
Fournir l’alimentation via une batterie.
2. Téléchargement du code :
Charger le code source dans la carte Arduino en utilisant l’environnement
Arduino IDE.
3. Test du robot :
Placer le robot dans un environnement avec différents obstacles.
Observer ses mouvements et sa capacité à éviter les obstacles.
Conclusion :
Le projet "Robot évitant les obstacles avec Arduino" est un excellent exemple pratique
combinant programmation et électronique. Il illustre les principes de base du contrôle
de mouvement et de l’interaction avec l’environnement à l’aide de capteurs. Ce projet
constitue une base solide pour les débutants comme pour les professionnels souhaitant
développer des systèmes robotiques plus avancés.
o