Оглавление:

Как сделать робота, следующего за человеком, с помощью Arduino: 3 шага
Как сделать робота, следующего за человеком, с помощью Arduino: 3 шага

Видео: Как сделать робота, следующего за человеком, с помощью Arduino: 3 шага

Видео: Как сделать робота, следующего за человеком, с помощью Arduino: 3 шага
Видео: Программирование робота-манипулятора 2024, Ноябрь
Anonim
Как сделать робота, следующего за человеком, с помощью Arduino
Как сделать робота, следующего за человеком, с помощью Arduino

Человек следует за чувством робота и следует за человеком

Шаг 1. Получите инструменты

Получите инструменты
Получите инструменты
Получите инструменты
Получите инструменты
Получите инструменты
Получите инструменты

Получите такие инструменты, как: ультразвуковой датчик, датчик, Arduino uno, 4 мотор-редуктора с колесом, сервопривод, аккумулятор и аккумуляторный отсек, драйвер двигателя, перемычки, шасси.

Шаг 2: Подключение

Подключение
Подключение
Подключение
Подключение
Подключение
Подключение
Подключение
Подключение

Подключите все оборудование к драйверу двигателя. Подключите драйвер двигателя к Arduino.

Шаг 3: Код

Код
Код

# include # include # include # define RIGHT A2 # define LEFT A3 # define TRIGGER_PIN A1 # define ECHO_PIN A0 # define MAX_DISTANCE 100NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); AF_DCMotor Motor1 (1, MOTOR12_1KHZ); AF_DCMOTOR2 (2KHZ); AF_DCMOTOR2; AF_DCMotor Motor3 (3, MOTOR34_1KHZ); AF_DCMotor Motor4 (4, MOTOR34_1KHZ); Servo myservo; int pos = 0; void setup () {// введите здесь код настройки, чтобы запустить его один раз: Serial.begin (9600); myservo.attach (10); {для (pos = 90; pos <= 180; pos + = 1) {myservo.write (pos); задержка (15);} for (pos = 180; pos> = 0; pos- = 1) {myservo.write (pos); задержка (15);} for (pos = 0; pos <= 90; pos + = 1) {myservo.write (pos); delay (15);}} pinMode (RIGHT, INPUT); pinMode (LEFT, INPUT);} void loop () {// поместите сюда ваш основной код для повторного выполнения: delay (50); unsigned int distance = sonar.ping_cm (); Serial.print ("расстояние"); Serial.println (расстояние); int Right_Value = digitalRead (RIGHT); int Left_Value = digitalRead (LEFT); Serial.print ("RIGHT"); Serial.println (Right_Value); Serial.print ("LEFT"); Serial.println (Left_Value); if ((Right_Value == 1) && (distance> = 10 && distance <= 30) && (Left_Value == 1)) {Motor1.setSpeed (120); Motor1.run (ВПЕРЕД); Motor2.setSpeed (120); Motor2.run (ВПЕРЕД); Motor3.setSpeed (120); Motor3.run (ВПЕРЕД); Motor4.setSpeed (120); Motor4.run (FORWARD);} else if ((Right_Value == 0) && (Left_Value == 1)) {Motor1.setSpeed (200); Motor1.run (ВПЕРЕД); Motor2.setSpeed (200); Motor2.run (ВПЕРЕД); Motor3.setSpeed (100); Motor3.run (НАЗАД); Motor4.setSpeed (100); Motor4.run (BACKWARD);} else if ((Right_Value == 1) && (Left_Value == 0)) {Motor1.setSpeed (100); Motor1.run (НАЗАД); Motor2.setSpeed (100); Motor2.run (НАЗАД); Motor3.setSpeed (200); Motor3.run (ВПЕРЕД); Motor4.setSpeed (200); Motor4.run (FORWARD);} else if ((Right_Value == 1) && (Left_Value == 1)) {Motor1.setSpeed (0); Motor1.run (РЕЛИЗ); Motor2.setSpeed (0); Motor2.run (РЕЛИЗ); Motor3.setSpeed (0); Motor3.run (РЕЛИЗ); Motor4.setSpeed (0); Motor4.run (RELEASE);} иначе, если (расстояние> 1 && расстояние <10) {Motor1.setSpeed (0); Motor1.run (РЕЛИЗ); Motor2.setSpeed (0); Motor2.run (РЕЛИЗ); Motor3.setSpeed (0); Motor3.run (РЕЛИЗ); Motor4.setSpeed (0); Motor4.run (РЕЛИЗ); }}

Рекомендуемые: