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 anti-obstacles contrôlé par Bluetooth

Composants et fournitures

Arduino Nano R3
× 1
Drivers de moteur SparkFun Dual H-Bridge L298
× 1
Capteur à ultrasons - HC-SR04 (Générique)
× 1
Module Bluetooth HC-05
× 1
Anode commune diffuse RVB
× 1
Convertisseur de niveau logique SparkFun - Bidirectionnel
× 1
Résistance 330 ohm
× 1
Planche à pain (générique)
× 1
SparkFun Breadboard Alimentation Stick 5V/3.3V
× 1
Moteur CC, 12 V
× 2
Câbles de raccordement mâle/femelle
× 1

Applications et services en ligne

Arduino IDE
Arduino BlueControl
Disponible sur Playstore.

À propos de ce projet

Le projet utilise un téléphone mobile pour communiquer avec un robot via Bluetooth. J'ai toujours voulu construire un robot et le contrôler via un téléphone portable. Après une longue interruption de plus de 12 ans, j'ai pris la tâche de construire un robot et de le faire fonctionner. C'est aussi mon premier projet dans l'Arduino Project Hub. L'électronique et la robotique sont l'un de mes passe-temps préférés et j'ai donc pris la tâche de construire le robot en cette période de confinement dû au Covid19.

Le robot détecte les signaux Bluetooth transmis par le téléphone mobile. Il utilise le module Bluetooth HC-05 pour détecter les signaux de commande du téléphone portable et contrôler le robot. J'ai utilisé l'application ArduinoBlueControl pour contrôler le robot.

Le cœur du robot est l'Arduino Nano. Il reçoit les signaux du module HC-05 via une communication série et contrôle les moteurs via le module de commande de moteur L298N pour le mouvement dans les directions avant, arrière, gauche et droite.

Des précautions doivent être prises pour connecter les broches TX et RX du module HC-05 avec l'Arduino Nano. Un convertisseur de niveau logique est utilisé pour la même chose.

Le robot utilise le module de capteur à ultrasons HC SR-04 pour détecter les obstacles sur son chemin. Lorsqu'il détecte un obstacle pendant son mouvement vers l'avant, le robot s'arrête. Une LED RVB est utilisée pour indiquer l'état du robot.

Le robot est assemblé dans un empattement à 2 roues composé de deux motoréducteurs. Le circuit est assemblé sur une maquette avec alimentation (3,3 V et 5 V). L'Arduino Nano ne peut pas piloter les moteurs directement en raison d'une exigence de courant beaucoup plus élevée pour les moteurs. Par conséquent, le module de commande de moteur L298N est utilisé pour piloter les moteurs. Les signaux PWM de l'Arduino Nano sont utilisés pour contrôler la vitesse des moteurs via les broches ENA et ENB du module de commande de moteur L298N.

Voici une courte vidéo du robot en fonctionnement :

J'espère que vous avez aimé mon robot d'évitement d'obstacles contrôlé par Bluetooth. Ce robot peut être modifié et étendu pour des utilisations dans la domotique, les véhicules d'évitement d'obstacles pour l'atelier, etc. et bien d'autres utilisations.

Code

  • Code Robot_Arduino contrôlé par Bluetooth.
