Перейти к основному содержимому

Микроконтроллеры для роботов

Микроконтроллер соединяет датчики, драйверы и моторы робота

Коротко

Микроконтроллер - это маленький вычислительный узел, который выполняет программу прямо внутри устройства. В роботе он читает датчики, проверяет условия и отправляет команды моторам, светодиодам, сервоприводам и другим исполнительным устройствам.

Зачем это нужно

Роботу нужна часть, которая связывает датчики и действия. Датчик расстояния сам не решает, когда тормозить. Мотор сам не знает, в какую сторону вращаться. Светодиод сам не выбирает, когда мигать. Нужен контроллер, который выполняет программу и управляет остальными частями.

В учебной робототехнике часто используют платы с микроконтроллерами: Arduino, ESP32, micro:bit и похожие устройства. Они компактные, недорогие, быстро запускаются и умеют работать с выводами: читать кнопки и датчики, включать светодиоды, подавать сигналы на драйверы моторов.

Главная идея

Микроконтроллер похож на маленький управляющий центр робота.

входы от датчиков -> программа внутри микроконтроллера -> выходы к устройствам

Входы, программа, выходы и питание микроконтроллера

У микроконтроллера есть выводы. Одни выводы можно использовать как входы: к ним подключают кнопки и датчики. Другие выводы используют как выходы: через них управляют светодиодами, сервоприводами, драйверами моторов и другими устройствами.

Что такое вывод

Вывод, или пин, - контакт на плате или микросхеме. Через вывод микроконтроллер получает сигнал или отправляет управляющий сигнал.

Микроконтроллер и обычный компьютер

Микроконтроллер - не то же самое, что ноутбук или большой компьютер. Обычный компьютер удобен для сложных программ, экрана, файлов, интернета и разработки. Микроконтроллер удобен для прямого управления устройством.

ПризнакМикроконтроллерОбычный компьютер
Главная рольуправлять устройствомвыполнять разные пользовательские задачи
Запускобычно быстрыйзависит от операционной системы
Работа с выводамивстроенная часть платыобычно нужны дополнительные устройства
Энергопотреблениечасто небольшоеобычно выше
Примеры задачдатчик, мотор, лампа, сервоприводинтерфейс, файлы, сложные вычисления, видео

Это не значит, что компьютер хуже. В робототехнике часто используют оба подхода. Микроконтроллер может быстро управлять моторами, а компьютер - обрабатывать изображение с камеры или строить карту.

Что делает микроконтроллер в роботе

Микроконтроллер выполняет простые, но частые действия:

  • читает состояние кнопки;
  • измеряет сигнал датчика;
  • включает и выключает светодиод;
  • отправляет команду драйверу мотора;
  • задает положение сервопривода;
  • повторяет цикл программы много раз в секунду;
  • хранит небольшие настройки.

Главная сила микроконтроллера - постоянная работа с физическими сигналами. Он не просто считает числа, а связан с реальными проводами и устройствами.

Входы и выходы

Чтобы робот реагировал на мир, микроконтроллеру нужны входы и выходы.

ПодключениеПримерЧто происходит
Входкнопкамикроконтроллер читает, нажата она или нет
Входдатчик расстояниямикроконтроллер получает значение или сигнал
Выходсветодиодмикроконтроллер включает или выключает свет
Выходсервоприводмикроконтроллер задает положение
Выход через драйвермотормикроконтроллер командует, а драйвер питает мотор

Входные сигналы не всегда выглядят как готовое "да" или "нет". Некоторые датчики дают числа: расстояние, яркость, напряжение. Программа должна решить, как это число использовать.

если расстояние меньше порога -> остановиться
если расстояние больше порога -> ехать вперед
Что такое порог

Порог - выбранное значение, с которым сравнивают сигнал датчика. Например, если расстояние меньше 15 см, робот считает препятствие близким.

Программа и цикл

Программа микроконтроллера часто работает циклом. Она снова и снова читает датчики, проверяет условия и обновляет команды.

повторять:
прочитать датчик расстояния
если препятствие близко -> остановить моторы
иначе -> ехать вперед

Такой цикл нужен потому, что мир меняется. Препятствие может появиться позже, кнопка может быть нажата через секунду, робот может съехать с линии. Если программа проверила датчик только один раз, робот быстро перестанет реагировать на ситуацию.

