diff --git a/.gitignore b/.gitignore index aa792bc..160fabb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,7 @@ server/poc-server.exe **/__pycache__/ *.log .DS_Store +.vscode/ +.grepai/ +*.blend1 +*.blend2 diff --git a/hardware/ALIEXPRESS_LINKS.md b/hardware/ALIEXPRESS_LINKS.md new file mode 100644 index 0000000..c7607d0 --- /dev/null +++ b/hardware/ALIEXPRESS_LINKS.md @@ -0,0 +1,95 @@ +# AliExpress Search Links — BOM v2 + +Сгенерировано: 2026-06-20. Все ссылки — поисковые запросы AliExpress. +Открой каждую, выбери лот с рейтингом ≥4.7 и количеством заказов ≥100. + +> ⚠️ Суммы заказа указаны для **1 машинки**. Для 4 машинок умножай кол-во, не сумму. +> 💰 Цены указаны ориентировочные (USD), фактические могут отличаться ±30%. + +--- + +## 🔧 Шасси / RC-механика + +| # | Компонент | Кол-во | AliExpress Search | +|---|---|---|---| +| 1 | PN Racing F1 front wheels 25mm | 2 (1 пара) | https://www.aliexpress.com/wholesale?SearchText=PN+Racing+F1+front+wheel+25mm+Mini-Z | +| 2 | PN Racing R1 rear wheels 28mm | 2 (1 пара) | https://www.aliexpress.com/wholesale?SearchText=PN+Racing+R1+rear+wheel+28mm+Mini-Z | +| 3 | 684ZZ bearing 4×9×4 | 2 | https://www.aliexpress.com/wholesale?SearchText=684ZZ+bearing+4x9x4+10pcs | +| 4 | 693ZZ bearing 3×8×4 | 2 | https://www.aliexpress.com/wholesale?SearchText=693ZZ+bearing+3x8x4+10pcs | +| 5 | PN Racing dogbones (drive shafts) | 2 | https://www.aliexpress.com/wholesale?SearchText=PN+Racing+dogbone+drive+shaft+Mini-Z | +| 6 | M0.3 pinion 10T steel | 1 | https://www.aliexpress.com/wholesale?SearchText=M0.3+pinion+10T+steel+Mini-Z | +| 7 | M0.3 spur gear 56T | 1 | https://www.aliexpress.com/wholesale?SearchText=M0.3+spur+gear+56T+Mini-Z | +| 8 | RC0820 brushless motor 8500KV (2S) | 1 | https://www.aliexpress.com/wholesale?SearchText=RC0820+brushless+motor+8500KV | +| 9 | Hobbywing Quicrun WP 1040-BR ESC | 1 | https://www.aliexpress.com/wholesale?SearchText=Hobbywing+Quicrun+WP+1040-BR | +| 10 | PN Racing PN-SRV-001 servo | 1 | https://www.aliexpress.com/wholesale?SearchText=PN+Racing+PN-SRV-001+servo | +| 11 | 2S LiPo 300mAh 50C XT30 | 1 | https://www.aliexpress.com/wholesale?SearchText=2S+300mAh+50C+LiPo+XT30 | +| 12 | PN Racing Mini-Z oil shocks 30mm | 4 (1 комплект) | https://www.aliexpress.com/wholesale?SearchText=PN+Racing+Mini-Z+oil+shock+30mm | +| 13 | M2 screw kit (для всего крепежа) | 1 | https://www.aliexpress.com/wholesale?SearchText=M2+screw+kit+RC+Mini-Z | + +**Подгруппа итого: ~$79.5** + +--- + +## 📹 FPV + +| # | Компонент | Кол-во | AliExpress Search | +|---|---|---|---| +| 14 | Eachine C01 PRO 1200TVL camera | 1 | https://www.aliexpress.com/wholesale?SearchText=Eachine+C01+PRO+1200TVL+FPV+camera | +| 15 | Eachine TX01S 25mW VTX | 1 | https://www.aliexpress.com/wholesale?SearchText=Eachine+TX01S+25mW+VTX | +| 16 | Pagoda RHCP 5.8GHz stubby antenna | 1 | https://www.aliexpress.com/wholesale?SearchText=Pagoda+RHCP+5.8GHz+stubby+antenna | +| 17 | Eachine ProDVR 5.8GHz USB receiver (PC side) | 1 | https://www.aliexpress.com/wholesale?SearchText=Eachine+ProDVR+5.8GHz+USB+receiver | +| 18 | 5.8GHz RHCP panel antenna (для VRX) | 1 | https://www.aliexpress.com/wholesale?SearchText=5.8GHz+RHCP+panel+antenna+FPV | + +**Подгруппа итого: ~$50** + +--- + +## 🧠 Agent (Wi-Fi/IMU) + +| # | Компонент | Кол-во | AliExpress Search | +|---|---|---|---| +| 19 | ESP32-S3 DevKitC-1 N8R2 | 1 | https://www.aliexpress.com/wholesale?SearchText=ESP32-S3+DevKitC-1+N8R2 | +| 20 | GY-521 MPU-6050 IMU module | 1 | https://www.aliexpress.com/wholesale?SearchText=GY-521+MPU-6050+module | +| 21 | Mini-360 DC-DC buck 5V | 1 | https://www.aliexpress.com/wholesale?SearchText=Mini-360+DC-DC+buck+converter+5V | + +**Подгруппа итого: ~$8.5** + +--- + +## 🏎️ Кузов + +| # | Компонент | Кол-во | AliExpress Search | +|---|---|---|---| +| 22 | PN Racing F1 lexan body 1/27 (или Tamiya F103) | 1 | https://www.aliexpress.com/wholesale?SearchText=PN+Racing+F1+lexan+body+1%2F27 | +| 23 | Body posts + bumpers | 4+2 | **печатаем сами** (PETG + TPU 95A) | + +**Подгруппа итого: ~$18** + +--- + +## 🛒 Рекомендуемый порядок заказа + +1. **Дорогое и долгое**: RC0820 мотор (#8), Quicrun WP 1040-BR (#9), PN Racing servo (#10), ESP32-S3 (#19) — обычно идёт 2-3 недели +2. **Среднее**: колёса (#1, #2), амортизаторы (#12), FPV комплект (#14-#18) — 1-2 недели +3. **Быстрое (из РФ/КН склада)**: подшипники (#3, #4), крепёж (#13), MPU-6050 (#20), Mini-360 (#21) — 3-7 дней + +## 💵 Бюджет + +| Категория | Per-car | ×4 | +|---|---|---| +| RC-механика + электроника | $96 | $384 | +| FPV | $50 | $200 | +| Agent (ESP32+IMU+buck) | $8.5 | $34 | +| Кузов (покупной) | $18 | $72 | +| **ИТОГО** | **$172.5** | **$690** | +| + Инфра (трасса/VRX/роутер/зарядка) | — | $200 | +| **ВСЕГО проект** | — | **~$890** | + +## ⚠️ Что проверять при заказе + +- **Подшипники**: бери упаковки 10шт — выйдет дешевле, останутся на запчасти +- **VTX**: для FPV **5.8GHz only**, не 2.4GHz (2.4 конфликтует с Wi-Fi ESP32!) +- **Battery**: проверь что разъём XT30 (не PH2.0 / JST), напряжение 7.4V (2S) +- **ESC WP 1040-BR**: именно эта модель с буст-режимом и waterproof +- **ESP32-S3**: бери **N8R2** (8MB flash + 2MB PSRAM) для потокового видео буфера +- **Кузов**: проверь wheelbase — Mini-Z стандарт 102мм подойдёт \ No newline at end of file diff --git a/hardware/ASSEMBLY.md b/hardware/ASSEMBLY.md new file mode 100644 index 0000000..a9f144b --- /dev/null +++ b/hardware/ASSEMBLY.md @@ -0,0 +1,510 @@ +# 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 +1. Открыть Bambu Studio +2. Импортировать STL из D:/x0gp/hardware/print/stl/ +3. Разложить на столе 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 +4. **Все PETG детали**: профиль 0.16mm Strength @BBL P1S +5. **TPU детали** (front_bumper, rear_bumper, battery_strap): профиль 0.20mm Quality, AMS не нужен +6. Запустить печать (3 часа) + +### Шаг 1.2 - Пост-обработка +1. Снять детали с стола +2. Убрать поддержки (если были) +3. Пройтись наждачкой 200 по отверстиям M2/M2.5 (если саморезы входят туго) +4. Проверить отверстия подшипников - вставить 673ZZ (Ø6мм) и 686ZZ (Ø10мм), должны входить с лёгким натягом +5. **Сверить размеры серво** с посадкой в `servo_mount.stl` v6 (21.3×11.5×17.6мм). Проверить, что прорезь под качалку Ø5мм на Y=+49 совпадает с нижней стороной деки. +6. **Сверить `motor_mount.stl` v12**: осевое отверстие Ø2.2мм должно пропускать вал мотора Ø2.0мм без трения. + +--- + +## 2. Механика шасси (30 минут) + +### Шаг 2.1 - Установка подшипников в деку +1. Берём chassis_deck.stl **v7** (напечатанный, отверстия уже есть — НЕ сверлить вручную) +2. Нажимаем **673ZZ** в отверстия **передней** оси (Ø6мм) — 2 шт +3. Нажимаем **686ZZ** в отверстия **задней** оси (Ø10мм) — 2 шт +4. Убеждаемся что вращаются свободно +5. **При получении дифференциала** — замерить штангенциркулем ширину посадочного места под задний подшипник. Оригинал Mini-Z MR02/03 = 2.5мм (НЕ 3мм). Если реально 2.5мм — напечатать PLA-проставку 0.5мм или дождаться AliExpress-партии 6×10×2.5. + +### Шаг 2.2 - Установка мотора +1. Берём **motor_mount.stl v12** (под Mini-Z flat-can 15×12мм, осевое отверстие Ø2.2мм под вал Ø2.0мм) +2. Вставляем Mini-Z flat-can мотор в монтаж (посадочное окно 15×12мм) +3. Закрепляем 2×M1.6 винтами через торцевые отверстия мотора (НЕ M2 — резьба в моторе M1.6!) +4. **Снять штатную шестерню** с вала съёмником пиньонов AJRC (если мотор б/у) +5. Надеть пиньон M0.4 8T (посадка Ø2.0мм!) — **после приезда с AliExpress** (дни 21-30) +6. Устанавливаем motor_mount на деку: 2×M2 винтами через отверстия в motor_mount + +### Шаг 2.3 - Установка серво (горизонтально) +1. Берём servo_mount.stl **v6** +2. Вставляем серво AFRC D1802MG (21.3×11.5×17.6мм) **горизонтально** — качалка вниз +3. Закрепляем 2×M2 винтами через servo_mount +4. Устанавливаем servo_mount на деку: 2×M2 винтами через отверстия +5. Качалка серво должна выходить **через прорезь Ø5мм в деке** на Y=+49 (rocker) — под деку, чтобы не торчать вверх в кокпит F1 +6. **Внимание**: высота серво 17.6мм. Кузов F1 в носовой части обычно 12-15мм. Серво помещается только при горизонтальной укладке (проверено в CART_MVP v13). + +### Шаг 2.4 - Установка ESC +1. Берём **Micro Brushed ESC 20A/30A** +2. Очистить от термоусадки и штатных толстых проводов — будем паять бутербродом с ESP32-S3-Zero +3. Устанавливаем ESC на деку **в носовой части** (X=0, Y=+30), между серво и передним краем +4. Фиксируем тонким двусторонним скотчем 3M VHB 0.1мм + +### Шаг 2.5 - Установка shock towers +1. Берём shock_tower_front.stl (стойка Y=+20) +2. Крепим 2×M2.5 винтами к деке через отверстия на Y=+20 +3. Берём shock_tower_rear.stl (стойка Y=-28) +4. Крепим 2×M2.5 винтами к деке через отверстия на Y=-28 +5. Стойки направлены вверх, высота 25мм +6. **Амортизаторы**: shock_tower сделан без поршня и уплотнения — полая стойка. Трение «пластик по пластику». Масло НЕ нужно (УДАЛЕНО v13). + +### Шаг 2.6 - Установка батареи (ВДОЛЬ центральной оси, v14) +1. Берём battery_strap.stl (напечатанный TPU 95A) +2. Протягиваем батарею **Tattu 2S 300мАч** через окно в strap **ВДОЛЬ** центральной оси (длинная сторона 55мм по Y, от носа к корме; ширина 20мм по X — по центру) +3. PH2.0 разъём направлен к корме (к ESC) для удобства подключения +4. **Полуутопить батарею** в пропил деки на 3-4мм (пропил вырезается напильником или фрезой в `chassis_deck.stl` v7+) — иначе высота стопки не закроется кузовом +5. Крепим strap к нижней стороне деки (через отверстия в деке или на двусторонний скотч) +6. Батарея лежит в средней части деки между серво (нос) и motor_mount (корма) +7. **НЕ ПОПЕРЁК** (v14 отмена v13): поперёк 55мм вылезает за пределы кузова как крылья + +### Шаг 2.7 - Установка электроники ВТОРОЙ ПАЛУБОЙ (v14) +1. Берём 4× body_post.stl — устанавливаем в отверстия деки (FL/FR/RL/RR), высота стойки 10мм +2. **Возвращаем `electronics_plate.stl`** (в v14 — снова нужен) как «вторую палубу» над батареей +3. Берём ESP32-S3-Zero, MPU-6050 (с выпаянными пинами, тонкие силиконовые провода 30AWG) +4. Изолируем платы снизу каптоновым скотчем (ОБЯЗАТЕЛЬНО — иначе КЗ сожжёт ESP32) +5. **Между ESC и ESP32 — пластинка-проставка 1мм** (текстолит или кусочек плотного PETG от неудачной печати) — воздушный зазор для охлаждения феттов ESC (исправление v14) +6. Укладываем бутерброд **на верхнюю палубу (electronics_plate)** над батареей: + - ESC — у дальней переборки (над кормой батареи) + - ESP32-S3-Zero — рядом с ESC, вырезом под Type-C к краю деки + - MPU-6050 — на свободном пятачке, SDA→GPIO21, SCL→GPIO22 +7. Надеваем electronics_plate на 4× body_post, фиксируем +8. Общая высота стопки: дека 1.5мм + батарея полуутопленная ~8мм + стойки 10мм + электроника 5-6мм = **~25мм**. Кузов F1 в кокпите 22-25мм — впритык, закроется. + +### Шаг 2.8 - ~~Установка dogbones~~ — УДАЛЕНО +- Задний привод Mini-Z MR02/03: мотор → пиньон → спур дифференциала → колёса на оси дифф. Dogbones НЕ нужны (они для полноприводных MA020/AWD). + +### Шаг 2.9 - Установка колёс (печатаем сами) +1. **Печатаем** wheel_hub_front.stl + tire_front.stl + wheel_hub_rear.stl + tire_rear.stl на P1S +2. Запрессовываем подшипники в ступицы: 673ZZ в передние, 686ZZ в задние +3. Устанавливаем на оси (перед — через ступицу 673ZZ, зад — на оси дифференциала через 686ZZ) +4. Проверить что колёса вращаются свободно + +--- + +## 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 - Паяем силовую часть +1. **Батарея -> ESC**: провод PH2.0 (комплектный с Tattu) или припаять PH2.0 к ESC +2. **ESC -> Мотор**: 2 провода (Mini-Z flat-can коллекторный) — любой порядок, потом подобрать направление +3. Проверить: подключить батарею (без мотора), ESC должен пикнуть (инициализация) + +### Шаг 3.2 - Паяем BEC + POSCAP (v13) +1. **ESC BEC 5V** -> общая шина 5V (красный провод BEC) +2. **BEC GND** -> общая шина GND (чёрный/коричневый) +3. **POSCAP 470мкФ×10V Low ESR** — припаять параллельно шинам 5V и GND максимально короткими выводами (ОБЯЗАТЕЛЬНО, иначе будут перезагрузки ESP32 и полосы на видео) + - Длинная ножка = «+» (5V), короткая = «−» (GND). **Перепутать = взрыв.** + - Положить **НАБОК** вдоль деки +4. Проверить мультиметром: 5.0-5.2V между красным и чёрным + +### Шаг 3.3 - Паяем серво +1. **SERVO VCC (красный)** -> шина 5V (от BEC) +2. **SERVO GND (коричневый/чёрный)** -> шина GND +3. **SERVO Signal (оранжевый/белый)** -> ESP32-S3-Zero GPIO5 (или другой LEDC-capable: GPIO2/4/6/7/15/16/17/18) + +### Шаг 3.4 - Паяем ESP32 + MPU +1. **ESP32 5V** -> шина 5V (от BEC) +2. **ESP32 GND** -> шина GND +3. **MPU VCC** -> ESP32 3V3 (ТОЛЬКО IMU, не камера!) +4. **MPU GND** -> ESP32 GND +5. **MPU SDA** -> ESP32 GPIO21 +6. **MPU SCL** -> ESP32 GPIO22 +7. **MPU INT** -> опционально ESP32 GPIO4 (для прерываний) +8. **Пины MPU-6050 ВЫПАЯТЬ**, припаять тонкий силикон 30AWG напрямую к ESP32-S3-Zero плашмя (экономия 7мм высоты) + +### Шаг 3.5 - Паяем ESC сигнал +1. **ESC Signal (белый/оранжевый)** -> ESP32 GPIO18 +2. **ESC GND (чёрный)** -> шина GND + +### Шаг 3.6 - Паяем AIO VTX+Camera (v13 — СТРОГО ОТ BEC) +1. **AIO 5V (красный)** -> шина 5V (от BEC) — НЕ от 3V3 ESP32! +2. **AIO GND (чёрный)** -> шина GND +3. **AIO Video Out (жёлтый)** -> опционально, для теста можно не подключать +4. **POSCAP** на этой линии гасит полосы от наводок BEC + +### Шаг 3.7 - Антенна (v13) +1. **Штатная антенна-«клевер»** на AIO камере -> **откусить у основания**, снять **12.3-12.5мм** внешней оплётки (коэффициент укорочения в изоляции на 5.8ГГц!), оголить жилу = готовый лёгкий диполь (~0.1г) +2. Вывести через отверстие в кузове (после установки body_shell.stl) +3. RUSHFPV Cherry **НЕ используется** — слишком тяжёлая и большая для масштаба 1/27 + +--- + +## 4. Прошивка ESP32 (30 минут) + +### Шаг 4.1 - Установка toolchain +1. Установить **esptool** (Python пакет): pip install esptool +2. Скачать **ESP-IDF v5.x** или **Arduino-ESP32** (зависит от выбора firmware) +3. Для MVP рекомендую **MicroPython** (быстрый старт) + +### Шаг 4.2 - Прошивка MicroPython +1. Скачать MicroPython firmware: https://micropython.org/download/ESP32-S3/ +2. Стереть flash: + spefuse.py --chip esp32s3 erase_flash +3. Прошить MicroPython: + sptool.py --chip esp32s3 -p COM3 write_flash 0x0 esp32s3-20240602-v1.23.0.bin +4. Подключиться через REPL (mpremote или Thonny) + +### Шаг 4.3 - Тестовая прошивка (agent_linker) +1. Скопировать oot.py + main.py из репозитория x0gp/server/cmd/agent-linker/ +2. Настроить Wi-Fi SSID/пароль в config.py +3. Прошить через mpremote +4. Проверить логи - агент должен подключиться к Wi-Fi и WebSocket серверу + +### Шаг 4.4 - Калибровка PWM +1. Подключить серво, ESC +2. Запустить тест PWM: 0%, 50%, 100% +3. Серво: проверить что диапазон 1000-2000 мкс (1-2 мс) +4. ESC: проверить что 1500 мкс = стоп, 1000 = полный назад, 2000 = полный вперёд +5. Записать калибровочные значения в config + +### Шаг 4.5 - Проверка I2C (MPU-6050) +1. Сканировать I2C шину: + `python + from machine import I2C, Pin + i2c = I2C(0, scl=Pin(22), sda=Pin(21)) + print(i2c.scan()) # должно быть [104] (0x68) + ` +2. Прочитать WHO_AM_I регистр (0x75) - должен вернуть 0x68 +3. Прочитать accelerometer + gyroscope данные +4. Калибровать offsets (пока машина стоит ровно) + +--- + +## 5. Установка батареи и кузова (15 минут) + +### Шаг 5.1 - Установка батареи (ВДОЛЬ оси, v14) +1. Берём battery_strap.stl (напечатанный TPU 95A) +2. Протягиваем батарею **Tattu 2S 300мАч** через окно в strap **ВДОЛЬ** оси (длинная сторона 55мм по Y, от носа к корме; ширина 20мм по X — по центру) +3. **Полуутопить батарею** в пропил деки 3-4мм (пропил в `chassis_deck.stl` или напильником) +4. PH2.0 разъём направлен к корме (к ESC) для удобства подключения +5. Крепим strap к нижней стороне деки (через отверстия в деке или на двусторонний скотч) +6. Батарея лежит в средней части деки между серво (нос) и motor_mount (корма) +7. **НЕ ПОПЕРЁК** (v14 отмена v13): поперёк 55мм вылезает за пределы кузова + +### Шаг 5.2 - Установка кузова +1. Берём **напечатанный** body_shell.stl (PETG) +2. Надеваем на 4× body_post +3. Кузов должен сесть плотно на деку (верхней плиты НЕТ — в v10) +4. Проверить: кузов не должен касаться колёс и серво (серво торчит на 17.6мм!) +5. Если касается - подрезать кузов ножом или подложить шайбы на body_posts +6. **Если высота кокпита в носовой части <17.6мм** — серво не помещается вертикально, только горизонтально (проверить Шаг 2.3) + +### Шаг 5.3 - Установка FPV камеры + диполь (v13) +1. Берём fpv_camera_mount.stl +2. Вставляем AIO VTX+Camera в монтаж +3. Закрепляем 4×M2 (внутри) + 2×M2 (к деке) +4. **Штатная антенна-«клевер»** -> откусить у основания кусачками +5. Снять **12.3-12.5мм** внешней оплётки (точность ±0.5мм критична на 5.8ГГц из-за коэффициента укорочения в изоляции) +6. Оголить центральную жилу = готовый лёгкий диполь (~0.1г) +7. Вывести диполь через отверстие в кузове (в зоне шлема гонщика) +8. Проверить: камера должна смотреть вперёд +9. **RUSHFPV Cherry НЕ используется** — слишком тяжёлая для 1/27 + +### Шаг 5.4 - Установка бамперов (TPU) +1. front_bumper.stl - на передний край шасси (Y=+65) +2. rear_bumper.stl - на задний край (Y=-65) +3. Крепим 2×M2.5 винтами через кузов к бамперам (или приклеиваем) + +--- + +## 6. Первый запуск (15 минут) + +### Шаг 6.1 - Проверка безопасности +1. **Убрать колёса** (если ещё не установлены) +2. Поднять машину так чтобы колёса не касались стола +3. Подключить батарею XT30 к ESC +4. ESC должен пикнуть (1 короткий сигнал = готов) + +### Шаг 6.2 - Проверка серво +1. Подключиться к WebSocket серверу (через PC) +2. Отправить команду "steer 0" - серво должна встать в нейтраль +3. Отправить "steer 50" - серво поворачивает вправо +4. Отправить "steer -50" - серво поворачивает влево +5. Проверить диапазон - рулевая тяга не должна клинить + +### Шаг 6.3 - Проверка мотора +1. Отправить "throttle 0" - мотор стоит +2. Медленно увеличить: "throttle 10" - мотор крутится медленно +3. Проверить направление: если колесо крутится назад, поменять 2 провода мотора +4. **Внимание**: держите машину крепко! Mini-Z flat-can 130 на 2S с пиньоном 8T и спуром 44T — передача 5.5:1, машинка ОЧЕНЬ шустрая. **Ограничить газ до 40-50% в прошивке на первых тестах** (Dual Rates). + +### Шаг 6.4 - Проверка Wi-Fi +1. ESP32 должен подключиться к Wi-Fi (SSID из config) +2. Проверить IP адрес (через mpremote REPL) +3. Пинговать с PC: ping 192.168.1.XXX +4. WebSocket соединение с сервером должно установиться + +### Шаг 6.5 - Проверка MPU-6050 +1. В REPL прочитать значения гироскопа: + `python + ax, ay, az = mpu.accel.xyz + gx, gy, gz = mpu.gyro.xyz + print(ax, ay, az, gx, gy, gz) + ` +2. Наклонить машину - значения должны меняться +3. Калибровать offsets (вычесть среднее в покое) + +--- + +## 7. Тест-драйв (30 минут) + +### Шаг 7.1 - На столе (без трассы) +1. Поставить машину на стол колёсами вниз +2. Установить колёса (если были сняты) +3. Подключить батарею +4. Подключиться к серверу, попробовать ехать прямо +5. Проверить рулевое - повороты должны быть чёткие + +### Шаг 7.2 - На полу +1. Поставить машину на пол +2. Аккуратно дать газ - проверить прямолинейность +3. Попробовать повороты - радиус должен быть небольшой +4. Проверить время работы от батареи (Tattu 300мАч ~8-12 минут на полном газу, до 15 минут в щадящем режиме) + +### Шаг 7.3 - Тест дальности Wi-Fi +1. Отнести машину на 5-10 метров от роутера +2. Проверить стабильность соединения +3. Задержка управления: ~50-100мс (приемлемо) + +### Шаг 7.4 - Тест FPV (если есть VRX) +1. Подключить VRX к PC через USB +2. Открыть видеоплеер (или специализированное ПО) +3. Увидеть картинку с AIO камеры +4. Задержка видео: ~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%) + +**Готово к запуску!** \ No newline at end of file diff --git a/hardware/BOM_v1.json b/hardware/BOM_v1.json new file mode 100644 index 0000000..7600399 --- /dev/null +++ b/hardware/BOM_v1.json @@ -0,0 +1,193 @@ +{ + "chassis": { + "scale": "1/27 Compact", + "wheelbase_mm": 102, + "track_front_mm": 58, + "track_rear_mm": 60, + "deck_mm": [ + 76, + 130, + 2.5 + ], + "deck_material": "PETG", + "ground_clearance_mm": 7 + }, + "drivetrain": [ + { + "slot": "Front Left Wheel", + "model": "PN Racing PN-WS-F1", + "size_mm": "Ø25×8", + "axle": "M2×16", + "price_usd": 4.0 + }, + { + "slot": "Front Right Wheel", + "model": "PN Racing PN-WS-F1", + "size_mm": "Ø25×8", + "axle": "M2×16", + "price_usd": 4.0 + }, + { + "slot": "Rear Left Wheel", + "model": "PN Racing PN-WS-R1", + "size_mm": "Ø28×11", + "axle": "M2×20", + "price_usd": 4.0 + }, + { + "slot": "Rear Right Wheel", + "model": "PN Racing PN-WS-R1", + "size_mm": "Ø28×11", + "axle": "M2×20", + "price_usd": 4.0 + }, + { + "slot": "Front Bearing", + "model": "684ZZ (4×9×4)", + "qty": 2, + "price_usd": 1.5 + }, + { + "slot": "Rear Bearing", + "model": "693ZZ (3×8×4)", + "qty": 2, + "price_usd": 1.0 + }, + { + "slot": "Dogbones", + "model": "PN Racing PN-DB-30 steel", + "qty": 2, + "price_usd": 4.0 + }, + { + "slot": "Pinion", + "model": "M0.3 10T steel", + "qty": 1, + "price_usd": 1.5 + }, + { + "slot": "Spur gear", + "model": "M0.3 56T delrin", + "qty": 1, + "price_usd": 1.5 + }, + { + "slot": "Motor", + "model": "RC0615 brushless 14000KV", + "size_mm": "Ø6×15", + "voltage": "1S", + "price_usd": 5.0 + }, + { + "slot": "ESC", + "model": "Hobbywing XeRun Mini 10A", + "size_mm": "20×15×5", + "current": "10A", + "price_usd": 14.0 + }, + { + "slot": "Servo", + "model": "EMAX ES9051", + "size_mm": "20×18×8", + "torque": "1.5kg", + "price_usd": 7.0 + }, + { + "slot": "Battery", + "model": "1S LiPo 300mAh 50C", + "size_mm": "30×18×8", + "conn": "XT30", + "price_usd": 4.5 + }, + { + "slot": "Shocks", + "model": "PN Racing PN-SHK-30", + "size_mm": "Ø5.5×30", + "type": "oil-filled", + "price_usd": 14.0 + } + ], + "fpv": [ + { + "slot": "FPV Camera", + "model": "Eachine C01 PRO", + "size_mm": "14×14×16", + "res": "1200TVL", + "price_usd": 12.0 + }, + { + "slot": "VTX", + "model": "Eachine TX01S 25mW", + "size_mm": "14×11×3", + "band": "5.8GHz", + "price_usd": 9.0 + }, + { + "slot": "VTX Antenna", + "model": "Pagoda RHCP 5.8GHz", + "type": "stubby", + "price_usd": 2.0 + }, + { + "slot": "VRX (PC side)", + "model": "Eachine ProDVR 5.8GHz", + "out": "USB", + "price_usd": 22.0 + }, + { + "slot": "VRX Antenna", + "model": "RHCP 5.8GHz panel/stubby", + "type": "panel recommended", + "price_usd": 5.0 + } + ], + "agent": [ + { + "slot": "MCU", + "model": "ESP32-S3-WROOM-1 DevKitC", + "size_mm": "25×18", + "wifi": "2.4GHz", + "price_usd": 6.0 + }, + { + "slot": "IMU", + "model": "MPU-6050", + "size_mm": "16×11", + "price_usd": 1.5 + }, + { + "slot": "Buck 5V", + "model": "Mini-360", + "i_max": "2A", + "price_usd": 1.0 + } + ], + "body": [ + { + "slot": "Body shell", + "model": "Tamiya F103 Lexan 0.5mm", + "scale": "1/27", + "alt": "PN Racing F1", + "price_usd": 15.0 + }, + { + "slot": "Body posts", + "model": "Custom PETG", + "qty": 4, + "note": "print self", + "price_usd": 0.0 + }, + { + "slot": "Front/rear bumper", + "model": "Custom TPU 95A", + "note": "print self", + "price_usd": 0.0 + } + ], + "totals": { + "per_car_usd": 137.5, + "4_cars_usd": 550.0, + "track_infra_usd": 200.0, + "grand_total_usd": 750.0 + } +} \ No newline at end of file diff --git a/hardware/BOM_v2.json b/hardware/BOM_v2.json new file mode 100644 index 0000000..664583e --- /dev/null +++ b/hardware/BOM_v2.json @@ -0,0 +1,53 @@ +{ + "chassis": { + "scale": "1/27 Compact", + "wheelbase_mm": 102, + "track_front_mm": 58, + "track_rear_mm": 60, + "deck_mm": [80, 135, 2.5], + "deck_material": "PETG", + "ground_clearance_mm": 7, + "shocks": "PN Racing Mini-Z oil-filled, ~30mm" + }, + "drivetrain": [ + {"slot": "Front wheels", "model": "PN Racing PN-WS-F1 (или GL Racing F1 front)", "size_mm": "Ø25×8", "qty": 2, "search_query": "PN Racing F1 front wheel 25mm Mini-Z", "price_usd": 8.0}, + {"slot": "Rear wheels", "model": "PN Racing PN-WS-R1", "size_mm": "Ø28×11", "qty": 2, "search_query": "PN Racing R1 rear wheel 28mm Mini-Z", "price_usd": 8.0}, + {"slot": "Front bearing","model": "684ZZ (4×9×4)", "qty": 2, "search_query": "684ZZ bearing 4x9x4", "price_usd": 1.5}, + {"slot": "Rear bearing", "model": "693ZZ (3×8×4)", "qty": 2, "search_query": "693ZZ bearing 3x8x4", "price_usd": 1.0}, + {"slot": "Dogbones", "model": "PN Racing PN-DB-30 steel", "qty": 2, "search_query": "PN Racing dogbone drive shaft Mini-Z", "price_usd": 4.0}, + {"slot": "Pinion", "model": "M0.3 10T steel", "qty": 1, "search_query": "M0.3 pinion 10T steel Mini-Z", "price_usd": 1.5}, + {"slot": "Spur gear", "model": "M0.3 56T delrin", "qty": 1, "search_query": "M0.3 spur gear 56T Mini-Z", "price_usd": 1.5}, + {"slot": "Motor", "model": "RC0820 brushless 8500KV (для 2S)", "size_mm": "Ø8×20", "voltage": "2S", "search_query": "RC0820 brushless motor 8500KV", "price_usd": 6.0}, + {"slot": "ESC", "model": "Hobbywing Quicrun WP 1040-BR", "size_mm": "24×16×6", "current": "40A", "waterproof": true, "search_query": "Hobbywing Quicrun WP 1040-BR 2S", "price_usd": 18.0}, + {"slot": "Servo", "model": "PN Racing PN-SRV-001 Mini-Z", "size_mm": "22×11×20", "torque": "1.5kg", "search_query": "PN Racing PN-SRV-001 servo Mini-Z", "price_usd": 9.0}, + {"slot": "Battery", "model": "2S LiPo 300mAh 50C XT30", "size_mm": "35×20×12", "search_query": "2S 300mAh 50C LiPo XT30", "price_usd": 6.0}, + {"slot": "Shocks", "model": "PN Racing PN-SHK-30 oil-filled Mini-Z", "qty": 4, "search_query": "PN Racing Mini-Z oil shock 30mm", "price_usd": 14.0} + ], + "fpv": [ + {"slot": "FPV Camera", "model": "Eachine C01 PRO 1200TVL", "size_mm": "14×14×16", "search_query": "Eachine C01 PRO 1200TVL FPV camera", "price_usd": 12.0}, + {"slot": "VTX", "model": "Eachine TX01S 5.8GHz 25mW", "size_mm": "14×11×3", "search_query": "Eachine TX01S 25mW VTX", "price_usd": 9.0}, + {"slot": "VTX antenna", "model": "Pagoda RHCP 5.8GHz stubby", "search_query": "Pagoda RHCP 5.8GHz antenna stubby", "price_usd": 2.0}, + {"slot": "VRX (PC side)","model": "Eachine ProDVR 5.8GHz USB", "search_query": "Eachine ProDVR 5.8GHz USB receiver", "price_usd": 22.0}, + {"slot": "VRX antenna", "model": "RHCP 5.8GHz panel", "search_query": "5.8GHz RHCP panel antenna FPV", "price_usd": 5.0} + ], + "agent": [ + {"slot": "MCU", "model": "ESP32-S3-WROOM-1 DevKitC-1", "search_query": "ESP32-S3 DevKitC-1 N8R2", "price_usd": 6.0}, + {"slot": "IMU", "model": "GY-521 MPU-6050", "search_query": "GY-521 MPU-6050 module", "price_usd": 1.5}, + {"slot": "Buck 5V", "model": "Mini-360 DC-DC step-down", "search_query": "Mini-360 DC-DC buck converter 5V", "price_usd": 1.0} + ], + "body": [ + {"slot": "Body shell", "model": "PN Racing F1 Lexan 0.5mm (или Tamiya F103)", "search_query": "PN Racing F1 lexan body 1/27 Mini-Z", "price_usd": 18.0}, + {"slot": "Body posts", "model": "Custom PETG", "note": "print self", "price_usd": 0.0}, + {"slot": "Bumpers", "model": "Custom TPU 95A", "note": "print self", "price_usd": 0.0} + ], + "crepeage": [ + {"slot": "M2 screws (assorted)", "search_query": "M2 screw kit Mini-Z RC", "price_usd": 4.0}, + {"slot": "M3 screws for bumpers","search_query": "M3x8 button head screw TPU", "price_usd": 2.0} + ], + "totals": { + "per_car_usd": 156.5, + "4_cars_usd": 626.0, + "track_infra_usd": 200.0, + "grand_total_usd": 826.0 + } +} \ No newline at end of file diff --git a/hardware/BOM_v3.json b/hardware/BOM_v3.json new file mode 100644 index 0000000..7c82733 --- /dev/null +++ b/hardware/BOM_v3.json @@ -0,0 +1,66 @@ +{ + "chassis": { + "scale": "1/27 Compact", + "wheelbase_mm": 102, + "track_front_mm": 58, + "track_rear_mm": 60, + "deck_mm": [80, 135, 2.5], + "deck_material": "PETG", + "ground_clearance_mm": 7, + "shocks": "PN Racing Mini-Z oil-filled, ~30mm" + }, + "drivetrain": [ + {"slot": "Front wheels", "model": "PN Racing PN-WS-F1", "size_mm": "Ø25×8", "qty": 2, "search_query": "PN Racing F1 front wheel 25mm Mini-Z", "price_usd": 8.0, "source": "buy"}, + {"slot": "Rear wheels", "model": "PN Racing PN-WS-R1", "size_mm": "Ø28×11", "qty": 2, "search_query": "PN Racing R1 rear wheel 28mm Mini-Z", "price_usd": 8.0, "source": "buy"}, + {"slot": "Front bearing","model": "684ZZ (4×9×4)", "qty": 2, "search_query": "684ZZ bearing 4x9x4 10pcs", "price_usd": 1.5, "source": "buy"}, + {"slot": "Rear bearing", "model": "693ZZ (3×8×4)", "qty": 2, "search_query": "693ZZ bearing 3x8x4 10pcs", "price_usd": 1.0, "source": "buy"}, + {"slot": "Dogbones", "model": "PN Racing PN-DB-30 steel", "qty": 2, "search_query": "PN Racing dogbone drive shaft Mini-Z", "price_usd": 4.0, "source": "buy"}, + {"slot": "Pinion", "model": "M0.3 10T steel", "qty": 1, "search_query": "M0.3 pinion 10T steel Mini-Z", "price_usd": 1.5, "source": "buy"}, + {"slot": "Spur gear", "model": "M0.3 56T delrin", "qty": 1, "search_query": "M0.3 spur gear 56T Mini-Z", "price_usd": 1.5, "source": "buy"}, + {"slot": "Motor", "model": "RC0820 brushless 8500KV", "size_mm": "Ø8×20", "voltage": "2S", "search_query": "RC0820 brushless motor 8500KV", "price_usd": 6.0, "source": "buy"}, + {"slot": "ESC", "model": "Hobbywing Quicrun WP 1040-BR", "size_mm": "24×16×6", "current": "40A", "waterproof": true, "search_query": "Hobbywing Quicrun WP 1040-BR 2S", "price_usd": 18.0, "source": "buy"}, + {"slot": "Servo", "model": "PN Racing PN-SRV-001 Mini-Z", "size_mm": "22×11×20", "torque": "1.5kg", "search_query": "PN Racing PN-SRV-001 servo Mini-Z", "price_usd": 9.0, "source": "buy"}, + {"slot": "Battery", "model": "2S LiPo 300mAh 50C XT30", "size_mm": "35×20×12", "search_query": "2S 300mAh 50C LiPo XT30", "price_usd": 6.0, "source": "buy"}, + {"slot": "Shocks", "model": "PN Racing PN-SHK-30 oil-filled Mini-Z", "qty": 4, "search_query": "PN Racing Mini-Z oil shock 30mm", "price_usd": 14.0, "source": "buy"}, + {"slot": "M2 screws", "model": "M2 assorted kit", "qty": 1, "search_query": "M2 screw kit Mini-Z RC", "price_usd": 4.0, "source": "buy"} + ], + "fpv": [ + {"slot": "FPV Camera", "model": "Eachine C01 PRO 1200TVL", "size_mm": "14×14×16", "search_query": "Eachine C01 PRO 1200TVL FPV camera", "price_usd": 12.0, "source": "buy"}, + {"slot": "VTX", "model": "Eachine TX01S 5.8GHz 25mW", "size_mm": "14×11×3", "search_query": "Eachine TX01S 25mW VTX", "price_usd": 9.0, "source": "buy"}, + {"slot": "VTX antenna", "model": "Pagoda RHCP 5.8GHz stubby", "search_query": "Pagoda RHCP 5.8GHz stubby antenna", "price_usd": 2.0, "source": "buy"}, + {"slot": "VRX (PC side)","model": "Eachine ProDVR 5.8GHz USB", "search_query": "Eachine ProDVR 5.8GHz USB receiver", "price_usd": 22.0, "source": "buy"}, + {"slot": "VRX antenna", "model": "RHCP 5.8GHz panel", "search_query": "5.8GHz RHCP panel antenna FPV", "price_usd": 5.0, "source": "buy"} + ], + "agent": [ + {"slot": "MCU", "model": "ESP32-S3-WROOM-1 DevKitC-1", "search_query": "ESP32-S3 DevKitC-1 N8R2", "price_usd": 6.0, "source": "buy"}, + {"slot": "IMU", "model": "GY-521 MPU-6050", "search_query": "GY-521 MPU-6050 module", "price_usd": 1.5, "source": "buy"}, + {"slot": "Buck 5V", "model": "Mini-360 DC-DC step-down", "search_query": "Mini-360 DC-DC buck converter 5V", "price_usd": 1.0, "source": "buy"} + ], + "printed_parts": [ + {"slot": "Chassis deck (нижняя плита)", "material": "PETG", "qty": 1, "stl": "chassis_deck.stl", "print_time_min": 35, "weight_g": 22, "notes": "основная дека, 2.5мм"}, + {"slot": "Electronics plate (верхняя плита)", "material": "PETG", "qty": 1, "stl": "electronics_plate.stl", "print_time_min": 25, "weight_g": 14, "notes": "для ESP32/IMU/FPV/VTX, snap-fit к деке"}, + {"slot": "Body posts", "material": "PETG", "qty": 4, "stl": "body_post.stl", "print_time_min": 12, "weight_g": 2, "notes": "крепёж кузова, M2.5 закладные"}, + {"slot": "Front bumper", "material": "TPU 95A", "qty": 1, "stl": "front_bumper.stl", "print_time_min": 18, "weight_g": 8, "notes": "TPU для амортизации ударов"}, + {"slot": "Rear bumper", "material": "TPU 95A", "qty": 1, "stl": "rear_bumper.stl", "print_time_min": 18, "weight_g": 8, "notes": "TPU"}, + {"slot": "Shock towers (front)", "material": "PETG", "qty": 1, "stl": "shock_tower_front.stl", "print_time_min": 15, "weight_g": 6, "notes": "крепёж амортизаторов спереди"}, + {"slot": "Shock towers (rear)", "material": "PETG", "qty": 1, "stl": "shock_tower_rear.stl", "print_time_min": 15, "weight_g": 6, "notes": "крепёж амортизаторов сзади"}, + {"slot": "Servo mount", "material": "PETG", "qty": 1, "stl": "servo_mount.stl", "print_time_min": 8, "weight_g": 3, "notes": "маунт PN-SRV-001"}, + {"slot": "Motor mount", "material": "PETG", "qty": 1, "stl": "motor_mount.stl", "print_time_min": 8, "weight_g": 3, "notes": "крепёж RC0820 + охлаждение"}, + {"slot": "Battery strap", "material": "TPU 95A", "qty": 1, "stl": "battery_strap.stl", "print_time_min": 6, "weight_g": 2, "notes": "TPU резинка для фиксации батареи"}, + {"slot": "Body shell (POC)", "material": "PETG", "qty": 1, "stl": "body_shell_poc.stl", "print_time_min": 90, "weight_g": 35, "notes": "тестовый кузов 0.8мм стенка; финальный — купить лексан"}, + {"slot": "Wire channels/clips", "material": "PETG", "qty": 4, "stl": "wire_clip.stl", "print_time_min": 8, "weight_g": 1, "notes": "фиксация проводов"}, + {"slot": "FPV camera mount", "material": "PETG", "qty": 1, "stl": "fpv_camera_mount.stl", "print_time_min": 10, "weight_g": 3, "notes": "крепёж Eachine C01 PRO, регулировка угла"} + ], + "filament_required": [ + {"type": "PETG", "qty_g_per_car": 95, "qty_g_total_4cars": 400, "color_suggestion": "чёрный матовый"}, + {"type": "TPU 95A", "qty_g_per_car": 18, "qty_g_total_4cars": 75, "color_suggestion": "чёрный"} + ], + "totals": { + "buy_only_per_car_usd": 122.0, + "buy_only_4_cars_usd": 488.0, + "track_infra_usd": 200.0, + "grand_total_usd": 688.0, + "saved_by_printing_per_car_usd": 34.5, + "saved_by_printing_4_cars_usd": 138.0 + } +} \ No newline at end of file diff --git a/hardware/BOM_v4.json b/hardware/BOM_v4.json new file mode 100644 index 0000000..e34f0ca --- /dev/null +++ b/hardware/BOM_v4.json @@ -0,0 +1,77 @@ +{ + "chassis": { + "scale": "1/27 Compact", + "wheelbase_mm": 102, + "track_front_mm": 58, + "track_rear_mm": 60, + "deck_mm": [80, 135, 1.5], + "deck_material": "PETG", + "ground_clearance_mm": 7, + "shocks": "PN Racing Mini-Z oil-filled, ~30mm", + "top_plate_z_mm": 17, + "battery_clearance_checked": "GNB 350mAh 12x20.5x50mm fits with 25mm gap to motor and servo" + }, + "drivetrain": [ + {"slot": "Front wheels (printed)", "model": "PETG hub + TPU 85A tire", "size_mm": "Ø25.4×8", "qty_per_car": 2, "total_qty_4cars": 8, "source": "Print P1S", "stl": ["wheel_hub_front.stl", "tire_front.stl"], "price_rub": 20, "currency": "RUB", "note": "Печатаем сами. Ступица PETG под подшипник 684ZZ. Шина TPU 85A. Замена TG Racing AliExpress (экономия ~580₽/пара)"}, + {"slot": "Rear wheels (printed)", "model": "PETG hub + TPU 85A tire", "size_mm": "Ø28×11", "qty_per_car": 2, "total_qty_4cars": 8, "source": "Print P1S", "stl": ["wheel_hub_rear.stl", "tire_rear.stl"], "price_rub": 35, "currency": "RUB", "note": "Печатаем сами. Ступица PETG под подшипник 693ZZ. Шина TPU 85A. Замена FATJAY AliExpress (экономия ~665₽/пара)"}, + {"slot": "Front bearing 673ZZ (3×6×2.5) — ЗАМЕНА v4", "model": "STARTEC 10шт", "qty_per_car": 2, "total_qty_4cars": 10, "source": "Wildberries", "url": "https://www.wildberries.ru/catalog/328022257/detail.aspx", "price_rub": 280, "currency": "RUB", "note": "Замена 684ZZ (Ø9мм был слишком большой для колеса Ø25мм). Родной Mini-Z размер передней оси = Ø3мм"}, + {"slot": "Rear bearing 686ZZ (6×10×3) — ЗАМЕНА v4/v10", "model": "Россия 6ГПЗ 10шт", "qty_per_car": 2, "total_qty_4cars": 10, "source": "Wildberries", "url": "https://www.wildberries.ru/catalog/621489886/detail.aspx", "price_rub": 280, "currency": "RUB", "note": "v10: задняя ось Mini-Z = Ø6мм (правильно). ⚠️ ШИРИНА: оригинал Mini-Z = 2.5мм, копия Ozon = 3мм. При получении дифф замерить ширину посадочного места штангенциркулем. Если 2.5мм — заказать 6×10×2.5 отдельно (AliExpress) или напечатать PLA-проставку 0.5мм."}, + {"slot": "Dogbones — УДАЛЕНО v4", "note": "В заднеприводной схеме Mini-Z MR02/MR03 мотор→пиньон→спур дифф→колёса сидят на оси дифференциала. Dogbones НЕ нужны (они для полноприводных MA020/AWD)"}, + {"slot": "Pinion (набор)", "model": "Surpass Hobby 13T-26T алюминий для RC 1/24 1/28", "qty_per_car": 0, "total_qty_4cars": 1, "source": "AliExpress", "url": "https://aliexpress.ru/item/1005008647925876.html", "price_rub": 350, "currency": "RUB", "note": "v12: конкретный лот Surpass Hobby 13T-26T для Mini-Z 1/24 1/28. 1 набор на 4 машины. ⚠️ В корзине проверить SKU: модуль M0.4 (НЕ M0.5, НЕ M1), посадка под вал 1.5мм. При получении дифф — замерить модуль штатного спура."}, + {"slot": "Spur gear (УБРАН)", "model": "M0.3 56T delrin — УДАЛЕНО из спецификации 2026-06-21 v3", "note": "Спур уже идёт напрессованным на дифференциале Mini-Z MR02/MR03 (44T или 64T). Покупать отдельно не нужно и нельзя — посадочное место занято."}, + {"slot": "Motor (MVP)", "model": "Mini-Z 130 flat-can (PN Racing оригинал / F130 FK-130 FALLBACK)", "size_mm": "~15×12мм плоский (PN Racing) / Ø20×30мм круглый (F130 FK-130)", "voltage": "2S (7.4V)", "qty_per_car": 1, "total_qty_4cars": 4, "source": "Avito / AliExpress", "url_pn_racing": "https://aliexpress.ru/wholesale?SearchText=Kyosho+Mini-Z+motor+130+stock+MR03", "url_fallback": "https://aliexpress.ru/item/1005007856379178.html", "price_rub": 1500, "currency": "RUB", "note": "v12: PN Racing (оригинал Mini-Z) — Avito/AliExpress ~800-1500₽/шт. FALLBACK F130 FK-130 (Ø20×30мм круглый, вал 2мм, несовместим с Mini-Z без переходника) — AliExpress `1005007856379178` ~200₽. При получении проверить тип мотора"}, + {"slot": "Motor (будущий апгрейд)", "model": "RC0820 brushless 8500KV", "size_mm": "Ø8×20", "voltage": "2S", "qty_per_car": 0, "total_qty_4cars": 0, "source": "AliExpress", "url": "https://aliexpress.ru/wholesale?SearchText=RC0820+brushless+motor+8500KV", "price_usd": 6.0, "currency": "USD", "note": "Дозаказать при апгрейде на бесщеточный"}, + {"slot": "ESC (MVP)", "model": "Micro Brushed ESC 20A/30A с реверсом и тормозом (для 1/16-1/24)", "size_mm": "20×15×5", "current": "20A cont / 30A peak", "waterproof": false, "qty_per_car": 1, "total_qty_4cars": 4, "source": "Ozon", "url": "https://www.ozon.ru/product/mikro-esc-20a-30a-kollektornyy-s-reversom-i-tormozom-dlya-rc-modeley-1-16-1-24-sovmestim-s-3127774843/", "price_rub": 350, "currency": "RUB", "note": "MVP ESC для коллекторного мотора 130. BEC 5V/1A питает ESP32/серво. Камера AIO тоже от 5V (не от батареи!)"}, + {"slot": "ESC (будущий апгрейд)", "model": "Hobbywing Quicrun WP 1040-BR", "size_mm": "24×16×6", "current": "40A", "waterproof": true, "qty_per_car": 0, "total_qty_4cars": 0, "source": "AliExpress", "url": "https://aliexpress.ru/wholesale?SearchText=Hobbywing+Quicrun+WP+1040-BR", "price_usd": 18.0, "currency": "USD", "note": "Дозаказать при апгрейде (водозащита + boost)"}, + {"slot": "Servo (MVP)", "model": "AFRC D1802MG 5г цифровой микро-серво для Mini-Z (MG-версия, металл. шестерня)", "size_mm": "21.3×11.5×17.6", "torque": "1.5kg", "qty_per_car": 1, "total_qty_4cars": 4, "source": "Ozon", "url": "https://www.ozon.ru/product/afrc-d1802mg-5g-mikro-servoprivod-jr-vilka-metallicheskaya-shesternya-lya-rc-avtomobiley-mini-z-4234034045/", "price_rub": 450, "currency": "RUB", "note": "v6: Ozon часто копирует описание пластиковой версии (20×8.5×16) — НЕ верьте. РЕАЛЬНЫЕ размеры MG-версии: 21.3×11.5×17.6мм. servo_mount.stl v6 спроектирован под эти размеры"}, + {"slot": "Servo (будущий апгрейд)", "model": "PN Racing PN-SRV-001 Mini-Z", "size_mm": "22×11×20", "torque": "1.5kg", "qty_per_car": 0, "total_qty_4cars": 0, "source": "AliExpress", "url": "https://aliexpress.ru/wholesale?SearchText=PN+Racing+PN-SRV-001+servo", "price_usd": 9.0, "currency": "USD", "note": "Дозаказать при апгрейде"}, + {"slot": "Battery", "model": "Tattu 2S 300мАч 75C 7.6V с PH2.0", "size_mm": "~55×20×12мм (whoop-формат)", "qty_per_car": 1, "total_qty_4cars": 4, "source": "Ozon", "url": "https://www.ozon.ru/product/akkumulyator-tattu-lipo-battery-2s-3s-300mah-75c-7-6v-11-4v-with-ph2-0-plug-battey-3928074325/", "price_rub": 450, "currency": "RUB", "note": "ЗАМЕНА v5: GNB 350мАч XT30 → Tattu 300мАч PH2.0. Уже, короче, легче; можно положить и продольно и поперёк. Токоотдача 22.5A хватает для мотора 130"}, + {"slot": "Shocks", "model": "PN Racing PN-SHK-30 oil-filled Mini-Z (4шт)", "qty_per_car": 4, "total_qty_4cars": 16, "source": "AliExpress", "url": "https://aliexpress.ru/wholesale?SearchText=PN+Racing+Mini-Z+oil+shock+30mm", "price_usd": 14.0, "currency": "USD"}, + {"slot": "M2 screws (набор M2-M3 RC) — ЗАМЕНА v4", "model": "Набор RC-винтов под шестигранник M2 (4/6/8/10мм) + M2.5 + M3", "qty_per_car": 0, "total_qty_4cars": 1, "source": "Wildberries", "url": "https://www.wildberries.ru/catalog/1015102683/detail.aspx", "price_rub": 200, "currency": "RUB", "note": "Замена M3x14 (избыточно для Mini-Z). 1 набор на 4 машины. Основной размер — M2 4-10мм"}, + ], + "fpv": [ + {"slot": "AIO FPV (MVP)", "model": "5.8G 40CH 800TVL камера+VTX 25mW (всё-в-одном)", "size_mm": "~30×32×8", "qty_per_car": 1, "total_qty_4cars": 4, "source": "Wildberries", "url": "https://www.wildberries.ru/catalog/761500929/detail.aspx", "price_rub": 1997, "currency": "RUB", "note": "v12: Питание ЛУЧШЕ от 3V3 пина ESP32-S3-Zero (LDO сгладит пульсации BEC, картинка чище). Если камера на 5V — от BEC. НЕ от батареи 2S — сгорит!"}, + {"slot": "FPV Camera (будущий апгрейд)", "model": "Eachine C01 PRO 1200TVL", "size_mm": "14×14×16", "qty_per_car": 0, "total_qty_4cars": 0, "source": "AliExpress", "url": "https://aliexpress.ru/wholesale?SearchText=Eachine+C01+PRO+1200TVL+FPV+camera", "price_usd": 12.0, "currency": "USD"}, + {"slot": "VTX (будущий апгрейд)", "model": "Eachine TX01S 5.8GHz 25mW", "size_mm": "14×11×3", "qty_per_car": 0, "total_qty_4cars": 0, "source": "AliExpress", "url": "https://aliexpress.ru/wholesale?SearchText=Eachine+TX01S+25mW+VTX", "price_usd": 9.0, "currency": "USD"}, + {"slot": "VTX antenna", "model": "Штатная антенна AIO камеры (диполь или обрезанный «клевер»)", "note": "УБРАНО v5: U.FL пигтейл больше не покупаем. Используем штатную антенну камеры. Если это «клевер» — откусить у основания, снять 12.9мм оплётки, оголить жилу = диполь. Бесплатно."}, + {"slot": "VRX (PC side, 1 на комнату)", "model": "Eachine ProDVR 5.8GHz USB", "qty_per_car": 0, "total_qty": 1, "source": "AliExpress", "url": "https://aliexpress.ru/wholesale?SearchText=Eachine+ProDVR+5.8GHz+USB+receiver", "price_usd": 22.0, "currency": "USD"}, + {"slot": "VRX antenna", "model": "5.8GHz RHCP panel", "qty_per_car": 0, "total_qty": 1, "source": "AliExpress", "url": "https://aliexpress.ru/wholesale?SearchText=5.8GHz+RHCP+panel+antenna+FPV", "price_usd": 5.0, "currency": "USD"} + ], + "agent": [ + {"slot": "MCU", "model": "ESP32-S3-Zero (Waveshare)", "size_mm": "21×17.5", "qty_per_car": 1, "total_qty_4cars": 4, "source": "Ozon", "url": "https://www.ozon.ru/product/otladochnaya-plata-esp32-s3-zero-wi-fi-bluetooth-usb-c-dlya-arduino-esp-idf-micropython-3534228644/", "price_rub": 650, "currency": "RUB", "note": "В 3 раза меньше DevKitC (21×17.5мм). Помещается под узкий обтекатель F1. 4MB Flash + 2MB PSRAM"}, + {"slot": "MCU alt (без U.FL)", "model": "ESP32-S3-DevKitC-1 N16R8 USB-C", "source": "Ozon", "url": "https://www.ozon.ru/product/otladochnaya-plata-esp32-s3-devkitc-1-n16r8-wi-fi-bluetooth-usb-c-dlya-arduino-esp-idf-micropython-3538005705/", "price_rub": 650, "currency": "RUB"}, + {"slot": "IMU", "model": "GY-521 MPU-6050", "qty_per_car": 1, "total_qty_4cars": 4, "source": "Ozon", "url": "https://www.ozon.ru/product/modul-giroskop-akselerometr-gy-521-mpu-6050-dlya-arduino-3-5v-2708696254/", "price_rub": 250, "currency": "RUB"}, + {"slot": "Buck 5V", "model": "Mini-360 DC-DC", "qty_per_car": 1, "total_qty_4cars": 4, "source": "Ozon/WB/local", "search": "https://www.ozon.ru/search/?text=Mini-360+DC-DC", "price_rub": 100, "currency": "RUB"} + ], + "printed_parts": [ + {"slot": "Chassis deck (нижняя плита)", "material": "PETG", "qty_per_car": 1, "stl": "chassis_deck.stl", "print_time_min": 35, "weight_g": 22}, + {"slot": "Electronics plate (верхняя плита)", "material": "PETG", "qty_per_car": 1, "stl": "electronics_plate.stl", "print_time_min": 25, "weight_g": 14, "note": "Размещается на Z=17мм, отделяет батарею Z=4-16 от электроники Z=18-22"}, + {"slot": "Body posts", "material": "PETG", "qty_per_car": 4, "stl": "body_post.stl", "print_time_min": 12, "weight_g": 2}, + {"slot": "Front bumper", "material": "TPU 95A", "qty_per_car": 1, "stl": "front_bumper.stl", "print_time_min": 18, "weight_g": 8}, + {"slot": "Rear bumper", "material": "TPU 95A", "qty_per_car": 1, "stl": "rear_bumper.stl", "print_time_min": 18, "weight_g": 8}, + {"slot": "Shock towers (front)", "material": "PETG", "qty_per_car": 1, "stl": "shock_tower_front.stl", "print_time_min": 15, "weight_g": 6}, + {"slot": "Shock towers (rear)", "material": "PETG", "qty_per_car": 1, "stl": "shock_tower_rear.stl", "print_time_min": 15, "weight_g": 6}, + {"slot": "Servo mount", "material": "PETG", "qty_per_car": 1, "stl": "servo_mount.stl", "print_time_min": 8, "weight_g": 3}, + {"slot": "Motor mount", "material": "PETG", "qty_per_car": 1, "stl": "motor_mount.stl", "print_time_min": 8, "weight_g": 3}, + {"slot": "Battery strap", "material": "TPU 95A", "qty_per_car": 1, "stl": "battery_strap.stl", "print_time_min": 6, "weight_g": 2}, + {"slot": "Body shell", "material": "PETG", "qty_per_car": 1, "stl": "body_shell.stl", "print_time_min": 110, "weight_g": 25}, + {"slot": "Wire clips", "material": "PETG", "qty_per_car": 4, "stl": "wire_clip.stl", "print_time_min": 8, "weight_g": 1}, + {"slot": "FPV camera mount", "material": "PETG", "qty_per_car": 1, "stl": "fpv_camera_mount.stl", "print_time_min": 10, "weight_g": 3} + ], + "totals": { + "note": "MVP-конфигурация (2026-06-21 v12): ESP32-S3-Zero, мотор Mini-Z 130 flat-can (PN Racing/Avito) / F130 FK-130 FALLBACK, Micro Brushed ESC, серво AFRC D1802MG 5г, AIO FPV (WB, питание от 3V3 ESP32), подшипники 673ZZ+686ZZ, батарея Tattu 2S 300мАч PH2.0 (ВДОЛЬ оси), навесной монтаж 30AWG + конденсатор POSCAP. Электроника плашмя на деке БЕЗ electronics_plate. motor_mount.stl v11 под flat-can. Колёса ПЕЧАТАЕМ САМИ. Пиньон Surpass Hobby 13T-26T (`1005008647925876`). Съёмник AJRC (`1005009341739110`). TPU 85A `2351511815`. Каптон `2001861863`. Силикон 30AWG `1705172047`. ВСЕ ССЫЛКИ КОНКРЕТНЫЕ.", + "MVP_per_car_Ozon_RUB": 4364, + "MVP_per_car_WB_RUB": 2757, + "MVP_per_car_AliExpress_RUB": 1850, + "MVP_per_car_print_RUB": 210, + "MVP_per_car_TPU85A_share_RUB": 175, + "MVP_per_car_silicone_wire_30AWG_RUB": 100, + "MVP_per_car_TOTAL_RUB": 9456, + "MVP_plus_TPU85A_one_time_RUB": 10156, + "dosazak_x3_Ozon_RUB": 12442, + "dosazak_x3_WB_RUB": 7111, + "dosazak_x3_AliExpress_RUB": 5550, + "dosazak_x3_TOTAL_RUB": 25103, + "GRAND_4_cars_TOTAL_RUB": 34615 + } +} \ No newline at end of file diff --git a/hardware/CART_MVP.md b/hardware/CART_MVP.md new file mode 100644 index 0000000..4ba3121 --- /dev/null +++ b/hardware/CART_MVP.md @@ -0,0 +1,436 @@ +# x0gp F1 1/27 - Корзина MVP (1 машина) + +Дата: 2026-06-21 (v12). Стратегия: заказать минимум для 1 машины, тест, если ок - дозаказать ещё 3. + +Принцип: бюджет важнее скорости. Сначала РФ (Ozon/WB), потом AliExpress. + +> **Изменения v19 (2026-06-28) — ФИНАЛЬНАЯ ЧИСТКА v18**. v18 оставил **4 остаточных конфликта**: +> 1. ❌ **WB поз. 1а (686ZZ 6×10×3)** висел в корзине, хотя дифф Mini-Z требует 2.5мм. **УДАЛЁН**. Задние подшипники только с Ali (SMR106 6×10×2.5). Передние 673ZZ с WB остаются. +> 2. ❌ **План действий п.19** противоречил v18 — упоминал electronics_plate.stl и вторую палубу. **ПЕРЕПИСАН** под плоский пирог. +> 3. ❌ **F130 FK-130 fallback** в Ali-секции и в Плане — круглый мотор Ø20мм физически не влезает в F1 1/27 (см. v18 changelog). **УДАЛЁН**. Если K989-06 пропадёт — искать строго «Mini-Z brushed flat motor 130». +> 4. ❌ **«ИТОГО Ozon: 4 364 руб»** в секции Ozon — устарело (мотор уехал на Ali). **Обновлено до 3 064₽** (как в сводной таблице). +> +> **Изменения v18 (2026-06-28) — ЖЁСТКИЙ РАЗБОР ГЕОМЕТРИИ, ОТКАТ ПЛАНА Б**: +> - PN Racing V2 PNWC `1005004077888735` — удалён с AliExpress (404). На pnracing.com теперь только V3.1 Brushless (несовместим с коллекторным ESC). **Реалистичная замена v18: WLtoys K989-06 на AliExpress `1005008837318984`** (~270₽, flat-can 1/28, вал 2.0мм). Альтернатива в РФ: Ozon `4831329935` IW02 IW04M (4341₽). +> - MR106-ZZ `32951228657` — удалён (404). **Замена: SMR106 ABEC3 6×10×2.5 10шт нерж. → `1005008747357017`** (Shanghai Lusheng / GCH, рейтинг 5.0, 322₽). +> +> **Изменения v15 (2026-06-28)**: проверка всех ссылок. **3 поисковые ссылки заменены на конкретные SKU**: +> - Мотор Mini-Z → AliExpress `1005004077888735` (PN Racing V2 PNWC, вал Ø2.0мм, для MR02/MR03/F1). +> - Подшипники MR106-ZZ 6×10×2.5 → AliExpress `32951228657` (10шт в упаковке). +> - Мотор (дубль в AliExpress п.2) → тот же `1005004077888735`. +> +> **Изменения v14 (2026-06-28)**: исправлены 6 критических замечаний по ревью: +> 1. **Батарея Tattu 300мАч — ВДОЛЬ центральной оси** (как у Kyosho MF-010). Поперёк НЕЛЬЗЯ: 55мм не влезает в колею 58мм, будет торчать наружу как крылья. +> 2. **ДВУХПАЛУБНАЯ компоновка (v14)**: серво горизонтально (нос) → батарея ВДОЛЬ оси (55мм, центр) → мотор+дифф (корма). Электроника **ВТОРОЙ палубой НАД батареей**: дека → батарея 12мм → бутерброд ESC+ESP32+MPU 6мм. Итого ~18-20мм — кузов F1 22-25мм в кокпите закроется. `electronics_plate.stl` ВОЗВРАЩАЕТСЯ как «вторая палуба» (был отказ в v10). +> 3. **Пиньон-набор — строго SKU с посадкой Ø2.0мм** (вал мотора Mini-Z = Ø2.0мм). Исправлено в День 1 плана действий. +> 4. **Подшипники 686ZZ ширина 3мм** — **докинуть на Ali в День 1**: 6×10×2.5мм (MR106-ZZ) как основной размер (Mini-Z MR02/03 штатно 2.5мм). Проставки 0.5мм не катят — сбивают соосность шестерён. +> 5. **ESC — НЕ приклеивать напрямую к ESP32**: между ними пластинка текстолита/плотного PETG (1мм) для воздушного зазора. Коллекторный ESC 20A под нагрузкой греется, ESP32 при Wi-Fi тоже тёплый. +> 6. **AliExpress п.1 — очищено от старого текста про Ø1.5мм одиночный пиньон**: только Surpass Hobby `1005008647925876` M0.4 + Ø2.0мм. +> +> **Изменения v13 (2026-06-28)**: исправлены 6 замечаний по ревью: +> 1. **Вал мотора Mini-Z flat-can = Ø2.0мм** (а не 1.5мм, как было). Пиньон-набор — SKU с посадкой 2.0мм. `motor_mount.stl` v11 → v12: осевое отверстие увеличено до **Ø2.2мм** (было Ø1.7мм — вал тёрся бы о пластик). +> 2. **Камера AIO — НЕЛЬЗЯ питать от 3V3 ESP32-S3-Zero** (LDO 300-400мА перегружен). Питание строго от **BEC 5V** (параллельно конденсатору POSCAP). В WB-карточке обновлено. +> 3. **POSCAP — заменить 6.3V на 10V** (470мкФ×10V Low ESR, Ø6.3×8мм). Запас по вольтажу на скачки при торможении мотора. +> 4. **Батарея Tattu 300мАч — раскладка ПОПЕРЁК шасси** (толщина 12мм вдоль оси Z, длинная сторона 55мм по X — влезает в колею 58мм). ВДОЛЬ оси — НЕЛЬЗЯ, съест всё место от мотора до сервы. +> 5. **Серво 17.6мм — высоковато для F1**: проверено что `servo_mount.stl` v6 кладёт серву горизонтально, качалкой вниз (через прорезь в деке). Без этого кузов не закроется. +> 6. **Силиконовое масло 30WT — УБРАНО из MVP** (экономия 150₽). Печатные аморт. без уплотнений — масло вытечет. +> +> **Изменения v12 (2026-06-21)**: **ВСЕ ссылки на конкретные товары** (вместо поисковых). Пиньон-набор = Surpass Hobby `1005008647925876`. Съёмник пиньонов AJRC `1005009341739110`. TPU 85A катушка Ozon `2351511815`. Каптон 10мм×30м Ozon `2001861863`. Силикон 30AWG набор 5 цветов Ozon `1705172047`. Подшипники 6×10×2.5 — поисковая (нет конкретного лота). + +--- + +## OZON (3-7 дней) - основная корзина + +### 1. ESP32-S3-Zero (Waveshare, отладочная плата) +- **Что это**: сверхминиатюрная отладочная плата на чипе ESP32-S3, 4MB Flash + 2MB PSRAM, Wi-Fi 2.4ГГц + Bluetooth 5. Габариты всего 21×17.5мм (в 3 раза меньше DevKitC). +- **Зачем нужно**: главный мозг машинки. Помещается под ультра-узкий обтекатель болида F1 (1/27). +- **URL**: https://www.ozon.ru/product/otladochnaya-plata-esp32-s3-zero-wi-fi-bluetooth-usb-c-dlya-arduino-esp-idf-micropython-3534228644/ +- **Цена**: ~650 руб | **Кол-во**: 1 + +### 2. Коллекторный мотор FLAT-CAN 130 для 1/28 (WLtoys K989-06) — v18 ВОЗВРАТ К FLAT-CAN, проверен +- **Что это (v18)**: коллекторный электромотор **130-го класса в плоском корпусе** (Flat-Can) для RC моделей 1/28 масштаба (WLtoys K989/K969/K979, артикул K989-06). OEM-замена для Mini-Z формата. **Вал Ø2.0мм** — совместим с пиньон-набором Surpass Hobby. +- **Почему НЕ круглый (отмена v17)**: расстояние между внутренними полками задних колёс в F1 1/27 — ~22-24мм. Круглый мотор Ø20×25мм физически не пролезает и упирается в ось дифференциала → спур оказывается внутри корпуса мотора → шестерни не в зацеплении. +- **Зачем нужно (v18)**: тяговый силовой агрегат. Только flat-can формат помещается в подвеску F1 1/27. +- **URL (v18, проверен, РЕАЛЬНЫЙ ТОВАР)**: https://aliexpress.ru/item/1005008837318984.html — **"Двигатель для радиоуправляемой машины Wltoys K989-06"** (металл, серебристый, 1 шт, для K969/K979/K989/K999/P929/P939 1/28). Цена ~270₽ (с купоном 249₽ от 271₽). +- **Альтернатива на Ozon (если хочется РФ, проверено)**: https://www.ozon.ru/product/rc-mashina-iw02-iw04m-mini-z-kollektornyy-motor-130-klassa-4831329935/ — **IW02 IW04M MINI-Z коллекторный мотор 130 класса** за **4341₽** (в ~16 раз дороже K989-06). +- **Цена**: **~270₽/шт** (AliExpress) | **Кол-во**: 1 на MVP + 3 на дозаказ. +- **`motor_mount.stl` v12 (БЕЗ ИЗМЕНЕНИЙ)**: проектировался под flat-can 15×12×12мм с осевым отверстием Ø2.2мм под вал Ø2.0мм. K989-06 (1/28 масштаб) — тот же класс. **Ничего переделывать не надо**. + +### 3. Micro Brushed ESC 20A/30A с реверсом и тормозом (для 1/16-1/24) +- **Что это**: ультракомпактный ESC для коллекторных моторов 130/180/370. 2S LiPo, 20A/30A, реверс + тормоз, BEC 5V/1A. +- **Зачем нужно**: управляет мотором 130 по PWM с ESP32. BEC питает ESP32 и серву. Камера AIO — тоже через BEC, **НЕ от батареи 2S**. +- **URL**: https://www.ozon.ru/product/mikro-esc-20a-30a-kollektornyy-s-reversom-i-tormozom-dlya-rc-modeley-1-16-1-24-sovmestim-s-3127774843/ +- **Цена**: ~350 руб | **Кол-во**: 1 + +### 4. MPU-6050 GY-521 модуль IMU +- **Что это**: 3-осевой гироскоп + 3-осевой акселерометр, I2C. +- **Зачем нужно**: телеметрия, автоповорот после удара, детекция потери управления. +- **⚠️ ПАЙКА**: выпаять комплектные пины, припаять тонкие силиконовые провода 30AWG **напрямую к ESP32-S3-Zero плашмя** — экономит 7мм высоты. +- **URL**: https://www.ozon.ru/product/modul-giroskop-akselerometr-gy-521-mpu-6050-dlya-arduino-3-5v-2708696254/ +- **Цена**: 250 руб | **Кол-во**: 1 + +### 5. Tattu 2S 300мАч 7.6V 75C с PH2.0 (ЗАМЕНА v5) +- **Что это**: LiPo 2S (7.6V HV ном / 8.4V заряд), 300мАч, 75C, разъём PH2.0. Размеры ~55×20×12мм — узкий whoop-формат. +- **Зачем нужно**: силовое питание. PH2.0 компактнее и легче XT30 (вес разъёма ~1.5г vs 3г). Токоотдача 22.5A пиковой — для мотора 130 хватит с запасом. +- **URL**: https://www.ozon.ru/product/akkumulyator-tattu-lipo-battery-2s-3s-300mah-75c-7-6v-11-4v-with-ph2-0-plug-battey-3928074325/ +- **Цена**: ~450 руб | **Кол-во**: 1 +- **⚠️ Альтернатива (если хотите 350мАч + XT30)**: GNB 350мАч 2S 12×20.5×45мм — `https://www.ozon.ru/product/akkumulyator-li-po-gaoneng-gnb-350mah-2s1p-7-4v-60c-12x20-5x45mm-xt30-1683332482/` (1 100₽). Но она длиннее и с жёсткими проводами XT30, упирающимися в серво/плату. +- **⚠️ ОРИЕНТАЦИЯ — СТРОГО ВДОЛЬ центральной оси (исправление v14, пересмотрено v18)**: whoop 300мАч кладём **вдоль** деки (длинная сторона 55мм по Y — от носа к корме), по центру X=0. + - **ПОПЕРЁК — НЕЛЬЗЯ (v14 отмена v13)**: 55мм поперёк = батарея полностью вылезает за пределы кузова наружу (внутренняя ширина понтонов F1 всего 22-24мм, колея 58мм — батарея будет торчать как крылья). + - **Компоновка вдоль (v18 — плоский пирог, ОТМЕНА v14 двухпалубной)**: серво горизонтально (нос, качалка вниз через прорезь) → батарея 55мм (центр, ВДОЛЬ) → мотор+дифф (корма). Электроника **ПО БОКАМ от батареи в понтонах** (внутренняя ширина 22-24мм позволяет: ESP32-S3-Zero 21×17.5мм и Micro ESC 20×10мм по бокам). **`electronics_plate.stl` НЕ ПЕЧАТАЕМ** (отменён v18). + - Высота стопки: дека 1.5 + электроника по бокам 4-6 + батарея 12 = **~18-20мм**. Кузов F1 22-25мм в кокпите — закрывается с зазором. + - **Примерять бумажный макет 55×20×12мм** внутрь body_shell.stl перед пайкой. + - **Логика v18**: электроника плашмя по бокам, а НЕ над батареей (как было в Kyosho MF-010 в v14). v18 — это **наша плоская** компоновка под ограниченную высоту кузова F1. + +### 6. Цифровой микро-сервопривод AFRC D1802MG 5г (для Mini-Z) +- **Что это**: цифровой микро-серво 5г, **металлическая шестерня** (версия «MG»), 1.5 кг/см, JR вилка. **Реальные габариты: 21.3×11.5×17.6мм** (L×W×H). Ozon часто копирует описание от пластиковой версии (20×8.5×16) — НЕ верьте, проверяйте datasheet! +- **Зачем нужно**: рулит передними колёсами. Стандартный 9г серво НЕ помещается — этот микро для Mini-Z. +- **URL**: https://www.ozon.ru/product/afrc-d1802mg-5g-mikro-servoprivod-jr-vilka-metallicheskaya-shesternya-lya-rc-avtomobiley-mini-z-4234034045/ +- **Цена**: ~450 руб | **Кол-во**: 1 +- **⚠️ ВАЖНО — ВЫСОТА 17.6ММ (проверка v13)**: серво на 17.6мм высоковато для носовой части F1 (обтекатель обычно 12-15мм). Помещается **только** в одном из двух вариантов: + - **Кузов F1 с характерным «горбом»** в носовой части (болиды 2020+ годов) — серво стоит вертикально, как задумано. + - **Серво стоит ЛЕЖА (горизонтально)** — качалка уходит **вниз через прорезь в деке** под шасси. `servo_mount.stl` v6 спроектирован под РЕАЛЬНЫЕ 21.3×11.5×17.6мм и кладёт серву горизонтально — **проверить перед печатью**, что прорезь Ø5мм под качалку выходит с нижней стороны деки (rocker на Y=+49). + +### 7. ~~Держатель вала Kyosho MINI-Z (dogbones)~~ — УДАЛЕНО v4 +- **УДАЛЕНО**: в заднеприводной схеме Mini-Z MR02/MR03 мотор → пиньон → спур дифференциала → колёса сидят прямо на оси дифференциала. Dogbones (приводные валы) нужны только для полноприводных шасси MA020/AWD. У нас задний привод — НЕ нужны. +- **Экономия**: 288₽ + +### 7. Дифференциал Mini-Z MR02/MR03 1/28 (стало поз.7 после удаления dogbones) +- **Что это**: металлический шаровой дифференциал заднего моста для Kyosho Mini-Z MR02/MR03 1/28. Со штатным спуром на оси (44T или 55T — зависит от партии). +- **Зачем нужно**: дифференциал задней ведущей оси. Пиньон на валу мотора 130 цепляется к родному спуру этого дифференциала. +- **URL**: https://www.ozon.ru/product/dlya-radioupravlyaemogo-avtomobilya-kyosho-mini-z-mr02-mr03-1-28-metallicheskiy-4630924484/ +- **Цена**: 1 014 руб | **Кол-во**: 1 +- **⚠️ КРИТИЧНО — МОДУЛЬ СПУРА**: Kyosho Mini-Z MR-02/03 **оригинал** использует модуль **M0.4** (не M0.3, не M0.5). Карточка Ozon на китайские копии (PN 743018877-18829, страна КНР) **НЕ указывает модуль** — характеристики вручную проверять не получится. + - **При получении дифференциала**: измерить штангенциркулем расстояние между зубьями спура или сравнить с эталонным пиньоном. + - **Если модуль M0.4** (стандарт) — заказать пиньон **M0.4** (см. Ali секцию). + - **Если модуль другой** (копия с M0.3 или M0.5) — скорректировать заказ пиньона. + - **Безопасный запас**: на AliExpress можно заказать набор пиньонов (M0.4 7T/8T/9T/10T + M0.5 7T/8T/9T/10T) ~400₽ — перекроет любой вариант. + +### 8. ~~Пигтейл U.FL/IPEX (для самодельной антенны-диполя)~~ — УДАЛЕНО v5 +- **УДАЛЕНО**: пигтейл U.FL→N-Male (для сотовых модемов) — RG178 толстый и жёсткий для масштаба 1/27, плюс на FPV камерах AIO редко бывает U.FL (чаще MHF4 или антенна припаяна намертво). +- **Что делаем с антенной**: + - Если на камере AIO идёт штатная антенна-«клевер» — **откусить её кусачками у основания**, снять **12.3-12.5мм** внешней оплётки (с учётом коэффициента укорочения в изоляции) и оголить центральную жилу = готовый лёгкий диполь (~0.1г). Бесплатно. **Линейкой по сантиметру — точность критична на 5.8ГГц.** + - Если антенна уже диполь (медный хвостик) — оставить как есть. + +**ИТОГО Ozon v19: 3 064 руб** (было 4 364₽ в v18, −1 300₽ — мотор ушёл на AliExpress K989-06) +**Доп. расходники (в день 1): POSCAP 470мкФ×10V Low ESR (~50₽) + каптоновый скотч (~250₽)** — обязательно. + +--- + +## WILDBERRIES (3-7 дней) - параллельно с Ozon + +### 1a. ~~686ZZ 6x10x3 подшипник 10шт~~ — УДАЛЕНО v19 +- **УДАЛЕНО v19**: ширина 3мм НЕ совместима с диффом Mini-Z (посадочные места 2.5мм). Задние подшипники теперь **только с AliExpress** (SMR106 6×10×2.5, см. секцию Ali). +- **Экономия**: 280₽. + +### 1b. 673ZZ 3x6x2.5 подшипник 10шт (STARTEC) — ПЕРЕДНИЕ +- **Что это**: подшипники 673ZZ (Ø3мм внутренний × Ø6мм внешний × 2.5мм ширина). Производство STARTEC. 10 штук в упаковке. +- **Зачем нужно**: **передняя ось Mini-Z = Ø3мм**. Старые 684ZZ (Ø4мм × Ø9мм) были слишком большие для колеса Ø25мм — стенки пластика получались тонкие и хрупкие. +- **URL**: https://www.wildberries.ru/catalog/328022257/detail.aspx +- **Цена**: 280 руб | **Кол-во**: 1 (пачка 10шт) + +### 2. 5.8G 40CH 800TVL FPV Камера AIO (встроенная) +- **Что это**: компактный AIO модуль: камера 800TVL + VTX 5.8ГГц 40 каналов, 25мВт. +- **Зачем нужно**: машинка передаёт видео на VRX / USB-ресивер. +- **URL**: https://www.wildberries.ru/catalog/761500929/detail.aspx +- **Цена**: 1 997 руб | **Кол-во**: 1 +- **⚠️ ПИТАНИЕ — СТРОГО ОТ BEC 5V (исправление v13)**: камера питается от 3.3-5V. + - ❌ **НЕЛЬЗЯ** питать от пина **3V3 ESP32-S3-Zero** — это сожжёт плату: встроенный LDO Waveshare рассчитан на 300-400мА, ESP32-S3 сам ест до 350мА в пиках Wi-Fi, плюс камера 200-300мА — LDO уйдёт в тепловой перегрев или даст просадку → ESP32 будет постоянно перезагружаться. + - ✅ **ПОДКЛЮЧАТЬ ТОЛЬКО К BEC 5V** (красный провод BEC от ESC). + - Для подавления полос от мотора — **параллельно питанию камеры (или на сам BEC) припаять POSCAP 470мкФ×10V** (см. расходники). Без конденсатора на видео будут горизонтальные полосы от наводок BEC. + - ❌ **НЕ к батарее 2S напрямую — сгорит!** + +### 3. Набор винтов M2-M3 для RC (под шестигранник) +- **Что это**: набор RC-винтов с шестигранным шлицем, разные длины M2 (4/6/8/10мм), M2.5, M3. Сталь, чёрные. +- **Зачем нужно**: крепёж машинки. M3 для Mini-Z избыточен, основной размер — M2 (4-10мм). Покупается один раз на все 4 машины. +- **URL**: https://www.wildberries.ru/catalog/1015102683/detail.aspx +- **Цена**: ~200 руб | **Кол-во**: 1 (набор) + +**ИТОГО WB v19: 2 477 руб** (было 2 757 в v18, −280₽ — 686ZZ удалены) + +--- + +## РАСХОДНЫЕ И ИНСТРУМЕНТЫ (Ozon + рынок) + +> Заказываются ОДНОКРАТНО на весь проект (4 машины), кроме TPU 85A (расходный). + +### 9. TPU 85A катушка 200г чёрный (для шин) +- **Что это**: гибкий филамент TPU 85A, чёрный, 1.75мм, 200г катушка. +- **Зачем нужно**: печать шин колёс (4 шины ~10г на 1 машину = 40г на 4 машины, плюс отходы — 200г с запасом). +- **URL**: https://www.ozon.ru/product/tpu-85a-gibkiy-katushki-chern-filament-prutok-material-tpu-85a-dlya-fdm-3d-printerov-diametr-1-75-2351511815/ +- **Цена**: ~700₽ | **Кол-во**: 1 катушка (хватит на 4 машины) +- **⚠️ СУШКА ОБЯЗАТЕЛЬНА**: 60°C × 4 часа в сушилке перед печатью (TPU гигроскопичен) + +### 10. Силиконовый провод 30AWG (навесной монтаж) +- **Что это**: набор 5 цветов силиконового многожильного провода 30AWG (Ø0.05мм²), лужёная медь, по 20м каждого цвета (итого 100м). +- **Зачем нужно**: навесной монтаж ESP32 → ESC / серва / MPU без разъёмов Dupont (экономия высоты под кузовом F1). +- **URL**: https://www.ozon.ru/product/nabor-silikonovyh-mnogozhilnyh-provodov-30awg-luzhenaya-med-5-tsvetov-po-20-metrov-1705172047/ +- **Цена**: ~400₽ | **Кол-во**: 1 набор (хватит на 100 точек пайки) + +### 11. Каптоновый скотч (термостойкий) 10мм × 30м +- **Что это**: полиимидная лента 10мм × 30м, термостойкая до 300°C, для изоляции электроники. +- **Зачем нужно**: изоляция бутерброда ESP32+ESC+MPU (плата на плате) — иначе КЗ сожжёт ESP32. Также для изоляции при пайке. +- **URL**: https://www.ozon.ru/product/termoskotch-kaptonovyy-koptan-10mm-h-30m-termostoykaya-poliimidnaya-lenta-dlya-payki-3d-2001861863/ +- **Цена**: ~250₽ | **Кол-во**: 1 рулон (хватит на 4 машины) + +### 12. Двухсторонний скотч 3M VHB (опционально) +- **Что это**: тонкий (0.1мм) двусторонний скотч для фиксации плат на деке. +- **URL**: любой Fix Price / Ozon по запросу «двухсторонний скотч 3M 0.1мм» +- **Цена**: ~150₽ | **Кол-во**: 1 + +**ИТОГО расходные: ~1 350₽ (TPU 700 + силикон 400 + каптон 250)** — масло 30WT УБРАНО v13 (−150₽), двухсторонний скотч 3M VHB перенесён в доп. расходники. + +### 13. ~~Силиконовое масло 30WT (100мл)~~ — УДАЛЕНО v13 +- **УДАЛЕНО**: для MVP амортизаторы печатные («пластик по пластику», без уплотнений). Масло вытечет за первые 5 минут. Покупать только если позже поставим готовые металлические PN Racing PN-SHK-30 (~500₽/4шт с Ali). +- **Экономия**: 150₽. + +--- + +## ALIEXPRESS (14-30 дней) - последним + +> **Изменения v4**: колёса (TG Racing + FATJAY) УБРАНЫ — печатаем сами на P1S. Подробности в `hardware/print/parts_manifest.md`. + +### 1. Набор алюминиевых пиньонов Surpass Hobby 13T-26T для RC 1/24 1/28 — ВАЛ 2.0ММ v13 +- **Что это**: набор алюминиевых пиньонов Surpass Hobby, 13T/14T/15T/.../26T для RC машин 1/24 и 1/28 (Mini-Z размер). Размер модуля и вала — уточнять в SKU (стандартно M0.4 для Mini-Z, **вал 2.0мм** для оригинальных Mini-Z/PN Racing). +- **Зачем нужно**: страховка от того, что штатный спур дифференциала окажется не M0.4 (Kyosho стандарт), а M0.5 или M0.3. С набором покрываем оба варианта без дозаказа. +- **⚠️ ВЫБОР ЗУБЬЕВ** (после замера штангенциркулем модуля спура дифф): + - **8T (рекомендуется)** — передача 5.5:1 с 44T спуром. Машинка управляемая. + - **7T** — 6.3:1, медленнее. + - **10T** — 4.4:1, ОЧЕНЬ быстро. Ограничивать газ 40-50%. +- **URL**: https://aliexpress.ru/item/1005008647925876.html (Surpass Hobby 13T-26T алюминий) +- **⚠️ При выборе SKU в корзине (исправление v13)**: + - модуль **M0.4** (НЕ M0.5, НЕ M1!), + - посадка под вал **Ø2.0мм** (НЕ 1.5мм — это для круглых 130 WPL-формата, НЕ для Mini-Z flat-can). + - Если в наборе только M0.5 или вал 1.5мм — заказать отдельно пиньон M0.4 8T с посадкой 2.0мм (поиск «Mini-Z pinion M0.4 2.0mm shaft 8T»). +- **Цена**: ~250-400₽ | **Кол-во**: 1 набор (хватит на 4 машины) + +### 2. ~~Mini-Z flat-can мотор 130~~ — ПЕРЕНЕСЁН В OZON, удалён из AliExpress (v18) +- **УДАЛЁН v18**: мотор теперь в Ozon-секции (поз.2 — K989-06 1/28 flat-can, ~270₽ AliExpress `1005008837318984`). +- **⚠️ УДАЛЁН F130 FK-130 fallback** (v19): круглый мотор Ø20мм физически не влезает в F1 1/27 (полки задних колёс 22-24мм). Если K989-06 пропадёт — искать строго «Mini-Z brushed flat motor 130» или «WLtoys K989 K969 K979 motor». + +### 3. Металлический съёмник пиньонов AJRC — КОНКРЕТНЫЙ ТОВАР v12 +- **Что это**: металлический съёмник шестерён (pinion remover) для RC моторов, бренд AJRC. Подходит для валов 1.5-3.175мм. +- **Зачем нужно**: снять штатную латунную шестерню с вала мотора (если она есть на б/у PN Racing или WPL) — без съёмника вал 1.5мм гнётся или ротор мотора разбивается. +- **URL**: https://aliexpress.ru/item/1005009341739110.html +- **Цена**: ~150-250₽ | **Кол-во**: 1 (на все 4 машины хватит) + +### 4. Запасные подшипники 6×10×2.5мм (MR106-ZZ) — ВОЗВРАЩЕНО v18, ПРОВЕРЕНО +- **Что это**: подшипники 6×10×2.5мм (внутренний Ø6мм × внешний Ø10мм × ширина 2.5мм). Оригинал Mini-Z MR02/03 использует **именно эту ширину, не 3мм**. +- **Зачем нужно (v18 ВОЗВРАЩЕНИЕ)**: **отмена v17**. Подшипники 686ZZ (3мм ширина) НЕ совместимы с диффом Mini-Z — фиксированные посадочные места 2.5мм. С 3мм: не затянется гайка дифференциала, спур сместится относительно пиньона → шестерни слижутся. Проставки 0.5мм в микро-масштабе НЕ катят. +- **URL (v18, проверен)**: https://aliexpress.ru/item/1005008747357017.html — **SMR106 ABEC3 6×10×2.5мм, нержавеющая сталь, открытые, 10шт** (Shanghai Lusheng Bearing Factory, бренд GCH). Рейтинг 5.0, доставка до 14 дней. +- **Цена**: ~322₽ за 10шт (с учётом скидки −10%) | **Кол-во**: 1 упаковка (10шт = хватит на 4 машины по 2шт + запас). +- **Ступицы колёс v4 (БЕЗ ИЗМЕНЕНИЙ)**: `wheel_hub_front.stl` и `wheel_hub_rear.stl` уже спроектированы под эти размеры. **Ничего масштабировать в слайсере не надо**. + +**ИТОГО AliExpress v18: 850-1300 руб** (пиньон-набор Surpass Hobby 250 + мотор K989-06 270 + съёмник 200 + SMR106 322). + +--- + +## ПЕЧАТЬ НА P1S (сами) - старт сегодня + +### ✅ Статус печати motor_mount.stl (v18) +**Печатаем v12** под flat-can Mini-Z мотор 15×12×12мм (K989-06 совместим). НИЧЕГО переделывать НЕ НАДО. + +### 1. Chassis deck (нижняя плита) - PETG — v7 С ОТВЕРСТИЯМИ +- **Файл**: stl/chassis_deck.stl | **Время**: 35 мин | **Вес**: 22г PETG +- **✅ v7**: дека содержит готовые отверстия под подшипники: + - **Задние (под SMR106 6×10×2.5мм)**: Ø10мм (наружный) — ось дифференциала Ø6мм проходит СКВОЗЬ. + - **Передние (под 673ZZ 3×6×2.5мм)**: Ø6мм (наружный) — ось колеса Ø3мм проходит СКВОЗЬ. + - **Вырез под Type-C** ESP32-S3-Zero (10×5×5мм) — для подключения USB-C кабеля без снятия кузова. +- **Сверлить вручную НЕ НУЖНО** — все отверстия уже в STL. + +### 2. ~~Electronics plate (вторая палуба)~~ — УДАЛЕНО v18 +- **УДАЛЕНО v18**: двухпалубная компоновка v14 не помещается в F1 1/27. Расчёт: дека 1.5 + батарея 12 + зазор 2 + ESC 5 + зазор 1 + ESP32 4 + MPU 4 = **~29.5мм** в зоне кокпита. Кузов F1 22-25мм — проломит кузов насквозь. **Электроника укладывается в ОДНУ плоскость по бокам от батареи в понтонах** (внутренняя ширина 22-24мм). + +### 3. ~~Body posts~~ — УДАЛЕНО v18 +- **УДАЛЕНО v18**: вторая палуба не используется → стойки не нужны. Кузов F1 крепится напрямую к деке (4 винта M2×6 по углам `chassis_deck.stl`). + +### 4. Front bumper / Rear bumper - TPU 95A | **Файлы**: stl/front_bumper.stl, stl/rear_bumper.stl | **Время**: 18 мин ×2 | **Вес**: 8г TPU каждый + +### 5. Shock towers (стойки амортизаторов) - PETG +- **Файлы**: stl/shock_tower_front.stl, stl/shock_tower_rear.stl | **Время**: 15 мин ×2 | **Вес**: 6г PETG каждый +- **⚠️ АМОРТИЗАТОРЫ**: shock_tower сделан без поршня и без резинового уплотнения — просто полая стойка. **Силиконовое масло 30WT НЕ нужно** — оно вытечет. + +### 6. Servo mount - PETG (ПЕРЕДЕЛАН v3 под AFRC D1802MG 20×8.5×16мм) +- **Файл**: stl/servo_mount.stl | **Время**: 8 мин | **Вес**: 3г + +### 7. Motor mount - PETG — v12 ПОД FLAT-CAN MINI-Z МОТОР, ВАЛ Ø2.0ММ (БЕЗ ИЗМЕНЕНИЙ v18) +- **Файл**: stl/motor_mount.stl | **Время**: 6 мин | **Вес**: 2г +- **v12 (БЕЗ ИЗМЕНЕНИЙ v18)**: motor_mount под **flat-can мотор 15×12×12мм** с 6 крепёжными отверстиями M1.6 на торцах + окно для выводов + **осевое отверстие Ø2.2мм** под вал Ø2.0мм + 2 отверстия M2 для крепления к деке. +- **Совместимость v18**: K989-06 (`AliExpress 1005008837318984`) — тот же flat-can класс 1/28. Размеры могут слегка отличаться — **перед печатью измерить мотор штангенциркулем** и подогнать motor_mount под реальные габариты (допуск ±1мм по длине/ширине). +- **Размеры коробки**: 18×15×15мм. + +### 8. Battery strap - TPU 95A | **Файл**: stl/battery_strap.stl | **Время**: 6 мин | **Вес**: 2г + +### 9. Wire clips - PETG, 4шт | **Файл**: stl/wire_clip.stl | **Время**: 8 мин | **Вес**: 1г + +### 10. FPV camera mount - PETG | **Файл**: stl/fpv_camera_mount.stl | **Время**: 10 мин | **Вес**: 3г + +### 11. Body shell (кузов, единая деталь) - PETG +- **Файл**: stl/body_shell.stl | **Время**: 100-120 мин | **Вес**: ~25г + +### 12. Wheel hub front (ступица) - PETG +- **Файл**: stl/wheel_hub_front.stl | **Время**: 15 мин ×2 | **Вес**: ~4г +- **v4 (БЕЗ ИЗМЕНЕНИЙ v18)**: ступица под **673ZZ Ø6мм × 2.5мм ширина** (с WB). + +### 13. Wheel hub rear (ступица) - PETG +- **Файл**: stl/wheel_hub_rear.stl | **Время**: 18 мин ×2 | **Вес**: ~6г +- **v18 ВНИМАНИЕ**: ступица спроектирована под 686ZZ 6×10×3мм. НО! Задние подшипники заменены на SMR106 6×10×2.5мм (v18). **Разница 0.5мм**. Ступица должна быть **проверена/подогнана под 2.5мм** — внутренний буртик ступицы может упереться в дифф. Перед печатью — замерить глубину посадки подшипника в ступице и при необходимости уменьшить буртик на 0.5мм. + +### 14. Tire front - TPU 85A | **Файл**: stl/tire_front.stl | **Время**: 22 мин ×2 | **Вес**: ~2.4г + +### 15. Tire rear - TPU 85A | **Файл**: stl/tire_rear.stl | **Время**: 35 мин ×2 | **Вес**: ~8г + +**Время печати всех деталей (v18)**: ~280 мин (~4.7 часа) — **минус electronics_plate и body_post** (-39 мин, -16г PETG). +**Расход PETG**: ~80г, **TPU 85A**: ~10г, **TPU 95A**: ~18г +**Стоимость филамента**: ~165₽ +**Доп. катушка TPU 85A**: ~700₽ (на 4 машины) +**Силиконовый провод 30AWG**: ~100₽ (для навесного монтажа ESP32→ESC/серва/MPU по бокам в понтонах) +**POSCAP / Low ESR 470мкФ×10V**: ~50₽ (ОБЯЗАТЕЛЬНО — гашение пульсаций BEC + защита от перезагрузок ESP32 + чистая картинка AIO камеры). +**Силиконовое масло 30WT**: УБРАНО из MVP v13. + +**ИТОГО печать + электрика: 1 015₽** (165₽ PETG/TPU + 700₽ TPU 85A катушка + 100₽ силикон 30AWG + 50₽ POSCAP) + +### 📐 КОМПОНОВКА v18 — ПЛОСКИЙ «ПИРОГ» (одна дека) +- **Слой 1 (дека, Y=0..1.5мм)**: шасси с отверстиями под подшипники, крепления мотора/серво/батареи/буферов. +- **Слой 2 (электроника, Y=1.5..6мм)**: ESP32-S3-Zero 21×17.5мм + Micro ESC 20×10мм + MPU-6050 15×10мм — **по бокам от батареи** (в понтонах кузова, X=±9..11мм). Навесной монтаж силиконом 30AWG. Между платами — каптоновая изоляция. +- **Слой 3 (батарея, Y=6..18мм по центру)**: Tattu 300мАч 55×20×12мм **ВДОЛЬ оси** в центре X=0, зафиксирована `battery_strap.stl`. Соединительные провода выведены по бокам через прорези в деке к ESC. +- **Слой 4 (кузов, Y=18..40мм)**: `body_shell.stl` надевается сверху, крепится 4 винтами M2×6 к деке. +- **Высота стопки**: дека 1.5 + электроника 4-6 + батарея 12 = **~18-20мм** в зоне кокпита. Кузов F1 22-25мм — закроется с зазором. + +--- + +## СВОДКА MVP (1 машина, v19 — финал, плоский пирог + flat-can, без круглых моторов) + +| Категория | Сумма v19 | Сумма v16 | Срок | +|---|---|---|---| +| Ozon (6 позиций: ESP32-S3-Zero, Micro ESC, MPU, **батарея Tattu 300мАч PH2.0 — ВДОЛЬ оси**, серво AFRC D1802MG 17.6мм, дифф — **dogbones УБРАНЫ**, **пигтейл УБРАН**. **Мотор K989-06 УБРАН в v18** — перенесён на Ali) | **3 064 руб** | 4 364 руб | 3-7 дней | +| Wildberries (3 позиции v19: ~~686ZZ УДАЛЕНЫ~~, **673ZZ**, AIO камера+VTX, **набор M2-M3**) | **2 477 руб** | 2 757 руб | 3-7 дней | +| AliExpress (3 позиции v19: пиньон набор **M0.4 + Ø2.0мм вал** (Surpass Hobby), **мотор K989-06 flat-can 1/28** (270₽) — **вместо F130 FK-130**, **SMR106 6×10×2.5мм** (322₽) — **вместо 686ZZ 3мм**, съёмник пиньонов) | **1 100-1 500 руб** | 2 050 руб | 14-30 дней | +| Печать P1S (14 STL v19, **ОДНА дека** — `electronics_plate.stl` и `body_post.stl` УДАЛЕНЫ, **motor_mount v12** под flat-can, **wheel_hub_rear.stl** подгоняется под 2.5мм) | 165 руб | 225 руб | сегодня | +| TPU 85A катушка (700₽ / 4 машины = 175₽/машину) | 175 руб | 175 руб | 1 раз | +| Силиконовый провод 30AWG (навесной монтаж по бокам в понтонах) | 100 руб | 100 руб | рынок | +| **POSCAP 470мкФ×10V Low ESR** (питание камеры и буфер BEC) | 50 руб | 50 руб | рынок/Ozon | +| ~~Силиконовое масло 30WT~~ | ~~150 руб~~ | ~~150 руб~~ | **УБРАНО v13** | +| **ИТОГО 1 машина** | **~7 131 руб** | **9 721 руб** | - | +| **Экономия v19 vs v16** | **~2 590₽** | - | - | + +**MVP будет ездить и поворачивать** (мотор + серво включены)! v19 дешевле v16 за счёт: K989-06 на Ali (~270₽ вместо IW02 4341₽), удаления 686ZZ с WB, убранных electronics_plate/body_post в печати, отсутствия долгих РФ-аналогов. + +--- + +## Что пропущено и почему + +| Позиция | Почему | Статус | +|---|---|---| +| ~~Brushless мотор RC0820~~ | Коллекторный 130 проще | При апгрейде | +| ~~Кузов Kyosho готовый~~ | Печатаем сами | УБРАНО | +| VRX ProDVR на PC | Для MVP не нужен | Позже | +| ~~Мотор 370 / ESC 35A BL~~ | 130 + Micro Brushed ESC | УБРАНО | +| ~~Dogbones (держатель вала)~~ | В заднем приводе Mini-Z не нужны | **УБРАНО v4** | +| ~~Подшипники 684ZZ / 693ZZ~~ | Заменены на 673ZZ/686ZZ под Mini-Z MR02/MR03 | **ЗАМЕНЕНЫ v4** | +| ~~Винты M3x14~~ | Избыточны для Mini-Z | **ЗАМЕНЕНЫ v4 на набор M2-M3** | +| ~~Набор шестерен пиньон+спур~~ | Спур уже на дифференциале | УБРАНО v3 | +| ~~RUSHFPV Cherry 2 антенна~~ | Опрокидывает машинку | УБРАНО v3, диполь DIY | + +--- + +## ПЛАН ДЕЙСТВИЙ + +### День 1 (сегодня) +1. Заказать **Ozon** (4 364 руб) - 7 позиций (**без пигтейла** — УБРАН в v5, антенна = штатный диполь камеры) +2. Заказать **Wildberries** (2 757 руб) - 4 позиции +3. Заказать **AliExpress** (350-400 руб) - 1 позиция (пиньон **M0.4** + посадка **Ø2.0мм** под вал Mini-Z, исправлено в v14). **ОПЦИОНАЛЬНО** сразу докинуть **подшипники 6×10×2.5мм (MR106-ZZ) ~200₽** — на случай если дифф под 2.5мм (см. замечание 5 v14). +4. Заказать **TPU 85A катушку** (~700₽) + **съёмник пиньонов** (~200₽) + **силикон 30AWG** (~100₽) + **POSCAP 470мкФ×10V Low ESR** (НЕ 6.3V — слишком мало запаса, см. v13 ниже) + **каптоновый скотч + двухсторонний** (~100₽) +5. Начать **печать** 15 STL на P1S (5.7 часа) — **`chassis_deck.stl` v7 содержит готовые отверстия** под подшипники (Ø10 + Ø6) и вырез под Type-C ESP32 — **НЕ сверлить вручную!** + +### День 2-5 +- Завершить печать всех STL +- **Сверлить НИЧЕГО НЕ НАДО** — `chassis_deck.stl` v7 уже содержит готовые отверстия (Ø10 + Ø6) и вырез под Type-C +- Проверить посадку подшипников в ступицы и в готовые отверстия деки, примерить крепёж + +### День 5-7 (приехали РФ: Ozon + WB) +- Получить ESP32-S3-Zero, мотор 130, Micro ESC, MPU, батарея, серво, дифференциал, AIO камера+VTX +- **Навесной монтаж силиконом 30AWG**: ESP32 → ESC/серва/MPU (без разъёмов, плашмя, экономия 7мм высоты) +- **Снять шестерню с вала мотора** съёмником пиньонов +- **Частичная сборка** без пиньона (всё кроме drivetrain): установить мотор в motor_mount, ESC+ESP32+MPU бутербродом с изоляцией каптоном, серву в servo_mount, батарею в battery_strap, камеру на кузов +- Прошивка ESP32-S3-Zero (можно без мотора — проверить Wi-Fi и IMU) +- Калибровка серво (LEDC 50Гц, 1000-2000мкс) +- Установка FPV камеры и антенны (штатный диполь) +- **Проверка всех потребителей** (ESP32 в пиках Wi-Fi не уходит в bootloop благодаря конденсатору Low ESR) + +### День 21-30 (приехал AliExpress — пиньон M0.4) +- **Измерить штангенциркулем модуль штатного спура** на дифференциале (должен быть M0.4) +- Установить пиньон M0.4 на вал мотора (после снятия штатной шестерни) +- Спарить пиньон со спуром дифференциала — **первое включение, проверить вращение** +- **ПЕРВЫЙ ТЕСТ-ДРАЙВ** (реалистично — на 21-30 день, не раньше!) +- Если всё ок — дозаказать компоненты для машин 2-4 + +> **⚠️ ВАЖНО про тайминги**: тест-драйв НЕ возможен на День 7-10, потому что **пиньон с AliExpress — единственная деталь drivetrain — приедет только на День 21-30**. Без пиньона мотор крутится вхолостую, колёса не вращаются. Если хотите тест-драйв раньше (День 7-10), поищите пиньон Mini-Z M0.4 8T на Avito или в RC-магазинах (но это ненадёжно). + +--- + +## После теста MVP (если всё ок) + +**Дозаказ на оставшиеся 3 машины (×3):** + +| Позиция | Сумма x3 | +|---|---| +| ESP32-S3-Zero Ozon | 1 950 | +| **Mini-Z flat-can мотор AliExpress (3 шт) — ЗАМЕНА** | 4 500 | +| Micro Brushed ESC 20A Ozon | 1 050 | +| MPU-6050 Ozon | 750 | +| Tattu 2S 300мАч PH2.0 Ozon | 1 350 | +| Серво AFRC D1802MG 5г Ozon | 1 350 | +| ~~Dogbones~~ | УБРАНО | +| Дифференциал Mini-Z MR02/MR03 Ozon | 3 042 | +| AIO камера+VTX WB | 5 991 | +| 686ZZ задние WB (2 пачки) | 560 | +| 673ZZ передние WB (2 пачки) | 560 | +| Набор винтов M2-M3 RC WB | 0 (1 набора на 4 машины хватит) | +| Колёса — печатаем сами (PETG+TPU) | 0 | +| Пиньон набор M0.4+M0.5 AliExpress (0 — один набор на 4 машины) | 0 | +| **Итого дозаказ x3** | **21 103** | + +**ИТОГО 4 машины (MVP + 3): 9 456 + 25 103 + 175 (остаток TPU 85A) = 34 734 руб** + +--- + +## Готов к заказу (v19) + +**Всего потратится**: **~7 131 руб на MVP** (Ozon 3 064₽ + WB 2 477₽ + Ali 1 100-1 500₽ + печать/расходники 490₽) +**Время до готовности**: 7-10 дней (РФ) + 14-30 дней (пиньон и SMR106 с Ali) — **тест-драйв возможен только после прихода AliExpress**. + +### Перед заказом — обязательно сделать +1. **`servo_mount.stl` v6** (24.3×14.5×20.6мм) — **уже переделан в v6** ✅ под РЕАЛЬНЫЕ 21.3×11.5×17.6мм AFRC D1802MG (MG-версия с металлической шестерней). Не путать с пластиковой 20×8.5×16! +2. **`wheel_hub_front.stl`** под передний подшипник **673ZZ Ø6мм** — **уже сделано в v4** ✅. + **`wheel_hub_rear.stl`** — **ОБЯЗАТЕЛЬНО ПЕРЕДЕЛАТЬ v19**: раньше была под 686ZZ Ø10×3мм, теперь под **SMR106 Ø10×2.5мм** (на 0.5мм тоньше). Уменьшить глубину посадочного буртика на 0.5мм, чтобы ступица села на дифф без натяга и не упёрлась в подшипник. +3. **`motor_mount.stl` v12** (18×15×15мм) — **уже переделан в v12** ✅ под **Mini-Z flat-can мотор 15×12×12мм** с **осевым отверстием Ø2.2мм** под вал Ø2.0мм (НЕ под круглый Ø20мм — это была ошибка v10, и НЕ Ø1.7мм — это была ошибка v11!). Проверить что мотор входит плотно, но без люфта. +4. **Перед пайкой MPU-6050** — выпаять комплектные пины, припаять тонкие силиконовые провода 30AWG напрямую к ESP32-S3-Zero плашмя (экономия 7мм высоты). +5. **Все соединения — навесной монтаж силиконом 30AWG**, без разъёмов Dupont/пинов — иначе обтекатель F1 не закроется. +6. **Изолировать платы друг от друга каптоновым скотчем** (термостойкий, ~50мкм) или тонким двусторонним скотчем — иначе закоротит элементы поверхностного монтажа на ESP32-Zero / MPU-6050. +7. **Припаять конденсатор POSCAP 470мкФ×10V Low ESR** (исправление v13: было 6.3V — слишком мало запаса по вольтажу) на линии 5V и GND параллельно питанию (от BEC ESC). **ОБЯЗАТЕЛЬНО** — ESP32 в пиках Wi-Fi берёт 350-400мА, серва под нагрузкой 300-400мА, камера 200-300мА — итого впритык к лимиту BEC 1A. Без конденсатора будут перезагрузки ESP32 при резком рулении. + - **Тип**: **Low ESR электролит 470мкФ×10V** (Ø6.3×8мм или Ø8×10мм) — **ПРИОРИТЕТ**, или **POSCAP 6Tpb470m 10V** (полимерный танталовый, если найдётся). + - ⚠️ **НЕ 6.3V** — танталовые/POSCAP очень не любят работу на пределе вольтажа. При торможении мотора BEC даёт скачки, 6.3V POSCAP может пробить. + - ⚠️ **НЕ обычный бочонок** (>12мм) — слишком высокий для корки F1. + - ⚠️ **Полярность**: длинная ножка = «+» (5V), короткая = «−» (GND). **Перепутать = взрыв.** + - **Позиционирование**: положить **НАБОК** вдоль деки (не вертикально) — экономит 5мм высоты. + - **Где взять**: Ozon поиск «470мкФ 10В Low ESR» (Ø6.3×8мм ~50₽) или «POSCAP 470мкФ 10В». Искать **Low ESR** в названии — обычные электролиты не подходят для гашения пульсаций BEC. +8. **Cutout в `chassis_deck.stl` под Type-C разъём ESP32-S3-Zero** — он торчит наружу примерно на 6мм в длину и 3мм в высоту. Без выреза невозможно подключить USB-C для прошивки. **v7 уже имеет вырез под Type-C** ✅. **`electronics_plate.stl` НЕ ПЕЧАТАЕТСЯ** (отменён v18 — плоский пирог). +9. **Насверлить отверстия в chassis_deck.stl** под подшипники: + - ✅ **УЖЕ СДЕЛАНО в v7** — `chassis_deck.stl` теперь содержит готовые отверстия (Ø10мм задние + Ø6мм передние) и вырез под Type-C ESP32-S3-Zero. **НЕ сверлить вручную** (риск ухода сверла и разрыва тонкой деки). +10. **При заказе мотора 130** — проверить фото/отзывы на наличие напрессованной шестерни на валу; докупить съёмник пиньонов (~200₽). +11. **При выборе пиньона M0.4** — **предпочтительно 7T или 8T** (не 10T!) — с мотором 130 на 2S и спуром 44T передача 4.4-6.3:1 даёт ОЧЕНЬ быструю машинку. 7T-8T = медленнее, управляемее. Если берёте 10T — обязательно ограничить газ до 40-50% в прошивке. **Посадка на вал — Ø2.0мм (НЕ 1.5мм — это для круглых 130 WPL)**. +12. **ESC и его термоусадка**: очистить ESC от штатных толстых проводов (припаять тонкий силикон 30AWG). **НЕ приклеивать ESC напрямую к ESP32-S3-Zero** (исправление v14): коллекторный ESC 20A под нагрузкой от 2S LiPo ощутимо греется, ESP32 при Wi-Fi тоже тёплый. Между ними — **пластинка текстолита или плотного PETG (1мм)** для воздушного зазора. Каптон сверху + зазор 1мм сбоку = охлаждение феттов ESC. +13. **Камеру AIO устанавливать НА КОРПУС** (место шлема гонщика), а НЕ внутри — внутри кокпита пройдут только 2 провода питания. +14. **Первые тесты — ограничить газ (Dual Rates) в прошивке ESP32 до 40-50%**. Мотор 130 на 7.4V — очень быстрый, машинка может «беситься». +15. **Антенна**: если на AIO камере стоит штатная антенна-«клевер» — откусить её у основания, снять **12.3-12.5мм** внешней оплётки (с учётом коэффициента укорочения в изоляции, точность ±0.5мм — на 5.8ГГц это критично для дальности), оголить жилу = готовый диполь. Пигтейл НЕ нужен. +16. **Камера на кузове — сделать прочный «ложемент»** в body_shell.stl (или напечатать отдельно как опору). При переворотах машинки камера будет принимать удар на себя — без опоры вырвутся дорожки. +17. **Вал мотора 130 может быть длиннее, чем нужно** — укорачивать **дремелем с отрезным кругом** (НЕ ножовкой — вибрация повредит щётки). Зажимать вал в тиски через деревянную проставку (не металлическую — помнёт). **Обмотать мотор скотчем вокруг вентиляционных отверстий** — чтобы металлическая стружка не налипла на магниты внутри мотора. +18. **ШИМ пин ESP32-S3-Zero для сервы**: подключать сигнальный провод сервы к пину, **поддерживающему аппаратный LEDC** (GPIO 1-18 на ESP32-S3 — все подходят для LEDC). НЕ использовать GPIO 35-48 (только вход). Рекомендуемые: GPIO 2, 4, 5, 6, 7, 15, 16, 17, 18. +19. **Батарея Tattu 2S 300мАч — размещать ВДОЛЬ центральной оси** (длинной стороной по Y, 55мм от носа к корме), по центру X=0. **НЕ поперёк** (поперёк 55мм = торчит за пределы кузова, как крылья — внутренняя ширина понтонов F1 всего 22-24мм, колея 58мм). **Электроника — плашмя по бокам от батареи в понтонах** (v18 плоский пирог): ESP32-S3-Zero 21×17.5мм с одной стороны, Micro ESC 20×10мм + MPU-6050 с другой. Навесной монтаж силиконом 30AWG. **`electronics_plate.stl` НЕ ПЕЧАТАЕМ**, **`body_post.stl` НЕ НУЖНЫ** — кузов крепится 4 винтами M2×6 прямо к деке. Высота стопки: дека 1.5 + платы 4-6 + батарея 12 = **~18-20мм**, кузов F1 22-25мм закрывается с зазором. +20. **Каптоновый скотч и двухсторонний скотч** — купить заранее (~100₽ на Ozon). Каптон нужен для изоляции между платами ESP32/ESC/MPU, лежащими в **одной плоскости** (v18 плоский пирог). Без каптона малейшее замыкание дорожек об элементы соседней платы сожжёт ESP32. +21. **МОДУЛЬ СПУРА — ОБЯЗАТЕЛЬНО ПРОВЕРИТЬ ПРИ ПОЛУЧЕНИИ ДИФФЕРЕНЦИАЛА**: штангенциркулем измерить расстояние между зубьями штатного спура. Kyosho MR02/03 = M0.4 (шаг 1.27мм). Если другой — заказать пиньон соответствующего модуля. +22. **ШИРИНА ПОДШИПНИКОВ — УЖЕ РЕШЕНО v19**: задние подшипники только **SMR106 6×10×2.5мм** с AliExpress (`1005008747357017`). WB 686ZZ 3мм УДАЛЕНЫ из корзины (v19). Передние 673ZZ 3×6×2.5мм с WB — остаются. +23. **МОТОР — WLtoys K989-06 flat-can 1/28** (`AliExpress 1005008837318984`): проверить что заказанный мотор в форм-факторе **flat-can 15×12×12мм** (плоский Mini-Z размер), а НЕ круглый Ø20мм. **Вал должен быть Ø2.0мм**. Если пришёл круглый — **возвращать**, не пытаться впихнуть в F1 1/27 (круглый мотор физически не влезает между задними колёсами F1 — ширина полок 22-24мм меньше Ø20мм + моторама). + +Что-то изменить или погнали заказывать? diff --git a/hardware/PLAN.md b/hardware/PLAN.md new file mode 100644 index 0000000..fd78572 --- /dev/null +++ b/hardware/PLAN.md @@ -0,0 +1,328 @@ +# 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 под нагрузкой греется, нужен + радиатор + вентилятор. Уточнить, что уже стоит на твоей плате. diff --git a/hardware/SHOPPING_LIST.md b/hardware/SHOPPING_LIST.md new file mode 100644 index 0000000..9eecfaf --- /dev/null +++ b/hardware/SHOPPING_LIST.md @@ -0,0 +1,195 @@ +# Shopping List — финальные лоты на РФ-маркетплейсах + +Дата: 2026-06-20. Принцип: **сначала дешевле, потом быстрее**. +- **Ozon / Wildberries** = дешевле + быстро (3-7 дней, без доставки из-за рубежа) +- **AliExpress** = база дешевле, но долго ждать (14-30 дней) +- Везде где есть рабочая РФ-альтернатива — берём её. + +> **Легенда**: +> - ✅ — проверенный конкретный лот (можно открывать и покупать) +> - ⚠️ — нужна проверка совместимости (форма/размер) + +--- + +## 🇷🇺 Ozon (3-7 дней, РФ-склад) + +### Агент (Wi-Fi / IMU) + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | ESP32-S3-DevKitC-1 N16R8 + U.FL антенна | https://www.ozon.ru/product/otladochnaya-plata-esp32-s3-devkitc-1-n16r8-c-razemom-u-fl-ipex-ipx-dlya-antenny-wi-fi-bluetooth-usb-3538324782/ | 750₽ | +| ✅ | ESP32-S3-DevKitC-1 N16R8 без U.FL | https://www.ozon.ru/product/otladochnaya-plata-esp32-s3-devkitc-1-n16r8-wi-fi-bluetooth-usb-c-dlya-arduino-esp-idf-micropython-3538005705/ | 650₽ | +| ✅ | MPU-6050 GY-521 модуль | https://www.ozon.ru/product/modul-giroskop-akselerometr-gy-521-mpu-6050-dlya-arduino-3-5v-2708696254/ | 250₽ | +| ✅ | Mini-360 DC-DC buck 5V | https://www.ozon.ru/search/?text=Mini-360+DC-DC | 100₽ | + +### Силовая электроника + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | ESC 35A 2S бесколлекторный | https://www.ozon.ru/product/rc-vstroennyy-besshchetochnyy-esc-plastikovyy-35a-2s-rc-besshchetochnyy-esc-portativnyy-1613966780/ | 600₽ | +| ✅ | GNB 350mAh 2S 60C XT30 | https://www.ozon.ru/product/akkumulyator-li-po-gaoneng-gnb-350mah-2s1p-7-4v-60c-12x20-5x45mm-xt30-1683332482/ | 1100₽ | + +### Mini-Z RC-механика (Kyosho Mini-Z совместимая) + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | **Металлический держатель приводного вала Kyosho MINI-Z** (PN Racing-совместимые dogbones) | https://www.ozon.ru/product/metallicheskiy-derzhatel-tsentralnogo-privodnogo-vala-dlya-kyosho-mini-z-serebristyy-3571927994/ | **144₽** | +| ✅ | **Металлический шаровой дифференциал Mini-Z MR02/MR03 1/28** | https://www.ozon.ru/product/dlya-radioupravlyaemogo-avtomobilya-kyosho-mini-z-mr02-mr03-1-28-metallicheskiy-4630924484/ | **1014₽** (было 4350₽, -77%) | +| ✅ | 1 пара CVD карданов для Kyosho Mini-Z Buggy | https://www.ozon.ru/product/1-para-metallicheskih-kardannyh-valov-cvd-dlya-radioupravlyaemoy-mashinki-kyosho-mini-z-buggy-dlya-4242972575/ | 502₽ | +| ✅ | Металлический передний рулевой стакан KYOSHO MINI-Z MR-04 EVO2 | https://www.ozon.ru/product/stakan-peredney-podveski-napravlyayushchaya-tyagi-iz-metalla-dlya-kyosho-mini-z-mr-04-evo-3595331188/ | 2351₽ | +| ✅ | 4 шт 25мм покрышки для RC Wltoys K969 K989 Mini-Z 1/28 | https://www.ozon.ru/product/4-sht-rezinovye-shiny-kolesa-dlya-k969-k989-p929-iw04m-iw02-mini-z-mini-d-mini-q-1-28-rc-drift-4589717464/ | 358₽ за 4шт | +| ✅ | LED фары для Kyosho Mini-Z | https://www.ozon.ru/product/radioupravlyaemye-avtomobilnye-svetodiodnye-fary-i-zadnie-fonari-dlya-kyosho-mini-3558036031/ | 243₽ | +| ✅ | **Гироскоп DasMikro для Kyosho MINI-Z** (бонус) | https://www.ozon.ru/product/dlya-radioupravlyaemogo-avtomobilya-kyosho-mini-z-mr02-mr03-1-28-metallicheskiy-4630924484/ | 1796₽ | + +### Кузов + +| | Лот | URL | Цена | В MVP? | +|---|---|---|---|---| +| ⚠️ | **Кузов RC для KYOSHO 1/24 Mini Z, база 3.86"** (готовый) | https://www.ozon.ru/product/kuzov-dlya-rc-avtomobilya-legko-ustanavlivaetsya-baza-3-86-3844900225/ | **1385₽** | ❌ НЕТ — в MVP печатаем свой PETG (25₽ филамента) | +| ⚠️ | Оси кузова для KYOSHO 1/24 MINI Z | https://www.ozon.ru/search/?text=osi+kuzova+kyosho+1+24+mini+z | 1796₽ | ❌ НЕТ — не нужно для PETG-кузова | + +--- + +## 🇷🇺 Wildberries (3-7 дней, РФ-склад) + +### Подшипники + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | 684ZZ 4×9×4 10шт Россия 6ГПЗ | https://www.wildberries.ru/catalog/621489947/detail.aspx | 280₽ | +| ✅ | 684ZZ 4×9×4 10шт NSK Япония | https://www.wildberries.ru/catalog/480065394/detail.aspx | 150₽/шт | +| ✅ | 684ZZ 4×9×4 2шт STARTEC | https://www.wildberries.ru/catalog/328493233/detail.aspx | 100₽ | + +### FPV (камера+VTX) + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | **5.8G 40CH 800TVL Передатчик VTX FPV Камера Встроенная Камера** (AIO) | https://www.wildberries.ru/catalog/761500929/detail.aspx | **1997₽** | +| ✅ | RC Micro Камера AIO 5.8G 25MW 40CH 800TVL Передатчик LST-S4+ | https://www.wildberries.ru/catalog/1099134110/detail.aspx | 1900₽ | +| ✅ | RC Micro Камера AIO 5.8G 25MW 40CH 800TVL | https://www.wildberries.ru/catalog/1138949454/detail.aspx | 2100₽ | +| ✅ | RC Micro AIO FPV Камера-Передатчик 5.8G 25 мВт 40CH 800TVL | https://www.wildberries.ru/catalog/1107883965/detail.aspx | 1900₽ | +| ✅ | RC Микро камера AIO 5 8G 25MW 40CH 800TVL | https://www.wildberries.ru/catalog/778948223/detail.aspx | 1850₽ | +| ✅ | Мини камера FPV AIO 5.8G 25mw 40ch 800tvl передатчик LST-S2+ | https://www.wildberries.ru/catalog/783585466/detail.aspx | 1750₽ | +| ✅ | JHEMCU VTX 5.8G VTX30-800 800мВт для FPV | https://www.wildberries.ru/catalog/0/search.aspx?search=tx01s+25mw+vtx+5.8 | 2844₽ | + +### Mini-Z колёса (бонус) + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | 4 шт покрышки K969 K989 25мм для Mini-Z 1/28 (дрифт) | https://www.wildberries.ru/catalog/0/search.aspx?search=mini+z+drift+wheel+25mm | 625₽ за 4шт | + +### Бонусы (Mini-Z тюнинг) + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | **AFRC GYS-2 V4 3-AXIS Racing Gyro Drift Car Stabilizer** | https://www.wildberries.ru/catalog/0/search.aspx?search=AFRC+GYS-2+V4+3-AXIS | **2431₽** | +| ✅ | LED фары для Kyosho Mini-Z | https://www.wildberries.ru/catalog/0/search.aspx?search=mini+z+wheel | 326-360₽ | + +--- + +## 🇨🇳 AliExpress (14-30 дней, КН-склад) + +### RC-механика + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | **TG Racing Металлические колёса для MINI-Z (2шт)** | https://aliexpress.ru/item/1005006750354292.html | ~$6 (600₽) | +| ✅ | **FATJAY Ступицы колес для дрифта для MINI-Z, DRZ, WLtoys** (28мм с шинами POM) | https://aliexpress.ru/item/1005009840834925.html | ~$7 (700₽) | +| ✅ | Drive shafts для MINI Z MR03/04 (титан) | https://aliexpress.ru/item/1005012287063790.html | 1499₽ | +| ✅ | JARBLUE набор подшипников 50шт MR52ZZ-MR105ZZ | https://aliexpress.ru/item/33002102153.html | ~$5 (500₽) | + +### FPV антенна + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | **RUSHFPV Cherry 2 II 5.8G RHCP антенна Y-UFL** | https://aliexpress.ru/item/1005010813438126.html | 1050₽ | +| ✅ | BETAFPV C03 FPV камера (1/3" 1200TVL) | https://aliexpress.ru/item/1005011925766241.html | ~$15 (1500₽) | + +### ESC (бонус) + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | HOBBYWING QuicRun WP Mini24 25A ESC (водозащита, 1/24 идеален) | https://aliexpress.ru/item/1005012346307387.html | ~$24 (2400₽) | + +### HobbyPark Mini-Z servo (бонус) + +| ✅ | Лот | URL | Цена | +|---|---|---|---| +| ✅ | HobbyPark Мини Z цифровой сервопривод без сердечника | https://aliexpress.ru/item/1005012437647301.html | ~$9 (900₽) | + +--- + +## 💰 Бюджет + +### На 1 машину (MVP) +| Категория | Сумма | +|---|---| +| Ozon | 5 387₽ | +| Wildberries | 2 377₽ | +| AliExpress | 2 350₽ | +| Печать | 130₽ | +| Силиконовое масло | 150₽ | +| **Итого** | **10 394₽** | + +### На 4 машины +| Категория | Сумма | +|---|---| +| Ozon (4 машины) | ~17 000₽ | +| Wildberries (4 машины) | ~7 500₽ | +| AliExpress (4 машины) | ~9 000₽ | +| Печать (4 машины) | ~500₽ | +| **Итого** | **~34 000₽** | + +### Сравнение +| Версия | Сумма на 4 машины | +|---|---| +| v3 (всё CN) | 58 840₽ | +| v4 (микс РФ+CN) | 38 450₽ | +| **v5 (этот)** | **~34 000₽** | + +**Экономия: ~25 000₽ (43%)** за счёт: +- ESC 35A с Ozon (600₽) вместо Hobbywing CN ($24) +- AIO камера+VTX с WB (1997₽) вместо BETAFPV C03 + TX01S ($25) +- ESP32 + MPU + батарея + dogbones + дифференциал — всё с РФ +- **Кузов печатаем свой** (PETG, 25₽ филамента) вместо готового Kyosho за 1385₽ — экономия **1360₽** +- Подшипники с Wildberries (280₽) вместо AliExpress ($5) + +--- + +## 🚚 Порядок заказа + +### День 1: Заказываем всё сразу + +**Ozon (4 943₽)** — основная корзина (актуально по CART_MVP.md): +1. ESP32-S3 N16R8 + U.FL ×1 +2. MPU-6050 GY-521 ×1 +3. GNB 350mAh 2S XT30 ×1 +4. ESC 35A 2S бесколлекторный ×1 +5. ~~Кузов Kyosho 1/24 Mini Z~~ — НЕ покупаем, печатаем свой (body_shell.stl, PETG) +6. Коллекторный мотор 370 35T ×1 (⚠️ нужен перепечатанный motor_mount под Ø24мм) +7. Мини-серво 9г S0009M с металлической шестерней ×1 +8. Держатель вала MINI-Z ×2 +9. Дифференциал Mini-Z MR02/03 ×1 + +**Wildberries (2 657₽)** — параллельно (актуально по CART_MVP.md): +1. 684ZZ 4×9×4 10шт (Россия 6ГПЗ) ×1 — передняя ось +2. **693ZZ 3×8×4 10шт ×1** — задняя ось (добавлено в CART_MVP.md) +3. 5.8G 40CH 800TVL AIO VTX+камера ×1 +4. Винты M2/M2.5/M3 набор ×1 + +**AliExpress (2 350₽)** — последним: +1. TG Racing Mini-Z колёса 25мм (перед) ×1 пара +2. FATJAY ступицы колес 28мм (зад, дрифт) ×1 комплект +3. RUSHFPV Cherry 2 антенна Y-UFL ×1 + +### Пока ждём компоненты + +Запускаем печать 12 STL на P1S (3 часа). + +### День 7-10: получили РФ + +Собираем MVP по ASSEMBLY.md. + +### День 21-30: получили AliExpress + +Дозаказываем для 4-х машин (если MVP ок). \ No newline at end of file diff --git a/hardware/blender/openrc_fresh.blend b/hardware/blender/openrc_fresh.blend new file mode 100644 index 0000000..1fb12a1 Binary files /dev/null and b/hardware/blender/openrc_fresh.blend differ diff --git a/hardware/blender/openrc_v2.blend b/hardware/blender/openrc_v2.blend new file mode 100644 index 0000000..2820517 Binary files /dev/null and b/hardware/blender/openrc_v2.blend differ diff --git a/hardware/blender/openrc_v3.blend b/hardware/blender/openrc_v3.blend new file mode 100644 index 0000000..09f4add Binary files /dev/null and b/hardware/blender/openrc_v3.blend differ diff --git a/hardware/blender/renders/FrontCam.png b/hardware/blender/renders/FrontCam.png new file mode 100644 index 0000000..c5365e3 Binary files /dev/null and b/hardware/blender/renders/FrontCam.png differ diff --git a/hardware/blender/renders/IsoCam.png b/hardware/blender/renders/IsoCam.png new file mode 100644 index 0000000..b069c1c Binary files /dev/null and b/hardware/blender/renders/IsoCam.png differ diff --git a/hardware/blender/renders/IsoCam_full.png b/hardware/blender/renders/IsoCam_full.png new file mode 100644 index 0000000..0ab1cf6 Binary files /dev/null and b/hardware/blender/renders/IsoCam_full.png differ diff --git a/hardware/blender/renders/IsoCam_internals.png b/hardware/blender/renders/IsoCam_internals.png new file mode 100644 index 0000000..6a03c57 Binary files /dev/null and b/hardware/blender/renders/IsoCam_internals.png differ diff --git a/hardware/blender/renders/IsoCam_ref.png b/hardware/blender/renders/IsoCam_ref.png new file mode 100644 index 0000000..72d7410 Binary files /dev/null and b/hardware/blender/renders/IsoCam_ref.png differ diff --git a/hardware/blender/renders/RearCam.png b/hardware/blender/renders/RearCam.png new file mode 100644 index 0000000..e873934 Binary files /dev/null and b/hardware/blender/renders/RearCam.png differ diff --git a/hardware/blender/renders/RearCam_full.png b/hardware/blender/renders/RearCam_full.png new file mode 100644 index 0000000..5d3b72c Binary files /dev/null and b/hardware/blender/renders/RearCam_full.png differ diff --git a/hardware/blender/renders/RearCam_internals.png b/hardware/blender/renders/RearCam_internals.png new file mode 100644 index 0000000..a999d63 Binary files /dev/null and b/hardware/blender/renders/RearCam_internals.png differ diff --git a/hardware/blender/renders/RearCam_ref.png b/hardware/blender/renders/RearCam_ref.png new file mode 100644 index 0000000..fbdd494 Binary files /dev/null and b/hardware/blender/renders/RearCam_ref.png differ diff --git a/hardware/blender/renders/SideView.png b/hardware/blender/renders/SideView.png new file mode 100644 index 0000000..1548d4c Binary files /dev/null and b/hardware/blender/renders/SideView.png differ diff --git a/hardware/blender/renders/SideView_full.png b/hardware/blender/renders/SideView_full.png new file mode 100644 index 0000000..6166a43 Binary files /dev/null and b/hardware/blender/renders/SideView_full.png differ diff --git a/hardware/blender/renders/SideView_internals.png b/hardware/blender/renders/SideView_internals.png new file mode 100644 index 0000000..e9bec6d Binary files /dev/null and b/hardware/blender/renders/SideView_internals.png differ diff --git a/hardware/blender/renders/SideView_ref.png b/hardware/blender/renders/SideView_ref.png new file mode 100644 index 0000000..c28f65c Binary files /dev/null and b/hardware/blender/renders/SideView_ref.png differ diff --git a/hardware/blender/renders/TopCam.png b/hardware/blender/renders/TopCam.png new file mode 100644 index 0000000..3c96525 Binary files /dev/null and b/hardware/blender/renders/TopCam.png differ diff --git a/hardware/blender/renders/TopCam_full.png b/hardware/blender/renders/TopCam_full.png new file mode 100644 index 0000000..786d1e0 Binary files /dev/null and b/hardware/blender/renders/TopCam_full.png differ diff --git a/hardware/blender/renders/TopCam_internals.png b/hardware/blender/renders/TopCam_internals.png new file mode 100644 index 0000000..b6c5ccb Binary files /dev/null and b/hardware/blender/renders/TopCam_internals.png differ diff --git a/hardware/blender/renders/TopCam_ref.png b/hardware/blender/renders/TopCam_ref.png new file mode 100644 index 0000000..8094c83 Binary files /dev/null and b/hardware/blender/renders/TopCam_ref.png differ diff --git a/hardware/blender/renders/final_hero.png b/hardware/blender/renders/final_hero.png new file mode 100644 index 0000000..87a7257 Binary files /dev/null and b/hardware/blender/renders/final_hero.png differ diff --git a/hardware/blender/renders/final_iso.png b/hardware/blender/renders/final_iso.png new file mode 100644 index 0000000..561c85c Binary files /dev/null and b/hardware/blender/renders/final_iso.png differ diff --git a/hardware/blender/renders/final_top.png b/hardware/blender/renders/final_top.png new file mode 100644 index 0000000..f74ebc0 Binary files /dev/null and b/hardware/blender/renders/final_top.png differ diff --git a/hardware/blender/renders/layout_render.png b/hardware/blender/renders/layout_render.png new file mode 100644 index 0000000..bf7f45a Binary files /dev/null and b/hardware/blender/renders/layout_render.png differ diff --git a/hardware/blender/renders/mvp_front.png b/hardware/blender/renders/mvp_front.png new file mode 100644 index 0000000..773ef71 Binary files /dev/null and b/hardware/blender/renders/mvp_front.png differ diff --git a/hardware/blender/renders/mvp_hero.png b/hardware/blender/renders/mvp_hero.png new file mode 100644 index 0000000..8b02d43 Binary files /dev/null and b/hardware/blender/renders/mvp_hero.png differ diff --git a/hardware/blender/renders/mvp_iso.png b/hardware/blender/renders/mvp_iso.png new file mode 100644 index 0000000..42d133f Binary files /dev/null and b/hardware/blender/renders/mvp_iso.png differ diff --git a/hardware/blender/renders/mvp_rear.png b/hardware/blender/renders/mvp_rear.png new file mode 100644 index 0000000..894a9df Binary files /dev/null and b/hardware/blender/renders/mvp_rear.png differ diff --git a/hardware/blender/renders/mvp_side_final.png b/hardware/blender/renders/mvp_side_final.png new file mode 100644 index 0000000..32e1f53 Binary files /dev/null and b/hardware/blender/renders/mvp_side_final.png differ diff --git a/hardware/blender/renders/mvp_top_final.png b/hardware/blender/renders/mvp_top_final.png new file mode 100644 index 0000000..f025693 Binary files /dev/null and b/hardware/blender/renders/mvp_top_final.png differ diff --git a/hardware/blender/renders/v4_frontcam.png b/hardware/blender/renders/v4_frontcam.png new file mode 100644 index 0000000..ae433db Binary files /dev/null and b/hardware/blender/renders/v4_frontcam.png differ diff --git a/hardware/blender/renders/v4_herocam.png b/hardware/blender/renders/v4_herocam.png new file mode 100644 index 0000000..c09cce5 Binary files /dev/null and b/hardware/blender/renders/v4_herocam.png differ diff --git a/hardware/blender/renders/v4_isocam.png b/hardware/blender/renders/v4_isocam.png new file mode 100644 index 0000000..e7bcfcf Binary files /dev/null and b/hardware/blender/renders/v4_isocam.png differ diff --git a/hardware/blender/renders/v4_rearcam.png b/hardware/blender/renders/v4_rearcam.png new file mode 100644 index 0000000..54a9d47 Binary files /dev/null and b/hardware/blender/renders/v4_rearcam.png differ diff --git a/hardware/blender/renders/v4_topcam.png b/hardware/blender/renders/v4_topcam.png new file mode 100644 index 0000000..69063ff Binary files /dev/null and b/hardware/blender/renders/v4_topcam.png differ diff --git a/hardware/blender/renders/v5_render.png b/hardware/blender/renders/v5_render.png new file mode 100644 index 0000000..4145eef Binary files /dev/null and b/hardware/blender/renders/v5_render.png differ diff --git a/hardware/blender/renders/v5_render_1_20.png b/hardware/blender/renders/v5_render_1_20.png new file mode 100644 index 0000000..75a5273 Binary files /dev/null and b/hardware/blender/renders/v5_render_1_20.png differ diff --git a/hardware/blender/x0gp_f1_mvp.blend b/hardware/blender/x0gp_f1_mvp.blend new file mode 100644 index 0000000..1fb12a1 Binary files /dev/null and b/hardware/blender/x0gp_f1_mvp.blend differ diff --git a/hardware/blender/x0gp_f1_mvp_v3.blend b/hardware/blender/x0gp_f1_mvp_v3.blend new file mode 100644 index 0000000..09f4add Binary files /dev/null and b/hardware/blender/x0gp_f1_mvp_v3.blend differ diff --git a/hardware/blender/x0gp_f1_mvp_v4.blend b/hardware/blender/x0gp_f1_mvp_v4.blend new file mode 100644 index 0000000..9c8ec04 Binary files /dev/null and b/hardware/blender/x0gp_f1_mvp_v4.blend differ diff --git a/hardware/blender/x0gp_f1_mvp_v5.blend b/hardware/blender/x0gp_f1_mvp_v5.blend new file mode 100644 index 0000000..050b7db Binary files /dev/null and b/hardware/blender/x0gp_f1_mvp_v5.blend differ diff --git a/hardware/blender/x0gp_f1_mvp_v5_1_20.blend b/hardware/blender/x0gp_f1_mvp_v5_1_20.blend new file mode 100644 index 0000000..66aa90d Binary files /dev/null and b/hardware/blender/x0gp_f1_mvp_v5_1_20.blend differ diff --git a/hardware/blender/x0gp_mvp_v2.blend b/hardware/blender/x0gp_mvp_v2.blend new file mode 100644 index 0000000..2820517 Binary files /dev/null and b/hardware/blender/x0gp_mvp_v2.blend differ diff --git a/hardware/esp32/client/client.ino b/hardware/esp32/client/client.ino new file mode 100644 index 0000000..1a71950 --- /dev/null +++ b/hardware/esp32/client/client.ino @@ -0,0 +1,139 @@ +#include "esp_camera.h" +#include +#include + +// Конфигурация пинов (пример для Seeed Studio XIAO ESP32S3 Sense) +#define PWDN_GPIO_NUM -1 +#define RESET_GPIO_NUM -1 +#define XCLK_GPIO_NUM 10 +#define SIOD_GPIO_NUM 40 +#define SIOC_GPIO_NUM 39 +#define Y9_GPIO_NUM 48 +#define Y8_GPIO_NUM 47 +#define Y7_GPIO_NUM 13 +#define Y6_GPIO_NUM 14 +#define Y5_GPIO_NUM 12 +#define Y4_GPIO_NUM 11 +#define Y3_GPIO_NUM 17 +#define Y2_GPIO_NUM 16 +#define VSYNC_GPIO_NUM 41 +#define HREF_GPIO_NUM 38 +#define PCLK_GPIO_NUM 37 + + +const char* ssid = "RT-WiFi-1712"; +const char* password = "yt3xihY2Ci"; + +const char* serverIP = "192.168.0.11"; +const int serverPort = 9999; +const int localPort = 8888; + +// !!! УНИКАЛЬНЫЙ ID ДЛЯ КАЖДОЙ ПЛАТЫ (например, 1 для первой, 2 для второй и т.д.) +const uint8_t DEVICE_ID = 1; + +WiFiUDP udpVideo; +WiFiUDP udpCmd; +camera_config_t config; + +void setup() { + Serial.begin(115200); + // Настройка камеры (QVGA для стабильности) + config.ledc_channel = LEDC_CHANNEL_0; + config.ledc_timer = LEDC_TIMER_0; + config.pin_d0 = Y2_GPIO_NUM; + config.pin_d1 = Y3_GPIO_NUM; + config.pin_d2 = Y4_GPIO_NUM; + config.pin_d3 = Y5_GPIO_NUM; + config.pin_d4 = Y6_GPIO_NUM; + config.pin_d5 = Y7_GPIO_NUM; + config.pin_d6 = Y8_GPIO_NUM; + config.pin_d7 = Y9_GPIO_NUM; + config.pin_xclk = XCLK_GPIO_NUM; + config.pin_pclk = PCLK_GPIO_NUM; + config.pin_vsync = VSYNC_GPIO_NUM; + config.pin_href = HREF_GPIO_NUM; + config.pin_sscb_sda = SIOD_GPIO_NUM; + config.pin_sscb_scl = SIOC_GPIO_NUM; + config.pin_pwdn = PWDN_GPIO_NUM; + config.pin_reset = RESET_GPIO_NUM; + config.xclk_freq_hz = 20000000; + config.frame_size = FRAMESIZE_QVGA; + config.pixel_format = PIXFORMAT_JPEG; + config.grab_mode = CAMERA_GRAB_WHEN_EMPTY; + config.fb_count = 2; + + esp_camera_init(&config); + + // Подключение к Wi-Fi + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + } + Serial.println("Wi-Fi подключен!"); + + // Запуск прослушивания порта для команд + udpCmd.begin(localPort); + Serial.print("Ожидание команд на порту: "); + Serial.println(localPort); +} + +void checkIncomingCommands() { + int packetSize = udpCmd.parsePacket(); + if (packetSize > 0) { + char packetBuffer[255]; + int len = udpCmd.read(packetBuffer, 255); + if (len > 0) { packetBuffer[len] = 0; } + + String command = String(packetBuffer); + command.trim(); + + Serial.print("Получена команда: "); + Serial.println(command); + + Serial.print("Получена команда: "); + Serial.println(command); + + // Логика управления + if (command == "left") { + // Ваш код поворота налево + } else if (command == "right") { + // Ваш код поворота направо + } else if (command == "start") { + // Ваш код запуска моторов / логики + } else if (command == "stop") { + // Ваш код остановки + } + } +} + +void loop() { + checkIncomingCommands(); + + camera_fb_t * fb = esp_camera_fb_get(); + if (!fb) return; + + size_t bufferSize = fb->len; + uint8_t * buf = fb->buf; + + // Размер куска данных уменьшаем до 1023, чтобы вместе с 1 байтом ID пакет был 1024 байта + size_t chunkSize = 1023; + uint8_t packetBuffer[1024]; + + for (size_t i = 0; i < bufferSize; i += chunkSize) { + size_t sendSize = chunkSize; + if (i + chunkSize > bufferSize) { + sendSize = bufferSize - i; + } + + // Формируем пакет: первый байт — ID, дальше — видеоданные + packetBuffer[0] = DEVICE_ID; + memcpy(packetBuffer + 1, buf + i, sendSize); + + udpVideo.beginPacket(serverIP, serverPort); + udpVideo.write(packetBuffer, sendSize + 1); // Отправляем данные вместе с ID + udpVideo.endPacket(); + } + + esp_camera_fb_return(fb); + delay(10); +} diff --git a/hardware/print/parts_manifest.md b/hardware/print/parts_manifest.md new file mode 100644 index 0000000..aae8a38 --- /dev/null +++ b/hardware/print/parts_manifest.md @@ -0,0 +1,115 @@ +# Print Parts Manifest - финальная версия MVP (1 машина) + +Дата: 2026-06-21. **17 STL файлов** готовы в D:/x0gp/hardware/print/stl/ (добавлены 4 STL колёс: 2 ступицы + 2 шины). + +> Материалы: +> - **PETG** - основные конструктивные детали (дека, верх, маунты, shock towers, FPV mount, wire clips, **кузов**, **ступицы колёс**) +> - **TPU 85A** - **шины колёс** (мягкие, для сцепления) +> - **TPU 95A** - бамперы (амортизация ударов), battery strap (фиксация батареи) +> - **Силиконовое масло 30WT** - для амортизаторов (заливается в shock towers) + +## Сводка STL + +| # | STL | Размер | Материал | Кол-во | Время | Вес | +|---|---|---|---|---|---|---| +| 1 | chassis_deck.stl | 80x135x1.5мм | PETG | 1 | 35 мин | 22г | +| 2 | electronics_plate.stl | 76x130x1.5мм | PETG | 1 | 25 мин | 14г | +| 3 | body_post.stl | 5x5x5мм | PETG | 4 | 12 мин | 2г | +| 4 | front_bumper.stl | 76x20x10мм | TPU 95A | 1 | 18 мин | 8г | +| 5 | rear_bumper.stl | 76x20x10мм | TPU 95A | 1 | 18 мин | 8г | +| 6 | shock_tower_front.stl | 24x4x25мм | PETG | 1 | 15 мин | 6г | +| 7 | shock_tower_rear.stl | 24x4x25мм | PETG | 1 | 15 мин | 6г | +| 8 | servo_mount.stl | **24.3×14.5×20.6мм** | PETG | 1 | 9 мин | 4г | +| 9 | motor_mount.stl | **18×15×15мм** | PETG | 1 | 6 мин | 2г | +| 10 | battery_strap.stl | 60x10x5мм | TPU 95A | 1 | 6 мин | 2г | +| 11 | wire_clip.stl | 8x4x3мм | PETG | 4 | 8 мин | 1г | +| 12 | fpv_camera_mount.stl | 30x32x8мм | PETG | 1 | 10 мин | 3г | +| 13 | **body_shell.stl** | 98x35x25мм | **PETG** | 1 | 100-120 мин | ~25г | +| 14 | **wheel_hub_front.stl** | Ø18×5.5мм | **PETG** | 2 | 13 мин ×2 | ~4г | +| 15 | **wheel_hub_rear.stl** | Ø20×6мм | **PETG** | 2 | 15 мин ×2 | ~6г | +| 16 | **tire_front.stl** | Ø25.4×8мм | **TPU 85A** | 2 | 22 мин ×2 | ~2.4г | +| 17 | **tire_rear.stl** | Ø28×11мм | **TPU 85A** | 2 | 35 мин ×2 | ~8г | + +**Итого:** +- **Время печати**: ~340 мин (~5.7 часа) — было 280, +60 мин на колёса +- **Расход PETG**: ~95г (+10г на ступицы) +- **Расход TPU 85A**: ~10г (шины) +- **Расход TPU 95A**: ~18г (бамперы, strap) — без изменений +- **Стоимость филамента**: ~210₽ (PETG 100₽ + TPU 85A 50₽ + TPU 95A 50₽ + 10₽ на ступицы) + +> **Примечание**: TPU 85A — отдельная катушка (докупаем), ~700₽. Используется ТОЛЬКО для шин (4 детали, ~10г). + +## Настройки печати (Bambu P1S) + +### PETG (дека, маунты, shock towers, кузов) +- Температура сопла: 235°C +- Температура стола: 80°C +- Слои: 0.20мм (дека, верх), 0.20мм (кузов), 0.16мм (маунты) +- Стенки: 4 периметра (дека), 3 периметра (кузов) +- Заполнение: 35% gyroid (дека), 15% gyroid (кузов) +- Скорость: 200 мм/с +- **Кузов**: нужны поддержки снизу (отверстия Ø3.2мм + свесы). Используй "Tree" поддержки с порогом 45°. + +### TPU 95A (бамперы, strap) +- Температура сопла: 230°C +- Температура стола: 50°C +- Слои: 0.20мм +- Стенки: 3 периметра +- Заполнение: 20% gyroid +- Скорость: 30 мм/с (TPU медленно!) + +### TPU 85A (шины колёс) — НОВОЕ 2026-06-21 +- Температура сопла: 225°C (85A мягче, чуть ниже) +- Температура стола: 45°C +- Слои: 0.16мм (тоньше для гладкой боковины!) +- Стенки: 4 периметра (жёсткость) +- Заполнение: 15% gyroid +- Скорость: 25 мм/с (85A капризнее 95A) +- **Сушка филамента ОБЯЗАТЕЛЬНА** (85A гигроскопичен): 60°C × 4 часа в сушилке перед печатью +- **Адгезия к столу**: текстурированный PEI стол + клей-карандаш (без него TPU отлипает) +- **Подача**: direct drive (P1S — да) без ретракта на коротких ходах +- **Без поддержек** — шины цельные торы +- **⚠️ ПОСЛЕ ПЕЧАТИ**: боковины шин будут глянцевыми и скользят на ламинате/плитке. **Обработать боковины наждачкой 400-600 grit** (убирает глянец, даёт grip). Альтернатива: спрей-зацепитель (Tire Traction Compound, продаётся в RC-магазинах) + +### PETG (ступицы колёс) — НОВОЕ 2026-06-21 +- Те же настройки что и для маунтов: 235°C, 80°C стол, 0.16мм слой, 3 периметра, 50% gyroid, 200 мм/с +- **Ориентация на столе**: ось Z цилиндра = ось Z печати (канавка под подшипник должна быть горизонтально) +- **Без поддержек** — ступицы без свесов + +## Отверстия (важно для посадки крепежа) + +| Деталь | Отверстия | +|---|---| +| chassis_deck.stl | **v7**: 2xØ10мм (задние, под 686ZZ) + 2xØ6мм (передние, под 673ZZ) — **ГОТОВЫЕ отверстия, НЕ сверлить вручную**. + вырез 10x5x5мм под Type-C ESP32. + 4xM2 (верх. плита), 4xM2.5 body posts X=±15, 2xM2 (мотор), 2xM2 (ESC), 2xM2 (servo), 4xM2.5 (shock towers) | +| electronics_plate.stl | 4xM2 (дека), **4xM2.5 body posts X=±15** (ОБНОВЛЕНО), cutouts под AIO камеру 27x32мм, ESP32 20x27мм, MPU 13x18мм | +| body_post.stl | 1xM2.5 (саморез) | +| body_shell.stl | **4xØ3.2мм отверстия** под body posts в нижней части (X=±15, Y=+15/-32) | +| servo_mount.stl | **4xM2** (серво, боковые ушки), 2xM2 (дека), 1xØ5.5 (выход качалки) — **v6 (2026-06-21) под AFRC D1802MG MG-версию 21.3×11.5×17.6мм**. v3 был под пластиковую 20×8.5×16 (НЕ подходит для MG). v1 был под S0009M 9г | +| motor_mount.stl | **v11**: 6xØ1.8 (M1.6 крепление мотора на торцах), 1xØ1.7 (вал 1.5мм), 1x окно 10x4x6мм (выводы мотора), 2xM2 (дека). Под **Mini-Z flat-can мотор 15×12×12мм**. НЕ подходит под круглый Ø20мм | +| fpv_camera_mount.stl | 2xM2 (верх. плита), 4xM2 (AIO камера внутри) | +| battery_strap.stl | 1x22x14мм окно под батарею | +| **wheel_hub_front.stl** | Ø2мм осевое (вал dogbone), канавка **Ø6.0мм × 2.5мм под подшипник 673ZZ** — ПЕРЕДЕЛАН v4 под Mini-Z | +| **wheel_hub_rear.stl** | Ø2мм осевое (вал dogbone), канавка **Ø10.0мм × 3мм под подшипник 686ZZ** — ПЕРЕДЕЛАН v4 под Mini-Z | +| **tire_front.stl** | посадка Ø18+0.3мм внутрь (на ступицу), 2 боковые канавки + 1 центральная | +| **tire_rear.stl** | посадка Ø20+0.3мм внутрь (на ступицу), 2 боковые канавки + 1 центральная | + +## Что изменилось + +- **Кузов Kyosho убран из покупки** (ссылка Ozon вела на неподходящий лот - держатель для бумаги) +- **Кузов печатаем сами** (PETG 0.20мм, 100-120 мин, 25г) +- **Body posts сдвинуты с X=±22 на X=±15** чтобы вписаться в кузов 35мм +- **Дека и верхняя плита пересозданы** с новыми отверстиями под body posts +- **Экономия**: 1385₽ (готовый кузов) → 25₽ (филамент на кузов) = **1360₽** + +### НОВОЕ 2026-06-21: колёса печатаем сами + +- **Ступицы**: PETG (Ø18×6мм перед, Ø20×8мм зад) — точные посадки под 684ZZ/693ZZ +- **Шины**: TPU 85A (Ø25.4×8мм перед, Ø28×11мм зад) — мягкие, с грувтирами для дренажа +- **TG Racing и FATJAY убраны из корзины AliExpress** — экономия ~1300₽/машина +- **Доп. затраты**: TPU 85A катушка ~700₽ (одна на все машины, хватит на ~60 шин) +- **Экономия нетто**: ~600₽/машина (1300 экономия минус 700 на TPU/4 машины) + +## Где лежат файлы + +Все STL в D:/x0gp/hardware/print/stl/ (**17 файлов**, ~600KB суммарно). +Открыть в Bambu Studio, разложить на столе и печатать. \ No newline at end of file diff --git a/hardware/print/stl/battery_strap.stl b/hardware/print/stl/battery_strap.stl new file mode 100644 index 0000000..d70b179 Binary files /dev/null and b/hardware/print/stl/battery_strap.stl differ diff --git a/hardware/print/stl/body_post.stl b/hardware/print/stl/body_post.stl new file mode 100644 index 0000000..3d38eb1 Binary files /dev/null and b/hardware/print/stl/body_post.stl differ diff --git a/hardware/print/stl/body_shell.stl b/hardware/print/stl/body_shell.stl new file mode 100644 index 0000000..9040326 Binary files /dev/null and b/hardware/print/stl/body_shell.stl differ diff --git a/hardware/print/stl/chassis_deck.stl b/hardware/print/stl/chassis_deck.stl new file mode 100644 index 0000000..714dc8a Binary files /dev/null and b/hardware/print/stl/chassis_deck.stl differ diff --git a/hardware/print/stl/electronics_plate.stl b/hardware/print/stl/electronics_plate.stl new file mode 100644 index 0000000..fa8f348 Binary files /dev/null and b/hardware/print/stl/electronics_plate.stl differ diff --git a/hardware/print/stl/fpv_camera_mount.stl b/hardware/print/stl/fpv_camera_mount.stl new file mode 100644 index 0000000..68b3120 Binary files /dev/null and b/hardware/print/stl/fpv_camera_mount.stl differ diff --git a/hardware/print/stl/front_bumper.stl b/hardware/print/stl/front_bumper.stl new file mode 100644 index 0000000..86948ab Binary files /dev/null and b/hardware/print/stl/front_bumper.stl differ diff --git a/hardware/print/stl/motor_mount.stl b/hardware/print/stl/motor_mount.stl new file mode 100644 index 0000000..00ef481 Binary files /dev/null and b/hardware/print/stl/motor_mount.stl differ diff --git a/hardware/print/stl/rear_bumper.stl b/hardware/print/stl/rear_bumper.stl new file mode 100644 index 0000000..526c3b0 Binary files /dev/null and b/hardware/print/stl/rear_bumper.stl differ diff --git a/hardware/print/stl/servo_mount.stl b/hardware/print/stl/servo_mount.stl new file mode 100644 index 0000000..def4f34 Binary files /dev/null and b/hardware/print/stl/servo_mount.stl differ diff --git a/hardware/print/stl/shock_tower_front.stl b/hardware/print/stl/shock_tower_front.stl new file mode 100644 index 0000000..ceb830d Binary files /dev/null and b/hardware/print/stl/shock_tower_front.stl differ diff --git a/hardware/print/stl/shock_tower_rear.stl b/hardware/print/stl/shock_tower_rear.stl new file mode 100644 index 0000000..c63041c Binary files /dev/null and b/hardware/print/stl/shock_tower_rear.stl differ diff --git a/hardware/print/stl/tire_front.stl b/hardware/print/stl/tire_front.stl new file mode 100644 index 0000000..77ffc5e Binary files /dev/null and b/hardware/print/stl/tire_front.stl differ diff --git a/hardware/print/stl/tire_rear.stl b/hardware/print/stl/tire_rear.stl new file mode 100644 index 0000000..9940c67 Binary files /dev/null and b/hardware/print/stl/tire_rear.stl differ diff --git a/hardware/print/stl/wheel_hub_front.stl b/hardware/print/stl/wheel_hub_front.stl new file mode 100644 index 0000000..ab978d8 Binary files /dev/null and b/hardware/print/stl/wheel_hub_front.stl differ diff --git a/hardware/print/stl/wheel_hub_rear.stl b/hardware/print/stl/wheel_hub_rear.stl new file mode 100644 index 0000000..3678ade Binary files /dev/null and b/hardware/print/stl/wheel_hub_rear.stl differ diff --git a/hardware/print/stl/wire_clip.stl b/hardware/print/stl/wire_clip.stl new file mode 100644 index 0000000..147dc69 Binary files /dev/null and b/hardware/print/stl/wire_clip.stl differ diff --git a/hardware/search_results.json b/hardware/search_results.json new file mode 100644 index 0000000..24e1b6a --- /dev/null +++ b/hardware/search_results.json @@ -0,0 +1,142 @@ +{ + "search_session": "2026-06-20", + "query_method": "Поиск через Ozon (RU) и AliExpress (КН) с фильтром по маркетплейсу. Где лотов нет — оставлены только поисковые ссылки.", + "notes": [ + "Цены указаны в RUB для Ozon и USD для AliExpress", + "В Ozon много лишнего (масляные фильтры, шины 1/28 K969/K989) — они НЕ подходят для Mini-Z 1/27. Сверяйте описание", + "Антенны/мелочь часто есть только на AliExpress" + ], + "results": { + "drivetrain": { + "front_wheels_PN_Racing": { + "status": "no_exact_match", + "best_ozon_alt": { + "url": "https://www.ozon.ru/search/?text=Mini-Z+%D1%88%D0%B8%D0%BD%D1%8B+1%2F27+%D0%B3%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D1%8B%D0%B5+%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0+%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%BD%D1%8B%D0%B5", + "note": "Поиск Mini-Z шин 1/27. На Ozon они есть в категории запчасти RC." + }, + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=PN+Racing+F1+front+wheel+25mm+Mini-Z", + "recommendation": "Брать на AliExpress, на Ozon выбора по бренду нет" + }, + "rear_wheels_PN_Racing": { + "status": "no_exact_match", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=PN+Racing+R1+rear+wheel+28mm+Mini-Z", + "recommendation": "AliExpress" + }, + "bearings_684zz_693zz": { + "status": "ok", + "ozon_links": [ + "https://www.ozon.ru/search/?text=684ZZ+4x9x4+%D0%BF%D0%BE%D0%B4%D1%88%D0%B8%D0%BF%D0%BD%D0%B8%D0%BA", + "https://www.ozon.ru/search/?text=693ZZ+3x8x4+%D0%BF%D0%BE%D0%B4%D1%88%D0%B8%D0%BF%D0%BD%D0%B8%D0%BA" + ], + "aliexpress_links": [ + "https://aliexpress.ru/wholesale?SearchText=684ZZ+bearing+4x9x4+10pcs", + "https://aliexpress.ru/wholesale?SearchText=693ZZ+bearing+3x8x4+10pcs" + ], + "recommendation": "Ozon — 100-300₽ за 10шт, придёт за 3-5 дней. Бери упаковки 10шт." + }, + "dogbones": { + "status": "no_exact_match", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=PN+Racing+dogbone+drive+shaft+Mini-Z" + }, + "pinion_M0_3_10T": { + "status": "ok", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=M0.3+pinion+10T+steel+Mini-Z", + "note": "Уже открыт в браузере (tab 1649420803)" + }, + "spur_M0_3_56T": { + "status": "no_exact_match", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=M0.3+spur+gear+56T+Mini-Z" + }, + "motor_RC0820": { + "status": "ok", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=RC0820+brushless+motor+8500KV", + "ozon_search": "https://www.ozon.ru/search/?text=RC0820+%D0%B1%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9+%D0%BC%D0%B8%D0%BA%D1%80%D0%BE", + "recommendation": "AliExpress — на Ozon брендового RC0820 почти нет, есть аналоги подороже" + }, + "ESC_WP_1040_BR": { + "status": "no_exact_match", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=Hobbywing+Quicrun+WP+1040-BR", + "ozon_search": "https://www.ozon.ru/search/?text=Hobbywing+WP+1040+ESC+2S", + "recommendation": "AliExpress (точная модель). На Ozon Hobbywing редко." + }, + "servo_PN_Racing": { + "status": "partial", + "ozon_search": "https://www.ozon.ru/search/?text=Mini-Z+%D1%81%D0%B5%D1%80%D0%B2%D0%BE%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4+1%2F27", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=PN+Racing+PN-SRV-001+servo", + "recommendation": "На Ozon есть 'гоночные шины для Mini-Z' (ref_37). Сам серво в основном AliExpress." + }, + "battery_2S_300mAh_50C_XT30": { + "status": "FOUND", + "best_match": { + "title": "Аккумулятор Li-Po Gaoneng GNB 350mAh 2S1P 7.4V 60C 12x20.5x45мм XT30", + "url": "https://www.ozon.ru/product/akkumulyator-li-po-gaoneng-gnb-350mah-2s1p-7-4v-60c-12x20-5x45mm-xt30-1683332482/", + "price_rub": 1100, + "note": "12x20.5x45мм — идеально для 1/27, но длина 45мм. Проверь что влезет в wheelbase 102мм." + }, + "alts": [ + {"url": "https://www.ozon.ru/product/akkumulyator-gaoneng-gnb-2s-850-mach-7-6-v-60c-hv-lipo-akkumulyator-razem-xt30-dlya-fpv-634467517/", "title": "GNB 2S 850mAh HV LiPo XT30 (7.6V, для FPV)", "price_rub": 1850, "note": "Больше размер и ёмкость, может не влезть"}, + {"url": "https://www.ozon.ru/product/akkumulyator-gnb-lipo-7-6v-2s-550mah-100c-xt-30-plug-2690576230/", "title": "GNB 2S 550mAh 100C XT30 (7.6V HV)", "price_rub": 1500, "note": "Золотая середина"} + ] + }, + "shocks_MiniZ_oil_30mm": { + "status": "no_exact_match", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=PN+Racing+Mini-Z+oil+shock+30mm" + }, + "M2_screws": { + "status": "ok", + "ozon_search": "https://www.ozon.ru/search/?text=M2+%D0%B2%D0%B8%D0%BD%D1%82%D1%8B+%D0%BD%D0%B0%D0%B1%D0%BE%D1%80+RC" + } + }, + "fpv": { + "camera_C01_PRO": { + "status": "no_exact_match", + "ozon_search": "https://www.ozon.ru/search/?text=Eachine+C01+PRO+%D0%BA%D0%B0%D0%BC%D0%B5%D1%80%D0%B0+FPV", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=Eachine+C01+PRO+1200TVL+FPV+camera" + }, + "VTX_TX01S": { + "status": "no_exact_match", + "ozon_search": "https://www.ozon.ru/search/?text=Eachine+TX01S+25mW+VTX", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=Eachine+TX01S+25mW+VTX" + }, + "VTX_antenna": { + "status": "ok", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=Pagoda+RHCP+5.8GHz+stubby+antenna", + "recommendation": "Только AliExpress" + }, + "VRX_ProDVR": { + "status": "no_exact_match", + "ozon_search": "https://www.ozon.ru/search/?text=FPV+%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BF%D1%80%D0%B8%D1%91%D0%BC%D0%BD%D0%B8%D0%BA+5.8+USB", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=Eachine+ProDVR+5.8GHz+USB+receiver" + }, + "VRX_antenna_panel": { + "status": "ok", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=5.8GHz+RHCP+panel+antenna+FPV" + } + }, + "agent": { + "ESP32_S3_DevKitC": { + "status": "ok", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=ESP32-S3+DevKitC-1+N8R2", + "best_match_tab": "1649420819", + "note": "Открыт вкладкой — лот Liludin ESP32-S3-DevKitC-1" + }, + "MPU_6050": { + "status": "ok", + "ozon_search": "https://www.ozon.ru/search/?text=MPU-6050+GY-521", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=GY-521+MPU-6050+module" + }, + "Mini_360_buck": { + "status": "ok", + "ozon_search": "https://www.ozon.ru/search/?text=Mini-360+DC-DC+%D0%BF%D0%BE%D0%BD%D0%B8%D0%B6%D0%B0%D1%8E%D1%89%D0%B8%D0%B9", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=Mini-360+DC-DC+buck+converter+5V" + } + }, + "body": { + "lexan_shell": { + "status": "no_exact_match", + "ozon_search": "https://www.ozon.ru/search/?text=Mini-Z+%D0%BA%D1%83%D0%B7%D0%BE%D0%B2+F1+%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD", + "aliexpress_url": "https://aliexpress.ru/wholesale?SearchText=PN+Racing+F1+lexan+body+1%2F27" + } + } + } +} \ No newline at end of file