Как сделать робота своими руками: плата, моторы, датчик

Как сделать робота своими руками: плата, моторы, датчик

Данные на октябрь 2026, документация ArduinoОпубликовано 20 декабря 2025Обновлено 4 октября 20269 мин чтения
Двухколёсное шасси робота с платой, драйвером и датчиком расстояния
Коротко
  • Простой робот состоит из контроллера, привода (моторов), датчика и питания.
  • Начинают с платы вроде Arduino Uno: мигание светодиодом, затем управление мощностью через ШИМ, затем чтение датчика.
  • Мотор подключают не к выводу платы напрямую, а через драйвер; питание моторов и логики продумывают отдельно.
  • Код в статье — примеры из официальной документации Arduino; на плате мы их не запускали.
Содержание12 разделов ▾
  1. С чего начать: цель и набор
  2. Как устроен простой робот
  3. Контроллер: Arduino и аналоги
  4. Шаг 1. Установите Arduino IDE
  5. Шаг 2. Проверьте плату: мигание светодиодом
  6. Шаг 3. Мощность через ШИМ
  7. Шаг 4. Датчик расстояния
  8. Шаг 5. Правило поведения
  9. Что делать, если не работает
  10. Условия и ограничения
  11. Частые ошибки
  12. Короткий вывод

Простой робот состоит из контроллера, привода и датчика: вы собираете их вместе, подключаете к плате вроде Arduino и пишете программу, которая читает датчик и управляет моторами. Статья для тех, кто знает основы электричества и программирования. Вы разберёте, как связаны узлы робота, и пройдёте по шагам от мигающего светодиода до чтения датчика расстояния.

Важная оговорка про код. Все скетчи в статье взяты из официальной документации Arduino; мы сверили их со страницами справочника, но на плате не запускали. Поэтому здесь нет вывода в мониторе порта или фраз «проверено на роботе». Данные на октябрь 2026 года.

С чего начать: цель и набор

Сначала решите, что должен уметь первый робот. Чем проще цель, тем быстрее результат.

Что хотимЧто понадобится (тип, не марка)
Проверить, что плата работаетПлата, USB-кабель, компьютер с Arduino IDE
Мигать светодиодомВстроенный светодиод платы или внешний светодиод с резистором
Ехать вперёд и назадПлатформа с двумя моторами, драйвер мотора, источник питания
Остановиться перед препятствиемДатчик расстояния
Повернуть манипуляторСервопривод (серводвигатель)

Определение робота из Википедии: автоматическое устройство, предназначенное для различных действий, обычно выполняемых человеком. Робот обычно получает информацию об окружающем пространстве с помощью датчиков и действует по заложенной программе. Подробнее о том, что такое робот и какие они бывают, читайте в статье «Что такое робот».

Как устроен простой робот

Схема соединений такая: питание подаётся на плату и отдельно на драйвер мотора, плата управляет драйвером, драйвер — моторами, датчик подключён к плате и сообщает ей о препятствиях.

УзелЧто делаетКак связан с остальными
Контроллер (плата)Выполняет программуЧитает датчики, управляет драйвером
Драйвер мотораПодаёт ток на моторыПолучает команды от платы, питается от источника питания
МоторыДвигают платформуПодключены к драйверу
Датчик расстоянияИзмеряет расстояние до препятствияПодключён к выводам платы
Источник питанияДаёт энергиюПитает плату и, как правило, отдельно — драйвер

Вывод платы рассчитан на небольшой ток. Страница примера Blink объясняет, что даже для светодиода нужен резистор: он ограничивает ток, предотвращая повреждение светодиода и вывода платы. Мотору нужно заметно больше, поэтому между платой и мотором ставят драйвер мотора или плату расширения: например, в каталоге Arduino есть Motor Shield Rev3. Допустимые токи и схему подключения смотрите в описании выбранного драйвера и платы.

Контроллер: Arduino и аналоги

Документация Arduino описывает UNO R3 как плату на микроконтроллере ATmega328P с 14 цифровыми выводами (6 из них можно использовать как выходы ШИМ), 6 аналоговыми входами, USB-разъёмом, разъёмом питания и кнопкой сброса. Её можно подключить к компьютеру по USB или питать от адаптера или батареи. Википедия называет Arduino торговой маркой аппаратно-программных средств для построения простых систем и экспериментов в области электроники, автоматики и робототехники.

Шаг 1. Установите Arduino IDE

