DIY Mensen-Volgende Robot met Arduino UNO en Motor Shield
Onderdelen en Benodigdheden
| Arduino UNO | × | 1 |
| Adafruit Motor Shield | × | 1 |
| SG90 Micro Servo Motor | × | 1 |
| IR Transceiver (Generiek) | × | 2 |
| Ultrasoon Sensor HC-SR04 | × | 1 |
| Jumper Kabels | × | 1 |
| DC Motor 12V | × | 4 |
| Micro-motoren & Wielen Set | × | 4 |
| 9V Batterij | × | 1 |
| Kipschakelaar SPST | × | 1 |
Apps en Online Diensten
- Arduino IDE
Over dit Project
Hey allemaal! Tijdens deze pandemic maakte ik een nieuwe project: een Mensen-Volgende Robot (Human Following Bot).
De robot gebruikt 2 IR-sensoren om een mens of object te volgen, en een ultrasoon sensor om achteruit te rijden wanneer het te dichtbij komt.
Bouwstappen
- Verzamel componenten: Arduino, 4 DC motoren met wielen, 2 IR-sensoren, ultrasoon sensor, servo, karton, L293D motor shield, 9V batterij, schakelaar, jumper kabels.
- Monteer de 4 motoren met wielen op karton voor het chassis.
- Plaats de IR-sensoren op de robot.
- Bevestig de servo motor.
- Plaats de ultrasoon sensor in een doos met handvat en monteer op de servo.
- Monteer Arduino en motor shield op de robot.
- Maak de verbindingen volgens het schema.
- Upload de code en sluit de schakelaar met batterij aan op de motor shield.
- Stel de gevoeligheid van de IR-sensoren in.
Je project is klaar! Bezoek mijn YouTube kanaal voor meer projecten: "Electronics is Fun"
Code
// 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);
// Servo kalibratie: zoek centrum
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)) {
forword();
} 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) {
backword();
}
delay(50);
}
long read_cm() {
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
time = pulseIn(echopin, HIGH);
return time / 29 / 2;
}
void forword() {
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 backword() {
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);
}
Schema
Schema-afbeelding beschikbaar in de originele projectdocumentatie.
Productieproces
- Raspoulette: Zonnestroom-gevoede Autonome Koeienpoort Systeem Prototype
- Simple Pi Robot – Bouw een 2-WD Autonome Rover met Raspberry Pi
- Bouw je eigen UFO Attack Game met Arduino UNO & MAX7219 Display
- Arduino Uno Gebaseerde Mensendetectie Robot: Stap-voor-stap Sensorintegratie
- 3D RGB Arduclock – Bluetooth LED Tijdstuk met Real-Time Clock
- Uitgebreide bibliotheek voor bipolaire stappenmotoren met Arduino
- Riviergezondheidsmonitor: Arduino-gebaseerd Waterkwaliteitssysteem
- DIY Gitaar Speed Pick & Stomp Pedal – Bouw Je Eigen 3D-Gemotoriseerde Plektron
- Lineaire motoren begrijpen: Van elektrische energie naar nauwkeurige lineaire beweging
- Servomotoren Uitgelegd: Hoe Ze Werken en Waarom Ze Belangrijk Zijn
- Variabele-reluctantiemotoren: typen, werking en toepassingen