Автономный танк с доставкой пива: Walabot, Arduino, Raspberry Pi и Alexa
Компоненты и материалы
| Компонент | Кол-во | Примечание |
|---|---|---|
| Walabot Creator | 1 | 3D-радар (микроволны), «глаз» танка |
| Arduino MKR1000 | 1 | Управление моторами, сервами, краном (3 внешних прерывания) |
| Raspberry Pi 3 Model B | 1 | Высший уровень: Walabot SDK, Python, AWS IoT, Alexa |
| Amazon Echo / echosim.io | 1 | Голосовое управление |
| Драйвер моторов TB6612FNG (2 канала, 1 А) | 1 | Два DC-мотора гусениц |
| Рама танка с 2 DC-моторами | 1 | Готовый шасси (Banggood) |
| Сервоприводы MG996R | 3 | Кран (1) + люк крышки (2) |
| Набор металлоконструктора | 1 | Каркас крана |
| Шаговый 28BYJ-48 + драйвер X113647 | 1 | Подъем крана (рыболовная леска) |
| LiPo 7.4 В + зарядка | 1 | Основное питание |
| BEC 5 В (до 3 А) | 1 | Питание Pi, Arduino, серв, Walabot |
| Потенциометр 10 кОм | 1 | Обратная связь угла крана |
| Лента LED (12 В) + транзистор Дарлингтона | 1 | Скрытые фары (питаются от 7.4 В через перемычку) |
| Радиоуправление (опционально) | 1 | Ручное управление 3 каналами |
| Пиво (для тестов) | 1 | Обязательный компонент 🍺 |
Инструменты
- Паяльница, клеевой пистолет, пила, дрель, напильник
Софт и облако
- Arduino IDE
- AWS IoT, AWS Lambda, Alexa Skills Kit
- Walabot SDK (Python)
- Python 3 на Raspberry Pi
О проекте
Голосоуправляемый танк, который привозит пиво: автономный режим «Follow me» (Walabot трекает человека) или ручное радиоуправление. Кран скрывает банку внутри корпуса и поднимает её по команде. Проект объединяет робототехнику, компьютерное зрение (радиолокацию), IoT и голосовые интерфейсы.
Шасси
Заказано готовое гусеничное шасси. При доставке повреждено — восстанавливали часами на клее. Моторы и редукторы встроены в корпус.
Кран v1 → v2
Первая версия: металлоконструктор + шаговый на леске. Работало, но скелет гнулся. Усилили двумя линейками 30 см и доп. перемычками — стало жёстко. Добавлен потенциометр на вал крана для точной обратной связи (угол).
Корпус и «грузовое отсек»
Walabot крепится магнитами к передней металлической пластине (без болтов). Корпус из чёрного картона и пластика. Верхний люк на двух сервах открывается при подъёме крана — эффект «открывания люка». Скрытые фары: серва поднимает пластиковую заслонку, за ней сегмент LED-ленты (12 В, запитан от 7.4 В с перемычкой вместо среднего LED для яркости).
Электрика
Вся электроника на верху танка (прото-PCB). MKR1000 выбран из-за 3+ внешних прерываний (Uno — только 2). Нужны для чтения PWM от RC-приёмника (3 канала: газ, руль, кран). 5 PWM-пинов: 2 на моторы (TB6612FNG), 3 на сервы. Проблема: только 4 пина с аппаратным PWM (D2–D5). Решение: сервы люка на софт-PWM (медленные, слышен только легкий гуд), остальные на хард-PWM.
Радиоуправление (Arduino)
3 канала PWM 1000–2000 мкс → внешние прерывания.
- Канал 1 (вертикаль):
motorSpeedBase = (pulse - 1500) / 2→ −255…255 - Канал 2 (горизонталь):
motorSpeedChange = (pulse - 1500) / 3 - Канал 3 (тумблер):
elevated = (pulse < 1500)— подъём/опускание крана
Финальные скорости: right = base + change, left = base - change (клиппинг до ±255).
Кран управляется функцией handleCrane() считывающей потенциометр: если elevated и угол < цели — поднимаем + открываем люк; иначе опускаем + закрываем. Катушки шагового отключаются в конце (экономия батареи и защита от перегрева).
Arduino ↔ Raspberry Pi (Serial)
Команды (текст, заканчивающиеся \n):
s— отключить RC, слушать только Serial (ответOK)r— вернуть RCe/d— поднять / опустить кранm X Y— установить base и change (целые)b— запрос напряжения батареи (ответ: V×100)l/o— свет вкл/выкл
Канал 3 RC оставлен как аварийный стоп в автономном режиме.
Walabot: настройка и «Follow me»
Walabot — 3D-радар на микроволнах. Режим MTI (Moving Target Identification) находит движущиеся объекты до 1.5 м, до 4 целей за кадр (~6 FPS).
Алгоритм следования:
- Калибровка: человек встаёт в 80 см перед танком.
- Ближайшая цель с высокой амплитудой = человек.
- Каждый кадр: новая позиция человека = цель, ближайшая к предыдущей позиции.
- Если скачок слишком большой — танк останавливается и ищет снова.
- Цель: держать человека в «таргет-зоне» (прямоугольник перед танком). Движение: поворот → 직진/назад. Одновременный поворот+движение нестабилен на гусеницах при 6 FPS — поэтому последовательно и на минимальной скорости.
Питание Walabot: 0.4–0.9 А. Pi USB выдаёт 600 мА → добавили max_usb_current=1 в /boot/config.txt (1.2 А). Всё равно браунаут при одновременном питании Arduino+серв. Решение: Walabot имеет 2 micro-USB — второй (центральный) для питания. Переключили джампер внутри Walabot (сняли крышку) → питание от BEC 3 А, данные — от Pi. Работает стабильно.
Голосовое управление (Alexa Skill)
Навык «Beer Tank» (ID: amzn1.ask.skill.a7453502-b1aa-47fa-a552-ed8e2c792b2e). Команды:
- «Start beer tank»
- «Turn on/off the lights»
- «Open/close the cargo hold»
- «Start/stop following me»
- «Stop» / «Cancel»
Архитектура: Alexa → Lambda (Node.js/Python) → AWS IoT (MQTT топик wbt) → Raspberry Pi (Paho MQTT client) → Serial → Arduino. Lambda не опрашивает железо напрямую — асинхронно через Device Shadow / топики. Ngrok использовали только для тестов; продакшен — только AWS.
Таксометры (отменено)
Изначально ставили ИК-таксометры на колёса (чёрно-белая полоса + рефлективный датчик) для одометрии. Отказались: не хватило GPIO на MKR1000, и для «Follow me» они не нужны. Оставили на месте как декор.
Заключение
Проект работает, весело, объединяет много технологий. Танк медленный в автономке (6 FPS Walabot), но надёжно следует за человеком. Планы: ускорить за счёт предсказания траектории / доп. датчики (LiDAR, камера), улучшить механику крана, добавить автозарядку.
Код: GitHub Beer-Tank (Arduino + Raspberry Pi).
Производственный процесс
- Синтаксис нетлистов SPICE: именование компонентов, пассивные и активные элементы, определение источников
- Производство кислородных баллонов: от сырья к качественному контролю
- Интегральные схемы (ИС): компактные мощные чипы, питающие современную электронику
- Управление Chromecast через Amazon Alexa с помощью Raspberry Pi и Python
- Построение дешёвого автономного лего-танка на NVIDIA Jetson Nano и Isaac SDK
- Набор MOSMusic: MOSFET, Arduino и управление светом по музыке
- Микроэлектроника: наука о сверхмалых электронных компонентах
- Резервные баки: назначение, виды и преимущества
- Основные компоненты сверлильного станка: подробный обзор
- Ключевые компоненты двигателя внутреннего сгорания