Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Robot Évitement d'Obstacles Contrôlé Bluetooth : Véhicule Télécommandé Intelligent

Composants et fournitures

ComposantQuantité
Arduino Nano R31
Driver moteur double H-bridge L298 (SparkFun)1
Capteur ultrason HC-SR041
Module Bluetooth HC-051
LED RGB anode commune diffusante1
Convertisseur niveau logique bidirectionnel (SparkFun)1
Résistance 330 Ω1
Plaque d'essai (breadboard)1
Alimentation breadboard 5V/3.3V (SparkFun)1
Moteur DC 12 V2
Fils de liaison mâle/femelle1 lot

Applications et services en ligne

À propos du projet

Ce projet utilise un smartphone pour piloter un robot via Bluetooth. Après 12 ans d'interruption, j'ai repris l'électronique/robotique pendant le confinement Covid-19. C'est mon premier projet sur Arduino Project Hub.

Robot Évitement d Obstacles Contrôlé Bluetooth : Véhicule Télécommandé Intelligent

Le robot reçoit les commandes Bluetooth via le module HC-05 et l'application ArduinoBlueControl. Le cœur est l'Arduino Nano : il reçoit les commandes série du HC-05 et pilote les moteurs via le L298N (avant, arrière, gauche, droite).

Robot Évitement d Obstacles Contrôlé Bluetooth : Véhicule Télécommandé Intelligent

Attention : Les pins TX/RX du HC-05 doivent être croisées avec l'Arduino Nano. Un convertisseur de niveau logique est utilisé (HC-05 = 3,3V, Nano = 5V).

Robot Évitement d Obstacles Contrôlé Bluetooth : Véhicule Télécommandé Intelligent

Le capteur HC-SR04 détecte les obstacles en marche avant : le robot s'arrête si distance < 20 cm. Une LED RGB indique l'état du robot.

Robot Évitement d Obstacles Contrôlé Bluetooth : Véhicule Télécommandé Intelligent

Châssis 2 roues motrices (moteurs réducteurs). Circuit sur breadboard avec alimentation 3,3V/5V. L'Arduino ne peut pas piloter directement les moteurs (courant trop fort) → L298N nécessaire. Les signaux PWM de l'Arduino (pins ENA/ENB du L298N) contrôlent la vitesse.

Robot Évitement d Obstacles Contrôlé Bluetooth : Véhicule Télécommandé Intelligent

Vidéo de démonstration disponible sur le projet original.

Ce robot peut être étendu : domotique, véhicules évitement d'obstacles pour ateliers, etc.

Code

/* Robot évitement d'obstacles contrôlé Bluetooth
   Auteur : Alok Talukdar - 09.05.2020 */
#include <SoftwareSerial.h>

// Pins L298N
#define IN1 5  // Moteur droit
#define IN2 4
#define IN3 3  // Moteur gauche
#define IN4 2
#define ENA 9  // PWM droit
#define ENB 10 // PWM gauche

// LED RGB (anode commune)
#define redLED 8
#define greenLED A0
#define blueLED 11

// HC-SR04
const int trigPin = 6;
const int echoPin = 7;
float duration, distance;

// HC-05 Bluetooth
SoftwareSerial mySerial(12, 13); // RX, TX
String data;
int btVal;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  mySerial.begin(9600);
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
  pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT);
  pinMode(redLED, OUTPUT); pinMode(blueLED, OUTPUT); pinMode(greenLED, OUTPUT);
  digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
  analogWrite(redLED, 255); // LED éteintes (anode commune)
  digitalWrite(blueLED, HIGH);
  digitalWrite(greenLED, HIGH);
}

void loop() {
  while (mySerial.available()) {
    data = mySerial.readStringUntil('\n');
  }
  btVal = data.toInt();

  switch (btVal) {
    case 1: forward();  ledVert();  dist(); break;   // Avant
    case 2: reverse();  ledRouge(); break;           // Arrière
    case 3: left();     break;                       // Gauche
    case 4: right();    break;                       // Droite
    case 5: stoprobot(); ledBleu();  break;          // Stop
    default: ledBlanc(); break;
  }
}

// --- Contrôle moteurs ---
void forward() {
  for (int i = 0; i <= 100; i++) {
    analogWrite(ENA, i); analogWrite(ENB, i);
    digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);  digitalWrite(IN4, HIGH);
  }
}
void reverse() {
  for (int j = 0; j <= 100; j++) {
    analogWrite(ENA, j); analogWrite(ENB, j);
    digitalWrite(IN1, LOW);  digitalWrite(IN2, HIGH);
    digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
  }
}
void left() {
  analogWrite(ENA, 127); analogWrite(ENB, 0);
  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH);
}
void right() {
  analogWrite(ENA, 0); analogWrite(ENB, 127);
  digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH);
  digitalWrite(IN3, LOW);  digitalWrite(IN4, HIGH);
}
void stoprobot() {
  analogWrite(ENA, 0); analogWrite(ENB, 0);
  digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}

// --- LED RGB (anode commune : LOW = allumé) ---
void ledVert()   { digitalWrite(greenLED, LOW); analogWrite(redLED, 255); digitalWrite(blueLED, HIGH); }
void ledRouge()  { digitalWrite(greenLED, HIGH); analogWrite(redLED, 255); digitalWrite(blueLED, LOW); }
void ledBleu()   { digitalWrite(greenLED, HIGH); analogWrite(redLED, 0); digitalWrite(blueLED, HIGH); }
void ledBlanc()  { digitalWrite(greenLED, HIGH); analogWrite(redLED, 255); digitalWrite(blueLED, HIGH); }

// --- Mesure distance + arrêt urgence ---
void dist() {
  digitalWrite(trigPin, LOW); delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration * 0.0343) / 2; // cm
  if (distance < 20) {
    stoprobot();
    ledBleu();
  }
  delay(1000);
}

Schémas

Schéma de câblage complet du robot.

Robot Évitement d Obstacles Contrôlé Bluetooth : Véhicule Télécommandé Intelligent

Processus de fabrication

  1. Robot mobile évitant les obstacles par vision sur Raspberry Pi
  2. Construire un robot Raspberry Pi piloté par Bluetooth avec retour audio
  3. Construire un robot piloté par Internet avec streaming vidéo Arduino & Raspberry Pi
  4. Robot à commande gestuelle piloté par Raspberry Pi
  5. Construire un robot piloté Wi‑Fi avec Raspberry Pi & Smartphone Android
  6. Construire un robot piloté par la parole avec Windows 10 IoT Core sur Raspberry Pi 2
  7. Construire un robot Raspberry Pi piloté Wi-Fi avec Python – Guide pas à pas
  8. ROObockey : Robot de hockey sur rue télécommandé à visée assistée de précision
  9. Système d'Évitement d'Obstacles par Intelligence Artificielle (Q-Learning) sur Arduino