Roomberry: Робот-наблюдатель на базе Roomba с Raspberry Pi Zero W
О проекте
Roomberry — это кастомный робот для видеонаблюдения, превращающий робота-пылесос iRobot Roomba в мобильную платформу с камерой на базе Raspberry Pi Zero W и модуля CSI-камеры.
В этом руководстве вы узнаете, как подключиться к Open Interface (OI) Roomba, запитать Pi от батареи пылесоса, настроить Raspberry Pi для бесконсольной работы и собрать компактный корпус с доступом ко всем портам.
Демонстрацию работы Roomberry можно посмотреть в видео: показаны перемещение, прямая видеотрансляция и веб-интерфейс управления.
Понимание Open Interface Roomba
Серии Roomba 600/700/800 имеют mini-DIN разъём, реализующий Open Interface (OI) — двусторонний TTL-UART (115 200 бод), позволяющий отправлять команды движения, считывать данные сенсоров и управлять индикаторами и звуком.
OI поддерживает четыре режима:
- Off — начальное состояние, ожидание команды
Start. - Passive — чтение сенсоров без управления моторами.
- Safe — полное управление моторами с проверками безопасности (обрыв, падение колёс, зарядка).
- Full — полное управление без проверок безопасности — используйте осторожно.
В Passive режиме робот засыпает через 5 минут бездействия. Режимы Safe и Full удерживают его активным бесконечно, поэтому после завершения задачи нужно возвращаться в Passive или Off для сохранения заряда.
Последовательное соединение и преобразование уровней
TxD Roomba выдаёт 5 В, что может повредить 3,3-вольтовую логику Pi Zero W. Необходим двунаправленный преобразователь уровней (например, Adafruit Bidirectional Level Shifter) или резистивный делитель для низких скоростей. Преобразователь должен поддерживать 115 200 бод, рекомендуется активное устройство.
Питание Raspberry Pi от Roomba
Прямое использование питания mini-DIN (7-й контакт, Vcc-Gnd) ограничено 200 мА из-за самовосстанавливающегося предохранителя. Pi Zero W один потребляет 150–180 мА, но камера добавляет пиковые 300–450 мА, что срабатывало предохранитель.
Решение — обойти предохранитель и подключиться к контактным площадкам батареи на материнской плате Roomba. После частичной разборки припаяйте пару проводов к площадкам батареи. Это даёт полные 10–20,5 В, которые необходимо понизить до стабильных 5 В.
Рекомендуется импульсный понижающий преобразователь, например Pololu D24V5F5. Он принимает до 36 В, выдаёт 5 В с КПД 85–90 % и ток до 500 мА — достаточно для Pi Zero и камеры. Выход преобразователя подключите к micro-USB кабелю, вставляемому в вход питания Pi.
Корпус и размещение компонентов
Для чистой сборки используется печатная плата 12×10 контактов как небольшой HAT, на котором размещены преобразователь уровней, тактовая кнопка сброса и Pi Zero W. Корпус — стандартный кейс Raspberry Pi с выемкой под micro-USB и отверстием для CSI-разъёма камеры.
Кнопка сброса подключена к пину RUN Pi, позволяя перезагружать систему без отключения питания.
Настройка Raspbian (Stretch Lite)
- Отключение сериальной консоли:
raspi-config → Interfacing Options → Serial(Login shell: No, UART: Yes). Либо отредактируйте/boot/config.txt: закомментируйтеconsole=serial0,115200и добавьтеenable_uart=1. - Включение камеры:
raspi-config → Interfacing Options → Cameraили в/boot/config.txt:start_x=1,gpu_mem=128,disable_camera_led=1. - Отключение swap и монтирование /tmp в RAM (50 МБ): скорректируйте
/etc/fstabи добавьтеcommit_time=30для уменьшения износа SD-карты. - Опциональные настройки экономии энергии: отключение HDMI (
tvservice -o), индикатора активности, Bluetooth (dtoverlay=pi3-disable-bt).
Тестирование последовательного интерфейса
Установите minicom (sudo apt-get install minicom) и подключитесь к последовательному порту Roomba:
minicom -b 115200 -o -D /dev/serial0
Если робот на базе, вы увидите поток данных сенсоров. Для выхода нажмите Ctrl-A, затем X.
Запуск Roomberry
С запитанным Pi, включённой камерой и установленным последовательным каналом можно запускать скрипт управления Roomberry (не включён сюда). Веб-интерфейс позволяет управлять движением, захватывать изображения и стримить видео.
Для полного пошагового руководства смотрите демо-видео и следуйте инструкциям выше.
Меры безопасности
- Всегда возвращайте робота в Passive или Off после использования, чтобы избежать глубокого разряда батареи.
- Используйте качественный понижающий преобразователь; дешёвые аналоги могут быть ненадёжны.
- При пайке к площадкам батареи дважды проверяйте полярность и укладывайте провода аккуратно, чтобы исключить замыкания.
- Применяйте свежую microSD-карту большой ёмкости для продления срока службы.
Производственный процесс
- Создание робота на Arduino и Raspberry Pi: пошаговое руководство
- BrickPi Bookreader: Автоматизация чтения Kindle на Raspberry Pi и LEGO Mindstorms
- DIY робот в стиле Wall‑E на Raspberry Pi из коробки от CD
- Робот-будильник на колесах: умная мобильная система пробуждения на Raspberry Pi и Google Calendar
- Создание моторизированного робота-крипера Minecraft на Arduino
- Archimedes: Робот-совица с ИИ для распознавания эмоций
- Roomberry: Робот-наблюдатель на базе Roomba с Raspberry Pi Zero W
- Создание робота с компьютерным зрением и голосовым управлением на Windows 10 IoT Core
- ROS-робот: Управление навигацией из терминала на Raspberry Pi
- Simple Pi Robot — Сборка 2WD автономного ровера на Raspberry Pi