Академический Документы
Профессиональный Документы
Культура Документы
Простейший робот
на Arduino
2
Простейший робот на Arduino
Простейший робот
на Arduino
Мы начинаем изучение курса «Инновационные тех-
нологии», и для начала разберемся с понятием «иннова-
ции». Кроме того, рассмотрим, что это за направление,
и почему оно столь важно в современном мире. Термин
«инновации» означает нововведения. Проще говоря, это
внедрение новшеств в разработке услуг и продуктов. Од-
нако инновации — это не просто что-то новое, а имен-
но то, что может улучшить любую сферу человеческой
деятельности.
Инновации — это результат интеллектуальной и твор-
ческой деятельности человека. И в процессе изучения
этого курсе мы будем генерировать нестандартные тех-
нические идеи для решения самых разных задач (рис. 1).
Рисунок 1
3
Урок 1
Рисунок 2
Рисунок 3
4
Простейший робот на Arduino
Рисунок 4
Робот будет ездить по черной линии, то есть у нас бу-
дет автоматизированное транспортное средство. Чтобы
распознавать на своем пути линию, понадобится анало-
5
Урок 1
Рисунок 5
Рисунок 6
6
Простейший робот на Arduino
Рисунок 7
Все компоненты автоматически подключаются к пла-
те, поэтому нам не понадобится самостоятельно добав-
лять соединения.
Выбираем необходимые компоненты и добавляем
их. Нам потребуются L298N Motor Driver Board Module,
два компонента Hobby Motor — Gear и два компонента
IR Line Track Follower Sensor (рис. 8).
7
Урок 1
Рисунок 8
В этом же редакторе можем открыть раздел Code,
чтобы увидеть автоматически сгенерированный код.
Здесь нам могут понадобиться константы с номерами
пинов (рис. 9)
Рисунок 9
8
Простейший робот на Arduino
Рисунок 10
Как только один из ИК-датчиков окажется на чер-
ной линии, он не получит никакого сигнала. В то же
время другой датчик, который находится на белой по-
верхности, получает сигнал. В этот момент останавли-
вается двигатель со стороны того датчика, который на-
ехал на черную линию. Двигатель на противоположной
стороне включается. То есть, если правый ИК-датчик
оказался на черной линии, то правый мотор отключа-
ется, а левый — включается. В результате машинка по-
ворачивает направо (рис. 11). Если же левый ИК-датчик
9
Урок 1
Рисунок 11
Рисунок 12
10
Простейший робот на Arduino
Рисунок 13
Приступим к программированию. Сначала мы опре-
деляем пины:
#define IRLINEFOLLOW_1_PIN_OUT 8 // left sensor
#define IRLINEFOLLOW_2_PIN_OUT 9 // right sensor
//pin definition
#define ENA 5
#define IN1 2
#define IN2 3
#define ENB 6
#define IN3 4
#define IN4 7
11
Урок 1
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
analogWrite(ENA, mySpeed);
analogWrite(ENB, mySpeed);
delay(1000);
}
if (!(digitalRead(IRLINEFOLLOW_1_PIN_OUT)) &&
digitalRead(IRLINEFOLLOW_2_PIN_OUT)) {
// Turn right
turnRight();
}
if (digitalRead(IRLINEFOLLOW_1_PIN_OUT) &&
!(digitalRead(IRLINEFOLLOW_2_PIN_OUT))) {
// turn left
turnLeft();
}
12
Простейший робот на Arduino
if (!(digitalRead(IRLINEFOLLOW_1_PIN_OUT)) &&
!(digitalRead(IRLINEFOLLOW_2_PIN_OUT))) {
// stop
stopMove();
}
}
void moveBackward() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(1000);
}
void stopMove() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void turnRight() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
13
Урок 1
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(1000);
}
void turnLeft() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(1000);
}
Рисунок 14
14
Простейший робот на Arduino
Рисунок 15
Созданный робот может стать основой для многих
интересных проектов. К примеру, мы могли бы усовер-
шенствовать модель, добавив новые компоненты, к при-
меру, камеру (рис. 16).
Рисунок 16
15
Урок 1
Рисунок 17
16
Простейший робот на Arduino
17
Урок 1
Простейший робот на Arduino