YOSHIMITSU · Referência da API
O Shinobi Hermético como biblioteca: um sketch descontraído, dois alvos, seis posturas e a consola protegida por 極光 que administra o trono.
Arquitetura
YOSHIMITSU é uma biblioteca com um sketch fino por cima. Todo o núcleo vive em src/Yoshimitsu.h; cada padrão vive em src/Yoshimitsu_Loadout.h como valores _DEFAULT (pinos, tempos, níveis de portões). O sketch — yoshimitsu.ino ou a cópia examples/Yoshimitsu_Default/ — guarda apenas a sua* configuração e as substituições que definir antes do include. Atualize a biblioteca sem voltar a mexer no seu sketch.
A deteção de alvo é automática: ARDUINO_ARCH_RP2040 escolhe o caminho RP2040-Tiny (Servo.h, troca de postura por toques em RESET), ARDUINO_ARCH_ESP32/ARDUINO_ARCH_ESP32S3 escolhe o caminho ESP32-S3 (ESP32Servo.h, USB nativo). Qualquer outra coisa falha na compilação com um #error claro.
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
As Seis Posturas
Cada postura é um valor do enum Stance (0–5) escolhido em tempo real — por comando USB, pelo botão GPIO0 (ESP32-S3) ou por toques em RESET (RP2040-Tiny).
| Postura | Função |
|---|---|
KINCHO
|
A parada — conversor CRSF→PWM; os canais de rádio tornam-se microssegundos de servo. |
MANJI_DRAGONFLY
|
A levitação — conversor mais o PID do giroscópio Zephyrus local na crista. |
FLEA
|
O impulso — jig de ciclo de energia que leva o recetor ao bootloader e depois a MEDITATION. |
MEDITATION
|
A esponja — flasher de bolso; o USB↔UART é uma ponte transparente pura para o esptool. |
NSS
|
A bancada sem espada — acionamento direto do servo ( |
BACK_TURNED
|
O espelho — repouso enganador; o eco UART nunca olha para trás. |
Portões de Compilação
Tudo o que é opcional é removido de forma limpa ao desativar — sem bytes mortos, sem referências soltas. Substitua qualquer um destes no seu sketch antes do include.
JIGUANG— o narrador / administrador (1= omnipresente,0= zero bytes de 極光 compilados).YOSHI_GYRO— o caminho do giroscópio Zephyrus MPU6050.YOSHI_RGB— a aurora WS2812B integrada (a cor sempre acesa da postura).JIGUANG_PROMPT— a string do prompt da consola de administração (padrão"極光"); renomeie-a no sketch.BOARD_CUSTOM— forneça os seus próprios pinosCUSTOM_RP2040_*_DEFAULT/CUSTOM_S3_*_DEFAULT.
API da Consola
Os comandos de postura ficam abertos: KINCHO, MANJI, FLEA, MEDITATION, NSS, BACK, POSE n, mais STATUS, SERVO i us e HELP. Os comandos de administrador estão protegidos atrás do prompt: escreva primeiro 極光 e depois DOC, SETUP, JIGUANG, MUTE, CRSF, SCORE, ELRS, LEGEND, BRIDGE, ADMIN ou MUSHIN.
極光 DOC imprime o catálogo de cheatcodes; 極光 SETUP imprime o assistente de meditação (postura, nível de voz, estado MUSHIN, energia do recetor). Uma linha sem prompt que atinja um comando protegido responde "o trono está guardado" e regressa.
MUSHIN 無心 — o protocolo sem-mente
A ponte de memória muscular (espírito→músculo) fala uma frame de 4 campos pelos mesmos dois fios do flasher. Arranca armada, persistida em flash.
[0x9B][len][type][payload][xor]
0x01 INTENT n × uint16 µs per servo
0x02 ANNOUNCE 1 Hz keepalive
0x03 TELEMETRY gyro rate + correction
Implementação
Instale a pasta sketches/yoshimitsu como biblioteca Arduino e abra Ficheiro → Exemplos → Yoshimitsu → Yoshimitsu_Default. Grave uma vez; depois, as atualizações são git pull ou uma nova versão — o sketch permanece intocado.
Resolução de Problemas
YOSHIMITSU targets ESP32-S3 or RP2040 only— a sua placa não é nenhuma delas; verifique Ferramentas → Placa ou definaBOARD_CUSTOM.Um comando responde "o trono está guardado" — é um comando de administrador; escreva primeiro
極光.O esptool expira em MEDITATION — confirme que os pinos UART da ponte (
BRIDGE_RX_PIN/BRIDGE_TX_PIN) correspondem à sua cablagem.