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 Suiveur Humain DIY avec Arduino UNO et Shield Moteur

Composants et Fournitures

Arduino UNO×1
Shield Moteur Adafruit×1
Servomoteur SG90×1
Capteurs IR Transceiver (×2)×2
Capteur à ultrasons HC-SR04×1
Fils de connexion×1
Moteurs DC 12V (×4)×4
Roues et micromoteurs Pimoroni (×4)×4
Batterie 9V×1
Interrupteur à bascule SPST×1

Logiciels

À Propos du Projet

Projet « Human Following Bot » réalisé pendant la pandémie. Ce robot suit une personne ou un objet grâce à deux capteurs IR et recule si un obstacle est trop proche via le capteur à ultrasons.

Étapes de Construction

  1. Rassembler les composants : Arduino, 4 moteurs DC avec roues, 2 capteurs IR, capteur ultrasons, servomoteur, carton, shield L293D, batterie 9V, interrupteur, fils.
  2. Fixer les 4 moteurs sur une base en carton.
  3. Positionner les capteurs IR sur le châssis.
  4. Fixer le servomoteur.
  5. Monter le capteur ultrasons sur le servomoteur (dans une boîte avec poignée).
  6. Installer l'Arduino et le shield moteur.
  7. Câbler selon le schéma.
  8. Téléverser le code, connecter l'interrupteur et la batterie au shield.
  9. Ajuster la sensibilité des capteurs IR.

Chaîne YouTube : Electronics is Fun

Code Arduino

// www.YouTube.com/Electronics is Fun
#include <Servo.h>
#include <AFMotor.h>

#define LEFT A0
#define echopin A1
#define trigpin A2
#define RIGHT A3

AF_DCMotor Motor1(1, MOTOR12_1KHZ);
AF_DCMotor Motor2(2, MOTOR12_1KHZ);
AF_DCMotor Motor3(3, MOTOR34_1KHZ);
AF_DCMotor Motor4(4, MOTOR34_1KHZ);

Servo myservo;
int pos = 0;
long time;

void setup() {
  Serial.begin(9600);
  myservo.attach(10);
  // Balayage initial du servo
  for (pos = 90; pos <= 180; pos += 1) { myservo.write(pos); delay(15); }
  for (pos = 180; pos >= 0; pos -= 1) { myservo.write(pos); delay(15); }
  for (pos = 0; pos <= 90; pos += 1) { myservo.write(pos); delay(15); }
  
  pinMode(RIGHT, INPUT);
  pinMode(LEFT, INPUT);
  pinMode(trigpin, OUTPUT);
  pinMode(echopin, INPUT);
}

void loop() {
  unsigned int distance = read_cm();
  int Right_Value = digitalRead(RIGHT);
  int Left_Value = digitalRead(LEFT);
  
  Serial.print("R= "); Serial.print(Right_Value);
  Serial.print(" L= "); Serial.print(Left_Value);
  Serial.print(" D= "); Serial.println(distance);

  if ((Right_Value == 1) && (distance >= 10 && distance <= 30) && (Left_Value == 1)) {
    forward();
  } else if ((Right_Value == 0) && (Left_Value == 1)) {
    turnRight();
  } else if ((Right_Value == 1) && (Left_Value == 0)) {
    turnLeft();
  } else if ((Right_Value == 1) && (Left_Value == 1)) {
    stop();
  } else if (distance > 5 && distance < 10) {
    stop();
  } else if (distance < 5) {
    backward();
  }
  delay(50);
}

long read_cm() {
  digitalWrite(trigpin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigpin, HIGH);
  delayMicroseconds(10);
  time = pulseIn(echopin, HIGH);
  return time / 29 / 2;
}

void forward() {
  Motor1.setSpeed(120); Motor1.run(FORWARD);
  Motor2.setSpeed(120); Motor2.run(FORWARD);
  Motor3.setSpeed(120); Motor3.run(FORWARD);
  Motor4.setSpeed(120); Motor4.run(FORWARD);
}

void backward() {
  Motor1.setSpeed(120); Motor1.run(BACKWARD);
  Motor2.setSpeed(120); Motor2.run(BACKWARD);
  Motor3.setSpeed(120); Motor3.run(BACKWARD);
  Motor4.setSpeed(120); Motor4.run(BACKWARD);
}

void turnRight() {
  Motor1.setSpeed(200); Motor1.run(FORWARD);
  Motor2.setSpeed(200); Motor2.run(FORWARD);
  Motor3.setSpeed(100); Motor3.run(BACKWARD);
  Motor4.setSpeed(100); Motor4.run(BACKWARD);
}

void turnLeft() {
  Motor1.setSpeed(100); Motor1.run(BACKWARD);
  Motor2.setSpeed(100); Motor2.run(BACKWARD);
  Motor3.setSpeed(200); Motor3.run(FORWARD);
  Motor4.setSpeed(200); Motor4.run(FORWARD);
}

void stop() {
  Motor1.setSpeed(0); Motor1.run(RELEASE);
  Motor2.setSpeed(0); Motor2.run(RELEASE);
  Motor3.setSpeed(0); Motor3.run(RELEASE);
  Motor4.setSpeed(0); Motor4.run(RELEASE);
}

Schéma de Câblage

Robot Suiveur Humain DIY avec Arduino UNO et Shield Moteur

Processus de fabrication

  1. Moteurs à réluctance variable : types, fonctionnement et applications
  2. Raspoulette : Prototype de système autonome de porte de poulailler à énergie solaire
  3. Simple Pi Robot – Construire un rover autonome 2 roues motrices avec Raspberry Pi
  4. Jeu UFO Attack DIY avec Arduino UNO et Afficheur MAX7219
  5. Robot de détection humaine basé sur Arduino Uno : Intégration capteurs étape par étape
  6. Horloge 3D RGB Arduclock – Montre LED Bluetooth avec horloge temps réel
  7. Médiator Motorisé et Pédale d'Effet DIY – Impression 3D et Arduino
  8. Comprendre les moteurs linéaires : de l'énergie électrique au mouvement linéaire précis
  9. Servomoteurs expliqués : fonctionnement et importance