Note
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l'univers des Raspberry Pi, Arduino et ESP32 avec d'autres passionnés.
Pourquoi rejoindre ?
- Support d'experts : Résolvez les problèmes après-vente et les défis techniques avec l'aide de notre communauté et de notre équipe.
- Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
- Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
- Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.
- Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [] et rejoignez-nous aujourd'hui !
Deux modules infrarouges d'évitement d'obstacles sont installés à l'avant de la voiture, ils permettent de détecter certains obstacles proches.
Dans ce projet, la voiture se déplace librement vers l'avant et, lorsqu'elle rencontre un obstacle, elle est capable de l'éviter et de continuer à se déplacer dans d'autres directions.
Composants requis
Pour ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d'acheter un kit complet, voici le lien :
Nom | ÉLÉMENTS DANS CE KIT | LIEN |
---|---|---|
3 in 1 Starter Kit | 380+ |
Vous pouvez également les acheter séparément via les liens ci-dessous.
INTRODUCTION DES COMPOSANTS | LIEN D'ACHAT |
---|---|
cpn_uno |
|
cpn_l9110 |
- |
cpn_tt_motor |
- |
cpn_avoid |
Câblage
Le module d'évitement d'obstacle est un capteur de proximité infrarouge à distance réglable dont la sortie est normalement haute et basse lorsqu'un obstacle est détecté.
Construisez maintenant le circuit selon le schéma ci-dessous.
Module IR gauche | Carte R3 |
---|---|
OUT | 8 |
GND | GND |
VCC | 5V |
Module IR droit | Carte R3 |
---|---|
OUT | 7 |
GND | GND |
VCC | 5V |
Ajuster le module
Avant de commencer le projet, vous devez régler la distance de détection du module.
Câblez selon le schéma ci-dessus, alimentez la carte R3 (soit en branchant directement le câble USB, soit en connectant le câble de la batterie 9V), sans télécharger le code.
Placez un carnet ou tout autre objet plat à environ 5 cm devant le module d'évitement d'obstacle IR.
Utilisez ensuite un tournevis pour tourner le potentiomètre sur le module jusqu'à ce que l'indicateur de signal sur le module s'allume, afin d'ajuster sa distance maximale de détection à 5 cm.
Suivez la même méthode pour régler l'autre module infrarouge.
Code
Note
- Ouvrez le fichier
5.obstacle_avoidance_module.ino
situé dans le dossier3in1-kit\car_project\5.obstacle_avoidance_module
. - Ou copiez ce code dans Arduino IDE.
- Ou téléchargez le code via Arduino Web Editor.
La voiture avancera une fois le code téléchargé avec succès. Lorsque le module infrarouge gauche détecte un obstacle, elle reculera vers la gauche ; lorsque le module infrarouge droit détecte un obstacle, elle reculera vers la droite ; si les deux côtés détectent un obstacle, elle reculera directement en arrière.
Comment ça fonctionne ?
Ce projet se base sur la valeur des modules d'évitement d'obstacles infrarouges gauche et droit pour faire prendre à la voiture l'action appropriée.
Ajoutez la définition de pin pour les 2 modules d'évitement d'obstacles, ici ils sont réglés sur
INPUT
.... const int rightIR = 7; const int leftIR = 8; void setup() { ... //IR obstacle pinMode(leftIR, INPUT); pinMode(rightIR, INPUT); }
Lisez les valeurs des modules infrarouges gauche et droit et laissez la voiture prendre l'action correspondante.
void loop() { int left = digitalRead(leftIR); // 0: Obstructed 1: Empty int right = digitalRead(rightIR); int speed = 150; if (!left && right) { backLeft(speed); } else if (left && !right) { backRight(speed); } else if (!left && !right) { moveBackward(speed); } else { moveForward(speed); } }
- Si le module IR gauche est à 0 (obstacle détecté) et le module IR droit est à 1, laissez la voiture reculer à gauche.
- Si le module IR droit est à 0 (obstacle détecté), laissez la voiture reculer à droite.
- Si les 2 modules IR détectent l'obstacle en même temps, la voiture reculera.
- Sinon, la voiture continuera à avancer.
À propos de la fonction
backLeft()
.Lorsque le moteur droit tourne dans le sens antihoraire et que le moteur gauche ne tourne pas, la voiture reculera vers la gauche.
void backLeft(int speed) { analogWrite(A_1B, speed); analogWrite(A_1A, 0); analogWrite(B_1B, 0); analogWrite(B_1A, 0); }
À propos de la fonction
backRight()
.Lorsque le moteur gauche tourne dans le sens horaire et que le moteur droit ne tourne pas, la voiture reculera vers la droite.
void backRight(int speed) { analogWrite(A_1B, 0); analogWrite(A_1A, 0); analogWrite(B_1B, 0); analogWrite(B_1A, speed); }