- 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.
34 KiB
ASSEMBLY.md - План сборки x0gp F1 1/27 MVP
Дата: 2026-06-28. Версия: 1.1 (синхронизировано с CART_MVP v13).
Что это: пошаговая инструкция от распаковки коробок до работающей машины. Цель: собрать 1 машину, протестировать, потом дозаказать ещё 3.
Изменения v1.2 (2026-06-28): синхронизация с CART_MVP v14.
- Батарея Tattu — ВДОЛЬ оси (отмена v13 «поперёк»): поперёк 55мм вылезает за пределы кузова (колея 58мм, понтоны 22-24мм).
- Двухпалубная схема (v14): серво (нос) → батарея вдоль (центр) → мотор+дифф (корма). Электроника НАВЕРХ через electronics_plate.stl (возвращён в v14, был отказ в v10). Батарея полуутоплена в пропил деки на 3-4мм.
- ESC — не приклеивать к ESP32: пластинка-проставка 1мм (текстолит/PETG) для воздушного зазора.
- Подшипники 6×10×2.5 (MR106-ZZ) — заказывать сразу на AliExpress (не проставки 0.5мм).
- Пиньон-набор — строго Ø2.0мм посадка в День 1.
- AliExpress п.1 — очищен от старого текста про Ø1.5мм одиночный пиньон.
Изменения v1.1 (2026-06-28): синхронизация с CART_MVP v13.
- ESP32-S3-DevKitC-1 → ESP32-S3-Zero (Waveshare, 21×17.5мм).
- Мотор 370 → Mini-Z flat-can 130 (15×12мм, вал Ø2.0мм).
- ESC 35A BL → Micro Brushed ESC 20A/30A.
- Батарея GNB 350мАч XT30 → Tattu 2S 300мАч PH2.0, укладка ПОПЕРЁК шасси.
- Серво 9г → AFRC D1802MG 5г (21.3×11.5×17.6мм), крепление горизонтально через прорезь в деке.
- Подшипники 684ZZ → 673ZZ (Ø3×6×2.5 перед) + 686ZZ (Ø6×10×3 зад).
- Dogbones → УДАЛЕНЫ (задний привод Mini-Z, мотор→пиньон→спур→дифф напрямую).
- Силиконовое масло 30WT → УДАЛЕНО (печатные аморт. без уплотнений).
- RUSHFPV Cherry антенна → штатный диполь камеры AIO (откусить «клевер»).
- POSCAP 6.3V → 470мкФ×10V Low ESR.
0. Что должно быть на столе перед сборкой
Куплено и получено (Ozon + WB)
- ESP32-S3-Zero (Waveshare, 21×17.5мм, USB-C) — Wi-Fi агент
- MPU-6050 GY-521 (IMU, I2C)
- Tattu 2S 300мАч 7.6V 75C PH2.0 (батарея, 55×20×12мм)
- Micro Brushed ESC 20A/30A с реверсом и тормозом (BEC 5V/1A)
- Mini-Z flat-can мотор 130 (15×12мм, вал Ø2.0мм)
- Микро-серво AFRC D1802MG 5г, металлическая шестерня (21.3×11.5×17.6мм)
- Дифференциал Mini-Z MR02/MR03 1/28 (металл, со штатным спуром)
- 5.8G 800TVL AIO VTX+камера 25мВт 40CH
- 686ZZ 6×10×3 подшипник ×10шт (задние)
- 673ZZ 3×6×2.5 подшипник ×10шт (передние)
- Винты M2/M2.5/M3 набор (RC, под шестигранник)
Заказано (AliExpress, ждём 14-30 дней)
- Набор алюминиевых пиньонов Surpass Hobby M0.4 13T-26T с посадкой на вал Ø2.0мм (SKU
1005008647925876) - Съёмник пиньонов AJRC (SKU
1005009341739110)
Напечатано (P1S, ~5.7 часа)
- chassis_deck.stl v7 (с готовыми отверстиями Ø10/Ø6 + вырезом под Type-C)
electronics_plate.stl— НЕ используется (в v10)- body_post.stl ×4
- front_bumper.stl, rear_bumper.stl
- shock_tower_front.stl, shock_tower_rear.stl (без поршня и уплотнений)
- servo_mount.stl v6 (горизонтальная укладка сервы, прорезь под качалку в деке)
- motor_mount.stl v12 (Mini-Z flat-can, осевое отверстие Ø2.2мм под вал Ø2.0мм)
- battery_strap.stl, wire_clip.stl ×4, fpv_camera_mount.stl
- wheel_hub_front.stl v4 (под 673ZZ Ø6мм), wheel_hub_rear.stl v4 (под 686ZZ Ø10мм)
- tire_front.stl, tire_rear.stl (TPU 85A)
- body_shell.stl (PETG, ~100 мин, печатаем сами — Kyosho НЕ покупаем)
Дополнительно нужно (если нет дома)
- Провода: силикон 30AWG 5 цветов набор (100м) — уже в корзине (~400₽)
Силиконовое масло 30WT— УДАЛЕНО (печатные аморт. без уплотнений, масло вытечет)- POSCAP / Low ESR электролит 470мкФ×10V (Ø6.3×8мм или Ø8×10мм, ~50₽) — ОБЯЗАТЕЛЬНО
- Каптоновый скотч 10мм × 30м (~250₽) — ОБЯЗАТЕЛЬНО (изоляция бутерброда ESP32+ESC+MPU)
- Двухсторонний скотч 3M VHB 0.1мм (~150₽) — фиксация плат
- Термоусадка 3мм и 5мм — 100₽
- Изолента, кабельные стяжки — есть дома
Кузов печатаем сами на P1S (PETG, body_shell.stl, ~100 мин). Готовый кузов Kyosho НЕ покупается.
Инструменты
- Паяльник 25-40W с тонким жалом
- Припой, флюс
- Крестовая отвёртка PH00 + PH0
- Пинцет
- Бокорезы
- Мультиметр
- USB-C кабель для ESP32
1. Распечатка и подготовка деталей
Шаг 1.1 - Печать STL
- Открыть Bambu Studio
- Импортировать STL из D:/x0gp/hardware/print/stl/
- Разложить на столе 256×256мм Bambu P1S:
- Большие: deck, electronics_plate, front_bumper, rear_bumper, battery_strap
- Средние: servo_mount, motor_mount, fpv_camera_mount, shock_tower×2
- Мелкие: 4× body_post, 4× wire_clip
- Все PETG детали: профиль 0.16mm Strength @BBL P1S
- TPU детали (front_bumper, rear_bumper, battery_strap): профиль 0.20mm Quality, AMS не нужен
- Запустить печать (3 часа)
Шаг 1.2 - Пост-обработка
- Снять детали с стола
- Убрать поддержки (если были)
- Пройтись наждачкой 200 по отверстиям M2/M2.5 (если саморезы входят туго)
- Проверить отверстия подшипников - вставить 673ZZ (Ø6мм) и 686ZZ (Ø10мм), должны входить с лёгким натягом
- Сверить размеры серво с посадкой в
servo_mount.stlv6 (21.3×11.5×17.6мм). Проверить, что прорезь под качалку Ø5мм на Y=+49 совпадает с нижней стороной деки. - Сверить
motor_mount.stlv12: осевое отверстие Ø2.2мм должно пропускать вал мотора Ø2.0мм без трения.
2. Механика шасси (30 минут)
Шаг 2.1 - Установка подшипников в деку
- Берём chassis_deck.stl v7 (напечатанный, отверстия уже есть — НЕ сверлить вручную)
- Нажимаем 673ZZ в отверстия передней оси (Ø6мм) — 2 шт
- Нажимаем 686ZZ в отверстия задней оси (Ø10мм) — 2 шт
- Убеждаемся что вращаются свободно
- При получении дифференциала — замерить штангенциркулем ширину посадочного места под задний подшипник. Оригинал Mini-Z MR02/03 = 2.5мм (НЕ 3мм). Если реально 2.5мм — напечатать PLA-проставку 0.5мм или дождаться AliExpress-партии 6×10×2.5.
Шаг 2.2 - Установка мотора
- Берём motor_mount.stl v12 (под Mini-Z flat-can 15×12мм, осевое отверстие Ø2.2мм под вал Ø2.0мм)
- Вставляем Mini-Z flat-can мотор в монтаж (посадочное окно 15×12мм)
- Закрепляем 2×M1.6 винтами через торцевые отверстия мотора (НЕ M2 — резьба в моторе M1.6!)
- Снять штатную шестерню с вала съёмником пиньонов AJRC (если мотор б/у)
- Надеть пиньон M0.4 8T (посадка Ø2.0мм!) — после приезда с AliExpress (дни 21-30)
- Устанавливаем motor_mount на деку: 2×M2 винтами через отверстия в motor_mount
Шаг 2.3 - Установка серво (горизонтально)
- Берём servo_mount.stl v6
- Вставляем серво AFRC D1802MG (21.3×11.5×17.6мм) горизонтально — качалка вниз
- Закрепляем 2×M2 винтами через servo_mount
- Устанавливаем servo_mount на деку: 2×M2 винтами через отверстия
- Качалка серво должна выходить через прорезь Ø5мм в деке на Y=+49 (rocker) — под деку, чтобы не торчать вверх в кокпит F1
- Внимание: высота серво 17.6мм. Кузов F1 в носовой части обычно 12-15мм. Серво помещается только при горизонтальной укладке (проверено в CART_MVP v13).
Шаг 2.4 - Установка ESC
- Берём Micro Brushed ESC 20A/30A
- Очистить от термоусадки и штатных толстых проводов — будем паять бутербродом с ESP32-S3-Zero
- Устанавливаем ESC на деку в носовой части (X=0, Y=+30), между серво и передним краем
- Фиксируем тонким двусторонним скотчем 3M VHB 0.1мм
Шаг 2.5 - Установка shock towers
- Берём shock_tower_front.stl (стойка Y=+20)
- Крепим 2×M2.5 винтами к деке через отверстия на Y=+20
- Берём shock_tower_rear.stl (стойка Y=-28)
- Крепим 2×M2.5 винтами к деке через отверстия на Y=-28
- Стойки направлены вверх, высота 25мм
- Амортизаторы: shock_tower сделан без поршня и уплотнения — полая стойка. Трение «пластик по пластику». Масло НЕ нужно (УДАЛЕНО v13).
Шаг 2.6 - Установка батареи (ВДОЛЬ центральной оси, v14)
- Берём battery_strap.stl (напечатанный TPU 95A)
- Протягиваем батарею Tattu 2S 300мАч через окно в strap ВДОЛЬ центральной оси (длинная сторона 55мм по Y, от носа к корме; ширина 20мм по X — по центру)
- PH2.0 разъём направлен к корме (к ESC) для удобства подключения
- Полуутопить батарею в пропил деки на 3-4мм (пропил вырезается напильником или фрезой в
chassis_deck.stlv7+) — иначе высота стопки не закроется кузовом - Крепим strap к нижней стороне деки (через отверстия в деке или на двусторонний скотч)
- Батарея лежит в средней части деки между серво (нос) и motor_mount (корма)
- НЕ ПОПЕРЁК (v14 отмена v13): поперёк 55мм вылезает за пределы кузова как крылья
Шаг 2.7 - Установка электроники ВТОРОЙ ПАЛУБОЙ (v14)
- Берём 4× body_post.stl — устанавливаем в отверстия деки (FL/FR/RL/RR), высота стойки 10мм
- Возвращаем
electronics_plate.stl(в v14 — снова нужен) как «вторую палубу» над батареей - Берём ESP32-S3-Zero, MPU-6050 (с выпаянными пинами, тонкие силиконовые провода 30AWG)
- Изолируем платы снизу каптоновым скотчем (ОБЯЗАТЕЛЬНО — иначе КЗ сожжёт ESP32)
- Между ESC и ESP32 — пластинка-проставка 1мм (текстолит или кусочек плотного PETG от неудачной печати) — воздушный зазор для охлаждения феттов ESC (исправление v14)
- Укладываем бутерброд на верхнюю палубу (electronics_plate) над батареей:
- ESC — у дальней переборки (над кормой батареи)
- ESP32-S3-Zero — рядом с ESC, вырезом под Type-C к краю деки
- MPU-6050 — на свободном пятачке, SDA→GPIO21, SCL→GPIO22
- Надеваем electronics_plate на 4× body_post, фиксируем
- Общая высота стопки: дека 1.5мм + батарея полуутопленная ~8мм + стойки 10мм + электроника 5-6мм = ~25мм. Кузов F1 в кокпите 22-25мм — впритык, закроется.
Шаг 2.8 - Установка dogbones — УДАЛЕНО
- Задний привод Mini-Z MR02/03: мотор → пиньон → спур дифференциала → колёса на оси дифф. Dogbones НЕ нужны (они для полноприводных MA020/AWD).
Шаг 2.9 - Установка колёс (печатаем сами)
- Печатаем wheel_hub_front.stl + tire_front.stl + wheel_hub_rear.stl + tire_rear.stl на P1S
- Запрессовываем подшипники в ступицы: 673ZZ в передние, 686ZZ в задние
- Устанавливаем на оси (перед — через ступицу 673ZZ, зад — на оси дифференциала через 686ZZ)
- Проверить что колёса вращаются свободно
3. Электрика (60 минут)
3.1 Схема подключения (v13)
` [BATTERY Tattu 2S 300мАч 7.6V PH2.0] | +---- PH2.0 ----[Micro Brushed ESC 20A/30A]----[Mini-Z flat-can мотор 130, вал Ø2.0мм] | | | +---- BEC 5V/1A ----+--[POSCAP 470мкФ×10V Low ESR]--GND (на линии 5V) | | | | | +---- ESP32-S3-Zero 5V (от BEC) | | +---- SERVO VCC (красный) | | +---- AIO VTX+Camera 5V (ОБЯЗАТЕЛЬНО от BEC!) | | | +---- GND (общая шина) | | | +---- Signal ----[SERVO сигнальный оранжевый] | | | +---- Signal ----[ESC сигнал PWM] | +---- [ESP32-S3-Zero GPIO21] ----[MPU-6050 SDA] +---- [ESP32-S3-Zero GPIO22] ----[MPU-6050 SCL] +---- [ESP32-S3-Zero 3V3] ----[MPU-6050 VCC] +---- [ESP32-S3-Zero GND] ----[MPU-6050 GND]
Штатная антенна-«клевер» AIO камеры -> откусить у основания, оголить 12.3-12.5мм = диполь `
3.2 Схема питания (v13)
` Tattu 2S 300мАч (7.6V HV / 8.4V заряд) | +---- PH2.0 ----[Micro Brushed ESC 20A] (вход питания) | +---- BEC 5V/1A (выход для слаботочки) | +---- [POSCAP 470мкФ×10V Low ESR параллельно] (ОБЯЗАТЕЛЬНО) | +---- ESP32-S3-Zero 5V (350мА пик Wi-Fi) +---- AIO VTX+Camera 5V (200-300мА) +---- SERVO VCC (300-400мА пиково)
+---- МОТОР (Mini-Z flat-can 130, коллекторный, 2 провода) - силовая часть
`
⚠️ ВАЖНО про камеру AIO (v13): НЕЛЬЗЯ питать от пина 3V3 ESP32-S3-Zero — встроенный LDO Waveshare 300-400мА перегружен (ESP32 сам ест 350мА в пике Wi-Fi). Только от BEC 5V параллельно POSCAP.
⚠️ ВАЖНО про POSCAP (v13): 470мкФ×10V Low ESR электролит или POSCAP. НЕ 6.3V — слишком мало запаса по вольтажу (BEC даёт скачки при торможении мотора, 6.3V может пробить). POSCAP положить НАБОК вдоль деки (экономит 5мм высоты).
3.3 Схема данных (сигналы)
ESP32-S3-Zero (Waveshare, 21×17.5мм) ├── GPIO21 (SDA) -> MPU-6050 SDA ├── GPIO22 (SCL) -> MPU-6050 SCL ├── GPIO2/4/5/6/7/15/16/17/18 -> Servo PWM (любой LEDC-capable) ├── GPIO18 -> ESC Signal PWM ├── USB-C -> для прошивки ├── 3V3 -> MPU-6050 VCC (ТОЛЬКО для IMU! НЕ для AIO камеры!) └── GND -> общая земля (ESC GND, MPU GND, SERVO GND, AIO VTX GND)
Шаг 3.1 - Паяем силовую часть
- Батарея -> ESC: провод PH2.0 (комплектный с Tattu) или припаять PH2.0 к ESC
- ESC -> Мотор: 2 провода (Mini-Z flat-can коллекторный) — любой порядок, потом подобрать направление
- Проверить: подключить батарею (без мотора), ESC должен пикнуть (инициализация)
Шаг 3.2 - Паяем BEC + POSCAP (v13)
- ESC BEC 5V -> общая шина 5V (красный провод BEC)
- BEC GND -> общая шина GND (чёрный/коричневый)
- POSCAP 470мкФ×10V Low ESR — припаять параллельно шинам 5V и GND максимально короткими выводами (ОБЯЗАТЕЛЬНО, иначе будут перезагрузки ESP32 и полосы на видео)
- Длинная ножка = «+» (5V), короткая = «−» (GND). Перепутать = взрыв.
- Положить НАБОК вдоль деки
- Проверить мультиметром: 5.0-5.2V между красным и чёрным
Шаг 3.3 - Паяем серво
- SERVO VCC (красный) -> шина 5V (от BEC)
- SERVO GND (коричневый/чёрный) -> шина GND
- SERVO Signal (оранжевый/белый) -> ESP32-S3-Zero GPIO5 (или другой LEDC-capable: GPIO2/4/6/7/15/16/17/18)
Шаг 3.4 - Паяем ESP32 + MPU
- ESP32 5V -> шина 5V (от BEC)
- ESP32 GND -> шина GND
- MPU VCC -> ESP32 3V3 (ТОЛЬКО IMU, не камера!)
- MPU GND -> ESP32 GND
- MPU SDA -> ESP32 GPIO21
- MPU SCL -> ESP32 GPIO22
- MPU INT -> опционально ESP32 GPIO4 (для прерываний)
- Пины MPU-6050 ВЫПАЯТЬ, припаять тонкий силикон 30AWG напрямую к ESP32-S3-Zero плашмя (экономия 7мм высоты)
Шаг 3.5 - Паяем ESC сигнал
- ESC Signal (белый/оранжевый) -> ESP32 GPIO18
- ESC GND (чёрный) -> шина GND
Шаг 3.6 - Паяем AIO VTX+Camera (v13 — СТРОГО ОТ BEC)
- AIO 5V (красный) -> шина 5V (от BEC) — НЕ от 3V3 ESP32!
- AIO GND (чёрный) -> шина GND
- AIO Video Out (жёлтый) -> опционально, для теста можно не подключать
- POSCAP на этой линии гасит полосы от наводок BEC
Шаг 3.7 - Антенна (v13)
- Штатная антенна-«клевер» на AIO камере -> откусить у основания, снять 12.3-12.5мм внешней оплётки (коэффициент укорочения в изоляции на 5.8ГГц!), оголить жилу = готовый лёгкий диполь (~0.1г)
- Вывести через отверстие в кузове (после установки body_shell.stl)
- RUSHFPV Cherry НЕ используется — слишком тяжёлая и большая для масштаба 1/27
4. Прошивка ESP32 (30 минут)
Шаг 4.1 - Установка toolchain
- Установить esptool (Python пакет): pip install esptool
- Скачать ESP-IDF v5.x или Arduino-ESP32 (зависит от выбора firmware)
- Для MVP рекомендую MicroPython (быстрый старт)
Шаг 4.2 - Прошивка MicroPython
- Скачать MicroPython firmware: https://micropython.org/download/ESP32-S3/
- Стереть flash: spefuse.py --chip esp32s3 erase_flash
- Прошить MicroPython: sptool.py --chip esp32s3 -p COM3 write_flash 0x0 esp32s3-20240602-v1.23.0.bin
- Подключиться через REPL (mpremote или Thonny)
Шаг 4.3 - Тестовая прошивка (agent_linker)
- Скопировать oot.py + main.py из репозитория x0gp/server/cmd/agent-linker/
- Настроить Wi-Fi SSID/пароль в config.py
- Прошить через mpremote
- Проверить логи - агент должен подключиться к Wi-Fi и WebSocket серверу
Шаг 4.4 - Калибровка PWM
- Подключить серво, ESC
- Запустить тест PWM: 0%, 50%, 100%
- Серво: проверить что диапазон 1000-2000 мкс (1-2 мс)
- ESC: проверить что 1500 мкс = стоп, 1000 = полный назад, 2000 = полный вперёд
- Записать калибровочные значения в config
Шаг 4.5 - Проверка I2C (MPU-6050)
- Сканировать I2C шину:
python from machine import I2C, Pin i2c = I2C(0, scl=Pin(22), sda=Pin(21)) print(i2c.scan()) # должно быть [104] (0x68) - Прочитать WHO_AM_I регистр (0x75) - должен вернуть 0x68
- Прочитать accelerometer + gyroscope данные
- Калибровать offsets (пока машина стоит ровно)
5. Установка батареи и кузова (15 минут)
Шаг 5.1 - Установка батареи (ВДОЛЬ оси, v14)
- Берём battery_strap.stl (напечатанный TPU 95A)
- Протягиваем батарею Tattu 2S 300мАч через окно в strap ВДОЛЬ оси (длинная сторона 55мм по Y, от носа к корме; ширина 20мм по X — по центру)
- Полуутопить батарею в пропил деки 3-4мм (пропил в
chassis_deck.stlили напильником) - PH2.0 разъём направлен к корме (к ESC) для удобства подключения
- Крепим strap к нижней стороне деки (через отверстия в деке или на двусторонний скотч)
- Батарея лежит в средней части деки между серво (нос) и motor_mount (корма)
- НЕ ПОПЕРЁК (v14 отмена v13): поперёк 55мм вылезает за пределы кузова
Шаг 5.2 - Установка кузова
- Берём напечатанный body_shell.stl (PETG)
- Надеваем на 4× body_post
- Кузов должен сесть плотно на деку (верхней плиты НЕТ — в v10)
- Проверить: кузов не должен касаться колёс и серво (серво торчит на 17.6мм!)
- Если касается - подрезать кузов ножом или подложить шайбы на body_posts
- Если высота кокпита в носовой части <17.6мм — серво не помещается вертикально, только горизонтально (проверить Шаг 2.3)
Шаг 5.3 - Установка FPV камеры + диполь (v13)
- Берём fpv_camera_mount.stl
- Вставляем AIO VTX+Camera в монтаж
- Закрепляем 4×M2 (внутри) + 2×M2 (к деке)
- Штатная антенна-«клевер» -> откусить у основания кусачками
- Снять 12.3-12.5мм внешней оплётки (точность ±0.5мм критична на 5.8ГГц из-за коэффициента укорочения в изоляции)
- Оголить центральную жилу = готовый лёгкий диполь (~0.1г)
- Вывести диполь через отверстие в кузове (в зоне шлема гонщика)
- Проверить: камера должна смотреть вперёд
- RUSHFPV Cherry НЕ используется — слишком тяжёлая для 1/27
Шаг 5.4 - Установка бамперов (TPU)
- front_bumper.stl - на передний край шасси (Y=+65)
- rear_bumper.stl - на задний край (Y=-65)
- Крепим 2×M2.5 винтами через кузов к бамперам (или приклеиваем)
6. Первый запуск (15 минут)
Шаг 6.1 - Проверка безопасности
- Убрать колёса (если ещё не установлены)
- Поднять машину так чтобы колёса не касались стола
- Подключить батарею XT30 к ESC
- ESC должен пикнуть (1 короткий сигнал = готов)
Шаг 6.2 - Проверка серво
- Подключиться к WebSocket серверу (через PC)
- Отправить команду "steer 0" - серво должна встать в нейтраль
- Отправить "steer 50" - серво поворачивает вправо
- Отправить "steer -50" - серво поворачивает влево
- Проверить диапазон - рулевая тяга не должна клинить
Шаг 6.3 - Проверка мотора
- Отправить "throttle 0" - мотор стоит
- Медленно увеличить: "throttle 10" - мотор крутится медленно
- Проверить направление: если колесо крутится назад, поменять 2 провода мотора
- Внимание: держите машину крепко! Mini-Z flat-can 130 на 2S с пиньоном 8T и спуром 44T — передача 5.5:1, машинка ОЧЕНЬ шустрая. Ограничить газ до 40-50% в прошивке на первых тестах (Dual Rates).
Шаг 6.4 - Проверка Wi-Fi
- ESP32 должен подключиться к Wi-Fi (SSID из config)
- Проверить IP адрес (через mpremote REPL)
- Пинговать с PC: ping 192.168.1.XXX
- WebSocket соединение с сервером должно установиться
Шаг 6.5 - Проверка MPU-6050
- В REPL прочитать значения гироскопа:
python ax, ay, az = mpu.accel.xyz gx, gy, gz = mpu.gyro.xyz print(ax, ay, az, gx, gy, gz) - Наклонить машину - значения должны меняться
- Калибровать offsets (вычесть среднее в покое)
7. Тест-драйв (30 минут)
Шаг 7.1 - На столе (без трассы)
- Поставить машину на стол колёсами вниз
- Установить колёса (если были сняты)
- Подключить батарею
- Подключиться к серверу, попробовать ехать прямо
- Проверить рулевое - повороты должны быть чёткие
Шаг 7.2 - На полу
- Поставить машину на пол
- Аккуратно дать газ - проверить прямолинейность
- Попробовать повороты - радиус должен быть небольшой
- Проверить время работы от батареи (Tattu 300мАч ~8-12 минут на полном газу, до 15 минут в щадящем режиме)
Шаг 7.3 - Тест дальности Wi-Fi
- Отнести машину на 5-10 метров от роутера
- Проверить стабильность соединения
- Задержка управления: ~50-100мс (приемлемо)
Шаг 7.4 - Тест FPV (если есть VRX)
- Подключить VRX к PC через USB
- Открыть видеоплеер (или специализированное ПО)
- Увидеть картинку с AIO камеры
- Задержка видео: ~100-200мс (нормально для аналога 5.8G)
8. Что делать если что-то не работает
ESC не пищит при подключении батареи
- Проверить polarity XT30
- Проверить напряжение батареи (>6V)
- Проверить коннектор ESC -> батарея
Серво не двигается
- Проверить PWM сигнал (осциллограф или другой серво)
- Проверить питание 5V на серво
- Калибровать ESC (многие ESC калибруют серво при первом подключении)
Мотор не крутится
- Проверить подключение 3 проводов
- Проверить сигнал ESC
- Попробовать поменять любые 2 провода (реверс)
Wi-Fi не подключается
- Проверить SSID/пароль в config
- Проверить диапазон (ESP32-S3 только 2.4GHz)
- Проверить что роутер не блокирует новые устройства
MPU-6050 не отвечает
- Проверить подключение SDA/SCL
- Проверить адрес (0x68 по умолчанию)
- Попробовать i2c.scan() для диагностики
FPV картинки нет
- Проверить что VTX включен (светодиод)
- Проверить частоту канала (должна совпадать с VRX)
- Проверить антенну (без антенны VTX может сгореть!)
9. После теста MVP (если всё работает)
Дозаказать на оставшиеся 3 машины (см. CART_MVP.md v13)
- ESP32-S3-Zero ×3, MPU-6050 ×3, батарея Tattu ×3, Micro Brushed ESC ×3
- Кузов ×3 (печатаем), дифференциал ×3
- AIO камера+VTX ×3, подшипники ×2 пачки (686ZZ + 673ZZ)
- Mini-Z flat-can мотор ×3 (Ali/Avito)
- Пиньон-набор 1 шт хватит на 4 машины — НЕ дозаказывать
DogbonesНЕ дозаказыватьRUSHFPV антеннаНЕ дозаказывать (штатный диполь камеры)- Итого дозаказ: ~21 103₽
Улучшения после MVP
- Brushless мотор RC0820 (вместо коллекторного Mini-Z 130) - быстрее
- Hobbywing Quicrun Micro Brushed ESC (водозащита + boost) - надёжнее
- Камера BETAFPV C03 + VTX M03 (отдельные, лучше качество)
- Гироскоп DasMikro (стабилизация FPV)
- VRX на PC (Eachine ProDVR)
- VRX goggles для FPV-пилотирования
10. Чек-лист перед первым заездом
- Батарея Tattu заряжена (7.6V HV / 8.4V заряженная, проверить мультиметром)
- POSCAP 470мкФ×10V Low ESR припаян параллельно 5V/GND
- AIO камера запитана от BEC 5V (НЕ от 3V3 ESP32!)
- Каптоновый скотч изолирует платы бутерброда ESP32+ESC+MPU
- Между ESC и ESP32 — пластинка-проставка 1мм (воздушный зазор для охлаждения)
- ESC пикает при подключении
- Серво AFRC D1802MG двигается в обе стороны
- Мотор Mini-Z flat-can крутится в правильую сторону
- Колеса установлены и вращаются (перед — 673ZZ, зад — 686ZZ/MR106-ZZ)
- Кузов не касается колёс и серво (серво 17.6мм торчит!)
- Батарея уложена ВДОЛЬ оси, полуутоплена в пропил деки 3-4мм
- Wi-Fi подключен, IP адрес известен
- WebSocket соединение с сервером активно
- MPU-6050 читает данные
- Антенна-диполь камеры AIO (12.3-12.5мм) выведена через кузов
- Бамперы не мешают колёсам
- Все винты затянуты
- В прошивке ограничен газ (Dual Rates 40-50%)
Готово к запуску!