Страница установки Arduino IDE 2 сообщает требования: Windows 10 и новее (64 бита), Linux (64 бита), macOS 10.15 и новее (64 бита). Скачайте установщик на странице загрузки Arduino. В Windows достаточно запустить скачанный файл и следовать инструкции установки, на macOS — скопировать скачанный файл в папку «Программы». Установка в Windows может занять несколько минут.

Шаг 2. Проверьте плату: мигание светодиодом

Подключите плату к компьютеру по USB и откройте встроенный пример: в меню File → Examples → 01.Basics → Blink. Страница примера объясняет, как он работает. Сначала функция pinMode(LED_BUILTIN, OUTPUT) настраивает вывод светодиода как выход. В основном цикле digitalWrite(LED_BUILTIN, HIGH) подаёт 5 вольт и зажигает светодиод, а digitalWrite(LED_BUILTIN, LOW) возвращает вывод к нулю и гасит его. Между включением и выключением delay() ставит паузу. Пример из справочника по delay() выглядит так (светодиод на выводе 13):

Cpp
int ledPin = 13;              // LED connected to digital pin 13

void setup() {
  pinMode(ledPin, OUTPUT);    // sets the digital pin as output
}

void loop() {
  digitalWrite(ledPin, HIGH); // sets the LED on
  delay(1000);                // waits for a second (1000 ms)
  digitalWrite(ledPin, LOW);  // sets the LED off
  delay(1000);                // waits for a second (1000 ms)
}

Функция setup выполняется один раз при запуске, loop повторяется бесконечно. Документация по delay() определяет её как паузу программы на указанное число миллисекунд; на странице Blink отмечено, что на это время больше ничего не происходит.

Шаг 3. Мощность через ШИМ

Мотором и светодиодом удобно управлять, меняя мощность. Для этого есть ШИМ: быстрое включение и выключение, при котором меняется доля времени «включено». Википедия определяет ШИМ как управление мощностью методом пульсирующего включения и выключения потребителя энергии. На Arduino это функция analogWrite(pin, value). По документации, она записывает на вывод сигнал ШИМ, им можно менять яркость светодиода или скорость мотора; значение value — от 0 (всегда выключено) до 255 (всегда включено). Вывод для ШИМ нужно выбирать из тех, что поддерживают эту функцию (на UNO R3 их шесть).

Пример из документации задаёт яркость светодиода по значению потенциометра:

Cpp
int ledPin = 9;      // LED connected to digital pin 9
int analogPin = A3;   // potentiometer connected to analog pin 3 (A3)
int val = 0;         // variable to store the read value

void setup() {
  pinMode(ledPin, OUTPUT);  // sets the pin as output
}

void loop() {
  val = analogRead(analogPin);  // read the input pin
  analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}

Для мотора вместо светодиода на тот же вывод подключают вход драйвера мотора, а не сам мотор. Схему берите из описания драйвера.

Шаг 4. Датчик расстояния

Датчик расстояния подключают к выводам платы и читают с него импульс. Некоторые датчики расстояния сообщают результат длительностью импульса на выходе. Измерить длительность помогает функция pulseIn(pin, value). По документации, она ждёт начала импульса на выводе, засекает время до его окончания и возвращает длину импульса в микросекундах; если импульс не начался за время ожидания, вернёт 0. Пример из документации:

Cpp
int pin = D1;
unsigned long duration;

void setup() {
  Serial.begin(9600);
  pinMode(pin, INPUT);
}

void loop() {
  duration = pulseIn(pin, HIGH);
  Serial.println(duration);
}

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

Шаг 5. Правило поведения

Теперь объединяем узлы. Логика простейшего робота, избегающего препятствий, состоит из повторяющихся действий.

УсловиеДействие
Препятствие дальше порогаЕхать вперёд
Препятствие ближе порогаОстановиться
После остановкиПовернуть в сторону и снова измерить расстояние

Порог расстояния выбирают под вашу платформу и датчик. Реализовать правило можно из деталей выше: измерение через pulseIn, управление скоростью через analogWrite, паузы через delay. Собственный готовый скетч мы здесь не приводим, потому что не можем проверить его на плате.

Что делать, если не работает

СимптомВозможная причинаЧто проверить
Плата не определяется компьютеромКабель без передачи данных или не тот портДругой USB-кабель, выбор порта в Arduino IDE
Светодиод не мигаетНе выбрана плата или порт, пример не загруженВыбранная плата и порт в IDE
Светодиод не горит или тусклыйВывод не настроен как выходpinMode(..., OUTPUT); страница digitalWrite отмечает, что без этого светодиод может светиться тускло
Мотор не вращаетсяНе подано питание на драйвер или неверное подключениеСхема и питание драйвера
Датчик показывает 0Импульс не начался за время ожиданияПодключение выводов, питание датчика (документация pulseIn: при отсутствии импульса возвращается 0)

