Компонент · Контроллер

Raspberry Pi

Raspberry Pi — полноценный компьютер с Linux размером с карту, то есть мозг для роботов, которым нужны зрение, ROS или вычисления, не подвластные Arduino.

Что это такое

Raspberry Pi — полноценный компьютер размером с банковскую карту. Если Arduino Uno — микроконтроллер, который бесконечно выполняет одну программу, то Pi работает под управлением Linux и может одновременно управлять камерой, обмениваться данными по сети, запускать ROS 2 и выполнять код робота. Это компьютер, к которому обращаются, когда роботу нужно думать, а не только реагировать.

Эта вычислительная мощность реализована на одной плате: многозадачность Linux делает Pi менее подходящим для точного до микросекунд тайминга, который микроконтроллер обеспечивает без усилий. Это не конкуренты, а партнёры.

Подписанная схема одноплатного компьютера Raspberry Pi: зелёная печатная плата PCB с 40-выводным разъёмом GPIO на золотых контактных площадках вдоль верхнего края, системой Broadcom на кристалле и микросхемой RAM в центре, объединённым блоком USB и Ethernet на правом крае, HDMI и питанием USB-C на нижнем крае и слотом microSD слева.
Raspberry Pi помещает компьютер на одной плате: SoC и RAM запускают Linux, 40-выводный разъём GPIO взаимодействует с оборудованием робота, а microSD хранит OS. Скачать SVG

Как это работает

Pi загружает операционную систему (обычно Raspberry Pi OS) с карты microSD, после чего работает как любая машина с Linux. Для робототехники важен 40-выводный разъём GPIO: цифровые входы и выходы, а также шины I²C, SPI и UART, позволяющие Pi считывать датчики и управлять оборудованием. Всё это дополняют компьютерные узлы — USB, Ethernet, Wi-Fi и интерфейс камеры, — которых у микроконтроллера просто нет.

Распространённая архитектура — робот с двумя мозгами: Pi отвечает за восприятие и планирование (зрение, SLAM, узлы ROS) и передаёт команды двигателям Arduino, выполняющей управление в реальном времени.

Когда его следует использовать

Выбирайте Pi, когда роботу нужны возможности компьютера:

  • Компьютерное зрение — камера и OpenCV для обнаружения меток, объектов или линий.
  • ROS 2 — запуск узлов, тем и навигационного стека.
  • Построение карты / SLAM — создание карты и определение положения в ней.
  • Сеть — веб-панель, дистанционное управление или телеметрия.

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

Подключение и типичные ошибки

  • Логический уровень — 3.3 V; выводы не выдерживают 5 V. Подача 5 V на вывод GPIO может повредить Pi. Преобразуйте уровень сигналов от компонентов 5 V, например линии TX HC-05.
  • Он всё равно не может питать двигатели. GPIO передаёт сигналы; ток двигателя проходит через драйвер, например L298N.
  • Требования к питанию строгие. Подавайте стабильные 5 V достаточного тока; провалы напряжения повреждают SD-карту и вызывают случайные перезагрузки.
  • Корректно завершайте работу. Отключение питания работающей системы Linux может повредить карту — предусмотрите безопасное выключение или используйте файловую систему только для чтения.

40-выводный разъём и доступные выводы

В разъёме 40 выводов, но как GPIO использовать можно только 26. Остальные предназначены для питания и земли.

Функция Выводы (нумерация BCM) Примечание
I²C-1 GPIO 2 (SDA), GPIO 3 (SCL) На плате имеются постоянные подтягивающие резисторы 1.8 kΩ к 3.3 V
SPI0 GPIO 10 (MOSI), 9 (MISO), 11 (SCLK), 8/7 (CE0/CE1)
UART GPIO 14 (TX), 15 (RX) По умолчанию используется консолью Linux — её необходимо освободить
Аппаратный PWM GPIO 12, 13, 18, 19 Только эти четыре; остальной PWM формируется программно
Питание 3.3 V, 5 V 5 V поступает непосредственно со входа — без стабилизации
Общего назначения Остальные

Две из этих строк регулярно отнимают у людей целый вечер.

UART является консолью. Из коробки GPIO 14/15 передают приглашение входа Linux. Подключите к ним модуль GPS или Arduino — и вместо данных вы получите служебные сообщения входа. Освободите их с помощью sudo raspi-config → Interface Options → Serial Port → login shell: no, hardware serial: yes. У Pi 3 и более поздних есть дополнительная особенность: хороший UART по умолчанию используется Bluetooth, а разъёмный — упрощённый «mini UART», скорость которого изменяется вместе с тактовой частотой CPU. Добавьте dtoverlay=disable-bt в /boot/config.txt, чтобы поменять их местами.

