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 (SERVO i us), sem rádio.

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.

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