Электроника для роботов: что есть что и зачем

Любой робот — это три слоя: питание, «мозг» и всё, что двигается или чувствует. Разберём компоненты в том порядке, в котором по ним течёт энергия.

Содержание
  1. Три закона, которых хватает на 90% задач
  2. Питание: аккумуляторы и преобразователи
  3. Резисторы, конденсаторы, индуктивности
  4. Диоды и транзисторы
  5. Драйверы моторов
  6. Микроконтроллеры и одноплатники
  7. Датчики
  8. Интерфейсы: UART, I2C, SPI, CAN
  9. Провода, разъёмы, пайка
  10. Типичные ошибки, которые сжигают платы

1. Три закона, которых хватает на 90% задач

Закон Ома: U = I · R. Напряжение (вольты) — это «давление», ток (амперы) — «расход», сопротивление (омы) — «узость трубы». Если на резисторе 220 Ом падает 3 В, через него течёт 3 / 220 ≈ 14 мА.

Мощность: P = U · I = I² · R. Это то, что превращается в тепло. Резистор 0,25 Вт, через который пустили 0,5 Вт, сначала потемнеет, потом задымится. Транзистор с сопротивлением канала 0,05 Ом при токе 10 А греется на 10² · 0,05 = 5 Вт — без радиатора это много.

Законы Кирхгофа: ток, втекающий в узел, равен вытекающему; сумма падений напряжений по замкнутому контуру равна нулю. Практический смысл: все токи робота в итоге возвращаются через «землю» (GND), поэтому у всех модулей она должна быть общей и толстой.

Правило, которое спасает платы: у всех устройств, которые обмениваются сигналами, GND должен быть соединён. Без общей земли сигнал «3,3 В» не имеет смысла — 3,3 В относительно чего?

2. Питание: аккумуляторы и преобразователи

Аккумуляторы

ТипНапряжение ячейкиПлюсыМинусы и где применять
Li-ion 18650/217003,0–4,2 В (номинал 3,6–3,7)Большая ёмкость, дешёвые, легко собрать сборкуНужна плата защиты (BMS). Мобильные роботы, долгий автономный режим
LiPo (пакетные)3,0–4,2 ВОгромный ток отдачи (25C–100C), лёгкиеБоятся проколов и переразряда, хранить при 3,8 В/ячейку. Дроны, быстрые роботы
LiFePO42,5–3,65 В (номинал 3,2)Безопасные, 2000+ цикловТяжелее и меньше ёмкость. Стационарные и учебные проекты
NiMH (AA)1,0–1,4 ВБезопасные, продаются вездеСлабый ток, большой вес. Простые игрушки и первые эксперименты

Обозначение 3S — три ячейки последовательно (3 × 3,7 = 11,1 В), 2P — две параллельно (ёмкость удваивается). Ёмкость в мА·ч показывает, сколько продержится робот: 2000 мА·ч при среднем токе 1 А — около двух часов, на практике меньше, потому что разряжать до нуля нельзя.

Преобразователи напряжения

Мотору нужно 12 В, микроконтроллеру 5 или 3,3 В, сервам 5–6 В. Понизить напряжение можно двумя способами:

Сервоприводы при старте потребляют пиковый ток в 1–2 А каждый. Если питать их от вывода 5V платы Arduino, напряжение просядет, и микроконтроллер перезагрузится. Сервы — всегда от отдельного DC-DC, с общей землёй.

3. Резисторы, конденсаторы, индуктивности

Резистор

Ограничивает ток и делит напряжение. Главные применения в роботах:

Конденсатор

Маленький быстрый «аккумулятор». Отдаёт заряд, когда напряжение на линии проседает, и поглощает выбросы.

Индуктивность (катушка)

Сопротивляется изменению тока. Без неё не работают импульсные преобразователи. Важное следствие: обмотка мотора — тоже индуктивность, и при резком отключении она выдаёт выброс напряжения, который может пробить транзистор. Поэтому нужны обратные диоды (см. ниже).

4. Диоды и транзисторы

Диоды

Транзисторы — электронные ключи

Микроконтроллер отдаёт с вывода 10–20 мА. Мотору нужно 2 А. Транзистор позволяет маленьким током управлять большим.

Схема нижнего ключа на MOSFET:
  +12V ── нагрузка ── сток (D)
                      MOSFET
  пин МК ──100 Ом── затвор (G)
                  └─10 кОм─ GND   (подтяжка: держит ключ закрытым при старте)
  исток (S) ── GND
  Диод Шоттки параллельно нагрузке (катод к +12V), если нагрузка — мотор/реле/соленоид.

Реле — механический ключ: щёлкает, медленное, изнашивается, но гальванически развязывает и коммутирует 220 В. Для моторов, которыми нужно управлять плавно (ШИМ), реле не годится.

5. Драйверы моторов

Чтобы мотор вращался в обе стороны, нужен H-мост — четыре ключа, которые подают напряжение на мотор то в одной, то в другой полярности. Готовые модули:

