Министерство образования Тульской области Государственное профессиональное образовательное учреждение Тульской области

advertisement
Министерство образования Тульской области
Государственное профессиональное образовательное учреждение
Тульской области
«Донской колледж информационных технологий»
НАЗВАНИЕ ПРОЕКТА: Индикация движения мобильного робота
Статья
НОМИНАЦИЯ: Робототехника
Автор:
Киселев Петр Владимирович
Преподаватель
Донской
2014
Индикация движения мобильного робота
При отладке программных кодов или скетчей, составляемых для
мобильных роботов, большую помощь может оказать простая схема индикации
движения. В дальнейшем она может быть установлена на самом роботе, что
придаст значительную реалистичность вашей модели.
Изображение 1. Схема индикации движения мобильного робота.
При проверке и дальнейшей отладке скетча к блоку электронного
управления робота подключается индикация движения. GND к GND, IN1 к 2,
IN2 к 3, IN3 к 4 и IN4 к 5. Все это как условились по программе.
Блоком управления может быть Arduino UNO или Arduino Pro mini. Сам
модуль индикации с платой управления Arduino Pro mini изображен на Фото 1.
Фото 1. Модуль индикации движения робота.
Разработка программного кода движения робота по определенному
маршруту. В данном случае он может иметь вид:
int IN1 = 2;
int IN2 = 3;
int IN3 = 4;
int IN4 = 5;
void setup()
{
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
digitalWrite(IN1,LOW);
// Двигатель А вперед
НЕТ - LOW
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,LOW);
// Двигатель Б вперед
НЕТ - LOW
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(5000); // Это условие выполняется 5 секунд, после чего идет следующее
условие ниже.
}
void loop()
{
digitalWrite(IN1,HIGH);
// Двигатель А вперед
ДА - HIGH
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,HIGH);
// Двигатель Б вперед
ДА - HIGH
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(6000); // 6 секунд движения вперед.
digitalWrite(IN1,LOW);
// Двигатель А вперед
НЕТ - LOW
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,LOW);
// Двигатель Б вперед
НЕТ - LOW
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(1000); // Остановка на 1 секунду, после чего идет следующее условие
ниже.
digitalWrite(IN1,LOW);
// Двигатель А вперед
НЕТ - LOW
digitalWrite(IN2,HIGH);
// Двигатель А назад
ДА - HIGH
digitalWrite(IN3,HIGH);
// Двигатель Б вперед
ДА - HIGH
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(2000); // Разворот против часовой стрелки 2 секунды, затем выполняется
условие ниже.
digitalWrite(IN1,LOW);
// Двигатель А вперед
НЕТ - LOW
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,LOW);
// Двигатель Б вперед
НЕТ - LOW
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(1000); // Остановка на 1 секунду, после чего идет следующее условие
ниже.
digitalWrite(IN1,HIGH);
// Двигатель А вперед
ДА - HIGH
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ – LOW
digitalWrite(IN3,HIGH);
// Двигатель Б вперед
digitalWrite(IN4,LOW);
// Двигатель Б назад
ДА - HIGH
НЕТ – LOW
delay(3000); // Прямо 3 секундs, после чего идет следующее условие ниже.
digitalWrite(IN1,LOW);
// Двигатель А вперед
НЕТ - LOW
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,LOW);
// Двигатель Б вперед
НЕТ - LOW
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(1000); // Остановка на 1 секунду, после чего идет следующее условие
ниже.
digitalWrite(IN1,LOW);
// Двигатель А вперед
НЕТ - LOW
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ – LOW
digitalWrite(IN3,HIGH);
// Двигатель Б вперед
digitalWrite(IN4,LOW);
// Двигатель Б назад
ДА - HIGH
НЕТ - LOW
delay(4000); // Круг против часовой 4 секунды, после чего идет следующее
условие ниже.
digitalWrite(IN1,HIGH);
// Двигатель А вперед
ДА - HIGH
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,LOW);
// Двигатель Б вперед
НЕТ - LOW
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(4000); // Круг по часовой 4 секунды.
digitalWrite(IN1,HIGH);
// Двигатель А вперед ДА - HIGH
digitalWrite(IN2,LOW);
// Двигатель А назад
digitalWrite(IN3,HIGH);
// Двигатель Б вперед
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
ДА - HIGH
НЕТ - LOW
delay(3000); // Прямо 3 секунды, после чего выполняется условие ниже.
digitalWrite(IN1,LOW);
// Двигатель А вперед
НЕТ - LOW
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,LOW);
// Двигатель Б вперед
НЕТ - LOW
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(1000); // Остановка на 1 секунду, после чего идет условие ниже.
digitalWrite(IN1, HIGH);
// Двигатель А вперед
ДА - HIGH
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,LOW);
// Двигатель Б вперед
НЕТ - LOW
digitalWrite(IN4, HIGH);
// Двигатель Б назад
ДА - HIGH
delay(2000); // Разворот по часовой стрелке 2 секунды. Исходная позиция.
digitalWrite(IN1,LOW);
// Двигатель А вперед
НЕТ - LOW
digitalWrite(IN2,LOW);
// Двигатель А назад
НЕТ - LOW
digitalWrite(IN3,LOW);
// Двигатель Б вперед
НЕТ - LOW
digitalWrite(IN4,LOW);
// Двигатель Б назад
НЕТ - LOW
delay(1000); // Остановка на 1 секунду, после чего идет следующее условие
ниже.
delay(10000); // Остановка на 10 секунд.
}
Плата Arduino с блоком индикации подключается к компьютеру через USBпорт.
Работа с Arduino заключается в следующем.
1. Скачивается arduino 1.0.4 или arduino 1.0.5.
2. Запустить arduino.exe
Появится окно
3. В его поле записывается созданный программный код.
Получается:
4. В командной строке нажимается клавиша Сервис. Появляется:
Выбирается клавиша Плата и нажимается. Высвечивается:
Делается выбор нашей Arduino Pro orPro Mini(5V, 16MHz) w/ ATmega328.
5. Нажимается клавиша Последовательный порт.
Появляется:
6. Если все правильно происходит, то должно появиться два СОМ порта.
СОМ1 и еще какой-нибудь. У нас появился еще и СОМ3. Ставим
«галочку» напротив его.
7. Нажимаем горизонтальную стрелку (Загрузить). Вначале происходит
компилирование программного кода и, как только оно закончится, надо
успеть
на
плате
Arduino
Pro
mini
нажать
копку
сброса.
Если все в порядке, программный код запишется («зальется») в память
Pro
mini.
После всего этого наш скетч начнет выполняться.
Работа с модулем индикации осуществляется в следующем порядке:
Запускается установленная на компьютере система Arduino, которую
можно скачать по ссылке (1).
Модуль индикации подключается к USB компьютера. Работа модуля
происходит в автоматическом режиме. Имитация прохождения маршрута
роботом повторяется. (2)
Источники информации
1. http://iarduino.ru/file/1.html
2. http://youtu.be/XffxKplCGeg
Download