Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Bonjour les gars, dans ce Instructable, vous ferez un obstacle en évitant le robot. Ce Instructable consiste à construire un robot avec un capteur à ultrasons qui peut détecter les objets à proximité et changer leur direction pour éviter ces objets. Le capteur à ultrasons sera attaché à un servomoteur qui balaie constamment la gauche et la droite à la recherche d'objets sur son passage.
Alors, sans plus tarder, commençons !
Étape 1: Ce dont vous avez besoin dans ce projet:
Voici la liste des pièces:
1) Arduino Uno
2) Bouclier de pilote de moteur
3) Ensemble moteur à engrenages, cadre et roues
4) servomoteur
5) Capteur à ultrasons
6) Batterie Li-ion (2x)
7) Support de batterie
8) Fil de cavalier mâle et femelle
9) Fer à souder
10) Chargeur
Étape 2: schéma de circuit
Travail:
Avant de travailler sur le projet, il est important de comprendre le fonctionnement du capteur à ultrasons. Le principe de base du fonctionnement du capteur à ultrasons est le suivant:
À l'aide d'un signal de déclenchement externe, la broche Trig du capteur à ultrasons est rendue logique haute pendant au moins 10 µs. Une rafale sonique du module émetteur est envoyée. Celui-ci se compose de 8 impulsions de 40KHz.
Les signaux reviennent après avoir heurté une surface et le récepteur détecte ce signal. La broche Echo est élevée à partir du moment de l'envoi du signal et de sa réception. Ce temps peut être converti en distance à l'aide de calculs appropriés.
Le but de ce projet est de mettre en place un robot évitant les obstacles à l'aide d'un capteur à ultrasons et d'Arduino. Toutes les connexions sont faites selon le schéma du circuit. Le fonctionnement du projet est expliqué ci-dessous.
Lorsque le robot est sous tension, les deux moteurs du robot fonctionnent normalement et le robot avance. Pendant ce temps, le capteur à ultrasons calcule en continu la distance entre le robot et la surface réfléchissante.
Ces informations sont traitées par l'Arduino. Si la distance entre le robot et l'obstacle est inférieure à 15 cm, le robot s'arrête et scanne dans les directions gauche et droite pour une nouvelle distance à l'aide du servomoteur et du capteur à ultrasons. Si la distance vers le côté gauche est supérieure à celle du côté droit, le robot se préparera à un virage à gauche. Mais d'abord, il recule un peu, puis active le moteur de la roue gauche en sens inverse.
De même, si la distance droite est supérieure à celle de la distance gauche, le Robot prépare la rotation à droite. Ce processus se poursuit indéfiniment et le robot continue de se déplacer sans heurter aucun obstacle.
Étape 3: Programmation d'Arduino UNO
#comprendre
#comprendre
#comprendre
# définir TRIG_PIN A1
# définir ECHO_PIN A0
# définir MAX_DISTANCE 200
# define MAX_SPEED 255 // définit la vitesse des moteurs à courant continu
# définir MAX_SPEED_OFFSET 20
Nouveau sonar Ping (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DCMotor motor3(3, MOTOR34_1KHZ);
AF_DCMotor motor4(4, MOTOR34_1KHZ); Servo myservo;
booléen vaForward = false;
distance entière = 100; int speedSet = 0;
void setup() {
monservo.attach(10);
monservo.write(115); retard (2000); distance = readPing(); retard (100); distance = readPing(); retard (100); distance = readPing(); retard (100); distance = readPing(); retard (100); }
boucle vide() {
distance intR = 0; int distanceL = 0; retard (40);
if (distance <= 15) { moveStop(); retard (100); recule(); retard (300); moveStop(); retard (200); distanceR = regarderDroit(); retard (200); distanceL = regarderGauche(); retard (200);
si (distanceR >= distanceL) {
Tournez à droite(); moveStop(); } else { tournerGauche(); moveStop(); } } else { moveForward(); } distance = readPing(); }
int lookDroit() {
monservo.write(50); retard (500); int distance = readPing(); retard (100); monservo.write(115); distance de retour; }
int lookGauche() {
monservo.write(170); retard (500); int distance = readPing(); retard (100); monservo.write(115); distance de retour; retard (100); }
int readPing() {
retard (70); int cm = sonar.ping_cm(); si (cm == 0) {cm = 250; } renvoie cm; }
void moveStop() {
motor3.run(LIBÉRER);
motor4.run(LIBÉRER); }
void moveForward() {
si (!va vers l'avant) {
va en avant = vrai;
motor3.run(AVANT);
motor4.run(AVANT); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // augmenter lentement la vitesse pour éviter de charger les batteries trop rapidement {
motor3.setSpeed(speedSet);
motor4.setSpeed(speedSet); retard(5); } } }
void moveBackward() {
va en avant = faux;
motor3.run(BACKWARD);
motor4.run(BACKWARD); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // augmenter lentement la vitesse pour éviter de charger les batteries trop rapidement {
motor3.setSpeed(speedSet);
motor4.setSpeed(speedSet); retard(5); } }
void tourner à droite () {
motor3.run(AVANT);
motor4.run(BACKWARD); retard (500);
motor3.run(AVANT);
motor4.run(AVANT); }
vide tournerGauche() {
motor3.run(BACKWARD);
motor4.run(AVANT); retard (500);
motor3.run(AVANT);
motor4.run(AVANT); }
1) Téléchargez et installez l'IDE Arduino Desktop
- fenêtres -
- Mac OS X -
- Linux -
2) Téléchargez et collez le fichier de la bibliothèque NewPing (bibliothèque de fonctions de capteur à ultrasons) dans le dossier des bibliothèques Arduino.
- Téléchargez le NewPing.rar ci-dessous
- Extrayez-le dans le chemin - C:\Arduino\libraries
3) Téléchargez le code sur la carte Arduino via un câble USB
Code de téléchargement:
Étape 4: Super
Votre robot est maintenant prêt à éviter tout obstacle…
Je serais heureux de répondre à toutes vos questions
Envoyez-moi un e-mail: [email protected]
Site Web:
Abonnez-vous à ma chaîne YouTube:
Instagram:
Facebook:
Merci:)