ДрайверДля чегоТокКомментарий
L298NКоллекторные моторыдо 2 АУстарел: биполярные ключи теряют 2–3 В и греются. Только для учёбы
TB6612FNGДва небольших мотора1,2 А (пик 3,2)MOSFET, КПД выше, маленький. Хороший выбор для колёсного робота
DRV8833 / DRV8871Коллекторные моторы1,5–3,6 АСовременные, с защитой от перегрева и тока
BTS7960Мощные моторыдо ~40 АДля тяжёлых платформ и газонокосилок
A4988 / DRV8825 / TMC2209Шаговые двигатели1–2 А на фазуУправление сигналами STEP и DIR. TMC2209 — почти бесшумный, умеет определять застревание
ESC (регулятор)Бесколлекторные моторы10–100 АУправляется как серво (ШИМ 1–2 мс) или по цифровому протоколу DShot

Скорость регулируют ШИМ (широтно-импульсной модуляцией): ключ очень быстро включается и выключается, а мотор из-за инерции «видит» среднее напряжение. Заполнение 50% от 12 В — мотор крутится примерно как от 6 В. Частота ШИМ 20 кГц и выше — мотор перестаёт пищать, потому что звук выходит за пределы слышимости.

Ток шагового драйвера настраивают подстроечным резистором до подключения мотора: ток выше номинала — двигатель перегреется, ниже — будет пропускать шаги.

6. Микроконтроллеры и одноплатники

ПлатаЯдроСильные стороныКогда брать
Arduino Uno/Nano (ATmega328P)8 бит, 16 МГц, 2 КБ ОЗУОгромное сообщество, логика 5 В, трудно сжечьПервый робот, простые задачи
ESP322 ядра, 240 МГц, 520 КБ ОЗУWi-Fi и Bluetooth, много таймеров и ШИМУправление с телефона, телеметрия, всё «умное»
Raspberry Pi Pico (RP2040/RP2350)2 ядра, 133–150 МГцДешёвый, PIO — программируемые машины для нестандартных протоколовТочные тайминги, много моторов и светодиодов
STM32 (Blue Pill, Nucleo)32 бит ARM, 72–480 МГцПрофессиональные таймеры, CAN, аппаратная работа с энкодерамиСерьёзное управление моторами, промышленный стиль
Raspberry Pi 4/5, JetsonПолноценный LinuxКамера, нейросети, ROS 2Компьютерное зрение, SLAM. Моторами пусть управляет отдельный микроконтроллер
Частая архитектура: одноплатник (Raspberry Pi) думает — видит камерой, строит карту, планирует путь — и по UART отправляет команды микроконтроллеру, который в реальном времени крутит моторы и читает энкодеры. Linux не гарантирует точных таймингов, микроконтроллер — гарантирует.

Логические уровни. Arduino Uno работает с 5 В, ESP32 и Raspberry Pi — с 3,3 В, и их входы не выдерживают 5 В. Между ними нужен преобразователь уровней (модуль на BSS138) или хотя бы делитель на линии от 5-вольтового устройства к 3,3-вольтовому.

7. Датчики

Что измеряемДатчикКак работаетПодводные камни
Расстояние до 4 мHC-SR04Посылает ультразвук, меряет время до эха: d = t · 343 / 2Широкий конус, плохо видит мягкие и наклонные поверхности
Расстояние точноVL53L0X/L1X (ToF)Меряет время полёта инфракрасного лазерного импульсаСлепнет на солнце и на очень тёмных поверхностях
ОриентацияMPU6050, BMI270, ICM-42688Гироскоп (скорость поворота) + акселерометр (направление гравитации)Гироскоп «уплывает», акселерометр шумит от вибраций — нужен фильтр (комплементарный или Калмана)
КурсМагнитометр (QMC5883L)Ловит магнитное поле ЗемлиМоторы и железо искажают поле — калибровать на месте установки
Положение валаЭнкодер (оптический, Холла, AS5600)Импульсы при повороте; два канала со сдвигом 90° дают направлениеНа больших скоростях — только аппаратные прерывания или счётчик таймера
Линия на полуИК-пара (TCRT5000), линейка QTRСветлое отражает ИК, тёмное поглощаетЗависит от высоты над полом и внешнего света
Касание, концевикМикропереключательМеханический контактДребезг контактов — нужен антидребезг
ТокINA219/INA226, ACS712Шунт + усилитель или датчик ХоллаПозволяет заметить, что мотор упёрся и застрял
Окружение2D-лидар (RPLIDAR, LD19)Вращающийся дальномер: 360° точек несколько раз в секундуОснова для SLAM — построения карты помещения

8. Интерфейсы: UART, I2C, SPI, CAN

9. Провода, разъёмы, пайка

10. Типичные ошибки, которые сжигают платы

  1. Нет общей земли между модулями — сигналы «плавают», робот ведёт себя случайно.
  2. Моторы и сервы питаются от вывода 5V Arduino — перезагрузки и выгоревший стабилизатор.
  3. Мотор без обратного диода на голом транзисторе — пробой ключа.
  4. 5 В на вход ESP32 или Raspberry Pi — мёртвый вывод или вся плата.
  5. Переполюсовка аккумулятора — ставьте разъёмы, которые невозможно вставить наоборот, или диод/MOSFET защиты.
  6. LiPo разряжен ниже 3,0 В на ячейку — аккумулятор деградирует или вздувается. Нужен контроль напряжения в прошивке или BMS.
  7. Не настроен ток шагового драйвера — двигатель и драйвер раскаляются.

Дальше: прошивки с объяснениями — как заставить всё это работать вместе.