feat(hardware): initial hardware documentation, 3D models, and ESP32 client code

- Add initial versions of hardware bills of materials (BOM v1-v4), shopping lists, plan, and assembly guides.
- Add STL models for 3D-printing the 1/27 scale OpenRC F1 car parts.
- Add Blender 3D project files (.blend) and camera renders of the car design iterations.
- Add ESP32 client firmware source (client.ino) for handling video streaming and car controls.
- Ignore Blender backup files (*.blend1, *.blend2) and IDE directories.
This commit is contained in:
x0gp
2026-07-06 12:41:04 +04:00
parent 49351b4928
commit 76e33cfe62
73 changed files with 2353 additions and 0 deletions
+77
View File
@@ -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
}
}