commit c76ca89cc9ee8c6009f89c9cd7c2b2a04517af89 Author: sm Date: Wed Feb 25 19:03:55 2026 +0300 Initial commit: project docs and wiring diagram Smart bench press trainer with electric motor (M365 Pro). CAN Bus architecture: ESP32-S3 (master) + Flipsky 75100 (VESC) + STM32 Blue Pill (carriage). Co-Authored-By: Claude Opus 4.6 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7ae4d3f --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Build artifacts +build/ +*.o +*.elf +*.bin +*.hex +*.map + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# PlatformIO +.pio/ + +# Archives +*.zip diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e750435 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,55 @@ +# CHANGELOG — История проектных решений + +## v1 → v2: Расчёт мотора и барабана +- Выбран барабан D30мм (оптимум по расчёту: 100кг при 30А рабочих) +- Рассчитаны константы мотора M365 Pro (Kt, Ke, R, KV) +- Кабестан 3 витка, μ=0.25 — коэффициент удержания 14.1 +- Контроллер: MKS VESC Mini 6.7 Pro (первоначальный выбор) +- Батарея 48В 500Вт·ч (автономная работа) + +## v2 → v3: Waveshare ESP32-S3 Touch LCD 3.5" +- **Замена:** ESP32 + OLED + RTC + TF → Waveshare ESP32-S3 Touch LCD 3.5" (~$20) +- Плата включает: 3.5" IPS тачскрин, QMI8658 IMU, PCF85063 RTC, AXP2101 PMU, TF слот +- ESP32-S3 имеет TWAI (аппаратный CAN) — нужен только трансивер SN65HVD230 +- Бортовой IMU (QMI8658) для диагностики; внешний MPU6050 на каретке для ускорения штанги +- BOM электроники снизился с ~$350 до ~$270 + +## v3 → v4: CAN Bus архитектура +- **Проблема I2C:** шлейф ~1м к каретке рядом с фазными проводами — ненадёжно для I2C +- **Решение:** CAN шина, 3 узла, все датчики читаются локально +- **CAN узел #3 (каретка):** STM32F103C8T6 Blue Pill (~$2) + - Выбран вместо ESP32-C3 (overkill) и ATtiny (нет встроенного CAN) + - STM32F103 — самый распространённый STM32, CAN 2.0B встроен, $1.5-2, тонна примеров + - Читает MPU6050 (I2C) + HX711+тензодатчик (GPIO) локально +- **Тензодатчик перемещён на каретку** (inline: каретка ↔ трос) + - Раньше был внизу у ролика — длинный провод HX711 к ESP32 + - Теперь рядом с Blue Pill — провод 3 см, никаких проблем + - Бонус: мерим силу прямо в точке приложения к штанге +- **Контроллер:** Flipsky 75100 Pro V2 вместо MKS VESC Mini 6.7 + - 100А длительно (запас ×2 при пиках 40-50А) + - 84В макс (48В батарея — в зоне комфорта) + - BT встроен (VESC Tool без провода) + - Фазный EMI фильтр на плате + - Стоимость: ~$90 (vs ~$35 MKS) + +## v4 дополнения: Питание и безопасность +- **Питание от сети 220В** — вводной щит (автомат + УЗО + БП 48В) +- **Батарея уменьшена:** 500Вт·ч → 100-250Вт·ч (только буфер рекуперации + UPS) + - Заряд до 90% — оставляем буфер для приёма энергии рекуперации +- **Тормозной резистор:** 100-200Вт, 1-5Ом — сброс излишков при полной батарее + - Flipsky 75100 поддерживает brake resistor нативно + - Без резистора: батарея 100% → рекуперация → overvoltage → VESC fault → штанга падает +- **Реле:** 3× НЗ 40А (не 80А — реально через обмотки 20-30А при торможении) + - Или трёхфазный контактор НЗ на DIN-рейку в щите +- **Концевики:** остаются на GPIO ESP32 с RC-фильтром (1К+100нФ) + - Бинарный сигнал, помехозащита RC-фильтром достаточна, CAN overkill + +## Открытые вопросы / TODO +- [ ] Софт ESP32: CAN-драйвер, управляющие алгоритмы, UI на тачскрине +- [ ] Софт STM32: чтение IMU+HX711, упаковка в CAN фрейм +- [ ] Настройка VESC: FOC, лимиты тока/температуры, brake resistor +- [ ] Чертежи: барабан, каретка, кронштейны, щит +- [ ] Приложение смартфон (BLE): профили, статистика +- [ ] Тестирование безопасности: watchdog, реле, концевики +- [ ] Выбор конкретного контактора НЗ / реле для щита +- [ ] Подбор БП 48В от сети (мощность, форм-фактор) diff --git a/README.md b/README.md new file mode 100644 index 0000000..071e1fa --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# Bench Press Trainer — умный тренажёр жима лёжа + +Уличный тренажёр с электронным управлением нагрузкой. Мотор-колесо Xiaomi M365 Pro работает как управляемый тормоз/генератор через барабан кабестана. Нагрузка регулируется током VESC-контроллера (FOC). + +## Архитектура + +3 узла на CAN Bus (250 Кбит/с): + +| Узел | Компонент | Роль | +|------|-----------|------| +| ID:20 | Waveshare ESP32-S3 LCD 3.5" | Мастер, UI, управление | +| ID:10 | Flipsky 75100 Pro V2 | VESC, FOC current control | +| ID:30 | STM32F103 Blue Pill | Каретка: IMU + тензодатчик | + +## Структура проекта + +``` +smart-trainer/ +├── README.md # Этот файл +├── SPEC.md # Полная инженерная спецификация +├── CHANGELOG.md # История проектных решений v1→v4 +├── docs/ +│ └── wiring.html # Схема подключения (интерактивная) +├── firmware/ # (будущее) прошивки ESP32, STM32 +└── cad/ # (будущее) чертежи барабана, каретки, рамы +``` + +## Схема подключения + +Интерактивная схема: [`docs/wiring.html`](docs/wiring.html) + +## Как работать со схемой (wiring.html) + +Схема построена на CSS grid с карточками модулей. Каждый модуль — `
`. + +### Секции (сверху вниз): +1. **Силовая часть** — питание, VESC, реле, мотор, тормозной резистор, watchdog +2. **CAN Bus bar** — визуализация шины с узлами +3. **Управление** — ESP32 Waveshare, STM32 Blue Pill +4. **Периферия** — концевики, NFC, смартфон, TF карта, Flipsky BT +5. **Data Flow** — таблица CAN трафика + описание безопасности +6. **BOM** — две таблицы (электроника + силовая/механика) + +### ID модулей для поиска: +- `mod-power` — питание 220В + батарея +- `mod-vesc` — Flipsky 75100 +- `mod-relay` — реле НЗ +- `mod-motor` — мотор M365 Pro +- `mod-brake-resistor` — тормозной резистор +- `mod-watchdog` — watchdog 555 +- `mod-esp32` — Waveshare ESP32-S3 +- `mod-stm32` — Blue Pill STM32 каретка +- `mod-endstops` — концевики +- `mod-nfc` — RC522 NFC +- `mod-phone` — смартфон BLE +- `mod-tf` — TF карта +- `mod-flipsky-bt` — Flipsky Bluetooth +- `mod-dataflow` — таблица CAN трафика +- `mod-safety-summary` — сводка безопасности +- `mod-bom-electronics` — BOM электроника +- `mod-bom-power-mech` — BOM силовая + механика + +## Документация + +- [Спецификация](SPEC.md) — все инженерные решения и расчёты +- [История изменений](CHANGELOG.md) — эволюция проекта v1→v4 diff --git a/SPEC.md b/SPEC.md new file mode 100644 index 0000000..690f25b --- /dev/null +++ b/SPEC.md @@ -0,0 +1,159 @@ +# Умный тренажёр для жима лёжа — Спецификация проекта + +## Концепция +Уличный тренажёр с электронным управлением нагрузкой. Мотор-колесо Xiaomi M365 Pro работает как управляемый тормоз/генератор через барабан кабестана. Нагрузка регулируется током VESC-контроллера (FOC). Питание от сети 220В + батарея-буфер для рекуперации и UPS. + +## Мотор M365 Pro — паспортные данные +- Kt = 0.511 Н·м/А (моментная постоянная) +- Ke = 0.511 В/(рад/с) (противо-ЭДС) +- R = 0.392 Ом (сопротивление обмоток) +- KV = 16.67 об/(мин·В) +- 15 пар полюсов, Hall-сенсоры встроены (U/V/W + 5V + GND) +- NTC 10K термистор встроен +- Outrunner — ротор снаружи + +## Барабан кабестана +- Диаметр: D = 30мм (оптимальный выбор по расчёту) +- Материал: нержавеющая сталь 12Х18Н10Т +- 3 канавки под трос D4мм, шаг 6мм, глубина 2мм (полукруглый профиль R2) +- Крепление: фланец к ободу ротора (outrunner) +- Кабестан: 3 витка, μ=0.25 (сталь-полимер), коэффициент удержания e^(0.25×6π) = 14.1 +- Свободный конец троса → пружина-натяжитель 1-2 кг + +## Нагрузки на барабане D30мм +| Ток (А) | Сила (кг) | Режим | +|---------|-----------|-------| +| 20 | 65 | лёгкий | +| 30 | 100 | рабочий (подход 30с) | +| 40 | 135 | пик (3-5с) | +| 50 | 170 | абсолютный максимум | + +## Электроника — CAN Bus архитектура (3 узла) + +### CAN узел #1: Flipsky 75100 Pro V2 (ID: 10) +- VESC 6.0, 100А длительно, 84В макс +- FOC current control +- BT встроен (VESC Tool настройка по Bluetooth) +- Фазный EMI фильтр на плате +- CAN 2.0B встроен +- Стоимость: ~$90 +- Расположение: низ рамы, в электрощите +- Отдаёт: ERPM, I_mot, T_mot, V_bat (100 Гц) +- Принимает: set_current(I_ref) от ESP32 + +### CAN узел #2: Waveshare ESP32-S3 Touch LCD 3.5" (ID: 20) — МАСТЕР +- ESP32-S3R8, двухъядерный LX7 240МГц +- 3.5" IPS тачскрин 320×480, ёмкостный (ST7796 + FT6336) +- QMI8658 6-осевой IMU на плате (бортовой, для диагностики вибраций) +- PCF85063 RTC часы реального времени +- AXP2101 управление питанием + зарядка Li-ion +- TF-карта слот (логирование тренировок) +- WiFi 802.11 b/g/n + BLE 5 +- TWAI (CAN) контроллер встроен в ESP32-S3 +- Стоимость: ~$20 +- Расположение: верхняя перекладина рамы, тачскрин к спортсмену +- Подключение к CAN через внешний трансивер SN65HVD230 ($1) +- Дополнительная периферия (локально на ESP32): + - Концевики ×2 (GPIO, НЗ, pull-up 10K, RC-фильтр 1К+100нФ) + - RC522 NFC (SPI, идентификация пользователей) + - BLE → смартфон (настройки, статистика) + +### CAN узел #3: STM32F103C8T6 Blue Pill (ID: 30) — КАРЕТКА +- Cortex-M3, 72МГц, CAN 2.0B встроен +- Стоимость: ~$2 +- Расположение: на каретке штанги (движется) +- Подключение к CAN через SN65HVD230 ($1) +- Локальные датчики: + - MPU6050 (I2C): 6-осевой IMU, 200 Гц, ускорение + гироскоп + - HX711 + тензодатчик S-тип 200кг (GPIO): реальная сила на тросе, 80 Гц +- Тензодатчик inline: между кареткой и точкой крепления троса +- Кабель к основной шине: 4 провода (CAN_H, CAN_L, 5V, GND), гибкий шлейф вдоль направляющей +- Отдаёт: accel[3], gyro[3], force_N (200 Гц) + +### CAN шина +- Стандарт: CAN 2.0B, 250 Кбит/с +- Топология: линейная, витая пара +- Терминаторы: 120Ω на обоих концах (ESP32 сверху, VESC снизу) +- Blue Pill — отвод к каретке (без терминатора, посередине шины) +- Загрузка шины: ~30%, запас для расширения +- Протокол: VESC CAN (стандартные команды set_current, get_values, status msgs) + +## Питание +- Сеть 220В → вводной щит (автомат + УЗО) → БП 48В +- Батарея 48В 100-250Вт·ч (буфер рекуперации + UPS) + - Заряд до 90% (50.4В на 13S), оставляя буфер для рекуперации +- DC-DC 48В → 5В для логики, LDO 3.3В на каждом узле +- Тормозной резистор: 100-200Вт, 1-5Ом, через MOSFET + - Сброс излишков рекуперации при полной батарее + - Flipsky 75100 поддерживает brake resistor нативно (настройка порога в VESC Tool) + - Расположение: в щите или на раме (нужна вентиляция) + +## Безопасность — аппаратная цепь +- ESP32 GPIO → Watchdog (555/TPL5010, 50мс) → реле НЗ → замыкание обмоток мотора +- Реле: 3× автомобильных НЗ 40А, катушки параллельно ИЛИ трёхфазный контактор НЗ на DIN-рейку в щите +- Логика: ESP32 генерирует импульсы ~100Гц → watchdog сбрасывается. Сбой/зависание → watchdog timeout 50мс → реле отпускает → НЗ контакты замыкают три фазы → электромагнитное торможение +- Тормозная сила при замкнутых обмотках: F = Kt² × v / (R × r²). При 0.5 м/с → ~150 кг +- Опционально: резистор 0.1-0.3Ω / 100Вт в цепи замыкания для смягчения торможения +- Софтовый лимит позиции по ERPM (дополнительно к аппаратному) +- VESC: max input voltage лимит (ослабление рекуперации при высоком напряжении) + +## Концевики +- Нижний: homing (нулевая точка отсчёта позиции) +- Верхний: аварийный стоп +- НЗ контакты, pull-up 10K к 3.3В +- RC-фильтр: 1К + 100нФ на входе GPIO ESP32 (τ = 0.1мс, подавление наводок) +- Debounce программный: 10-20мс +- Подключены напрямую к GPIO ESP32 (бинарный сигнал, помехозащита RC-фильтром достаточна) + +## Механика +- Рама: профиль 80×80×4мм, сталь 09Г2С, сварная +- Высота стоек ~1200мм, ширина между стойками ~340мм, глубина ~700мм +- Анкеры 4×M12 в бетон +- Направляющие: 2 вала D25мм, сталь 40Х хромированная, длина 900мм +- Линейные подшипники LM25UU ×4 на каретке +- Ход каретки: 650мм +- Каретка: масса 8кг (с грифом), крепление троса снизу через тензодатчик +- Компенсация веса каретки: противовес 8кг на тросе через ролик наверху (груз в стойке: стальной цилиндр D60×300мм) +- Трос: D4мм, сталь в полимерной оболочке, разрывная нагрузка 8000Н +- Путь троса: каретка → тензодатчик (inline) → вниз → ролик D60мм (подшипник 6201-2RS, поворот 90°) → горизонтально к барабану мотора → 3 витка → пружина-натяжитель +- Мотор: закреплён за ось внизу рамы, антивандальный кожух сталь 2мм +- Вводной щит 220В: на раме или рядом (DIN-рейка: автомат, УЗО, БП 48В, контактор НЗ, тормозной резистор) +- Электроника: IP54 бокс (VESC, DC-DC, Watchdog) внизу рамы / в щите +- Батарея: IP67 бокс +- Габариты: Ш×Г×В ≈ 800×700×1250мм + +## Режимы нагрузки +1. **Постоянная**: фиксированный ток, опц. виртуальная инерция (F = m_virtual × a) +2. **Эксцентрический**: разная нагрузка вверх/вниз (направление по ERPM) +3. **Аккомодационное**: F(x) = F_min + (F_max - F_min) × x / L +4. **Интервальный**: чередование нагрузок по повторениям +5. **Изокинетический**: постоянная скорость, VESC speed control +6. **Страховщик**: v_up < 0.05 м/с > 0.5с → снизить 30%; v_down > 0.7 м/с > 0.3с → аварийное торможение + +## BOM (оценка) +| Компонент | Стоимость | +|-----------|-----------| +| Waveshare ESP32-S3 LCD 3.5" | ~$20 | +| Flipsky 75100 Pro V2 | ~$90 | +| Blue Pill STM32F103 | ~$2 | +| SN65HVD230 ×2 | ~$2 | +| MPU6050 + HX711 + тензодатчик S-тип 200кг | ~$10 | +| 3× реле НЗ 40А / контактор НЗ | ~$15 | +| Watchdog 555 + обвязка | ~$2 | +| RC522 NFC | ~$3 | +| Концевики ×2 | ~$2 | +| DC-DC 48→5V | ~$5 | +| Тормозной резистор 100Вт + MOSFET | ~$5 | +| Батарея 48V 100-250Вт·ч | ~$100-150 | +| БП 48В от сети | ~$25 | +| Мотор M365 Pro (б/у) | ~$60 | +| Рама + направляющие + механика | ~$120 | +| Щит 220В (автомат + УЗО) | ~$20 | +| **ИТОГО** | **~$480-530** | + +## Файлы проекта +- `SPEC.md` — этот файл +- `CHANGELOG.md` — история решений +- `wiring.html` — схема подключения (модульная, CSS grid) +- (будущее) `firmware/` — прошивки ESP32, STM32 +- (будущее) `cad/` — чертежи барабана, каретки, рамы diff --git a/docs/wiring.html b/docs/wiring.html new file mode 100644 index 0000000..389f7e9 --- /dev/null +++ b/docs/wiring.html @@ -0,0 +1,508 @@ + + + + + +Схема подключения v4 — CAN Bus + + + + + + + +
+

Схема подключения v4 — CAN Bus архитектура

+

3 узла CAN · Waveshare ESP32-S3 · STM32F103 Blue Pill · Flipsky 75100 Pro V2 · 250 Кбит/с

+
+ + + + +
+
Силовая часть
+
+ + +
+
+
+ Питание +
+
+ Сеть 220В → щит (автомат + УЗО)
+ → БП 48В → батарея 48В 100-250Вт·ч
+ Батарея = буфер рекуперации + UPS
+ Заряд до 90% (буфер для рекуп.)
+ DC-DC 48→5V · LDO 3.3V на узлах +
+
+
+48V→ VESC BAT+
+
GND→ общая шина
+
5V→ ESP32, STM32
+
+
+ + +
+
+
+ Flipsky 75100 Pro V2 + CAN ID:10 +
+
+ VESC 6.0 · 100А · 84В макс · ~$90
+ FOC current control · BT встроен
+ Фазный EMI фильтр на плате +
+
+
BAT+/GND← батарея 48В
+
CAN_H/L↔ CAN шина
+
Ph A/B/C→ реле НЗ → мотор
+
HALL 5p← мотор Hall U/V/W
+
MOT TEMP← мотор NTC 10K
+
BRAKE RES→ тормозной резистор
+
+
+ + +
+
+
+ Реле НЗ ×3 (40А) +
+
+ 3× авто-реле НЗ, катушки параллельно
+ или 3-фазный контактор НЗ на DIN-рейку
+ Опц. резистор 0.1-0.3Ω в цепи КЗ +
+
+
Ph A/B/C вход← VESC фазы
+
Ph A/B/C выход→ мотор
+
Катушка← Watchdog OUT
+
+
+ + +
+
+
+ Мотор M365 Pro +
+
+ BLDC 350W · 15pp · Outrunner
+ Барабан D30мм · Кабестан 3 витка
+ 90 имп/об → ~1мм разрешение хода +
+
+
Ph A/B/C← реле НЗ
+
Hall U/V/W→ VESC HALL
+
NTC 10K→ VESC MOT TEMP
+
+
+ + +
+
+
+ Тормозной резистор +
+
+ 100-200Вт · 1-5Ом · через MOSFET
+ Сброс рекуперации при полной батарее
+ Flipsky поддерживает нативно
+ Расположение: щит (вентиляция!) +
+
+
BRAKE RES← VESC разъём
+
+
+ + +
+
+
+ Watchdog 50мс +
+
+ 555 / TPL5010 · таймаут 50мс
+ ESP32 шлёт импульсы ~100Гц
+ Сбой → реле отпускает → КЗ фаз
+ Торможение ~150кг при 0.5 м/с +
+
+
WDI← ESP32 GPIO
+
OUT→ катушка реле НЗ
+
+
+ +
+
+ + + + +
+
CAN Bus · 250 Кбит/с · витая пара
+
+
120Ω
+
+
ID:20 МАСТЕР
+
ESP32 Waveshare
+
+
+
ID:10
+
VESC Flipsky
+
+
+
ID:30 КАРЕТКА
+
STM32 Blue Pill
+
+
120Ω
+
+
4 провода к каретке: CAN_H · CAN_L · 5V · GND (гибкий шлейф вдоль направляющей)
+
+ + + + +
+
Управление (CAN узлы #2 и #3)
+
+ + +
+
+
+ Waveshare ESP32-S3 LCD 3.5" + CAN ID:20 · МАСТЕР +
+
+ ESP32-S3R8 · 240МГц · WiFi/BLE5 · ~$20
+ 3.5" IPS тачскрин 320×480 (ST7796 + FT6336)
+ QMI8658 IMU (борт) · PCF85063 RTC · AXP2101 PMU
+ TF-карта (лог тренировок) · TWAI (CAN) встроен
+ Расположение: верхняя перекладина, тачскрин к спортсмену +
+
+
TWAI TX/RX→ SN65HVD230 ($1) → CAN шина
+
GPIO WDG_OUT→ Watchdog WDI (~100Гц)
+
GPIO END_LO← концевик НИЗ (НЗ, RC 1К+100нФ)
+
GPIO END_HI← концевик ВЕРХ (НЗ, RC 1К+100нФ)
+
SPI↔ RC522 NFC (идентификация)
+
BLE 5↔ смартфон (беспроводное)
+
+
+ + +
+
+
+ STM32F103C8T6 Blue Pill + CAN ID:30 · КАРЕТКА +
+
+ Cortex-M3 72МГц · CAN 2.0B встроен · ~$2
+ Расположение: на каретке штанги (движется)
+ Кабель: 4 пров. гибкий шлейф к CAN шине +
+
+
CAN TX/RX→ SN65HVD230 ($1) → CAN шина
+
I2C SDA/SCL← MPU6050 (провод 3 см)
+
GPIO SCK/DT← HX711 (провод 3 см)
+
+
+
+ Локальные датчики (на каретке):
+ • MPU6050 — 6-осевой IMU · I2C · 200 Гц · ~$2
+ • HX711 + тензодатчик S-тип 200кг · GPIO · 80 Гц · ~$8
+ • Тензодатчик inline: каретка ↔ трос
+ → CAN фрейм: accel[3] + gyro[3] + force(Н) +
+
+
+ +
+
+ + + + +
+
Периферия (локально на ESP32)
+
+ +
+
+
+ Концевики ×2 +
+
+ Нижний (homing) + Верхний (аварийный)
+ НЗ · pull-up 10K · RC-фильтр 1К+100нФ
+ Debounce 10-20мс программный
+ GPIO ESP32 напрямую · ~$2 +
+
+ +
+
+
+ RC522 NFC +
+
+ SPI · идентификация пользователей
+ Профили нагрузок по карте
+ ~$3 +
+
+ +
+
+
+ Смартфон +
+
+ BLE 5 (встроен ESP32-S3)
+ Настройки · статистика · профили
+ Беспроводное подключение +
+
+ +
+
+
+ TF карта +
+
+ Встроена в Waveshare
+ Логирование тренировок
+ SDIO интерфейс +
+
+ +
+
+
+ Flipsky BT +
+
+ Встроен в 75100 Pro V2
+ VESC Tool · калибровка FOC
+ Настройка лимитов тока/температуры +
+
+ +
+
+ + + + +
+
CAN Data Flow
+
+
+ + + + + +
IDУзелДанныеЧастота
10Flipsky 75100→ шинаERPM, I_mot, T_mot, V_bat100 Гц
20ESP32 Waveshare→ VESCset_current(I_ref)100 Гц
30STM32 Blue Pill→ шинаaccel[3], gyro[3], F(Н)200 Гц
+
+ Загрузка шины: ~30% при 250 Кбит/с · запас для расширения +
+
+ +
+
+
+ Цепь безопасности (аппаратная) +
+
+ ESP32 GPIO ~100Гц → Watchdog 555 (50мс)
+ → катушка 3× реле НЗ 40А
+ → при сбое: фазы КЗ → электромагнитное торможение
+ → F = Kt²·v / (R·r²) ≈ 150 кг при 0.5 м/с

+ Дополнительно:
+ • Тормозной резистор (overvoltage protection)
+ • VESC max input voltage лимит
+ • Софтовый лимит позиции по ERPM
+ • Концевики (homing + аварийный стоп) +
+
+
+
+ + + + +
+
BOM — Оценка стоимости
+
+
+
+ Электроника +
+ + + + + + + + + + + + +
Waveshare ESP32-S3 LCD 3.5"~$20
Flipsky 75100 Pro V2~$90
Blue Pill STM32F103~$2
SN65HVD230 ×2~$2
MPU6050 + HX711 + тензодат. S-тип~$10
3× реле НЗ 40А / контактор~$15
Watchdog 555 + обвязка~$2
RC522 NFC + концевики ×2~$5
DC-DC 48→5V~$5
Тормозной резистор 100Вт~$5
Итого электроника~$156
+
+
+
+ Силовая + механика +
+ + + + + + + + +
Батарея 48V 100-250Вт·ч (буфер)~$100
БП 48В от сети 220В~$25
Щит 220В (автомат + УЗО)~$20
Мотор M365 Pro (б/у)~$60
Рама + направляющие + механика~$120
Итого сил. + мех.~$325
ОБЩИЙ ИТОГ≈ $480
+
+
+
+ + + + +
+
Питание
+
Фазы A/B/C
+
CAN Bus
+
Hall
+
Безопасность
+
SPI/данные
+
GPIO
+
Каретка
+
+ + +