Электродвигатель и контроллер — основа любого мобильного робота. Если микроконтроллер — это «мозг» робота, то двигатели и драйверы — его «мышцы». Понимание того, как работают эти устройства и как ими управлять с помощью алгоритмов, является ключевым навыком в робототехнике.
1. Электронные устройства: электродвигатель и контроллер
1.1. Электродвигатель постоянного тока (коллекторный)
Электродвигатель — это устройство, преобразующее электрическую энергию в механическую (вращение вала). В учебной робототехнике наиболее распространены коллекторные двигатели постоянного тока -1.
Принцип действия: При подаче напряжения на обмотки ротора возникает магнитное поле, которое взаимодействует с полем постоянных магнитов статора, заставляя ротор вращаться. Коллектор (щёточно-ламельный узел) переключает ток в обмотках в нужный момент, обеспечивая непрерывное вращение -1.
Характеристики коллекторного двигателя:
Скорость вращения пропорциональна приложенному напряжению.
Ток (и, соответственно, момент на валу) пропорционален нагрузке.
Просты в управлении: для запуска достаточно подать напряжение -1.
Недостатки: малый момент на низких скоростях, электромагнитные помехи, ограниченный ресурс щёток -1.
1.2. Контроллер (драйвер) двигателя
Микроконтроллер (Arduino, ESP32) не может напрямую питать двигатель — его выходы дают слишком маленький ток (до 40 мА). Для управления двигателем нужен драйвер или контроллер — устройство, которое получает слабые управляющие сигналы от микроконтроллера и подаёт на двигатель мощный ток от батареи -1.
Популярные драйверы: L298N, L293D, TB6612FNG.
Принципы управления (ШИМ — широтно-импульсная модуляция):
Для регулировки скорости вращения двигателя используется метод ШИМ. Суть метода: напряжение на двигатель подаётся не постоянно, а короткими импульсами. Чем больше длительность импульса относительно паузы, тем выше среднее напряжение и тем быстрее вращается двигатель -1.
2. Практическая работа «Подключение мотора к контроллеру, управление вращением»
Цель работы: научиться подключать двигатель к микроконтроллеру через драйвер и программировать его вращение в разных режимах.
Необходимые компоненты:
Микроконтроллер (Arduino Uno/Nano)
Драйвер моторов (L298N или аналогичный)
1–2 коллекторных двигателя постоянного тока (DC-мотора) с колёсами
Аккумуляторная батарея (6–12 В)
Соединительные провода, макетная плата
2.1. Схема подключения (один двигатель через драйвер L298N)
| Драйвер L298N | Подключение |
|---|---|
| VCC (12V) | + аккумулятора (6–12 В) |
| GND | – аккумулятора и GND Arduino |
| 5V (опционально) | 5V Arduino (для питания логики) |
| ENA (Enable A) | ШИМ-пин Arduino (например, 5) — управление скоростью |
| IN1, IN2 | Цифровые пины Arduino (например, 6, 7) — управление направлением |
| OUT1, OUT2 | К двигателю |
2.2. Управление вращением
Управление коллекторным двигателем через драйвер L298N требует подачи сигналов на три пина -8:
| Режим | ENA (ШИМ) | IN1 | IN2 |
|---|---|---|---|
| Вперёд | 255 | HIGH | LOW |
| Назад | 255 | LOW | HIGH |
| Стоп | 255 | LOW | LOW |
| Тормоз | 0 | любое | любое |
| Регулировка скорости | 0–255 | (как выше) | (как выше) |
Пример программы:
// Определение пинов const int enA = 5; // ШИМ-управление скоростью const int in1 = 6; // Направление 1 const int in2 = 7; // Направление 2 void setup() { pinMode(enA, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); } void loop() { // Вращение вперёд на полной скорости (1 секунда) digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 255); delay(1000); // Остановка (0.5 секунды) digitalWrite(in1, LOW); digitalWrite(in2, LOW); delay(500); // Вращение назад на половинной скорости (1 секунда) digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(enA, 128); delay(1000); // Остановка digitalWrite(in1, LOW); digitalWrite(in2, LOW); delay(500); }
3. Алгоритмы. Роботы как исполнители
3.1. Алгоритм и его свойства
Алгоритм — это точная последовательность действий, которые должен выполнить исполнитель для достижения поставленной цели. Алгоритмы обладают свойствами:
Дискретность — разбиение на отдельные шаги (команды).
Понятность — все команды должны входить в систему команд исполнителя.
Результативность — алгоритм должен приводить к нужному результату.
Массовость — алгоритм должен работать для всех допустимых исходных данных -7.
3.2. Робот как формальный исполнитель
Робот в программировании — это формальный исполнитель, который не вникает в смысл команд, а просто выполняет их строго по порядку. У любого исполнителя есть система команд (СКИ) — набор команд, которые он понимает и может выполнить -3.
Пример системы команд учебного робота:
вверх,вниз,влево,вправо— перемещение на одну клетку.закрасить— закрасить текущую клетку -3.Управление моторами:
двигаться_вперёд(скорость),повернуть_налево(),остановиться().
3.3. Алгоритмические структуры управления роботом
| Структура | Описание | Пример для робота |
|---|---|---|
| Следование | Команды выполняются последовательно одна за другой | moveForward(1000); turnLeft(); moveForward(1000); |
| Ветвление | Выбор действий в зависимости от условия | if (distance < 20) { stopRobot(); } else { moveForward(); } |
| Цикл | Многократное повторение действий | for (int i = 0; i < 4; i++) { moveForward(1000); turnLeft(90); } |
4. Практическая работа «Сборка модели робота, программирование мотора»
Цель работы: собрать двухколёсного робота на дифференциальном приводе и запрограммировать его базовые движения (вперёд, назад, повороты, остановка).
Необходимые компоненты:
Микроконтроллер (Arduino Uno/Nano или ESP32)
Драйвер моторов (L298N)
2 DC-мотора с колёсами
Аккумуляторная батарея
Корпус или платформа (шасси)
Соединительные провода, макетная плата
4.1. Этапы выполнения
| № | Этап | Содержание работы | Результат |
|---|---|---|---|
| 1 | Сборка шасси | Закрепить моторы на платформе, установить колёса | Механическая база |
| 2 | Подключение электроники | Подключить драйвер к моторам, микроконтроллеру и батарее согласно схеме | Электрическая схема |
| 3 | Тестирование моторов | Написать программу для проверки каждого мотора отдельно | Работоспособность моторов |
| 4 | Создание функций движений | Написать функции forward(), backward(), turnLeft(), turnRight(), stop() | Библиотека движений |
| 5 | Программирование базового маршрута | Написать программу для движения по квадрату (4 раза: вперёд → поворот налево) | Готовая программа |
| 6 | Отладка | Проверить работу, скорректировать параметры (скорость, время поворота) | Работоспособный робот |
4.2. Пример программы для движения по квадрату
// Определение пинов (на примере L298N) const int enA = 5; // ШИМ правых моторов const int enB = 6; // ШИМ левых моторов const int in1 = 7; // Правое колесо направление 1 const int in2 = 8; // Правое колесо направление 2 const int in3 = 9; // Левое колесо направление 1 const int in4 = 10; // Левое колесо направление 2 void setup() { // Настройка пинов на выход pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); } void forward(int duration) { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enA, 200); // скорость правых analogWrite(enB, 200); // скорость левых delay(duration); stop(); } void turnLeft(int duration) { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enA, 150); analogWrite(enB, 150); delay(duration); stop(); } void stop() { digitalWrite(in1, LOW); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, LOW); } void loop() { for (int i = 0; i < 4; i++) { // цикл для 4 сторон квадрата forward(1000); // движение вперёд 1 секунду turnLeft(500); // поворот налево 0.5 секунды } delay(2000); // пауза перед повторением }
Вывод: Электродвигатель и контроллер являются основой для создания мобильных роботов. Управление скоростью и направлением вращения двигателя осуществляется с помощью ШИМ-сигналов через драйвер. Алгоритмы управления роботами строятся на трёх базовых структурах — следовании, ветвлении и цикле, — а сам робот выступает как формальный исполнитель этих алгоритмов. Выполнение практической работы по сборке модели робота и программированию мотора формирует ключевые навыки, необходимые для дальнейшего изучения робототехники и создания автономных систем.
Список использованных источников
Технологии и алгоритмы управления движением роботов / Истовый инженер, 2025
РОБОТ ИНФОРМАТИКА 8 КЛАСС: как решать и работать в программе Кумир / УрокЦифры.рф, 2023
Проект робота для следования по линии (ТCRT5000, ESP32) / РобоФинист, 2025
Всесторонний анализ бесщеточных двигателей постоянного тока (BLDC) / CubeMars, 2024
Информатика 9 класс: Основы программирования (исполнители Робот, Чертежник, Редактор) / Ростелеком
Программируем робота и настраиваем управление: 2-я часть гайда по сборке робота / Skillbox, 2024
Регулирование скорости бесщеточного привода с двигателем постоянного тока / ЦИТМ Экспонента
Программа для управления учебным роботом Finchrobot / ВВГУ, 2024