- •Курс «Основы робототехники. Базовый уровень». Занятие 3 Подключение моторов робота через драйвер двигателя на микросхеме l298n
- •Программы управления драйвером
- •Практическое занятие 1. Подключение драйвера и представление в программе
- •Практическое занятие 2. Управление одним колесом робота
- •Практическое занятие 2. Робот едет вперед
- •Практическое занятие 3. Робот едет вперед и назад
- •Практическое занятие 5. Развороты робота
- •Практическое занятие 7. Задание скорости робота
- •Практическое занятие 8. Выравнивание скоростей моторов для движения по прямой
- •Практическое занятие 9. Движение по кругу
- •Практическое занятие 10. Движение по спирали
- •Практическое занятие 11. Движение по квадрату или другому многоугольнику
- •Практическое занятие 12. Произвольные движения
Практическое занятие 1. Подключение драйвера и представление в программе
Для возможности управления скоростью управляющие контакты драйвера нужно подключать к контактам, поддерживающим analogWrite (3, 5, 6, 9, 10, 11, помечены штрихом на Arduino Uno). В целях стандартизации схемы и программ рекомендуется следующее подключение (см. приложенную схему). Подключите драйвер в соответствии со схемой
Создайте новый скетч: Файл / Создать и сохраните его в D:\Arduino\Ваша фамилия латиницей или, предпочтительно, на Вашей флешке
В самом начале (выше блока setup) пропишите в программе номера пинов, к которым подключены контакты драйвера:
int LF= 10;
int LB= 9;
int RF = 6;
int RB = 5;
В блоке setup определите пины контроллера, подключенные к драйверу, как выходные:
void setup() { pinMode(LF, OUTPUT); pinMode(LR, OUTPUT); pinMode(RF, OUTPUT); pinMode(RB, OUTPUT); } |
Практическое занятие 2. Управление одним колесом робота
Примечание 1: все изменения в схеме проводить только при полностью отключенном питании робота
Примечание 2: если на драйвер двигателя подано питание (тумблер в положении ВКЛ, светодиоды горят даже без подключения к USB компьютера) работу с ним проводить только при наличии приподнятых колес или на полу, чтобы предотвратить падение со стола
Примечание 3: передней частью робота считается та, где расположен контроллер и макетная плата, задней – где расположено свободно вращающееся третье колесо
Откройте программу Файл / Примеры / Basic / Blink
Скопируйте блок loop в свою программу
Замените в своей программе переменную led на LF
Загрузите программу в контроллер
Включите тумблер питания от аккумуляторов и убедитесь, что левый мотор то вращается, то останавливается (колеса робота должны быть подняты, либо робот должен стоять на полу)
Если мотор вращается так, что двигает робота не вперед, а назад – поменяйте местами контакты мотора в клеммнике, к которому он подключен
Практическое занятие 2. Робот едет вперед
Добавьте в программу еще один контакт – RF, который включает езду второго колеса. Добавьте к включению первого включение и второго мотора:
digitalWrite(LF, HIGH); digitalWrite(RF, HIGH); |
и, соответственно, выключение:
digitalWrite(LF, LOW); digitalWrite(RF, LOW); |
Загрузите программу в робота, поставьте его на пол и нажмите кнопку включения. Робот должен поехать вперед, остановиться, снова поехать вперед и т.д.
Если робот вращается на месте вместо движения вперед – поменяйте местами контакты второго мотора в клеммнике
Практическое занятие 3. Робот едет вперед и назад
При изменении направления движения может возникнуть ситуация, когда Вы включите пин, включающий езду назад, но забудете выключить пин, включающий езду вперед. В этом случае, естественно, мотор никуда не поедет. Чтобы избежать подобной ситуации, всегда используют код, задающий состояния для всех контактов драйвера. Для езды вперед:
digitalWrite(LF, HIGH); digitalWrite(LB, LOW); digitalWrite(RF, HIGH); digitalWrite(RB, LOW); |
Для езды назад:
digitalWrite(LF, LOW); digitalWrite(LB, HIGH); digitalWrite(RF, LOW); digitalWrite(RB, HIGH); |
На основе этого кода напишите программу, реализующую следующий алгоритм
Включение езды робота вперед
Ожидание 2 секунды
Включение езды робота назад
Ожидание 2 секунды
Примечание: ожидание delay нужно, чтобы дать моторам возможность поработать в этом режиме и сколько-то проехать. Расстояние, которое проедет робот, зависит от времени delay
Загрузите программу в робота, поставьте его на пол, включите его и убедитесь, что он выполняет заданный алгоритм
