Почему ваш пылесос не разговаривает с вами?
Потому что за них просят $500–2000. А если я скажу, что за сотню баксов можно собрать робота, который будет не только объезжать табуретки, но и отвечать на вопросы? Не гугл-ассистент, а локальный ИИ, который не утекает в облако. Звучит как кликбейт? Проверено на коленке.
Сразу предупреждаю: это не Tesla Optimus. Но за $100 вы получите работающего автономного робота, который можно научить различать команды и объезжать препятствия. Подходит для DIY-энтузиастов, которые не боятся паяльника и Python.
Железо: что покупать и где сэкономить
Бюджет жёсткий — $100. Значит, никаких готовых шасси за $50. Всё с миру по нитке. Вот мой проверенный список:
| Компонент | Цена ($) | Примечание |
|---|---|---|
| Raspberry Pi Zero 2 W | 15 | Официально ~$15, но часто бывает дешевле на AliExpress. Pi 5 дороже, выйдет за бюджет. |
| 2x DC мотор с редуктором (3–6V) | 6 | Купите пару моторов от старых CD-приводов — почти бесплатно. |
| Драйвер моторов L298N или TB6612 | 4 | TB6612 компактнее, L298N — классика. |
| Ультразвуковой дальномер HC-SR04 | 1 | Два штуки — $2. Чтобы видеть не только носом. |
| Колеса (2 шт.) + шариковая опора | 5 | Можно напечатать на 3D-принтере или вырезать из картона. |
| Батарейный отсек 4xAA или Li-Ion 18650 | 6 | 18650 с защитой — лучше. |
| USB-микрофон и колонка | 5 | Микрофон за $2, колонка — из старых наушников. |
| Модуль камеры (опционально) | 10 | Для распознавания лиц. Но можно пропустить. |
| Провода, макетная плата, пайка | 5 | Есть у каждого гика. |
| Итого | ~59 | Остаётся $41 на корпус, крепеж и пиццу. |
Звучит логично, но есть нюанс: Raspberry Pi Zero 2W — не самый мощный. Для голосового управления и маленькой LLM его хватит, но если хотите компьютерное зрение — лучше добавить $30 и взять Pi 5 (тогда бюджет вырастет, но мы же за $100). В статье про сборку мобильного робота-манипулятора за 20 000 рублей как раз используют Pi 5 и ROS2 — можете взять за основу.
Сборка: без пайки не обойтись
Соединяем моторы с драйвером, драйвер — с GPIO пинами. Ультразвуковые датчики — прямо на макетку. Питание: через L298N подаём 5V на Pi (через диод, иначе сожжете). Батарея — отдельно для моторов, иначе при резком старте Pi перезагрузится. Классика.
Вот как НЕ надо делать: кидать провода как попало. Если моторы будут висеть на тех же 5V, что и Pi — каждый пуск будет вызывать brownout. Используйте отдельный стабилизатор 5V/3A для Pi.
Совет: заземлите корпуса моторов на GND драйвера — это уменьшит помехи на аудио.
1 База: движение и объезд препятствий
Сначала заставьте робота ездить и не врезаться. Подключите HC-SR04 к GPIO 23 и 24. Код простейший:
import RPi.GPIO as GPIO
import time
TRIG = 23
ECHO = 24
def get_distance():
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
while GPIO.input(ECHO) == 0:
start = time.time()
while GPIO.input(ECHO) == 1:
end = time.time()
return (end - start) * 17150 # cm
Двигаемся вперед, пока расстояние > 20 см, иначе поворачиваем. Всё. Для более сложной навигации используйте SLAM, но это уже за рамками бюджета. Кстати, синдром Not Invented Here часто мешает взять готовый код — не будьте как те инженеры, возьмите мой.
2 Голос: понимание команд локально
Берем библиотеку Vosk (модель vosk-model-small-en-us-0.15) — она работает на Pi Zero 2W с задержкой около 1 секунды. Устанавливаем:
pip install vosk sounddevice numpy
wget https://alphacephei.com/vosk/models/vosk-model-small-en-us-0.15.zip
unzip vosk-model-small-en-us-0.15.zip
Альтернатива — Whisper от OpenAI, но его маленькая модель 'tiny' жрет 1 ГБ ОЗУ — Zero 2W не потянет. Для русского языка есть vosk-model-small-ru-0.22. Если хотите онлайн-распознавание — посмотрите на Gemini Robotics 1.5, но оно требует интернета.
Теперь заставляем робота реагировать на голос. Простейший автомат:
if 'forward' in text:
move_forward()
elif 'stop' in text:
stop()
elif 'turn left' in text:
turn_left()
Никакого ИИ — просто команды. Но мы же хотим интеллекта? Добавим LLM.
3 Мозги: запускаем локальную LLM
Вариантов два: Ollama с квантизированной моделью (например, phi3:3.8b-mini-4k-instruct-q4_K_M) или llama.cpp с моделью типа TinyLlama 1.1B. На Pi Zero 2W даже 1B модель будет выдавать токен за 5–10 секунд — медленно, но для голосовых команд сойдет. Если Pi 5 — можно запустить Llama 3.2 3B.
curl -fsSL https://ollama.com/install.sh | sh
ollama pull phi3:mini
Подключаем к нашему голосовому ассистенту. Когда пользователь говорит не команду движения, а вопрос ('какая погода?'), отправляем в Ollama и озвучиваем ответ через espeak или gTTS. Не ждите скорости — но это работает.
Ошибки, которые я совершил (чтобы вы не повторяли)
- Питание от одной батарейки — моторы жрут ток, и Pi выключается. Разделите цепи.
- Не экранировал динамик — микрофон слышал свой же голос, получался обратный свист.
- Забыл про watchdog — если LLM зависла, робот уезжает в стену. Поставьте программный таймер.
- Купил моторы без энкодеров — управлять скоростью вслепую невозможно. Для точности нужны энкодеры, но они дорогие. В этом проекте мы просто включаем/выключаем.
И последнее: не пытайтесь сразу сделать супер-интеллект. Начните с управления по блютузу с телефона. Добавьте датчики. Потом голос. И только потом LLM. Посмотрите, как компания Figure AI делает роботов за $2 в час — они тоже начинали с простого.
Что дальше? Недорогие апгрейды
Когда натренируетесь, можете:
- Добавить ESP32-CAM за $7 для распознавания лиц (статья про Tesla Optimus Gen 3 показывает, насколько это важно).
- Подключить датчик тока для зарядки — чтобы робот сам ехал на базу.
- Переписать код на ROS2 — тогда можно будет использовать готовые ноды из LeRobot, как в этом примере Physical AI-конвейера за 30 тыс. рублей.
Помните: робот за $100 не заменит Roomba, но он ваш. И он говорит с вами. А это дорогого стоит.