Программный PWM дрожит. Только четыре вывода имеют аппаратный PWM. Остальные формирует ядро, и планировщик Linux может его прервать — на сервоприводе это проявляется заметным подёргиванием. Это нагляднейший пример того, что Pi делает плохо.

Проблема тайминга без лишних слов

Это самое важное, что нужно понять о Pi в роботе, и это не дефект — именно так работает операционная система.

Микроконтроллер, выполняющий loop(), запускает только ваш код, поэтому интервал 1 ms равен 1 ms. Linux использует разделение времени: ядро может вытеснить процесс для обработки сетевого пакета, записи на диск или выполнения любой из сотни фоновых задач.

Задача Микроконтроллер Raspberry Pi (обычный Linux)
Контур управления 1 kHz Простая, точная Возможна с отдельными пропусками порядка миллисекунд
PWM сервопривода Очень стабильный Заметно дрожит на выводах программного PWM
Считывание энкодера с частотой 20 kHz Обычная задача с прерываниями Ненадёжно — фронты пропускаются
Измерение времени ультразвукового эха Точность до микросекунд Случайные ошибки в несколько сантиметров
Зрение, планирование, сеть Невозможно Именно для этого предназначен

Следствие — архитектура с двумя мозгами, причём это не компромисс, а обычное проектирование серьёзного робота:

Raspberry Pi                        Microcontroller
- camera, vision                    - encoder counting
- SLAM, path planning       <-->    - PID motor control
- ROS 2 nodes                       - servo timing
- networking, dashboard             - emergency stop
        high-level goals                  hard real time

Они обмениваются данными по последовательному интерфейсу USB, UART или I²C, и каждое устройство выполняет свою сильную сторону. Pi, пытающийся считать фронты энкодера, будет их пропускать; Arduino, пытающаяся запустить OpenCV, не сможет этого сделать.

Питание и проблема SD-карты

Питание — место, где чаще всего отказывают роботы на Pi, а характер отказа исключительно дорог: провал напряжения во время записи повреждает SD-карту, и вся системная копия теряется.

Модель Рекомендуемый источник Под нагрузкой
Pi Zero 2 W 5 V, 2.5 A ~350 mA в типичном режиме
Pi 3B+ 5 V, 2.5 A ~500 mA, пики около 1.2 A
Pi 4B 5 V, 3 A (USB-C) ~600 mA, пики около 1.5 A
Pi 5 5 V, 5 A (USB-C PD) Ещё выше

Отсюда следуют правила:

  • Никогда не питайте двигатели и Pi от одной шины. Бросок тока двигателя — именно тот переходный процесс, который повреждает карту.
  • При понижении напряжения от батареи используйте импульсный регулятор, а не линейный. Линейный регулятор, преобразующий 11.1 V в 5 V при токе 1 A, выделяет 6 W.
  • Следите за предупреждением в виде молнии. Pi показывает значок низкого напряжения и записывает его в журнал; vcgencmd get_throttled также сообщает о нём. Любое ненулевое значение означает недостаточное питание, и со временем оно повредит карту.
  • Корректно завершайте работу. Выполняйте sudo shutdown -h now перед отключением питания. Для робота, выключаемого тумблером, нужны либо кнопка выключения, подключённая к GPIO, либо корневая файловая система только для чтения.

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

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

Модель RAM Почему выбрать
Pi Zero 2 W 512 MB Крошечная и лёгкая. Достаточна для камеры и простого зрения
Pi 3B+ 1 GB Недорогая, достаточна для ROS 2 с небольшими узлами
Pi 4B (4 GB) 4 GB Практический оптимальный вариант для ROS 2 и зрения
Pi 5 4–16 GB Заметно быстрее; требует больше питания и активного охлаждения

Для ROS 2 с камерой 4 GB — точка, после которой работа перестаёт быть утомительной. RViz, узел зрения и навигационный стек вместе используют больше 1 GB, а Pi, начавший выгружать данные в SD-карту из-за нехватки памяти, становится неприемлемо медленным и изнашивает карту.

На практике нельзя считать необязательными два аксессуара: радиатор или вентилятор (Pi 4 при постоянной нагрузке снижает частоту при 80 °C, и троттлинг приводит к потере кадров) и качественную карту microSD класса A2, а ещё лучше — загрузку с USB SSD. Узким местом гораздо чаще оказывается скорость карты, а не CPU.