Code Robot_Arduino contrôlé par Bluetooth.C/C++
/* Robot d'évitement d'obstacles contrôlé par Bluetooth Préparé par :Alok Talukdar Date :09.05.2020*/#include // Pour utiliser n'importe quelle broche sur Arduino pour la communication série.// Définir les broches numériques pour le moteur L298 module de commande.#define IN1 5 // pour le moteur droit#define IN2 4 // pour le moteur droit#define IN3 3 // pour le moteur gauche#define IN4 2 // pour le moteur gauche#define ENA 9 // Activer A pour le contrôle PWM du moteur droit#define ENB 10 // Activer B pour le contrôle PWM du moteur gauche// Définir les broches numériques pour le contrôle LED RGB#define redLED 8#define greenLED A0#define blueLED 11// Configurer le module de capteur à ultrasons HC-SR04 const int trigPin =6; // Broche TRIG connectée à la broche D6 d'Arduino Nanoconst int echoPin =7; // Broche ECHO connectée à la broche D7 d'Arduino Nanoint i,j,k =0 ; durée de flottement, distance ; // variables pour la mesure de distance// Configuration du module Bluetooth HC05SoftwareSerial mySerial(12,13); // (12 --> RX , 13 --> TX)Données de chaîne ; // variables pour Bluetooth controlint btVal;void setup() { // mettez votre code de configuration ici, à exécuter une fois :pinMode(trigPin,OUTPUT); // Configurez la broche D6 pour transmettre des impulsions ultrasonores pinMode(echoPin, INPUT); // Configurer la broche D7 pour recevoir les impulsions ultrasonores mySerial.begin(9600); // Configurer la série logicielle au débit en bauds 9600 pinMode(IN1,OUTPUT); // Configurez IN1 - IN4 comme OUTPUT pour contrôler les moteurs pinMode (IN2, OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); pinMode(ENA,SORTIE); pinMode(ENB,SORTIE); pinMode (LED rouge, SORTIE); pinMode (blueLED, SORTIE); pinMode (LED verte, SORTIE); digitalWrite(IN1,LOW); // Configurer l'état de IN1 - IN4 comme LOW digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); analogWrite (redLED, 255); // Éteindre les LED. La LED RVB est un type d'anode courant. digitalWrite (blueLED, HIGH); digitalWrite(greenLED,HIGH);}void loop(){ // placez votre code principal ici, pour l'exécuter à plusieurs reprises :while (mySerial.available()) { data =mySerial.readStringUntil('\n'); } btVal =(data.toInt()); switch (btVal) { cas 1 :forward(); digitalWrite (greenLED, LOW); analogWrite (redLED, 255); digitalWrite (blueLED, HIGH); dist(); Pause; cas 2 :reverse(); digitalWrite (LED verte, HAUTE); analogWrite (redLED, 255); digitalWrite (blueLED, LOW); Pause; cas 3 :gauche(); Pause; cas 4:droit(); Pause; cas 5 :stoprobot(); digitalWrite (LED verte, HAUTE); analogWrite (redLED, 0); digitalWrite (blueLED, HIGH); Pause; par défaut : digitalWrite(greenLED,HIGH); analogWrite (redLED, 255); digitalWrite (blueLED, HIGH); Pause; } if (mySerial.available() <0) { //Serial.println("Pas de données Bluetooth "); }} // déclarations de fonction de contrôle moteur void forward() { for(i=0;i<=100;i++) { analogWrite(ENA,i); analogWrite(ENB,i); digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); écriture numérique (IN4, HAUT); } } void reverse() { for(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); écriture numérique (IN4, HAUT); } void right() { analogWrite(ENA,0) ; analogWrite(ENB,127); digitalWrite(IN1,HIGH); digitalWrite(IN2,HIGH); digitalWrite(IN3,LOW); écriture numérique (IN4, HAUT); } void stoprobot() { analogWrite(ENA,0) ; analogWrite(ENB,0) ; digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); } void dist() { digitalWrite(trigPin,LOW); // pour envoyer une impulsion via la broche TRIG de HC-SR04 delayMicroseconds(2) ; digitalWrite(trigPin,HIGH); délaiMicrosecondes(10) ; digitalWrite(trigPin,LOW); durée =pulseIn(echoPin,HIGH); // lecture de la durée de la distance d'impulsion =(duration*0.0343)/2; // mesure la distance en cms. La vitesse du son est de 340 m/s ou 0,0343 cm/us if(distance<20) // si la distance est <20 cms , STOP robot { stoprobot(); digitalWrite (LED verte, HAUTE); analogWrite (redLED, 0); digitalWrite (blueLED, HIGH); } délai(1000); } 

Schémas

Schéma électrique du robot.

Processus de fabrication

  1. Un robot mobile avec un évitement d'obstacles basé sur la vision
  2. Robot Raspberry Pi contrôlé par Bluetooth
  3. Créez votre robot de streaming vidéo contrôlé par Internet avec Arduino et Raspberry Pi
  4. Robot à commande gestuelle utilisant Raspberry Pi
  5. ROBOT WIFI RASPBERRY PI CONTRLÉ À PARTIR D'UN SMARTPHONE ANDROID
  6. Windows 10 IoT Core :Robot à commande vocale
  7. Robot contrôlé par Wi-Fi utilisant Raspberry Pi
  8. ROObockey :robot de hockey de rue télécommandé et assisté
  9. Évitement d'obstacles à l'aide de l'intelligence artificielle