Электроника для роботов: что есть что и зачем
Любой робот — это три слоя: питание, «мозг» и всё, что двигается или чувствует. Разберём компоненты в том порядке, в котором по ним течёт энергия.
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), поэтому у всех модулей она должна быть общей и толстой.
2. Питание: аккумуляторы и преобразователи
Аккумуляторы
| Тип | Напряжение ячейки | Плюсы | Минусы и где применять |
|---|---|---|---|
| Li-ion 18650/21700 | 3,0–4,2 В (номинал 3,6–3,7) | Большая ёмкость, дешёвые, легко собрать сборку | Нужна плата защиты (BMS). Мобильные роботы, долгий автономный режим |
| LiPo (пакетные) | 3,0–4,2 В | Огромный ток отдачи (25C–100C), лёгкие | Боятся проколов и переразряда, хранить при 3,8 В/ячейку. Дроны, быстрые роботы |
| LiFePO4 | 2,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 В. Понизить напряжение можно двумя способами:
- Линейный стабилизатор (LM7805, AMS1117). Лишнее напряжение просто сжигается в тепло: при входе 12 В, выходе 5 В и токе 0,5 А на нём выделяется (12 − 5) · 0,5 = 3,5 Вт. Зато выход очень чистый, без помех. Хорош для малых токов и чувствительных схем (аналоговые датчики).
- Импульсный (DC-DC, «бак») (LM2596, MP1584). Быстро включает и выключает ток и сглаживает его катушкой и конденсатором. КПД 85–95%, почти не греется. Создаёт пульсации, поэтому после него иногда ставят линейник или LC-фильтр. Для моторной части и питания от 2S–4S — только он.
- Повышающий (boost): из 3,7 В одной ячейки сделать 5 В. Работает на том же принципе, но ток со входа берёт больший, чем отдаёт.
3. Резисторы, конденсаторы, индуктивности
Резистор
Ограничивает ток и делит напряжение. Главные применения в роботах:
- Токоограничивающий для светодиода: R = (Uпитания − Uсветодиода) / I. Для красного светодиода от 5 В: (5 − 2) / 0,015 ≈ 200 Ом, берём 220.
- Подтяжка (pull-up/pull-down) 4,7–10 кОм: не даёт входу «висеть в воздухе» и ловить наводки, пока кнопка не нажата.
- Делитель напряжения: Uвых = Uвх · R2 / (R1 + R2). Так меряют напряжение аккумулятора 12 В входом АЦП, который выдерживает 3,3 В: R1 = 30 кОм, R2 = 10 кОм дают коэффициент 1/4.
- Шунт 0,01–0,1 Ом: по падению напряжения на нём меряют ток мотора.
Конденсатор
Маленький быстрый «аккумулятор». Отдаёт заряд, когда напряжение на линии проседает, и поглощает выбросы.
- Керамический 100 нФ возле каждого вывода питания микросхемы — убирает высокочастотный шум. Ставится максимально близко к ножке.
- Электролитический 100–1000 мкФ на входе питания моторов и сервоприводов — сглаживает пиковые токи. Полярный: перепутаешь плюс и минус — может вздуться.
- В паре с резистором — RC-фильтр для сглаживания сигнала или антидребезга кнопки. Время реакции τ = R · C: 10 кОм · 1 мкФ = 10 мс.
Индуктивность (катушка)
Сопротивляется изменению тока. Без неё не работают импульсные преобразователи. Важное следствие: обмотка мотора — тоже индуктивность, и при резком отключении она выдаёт выброс напряжения, который может пробить транзистор. Поэтому нужны обратные диоды (см. ниже).
4. Диоды и транзисторы
Диоды
- Выпрямительный (1N4007): пропускает ток в одну сторону. Защита от переполюсовки — последовательно с питанием (теряем ~0,7 В).
- Диод Шоттки (1N5819, SS34): падение всего 0,2–0,4 В и быстрое переключение. Обратный диод для мотора и реле, защита по питанию.
- Стабилитрон: ограничивает напряжение на уровне, например, 5,1 В. Простая защита входа.
- Светодиод: всегда через резистор.
- TVS-диод: поглощает короткие мощные выбросы на линиях питания и длинных проводах.
Транзисторы — электронные ключи
Микроконтроллер отдаёт с вывода 10–20 мА. Мотору нужно 2 А. Транзистор позволяет маленьким током управлять большим.
- Биполярный NPN (BC547, 2N2222): управляется током базы, через резистор 1 кОм. Для нагрузок до 100–500 мА: светодиодная лента, маленькое реле, пищалка.
- N-канальный MOSFET (IRLZ44N, AO3400): управляется напряжением затвора, почти не потребляет ток управления, канал открыт с сопротивлением в сотые доли ома. Для микроконтроллера нужен logic-level MOSFET (буква L в названии, полностью открывается от 3,3–5 В). Обычный IRFZ44N от 3,3 В откроется наполовину и будет греться.
Схема нижнего ключа на 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 В, трудно сжечь | Первый робот, простые задачи |
| ESP32 | 2 ядра, 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. Моторами пусть управляет отдельный микроконтроллер |
Логические уровни. 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
- UART (Serial) — два провода TX и RX, крест-накрест (TX одного к RX другого). Скорость задаётся заранее: 9600, 115200 бод. Связь МК с компьютером, GPS, Bluetooth-модулем.
- I2C — два провода SDA и SCL на много устройств, у каждого свой адрес (MPU6050 — 0x68, дисплей SSD1306 — 0x3C). Нужны подтягивающие резисторы 4,7 кОм к питанию (на модулях обычно уже стоят). Длина — до полуметра, дальше начинаются сбои.
- SPI — четыре провода (MOSI, MISO, SCK и CS на каждое устройство). Быстрый: дисплеи, SD-карты, быстрые датчики.
- CAN — дифференциальная пара, устойчива к помехам, метры проводов, много узлов. Стандарт в автомобилях и промышленных роботах. Нужны трансиверы и терминаторы 120 Ом на концах шины.
- RS-485 — тоже дифференциальная, до километра. Умные сервоприводы (Dynamixel, Feetech) часто работают по похожим полудуплексным шинам.
9. Провода, разъёмы, пайка
- Сечение провода выбирают по току: сигнальные — 26–24 AWG, питание логики — 22 AWG, моторы до 5 А — 18 AWG, 10–20 А — 14–12 AWG. Тонкий провод на силовой линии — это нагреватель и просадки напряжения.
- Разъёмы: Dupont — только для прототипов, они выпадают от вибрации. JST-XH/PH — для сигналов на готовом роботе. XT30/XT60 — силовое питание от аккумулятора.
- Силовые провода к мотору скручивают попарно: меньше излучают помех на соседние сигнальные линии.
- Пайка: жало хорошо прогрето (320–360 °C), флюс, сначала греем контакт, потом подаём припой. Хорошая пайка — блестящий «вулканчик», а не шарик.
- Термоусадка на каждом соединении. Стяжки и кабель-каналы — провода не должны цепляться за колёса.
10. Типичные ошибки, которые сжигают платы
- Нет общей земли между модулями — сигналы «плавают», робот ведёт себя случайно.
- Моторы и сервы питаются от вывода 5V Arduino — перезагрузки и выгоревший стабилизатор.
- Мотор без обратного диода на голом транзисторе — пробой ключа.
- 5 В на вход ESP32 или Raspberry Pi — мёртвый вывод или вся плата.
- Переполюсовка аккумулятора — ставьте разъёмы, которые невозможно вставить наоборот, или диод/MOSFET защиты.
- LiPo разряжен ниже 3,0 В на ячейку — аккумулятор деградирует или вздувается. Нужен контроль напряжения в прошивке или BMS.
- Не настроен ток шагового драйвера — двигатель и драйвер раскаляются.
Дальше: прошивки с объяснениями — как заставить всё это работать вместе.