Диагностика

Симптом Вероятная причина Исправление
Случайные перезагрузки Недостаточное питание Проверьте vcgencmd get_throttled; используйте источник 3 A
SD-карта постоянно повреждается Питание отключено во время записи Корректно завершайте работу или используйте файловую систему только для чтения
Значок молнии Низкое напряжение Лучший источник и лучший кабель — кабель имеет значение
Последовательный вывод содержит сообщения входа Консоль всё ещё использует UART Отключите login shell в raspi-config
Неверная скорость последовательной передачи Mini UART связан с тактовой частотой CPU Используйте dtoverlay=disable-bt, чтобы получить хороший UART
Сервопривод подёргивается Программный PWM и планировщик Используйте PCA9685 или микроконтроллер
Неверный счёт энкодера Пропущенные фронты под нагрузкой Считайте их на микроконтроллере
Через несколько минут становится медленнее Тепловой троттлинг Радиатор или вентилятор
Вывод GPIO перестал работать 5 V подан на вывод 3.3 V Преобразуйте уровень; вывод, вероятно, повреждён
Устройство I²C не обнаружено Интерфейс не включён raspi-config, затем i2cdetect -y 1

Pi или микроконтроллер?

Arduino / ESP32 Raspberry Pi
Что выполняется Только ваш код Linux и ваш код среди многих процессов
Тайминг Детерминированный до микросекунд Не гарантируется, с дрожанием порядка миллисекунд
Время загрузки Мгновенно 20–30 секунд
Отключение питания Безопасно Может повредить файловую систему
Зрение, ROS 2, сеть Нет Да
Потребление Миллиамперы От сотен миллиампер до ампер
Стоимость $3–8 $35–80

Честный ответ: это не конкуренты. Pi не может надёжно считать импульсы энкодера, а микроконтроллер не может запустить OpenCV. Почти каждый функциональный хобби-робот в итоге использует оба устройства, и осознание этого на раннем этапе избавляет от множества бесполезных попыток заставить одно выполнять работу другого.

Если всё поведение робота помещается в один контур управления — следование за линией, обход препятствий или решение лабиринта, — Pi вам вообще не нужен, а его добавление замедляет запуск, снижает надёжность и усложняет отладку.

Исследуйте граф

Используется в этих сборках

Проекты, учебные пути и симуляторы, в которых используется Raspberry Pi.

Сравнение

Альтернативы

Вопросы

Raspberry Pi: частые вопросы

Что такое Raspberry Pi?

Raspberry Pi — небольшой недорогой одноплатный компьютер, на котором работает полноценная операционная система Linux. В отличие от Arduino, который выполняет одну программу на микроконтроллере, Pi является настоящим компьютером: он может одновременно работать с камерой, запускать браузер, ROS и код робота.

Raspberry Pi или Arduino — что выбрать?

Arduino используйте для управления двигателями и датчиками в реальном времени, а Raspberry Pi — когда роботу нужны зрение, построение карты, ROS или сеть. Многие роботы используют оба устройства: Pi как высокоуровневый мозг, а Arduino как руки, работающие в реальном времени. Многозадачность Linux делает Pi хуже, а не лучше микроконтроллера при работе с точностью до микросекунд.

Может ли Raspberry Pi управлять двигателями?

Его выводы GPIO могут передавать сигналы PWM и направления, но, как и Arduino, он не может питать двигатель от вывода. Двигатели по-прежнему приводятся через H-мост, например L298N. Выводы Pi также работают на 3.3 V, поэтому при подключении к частям 5 V учитывайте логические уровни.

Нужен ли Raspberry Pi для робота?

Нет. Большинство роботов для начинающих (следующих за линией, обходящих препятствия) без проблем работают на Arduino при значительно меньших затратах и сложности. Выбирайте Pi, только когда задаче действительно нужен компьютер: компьютерное зрение, SLAM, запуск ROS 2 или веб-интерфейс.

Какие модели Raspberry Pi лучше всего подходят для робототехники?

Обычно выбирают Raspberry Pi 4 и Pi 5 — их CPU и RAM достаточно для компьютерного зрения и ROS. Pi Zero 2 W — крошечный маломощный вариант для более лёгких роботов, где важнее место и батарея, чем максимальная скорость. Самые старые модели (Pi 1 и 2) не используйте для вычислительно сложных задач.

Дополнительные материалы

Источники