Условия и ограничения

Версия
Arduino IDE 2, октябрь 2026 — интерфейс среды меняется; ориентируйтесь на актуальную документацию.
Плата
Arduino UNO R3 — у других плат выводы и напряжение другие; проверяйте по документации платы.
Проверка
На плате не запускалось — скетчи взяты из официальной документации и не проверены на нашей сборке.
Безопасность
Питание и пайка — читайте руководства производителей драйверов, батарей и инструментов.
Покупка
Магазинов и цен нет — детали подбирайте по описаниям и совместимости.
Поделки
Без электроники — бумажные и картонные модели в статье не разбираются.

Частые ошибки

  • Подключают мотор напрямую к выводу платы, а не через драйвер.
  • Питают моторы и плату от одного слабого источника.
  • Начинают сразу со сборки робота, не проверив плату примером Blink.
  • Не настраивают вывод через pinMode, а потом ищут ошибку в светодиоде.
  • Используют для ШИМ вывод, который его не поддерживает.
  • Копируют пример, не заменив номера выводов на свои.

Короткий вывод

Первый робот — это не конструкция целиком, а набор отдельно проверенных узлов: плата, мотор через драйвер, датчик, питание. Пройдите по шагам: мигание, ШИМ, датчик, затем правило поведения. Скетчи берите из официальной документации и проверяйте каждый узел отдельно, прежде чем собирать всё вместе.

Источники

  1. Arduino Docs: Blink (встроенный пример)↗ docs.arduino.cc
  2. Arduino Docs: delay()↗ docs.arduino.cc
  3. Arduino Docs: pinMode()↗ docs.arduino.cc
  4. Arduino Docs: digitalWrite()↗ docs.arduino.cc
  5. Arduino Docs: analogWrite()↗ docs.arduino.cc
  6. Arduino Docs: pulseIn()↗ docs.arduino.cc
  7. Arduino Docs: UNO R3↗ docs.arduino.cc
  8. Arduino Docs: установка Arduino IDE 2↗ docs.arduino.cc
  9. Arduino: загрузка Arduino IDE↗ arduino.cc
  10. Википедия: Arduino↗ ru.wikipedia.org
  11. Википедия: Широтно-импульсная модуляция↗ ru.wikipedia.org

Частые вопросы

Из чего состоит простой робот?

Простой робот состоит из контроллера, привода, датчика и питания. Контроллер, например плата Arduino, выполняет программу. Привод — это моторы или сервоприводы, которые двигают робота. Датчик, например расстояния, сообщает контроллеру об окружении. Википедия добавляет, что робот обычно получает сведения об окружающем пространстве с помощью датчиков и может работать по заложенной программе.

Какую плату выбрать для первого робота?

Подойдёт плата, для которой есть подробная документация и примеры. Документация Arduino называет UNO R3 платой на микроконтроллере ATmega328P с 14 цифровыми выводами, из которых 6 можно использовать как выходы ШИМ, и 6 аналоговыми входами. Рейтингов здесь нет: сравнивайте число и возможности выводов, питание и наличие документации с примерами.

Нужно ли уметь паять, чтобы сделать робота?

Для первого шага не нужно: пример Blink из документации Arduino использует встроенный светодиод платы, который есть у большинства плат. Для моторов, датчиков и питания способ соединения зависит от выбранных деталей: он описан в их документации. Начните с примера Blink, затем добавляйте узлы по одному и проверяйте каждый отдельно.

Какой язык программирования нужен для робота на Arduino?

Программы для Arduino называют скетчами, их пишут и загружают на плату в среде Arduino IDE. Справочник языка на сайте Arduino описывает функции вроде pinMode, digitalWrite и delay, которые вы встретите в первых примерах. Знание Python пригодится для логики, но синтаксис другой: нужны точки с запятой, типы переменных и функции setup и loop.

Где бесплатно изучать Arduino на русском?

Официальная документация Arduino написана на английском, зато содержит примеры с пояснениями. На русском есть статья Википедии об Arduino: в ней описаны платформа, среда программирования и назначение. Начните со встроенных примеров Arduino IDE, которые описаны в документации, и переводите незнакомые слова по ходу.

РедакцияМатериал подготовлен по источникам выше · 4 октября 2026