- Add initial versions of hardware bills of materials (BOM v1-v4), shopping lists, plan, and assembly guides. - Add STL models for 3D-printing the 1/27 scale OpenRC F1 car parts. - Add Blender 3D project files (.blend) and camera renders of the car design iterations. - Add ESP32 client firmware source (client.ino) for handling video streaming and car controls. - Ignore Blender backup files (*.blend1, *.blend2) and IDE directories.
21 KiB
x0gp — Hardware Plan
Документ фиксирует решения по физической части проекта: шасси машинки, электроника на борту, трасса в квартире, лэп-тайминг и компьютерное зрение.
Дата фиксации архитектурных решений: 2026-06-18. Дата обновления (Bambu A1, своё шасси): 2026-06-18. Дата обновления v2 (compact 1/24/1/27, Orange Pi 5 Pro): 2026-06-18.
1. Исходные ограничения
| Параметр | Значение | Комментарий |
|---|---|---|
| Самая большая комната | 446 x 319 см (~14.2 м²) | Внутри нужно оставить отступы под мебель и проход |
| Рабочая зона трассы (целевая) | 250-300 x 180-200 см | Только прямоугольный периметр, углы под мебель не используем |
| Ширина полосы трассы | 20-25 см | Под компактный масштаб 1/24-1/27, запас на ошибки руления |
| Число машинок в PoC | 2-4 шт | Этого достаточно для проверки race orchestration |
| Производство | Bambu A1 (предварительно) + PETG / ASA / TPU | Шасси, барьеры, маунты — печатаем сами, шасси полностью своё (не покупная дека) |
Целевая длина круга: 6-9 м (в зависимости от конфигурации поворотов).
2. Масштаб и размеры машинки
Принято v2: машинку уменьшаем до компактного масштаба — 1/24 или 1/27. Причины: минимизация площади трассы в квартире, дешевле комплектующие, быстрее реакция (меньше инерция), меньше расход батарей. Цена — мельче детали = сложнее CAD/печать/ремонт, меньше выбор готовых RC-узлов.
Два класса машинок в проекте:
| Класс | Масштаб | Длина шасси | Ширина шасси | Ширина полосы | Применение |
|---|---|---|---|---|---|
| Compact | 1/27 | 13-15 см | 7-8 см | 20-22 см | Основной класс. Минимальная трасса, помещается в 200×130 см |
| Mini | 1/32 | 10-12 см | 6-7 см | 16-18 см | Для ещё более компактных трасс и юниоров |
| Standard | 1/24 | 16-18 см | 8-9 см | 22-25 см | Альтернатива Compact, если хочется чуть стабильнее |
Целевой класс — Compact 1/27 (можно делать две версии для сравнения). Реальная F1 ~5 м, 1/27 -> ~18.5 см с кузовом, шасси ~13-15 см.
Почему не 1/10:
- Слишком крупно для квартиры.
Почему не 1/18:
- 18-22 см шасси всё ещё занимает заметную площадь.
- Ширина полосы 30-40 см требует трассу ~300×200 см — много для квартиры.
Почему 1/27 лучше 1/32 как primary:
- 1/32 (Tamiya TS/MT мини) — слишком мелкие детали: подшипники 3×6×2 мм, винты M1.4, серво весом 3-5 г. Сложно печатать точно и ремонтировать.
- 1/27 — золотая середина: достаточно мелкий для квартиры, достаточно крупный для надёжной 3D-печати и удобного ремонта. Подшипники 4×8×3 мм, винты M2, серво ~5-8 г. Доступны готовые RC-узлы "Mini-Z" размера.
3. Шасси машинки
3.1. Конструктив
Решение: шасси полностью своё, спроектированное и напечатанное нами. Не покупаем готовую деку — делаем CAD с нуля под 1/27 Compact Formula-стиль (целевой wheelbase 100-115 мм). Это даёт:
- полный контроль над геометрией (можно итеративно подгонять под трассу);
- уникальный внешний вид (бренд x0gp);
- минимум зависимости от поставщиков RC-деталей;
- быстрые итерации — неудачная дека перепечатывается за вечер.
Базовая идея: кастомное шасси, напечатанное на 3D-принтере, с использованием готовых RC-узлов (подшипники, амортизаторы, серво, мотор, ESC). ДЕКА (нижняя плита + верхняя дека + бамперы + стойки) — напечатана нами.
Печатаем сами:
- Основная дека (chassis plate) — PETG / ASA, 3-4 мм wall.
- Передний и задний бамперы — TPU (амортизация ударов о барьеры).
- Маунт серво, маунт ESC, маунт аккумулятора.
- Верхняя дека (electronics plate) — отдельная, для быстрого доступа.
- Защитный кожух для ESP32-S3 (snap-fit, вентиляция).
- Петля IR-датчика (если выбран вариант "петля снизу" — см. раздел 7).
- Крепление кузова (body posts) под 1/27 стандарт (100-115 мм wheelbase).
Покупаем готовые RC-узлы (в Mini-Z / 1/27 размере):
- Амортизаторы (oil-filled, ~25-35 мм) — масштабные.
- Шрусы / приводные валы (dogbones).
- Подшипники (4×8×3 мм, 3×6×2 мм).
- Колёса и шины (1/27 foam или rubber, диаметр ~25-30 мм).
- Кузов (поликарбонат, Formula-стиль, лексан 0.4-0.6 мм) — покупаем готовый кузов 1/24 или 1/27 (Tamiya / Mon-Tech / Protoform), потом печатаем свой.
3.2. Целевая спецификация шасси
- Wheelbase: 100-115 мм.
- Track width: 70-80 мм.
- Вес с батареей: 150-220 г.
- Распределение веса: 40/60 (перед/зад) или 45/55 — настраивается под трассу.
3.3. CAD и печать
- Принтер: Bambu A1 (предварительно). Плюсы: быстрый (CoreXY, ~500 мм/с), закрытая камера (для ASA/ABS), тихий, доступный по цене, AMS Lite для multi-color (полезно для тестовых деталей разного цвета). Минусы: меньше рабочий объём чем у P1S, нет enclosure для высокотемпературных пластиков в базе. Альтернатива: Bambu P1S (если решим печатать в enclosure).
- CAD: Fusion 360 (бесплатная лицензия для хобби) или OnShape (free tier, удобно для совместной работы).
- Слайсер: Bambu Studio (нативная поддержка A1) или OrcaSlicer (больше настроек).
- Материалы:
- Дека шасси: PETG (прочность, не крошится при ударе, легко шкурится).
- Бамперы и амортизирующие элементы: TPU 95A (гнётся, не ломается).
- Кузов: тонкостенный PETG / PETG-CF (карбон для жёсткости) или покупной поликарбонат лексан 0.5-0.8 мм (для первых тестов — купим готовый кузов 1/18, потом напечатаем свой).
- Крепёж, маунты, кожухи: PETG / PLA+ (декоративные детали).
- Постобработка: PETG шкурится и клеится эпоксидкой. PETG-CF можно оставить как есть.
- Итерации: первая версия печатается за 1 вечер (A1 печатает деку 1/18 за ~2-4 часа), сразу видно косяки. Версия 2 — на следующий день.
4. Электроника на борту
4.1. Силовая часть (drivetrain)
| Узел | Спецификация | Комментарий |
|---|---|---|
| Мотор | Brushless sensorless 2440 / 2830 (или sensored 3650 если место) | 1/18 обычно 2440 серия, 3800-4500 KV для 2S |
| ESC | 30-40 A, с поддержкой 100-200 Hz refresh, программируемый (Hobbywing XeRun Mini, Quicrun 16BL30, или 3D-printed enclosure для Mini ESC) | Без поддержки высокого refresh — steering будет "залипать" |
| Servo | Mini digital, 9-12 г, скорость 0.06-0.08 s/60deg, момент 1.5-2.5 kg/cm, deadband <= 4 us | Метал-редуктор обязателен |
| Аккумулятор | 2S LiPo 350-450 mAh, 50-100 C, XT30 connector | Быстрая замена через батарейный отсек |
| BEC | Встроен в ESC (6V, 2-3 A) или отдельный buck 5V/3.3V для ESP32 |
4.2. Управляющая электроника (agent)
| Узел | Спецификация |
|---|---|
| MCU | ESP32-S3-WROOM-1 (или ESP32-S3-DevKitC) |
| Wi-Fi | 2.4 GHz 802.11 b/g/n, поддержка WPA3, ESP-IDF + Wi-Fi DTIM low-power |
| Альтернатива MCU | ESP32-C5 (если нужен 5 GHz) или ESP32-S3 + внешний PA для дальности |
| Прошивка | Go НЕ идёт на ESP32 напрямую. Варианты: (a) MicroPython + asyncio — быстрый PoC; (b) ESP-IDF C/C++ — production; (c) TinyGo — компромисс |
| Питание | Buck 5V/3.3V от BEC ESC, отдельный LDO для аналоговых цепей (серво) |
| Сенсоры | MPU-6050 / ICM-20948 IMU (детекция кренов/столкновений), опционально ToF (VL53L0X) для anti-collision |
| IR-магнитные | TSOP1738 + ИК-светодиоды (или AS5600 магнитный енкодер для серво) |
| Хранилище | Маленькая SPI flash для конфига, OTA |
Рекомендация для PoC: ESP32-S3 + MicroPython. Простой, быстрый старт. К выходу на production-качество — переписать критичный цикл на ESP-IDF C.
4.3. Протокол "агент на борту" <-> "агент в помещении"
- Wi-Fi STA mode на ESP32, подключается к выделенной точке.
- WebSocket (или просто TCP) к локальному Go-агенту (см. раздел 9).
- Бинарный формат (protobuf / msgpack), 60-120 Hz.
- Heartbeat каждые 250 мс с состоянием (RSSI, батарея, температура ESC).
- OTA-обновления прошивки через Wi-Fi (инициируются из gateway-агента).
5. Распределение массы и центр тяжести
- Батарея крепится по центру (или смещается назад для Formula-стиля).
- Мотор сзади, серво спереди.
- Вся электроника сверху, доступна через съёмную деку.
- Балансировка: подкладываем шайбы в крепления амортизаторов.
6. Трасса
6.1. Геометрия
- Форма: сначала прямой овал, потом сложнее.
- Полоса: 20-25 см шириной (под 1/27 Compact).
- Покрытие: гладкий ПВХ-коврик или линолеум (не ковёр!).
- Барьеры: 3D-printed секции 15-20 см, высота 3-4 см, соединяются пазами.
- Разметка: линия старта/финиша, сектора (1/3, 2/3) — магнитная лента.
Целевая рабочая зона трассы (внутри комнаты 446×319 см с отступами):
- Стандарт: 200×130 см (прямоугольный периметр, периметр ~6.6 м)
- Compact: 180×110 см (для самой маленькой трассы, периметр ~5.8 м)
- Aggressive (сложная конфигурация): 220×140 см, с шиканами (периметр ~7+ м)
6.2. Структура
- Модульный каркас из 3D-printed уголков и алюминиевого профиля 2020.
- Подложка: лист фанеры 6-8 мм или жёсткий ПВХ.
- Поверхность: линолеум / резина / гладкий ПВХ — низкое трение = выше скорость.
- Стыки модулей: фаски, чтобы не ловить колёсами.
6.3. Углы и прямые
- Прямые: 40-70 см минимум для разгона (короче, чем 1/18).
- Повороты: радиус 20-40 см (внутренний).
- Шиканы: 10-18 см шириной.
- Апекс-конусы: 3D-printed (маленькие, ~3 см высота).
6.4. Хранение и сборка
- Модули 40x40 см — складываются стопкой.
- Полная сборка трассы 200x130 см: 30-50 минут.
- Полный разбор: 15 минут.
7. Лэп-тайминг и позиционирование
Выбран гибрид: IR-магнитные датчики + overhead-CV.
7.1. Старт/финиш и секторы (IR + магнит)
- Магнитная лента 5 мм шириной, утоплена в покрытие.
- На машинке: AS5600 / TLE4990 (магнитный енкодер), читает позицию ленты.
- На каждой секции старта/секторов: TSOP1738 IR-приёмник + ИК-светодиод на машинке.
- Логика: при пересечении линии в определённом направлении — инкремент сектора или фиксация lap.
- Точность: 1-2 мс.
7.2. Overhead Computer Vision
- 1-2 камеры над трассой (крепятся на штативе или раме 2020).
- Камеры: USB UVC 1080p 60 fps, глобальный затвор (важно! rolling shutter даст смаз на скорости), например Arducam OV9281 или ELP USB GS-CMOS.
- Хост: мини-ПК (см. раздел 9.2) с GPU или без (CPU хватит для 2-4 машинок на Jetson Orin Nano / RPi 5 + Hailo-8).
- Стек: Python + OpenCV + YOLO/ByteTrack, или Go + gocv.
- Что отдаём серверу:
- позиция (x, y, heading) каждой машины @ 30-60 Hz;
- ID-трекинг (ByteTrack / SORT);
- replay-запись (буфер 60 секунд, по запросу пишется в S3-совместимое хранилище).
7.3. Синхронизация времени
- NTP на gateway-агенте, drift < 5 мс.
- На борту машинки — RTC (DS3231) опционально, для синхронных логов.
8. Электрика в помещении
- Зарядная станция: 4-6 портов ISDT / ToolkitRC, балансир 2S.
- Запас батарей: 3-4 комплекта на машину (ротация).
- UPS для gateway-агента (на случай кратковременных отключений).
- Розетки: 220 В у трассы (для зарядки и gateway).
9. Локальная инфраструктура (квартира)
9.1. Wi-Fi
- Один выделенный роутер 2.4/5 GHz, отдельный SSID "x0gp-track" (изолированный VLAN).
- 5 GHz предпочтительно для агентов (меньше помех от соседей).
- Шифрование: WPA3, только авторизованные MAC (whitelist).
- Роутер в центре комнаты, на высоте 2 м, прямая видимость до всех точек трассы.
9.2. Gateway-агент (локальный "мозг" в помещении)
- Мини-ПК: Intel NUC / Beelink EQ12 / RPi 5 (8 GB).
- Софт: Go-агент из репозитория
server(модульcmd/agent-linker):- подключается к Edge-серверу по WebSocket (TLS);
- держит WebSocket-сессии со всеми машинками;
- буферизует команды на случай обрыва WAN (до 500 мс);
- отдаёт на сервер телеметрию (CV-треки, IR-секторы, состояние ESC);
- записывает replay на локальный диск, синкает в S3.
9.3. Крепёж и кабели
- Камеры на алюминиевом профиле 2020, высота 2-2.2 м.
- Кабели по потолку в кабель-каналах.
- USB-удлинители с фиксацией.
10. Roadmap (hardware)
| Фаза | Срок (целевой) | Что делаем |
|---|---|---|
| H0: PoC на столе | 1-2 нед | 1 машинка, маленькая трасса 100x60 см, без CV, только IR-сектор. Проверяем end-to-end Wi-Fi канал |
| H1: MVP квартира | 4-6 нед | 4 машинки, модульная трасса 250x180, overhead-CV, IR-сектор. Полный цикл команды и телеметрии |
| H2: 3D-итерация | 8-12 нед | Улучшаем шасси, аэродинамику кузова, диффы, подвеску. Сравниваем 1/18 и 1/20 классы |
| H3: Продакшн-помещение | 3-6 мес | Модульная трасса износостойкая, 8-12 машин, hot-swap батарей, резервный LTE-канал |
11. Бюджет (примерный, ориентир на РФ, 2026)
Масштаб 1/27 Compact — комплектующие и кузова дешевле, чем 1/18, итого бюджет ниже.
| Категория | Сумма, тыс. руб. |
|---|---|
| 3D-принтер Bambu A1 (или P1S, решим позже) | 60-150 |
| Filament: PETG ~8 кг, TPU ~1.5 кг, PETG-CF ~1.5 кг, PLA+ ~2 кг | 12-20 |
| Шасси 1/27 Compact на 4 машинки (PETG + RC-компоненты, своё) | 18-35 |
| Электроника (Mini ESC + мини-мотор + мини-серво + BEC) x4 | 20-35 |
| ESP32-S3 + датчики + IMU x4 | 8-12 |
| LiPo батареи 1S/2S 250-350 mAh (12 шт) | 8-15 |
| Кузов поликарбонат 1/24-1/27 x4 | 4-7 |
| Камеры 2 шт + штатив (компактные) | 6-12 |
| Orange Pi 5 Pro уже есть | 0 |
| Wi-Fi роутер (TP-Link Deco / MikroTik) | 5-15 |
| Зарядная станция | 5-8 |
| Материалы трассы (профиль 2020, фанера, линолеум, меньше) | 6-12 |
| UPS, кабели, мелочёвка | 5-10 |
| ИТОГО PoC + MVP | ~150-330 |
12. Открытые вопросы
- Compact 1/27 vs Standard 1/24 — primary 1/27, но CAD должен предусматривать оба варианта (один файл с параметризованным wheelbase).
- Overhead-CV: 1 широкая камера vs 2 узких (над прямыми и поворотами).
- Точная ширина полосы (20 vs 22 vs 25 см) — определится после первых заездов с реальной машинкой.
- Нужен ли onboard CV (ESP32-S3 + камера) для резервного трекинга.
- Bambu A1 vs P1S — A1 дешевле и быстрее, P1S имеет enclosure для инженерных пластиков. Решим после тестов с PETG-CF и ASA.
- Wheelbase: 100-115 мм — нужно сверить с доступными Mini-Z амортизаторами (Tamiya / PN Racing / GL Racing).
- Кузов: первый кузов купим готовый 1/24 (Tamiya F1 / Mon-Tech F1), свой CAD начнём после первых тестов.
- Orange Pi 5 Pro cooling — RK3588S под нагрузкой греется, нужен радиатор + вентилятор. Уточнить, что уже стоит на твоей плате.