Питание и ограничения

Микроконтроллеру нужно питание. Но питание микроконтроллера и питание моторов часто разделяют или продумывают отдельно. Моторы могут создавать помехи и потреблять больше энергии, чем логическая часть робота. Поэтому в схеме появляются драйверы, стабилизаторы и отдельные линии питания.

Есть и другие ограничения. У микроконтроллера ограничено количество выводов, память, скорость работы и допустимые напряжения. В учебных задачах это обычно не мешает, но помогает понять инженерное мышление: нельзя подключать все подряд как попало, нужно читать документацию к плате и модулям.

Пример: робот останавливается перед препятствием

Микроконтроллер читает датчик расстояния и управляет моторами робота

У робота есть датчик расстояния, два мотора, драйвер моторов, аккумулятор и микроконтроллер.

Работа может быть такой:

  1. Датчик расстояния измеряет, есть ли впереди препятствие.
  2. Микроконтроллер читает сигнал датчика.
  3. Программа сравнивает значение с порогом.
  4. Если препятствие близко, микроконтроллер отправляет команду остановить моторы.
  5. Если путь свободен, микроконтроллер разрешает движение вперед.

В таблице это можно записать так:

Сигнал датчикаРешение программыКоманда
препятствие далекоможно ехатьмоторы вращаются
препятствие близконужно остановитьсямоторы выключаются

Как выбирать микроконтроллер для учебного робота

Для первого робота обычно важнее простота, чем максимальная мощность.

КритерийПочему важен
Достаточно выводовнужно подключить датчики, драйверы и другие модули
Удобная среда разработкиученик быстрее загружает первую программу
Понятная документацияпроще исправлять ошибки подключения
Подходящее питаниеплата должна стабильно работать в роботе
Поддержка нужных модулейдатчики и драйверы должны подключаться без лишней сложности
Размерплата должна помещаться на корпусе

Arduino-подобные платы часто выбирают для старта из-за простого входа в электронику. ESP32 добавляет беспроводные возможности. Одноплатные компьютеры вроде Raspberry Pi полезны для задач с камерой, файлами и более сложными вычислениями, но это уже соседняя тема.

Что запомнить про микроконтроллеры

ИдеяКак понимать
Микроконтроллер выполняет программу внутри устройстваробот не зависит от постоянной команды компьютера
Выводы связывают программу с железомчерез них идут входные и выходные сигналы
Датчики дают входымикроконтроллер читает состояние мира
Драйверы и исполнительные устройства получают командыробот движется, светит или звучит
Цикл делает реакцию постояннойпрограмма проверяет датчики снова и снова
Ограничения нужно учитыватьпитание, выводы, напряжения и память важны для схемы

Практика

Задание 1

Заполните таблицу для робота, который должен включать светодиод при нажатии кнопки.

ЧастьВход или выход?Что делает микроконтроллер?
Кнопка
Светодиод
Программа

Задание 2

Придумайте правило для робота с датчиком расстояния.

Запишите:

если расстояние ... -> то ...

Задание 3

У робота два мотора, датчик линии и кнопка старта. Подумайте, сколько подключений к микроконтроллеру может понадобиться. Не нужно считать точно: перечислите, какие устройства должны быть связаны с платой.

Проверьте себя

  • Зачем роботу микроконтроллер?
  • Чем микроконтроллер отличается от обычного компьютера?
  • Что такое вывод микроконтроллера?
  • Почему мотор часто подключают через драйвер?
  • Зачем программа микроконтроллера работает в цикле?
  • Почему при выборе платы нужно смотреть на питание и количество выводов?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • Микроконтроллер - микросхема или плата, которая выполняет программу и управляет устройством.
  • Пин, или вывод - контакт для входного или выходного сигнала.
  • Вход - подключение, через которое микроконтроллер получает данные.
  • Выход - подключение, через которое микроконтроллер отправляет команду.
  • Порог - значение, с которым сравнивают сигнал датчика.
  • Цикл программы - повторение команд снова и снова.
  • Драйвер мотора - модуль, который управляет питанием мотора по команде контроллера.
  • Среда разработки - программа или веб-инструмент для написания и загрузки кода.

Связанные темы

Источники