YOSHIMITSU · API 参考

作为库的赫尔墨斯忍者:一个轻松的草图、两个目标、六种姿态,以及守护王座的極光门控控制台。

架构

YOSHIMITSU 是一个上面顶着一层薄草图的库。整个核心位于 src/Yoshimitsu.h;每个默认值都以 _DEFAULT 值(引脚、时序、门控级别)的形式位于 src/Yoshimitsu_Loadout.h。草图(yoshimitsu.inoexamples/Yoshimitsu_Default/ 副本)只保存你的*配置以及你在 include 之前定义的所有覆盖项。无需重动草图即可更新库。

目标检测是自动的:ARDUINO_ARCH_RP2040 选择 RP2040-Tiny 路径(Servo.h、通过 RESET 轻点切换姿态),ARDUINO_ARCH_ESP32/ARDUINO_ARCH_ESP32S3 选择 ESP32-S3 路径(ESP32Servo.h、原生 USB)。其余情况都会在编译时以明确的 #error 失败。

graph TB
  SKETCH["yoshimitsu.ino
the relaxed sketch — config only"] LOADOUT["Yoshimitsu_Loadout.h
the starting loadout · *_DEFAULT"] CORE["src/Yoshimitsu.h
the whole core"] STANCES["six stances
KINCHO · MANJI · FLEA
MEDITATION · NSS · BACK"] CONSOLE["USB-serial console
極光-gated admin"] CRSF["CRSF RX"] BRIDGE["MUSHIN bridge
無心 no-mind protocol"] PWM["servo PWM
wing L/R · crest"] SKETCH --> CORE LOADOUT --> CORE CRSF --> CORE BRIDGE --> CORE CONSOLE --> CORE CORE --> STANCES STANCES --> PWM

六种姿态

每种姿态都是一个 Stance 枚举值(0–5),在运行时选定——通过 USB 命令、GPIO0 按钮(ESP32-S3)或 RESET 轻点(RP2040-Tiny)。

姿态 职责
KINCHO

格挡——CRSF→PWM 转换器;无线电信道变成舵机微秒。

MANJI_DRAGONFLY

悬浮——转换器加上嵴冠上的本地 Zephyrus 陀螺仪 PID。

FLEA

抬升——电源循环夹具,让接收机进入引导加载程序,然后进入 MEDITATION。

MEDITATION

海绵头——口袋刷写器;USB↔UART 是 esptool 的纯透明桥接。

NSS

无剑台——直接驱动舵机(SERVO i us),无需无线电。

BACK_TURNED

镜子——欺骗性的待机;UART 回声从不回头。

编译时门控

所有可选内容在禁用时都会被干净地编译出去——没有死字节,没有悬空引用。可在 include 之前的草图中覆盖其中任意一项。

控制台 API

姿态命令保持开放:KINCHOMANJIFLEAMEDITATIONNSSBACKPOSE n,以及 STATUSSERVO i usHELP。管理命令被锁在提示符之后:先输入 極光,然后输入 DOCSETUPJIGUANGMUTECRSFSCOREELRSLEGENDBRIDGEADMINMUSHIN

極光 DOC 打印秘籍目录;極光 SETUP 打印冥想向导(姿态、声音级别、MUSHIN 状态、接收机电源)。没有提示符的行触碰到受保护命令时,会回答“王座受到守护”并返回。

MUSHIN 無心 — 无心协议

肌肉记忆桥(灵→肌肉)通过刷写器所用的同两根线传输 4 字段帧。开机即武装,并持久化到闪存。

[0x9B][len][type][payload][xor]
  0x01  INTENT    n × uint16 µs per servo
  0x02  ANNOUNCE  1 Hz keepalive
  0x03  TELEMETRY gyro rate + correction

部署

sketches/yoshimitsu 文件夹安装为 Arduino 库,然后打开 文件 → 示例 → Yoshimitsu → Yoshimitsu_Default。刷写一次后,后续更新只需 git pull 或新版本——草图保持不变。

故障排除