YOSHIMITSU · API 참조

라이브러리로서의 헤르메틱 시노비: 가벼운 스케치 하나, 타깃 둘, 스탠스 여섯, 그리고 왕좌를 다스리는 極光 게이트 콘솔.

아키텍처

YOSHIMITSU는 그 위에 얇은 스케치를 얹은 라이브러리입니다. 핵심 전체는 src/Yoshimitsu.h에, 모든 기본값은 src/Yoshimitsu_Loadout.h_DEFAULT 값(핀·타이밍·게이트 레벨)으로 살고 있습니다. 스케치(yoshimitsu.ino 또는 examples/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

스탠스 명령은 열려 있습니다: KINCHO, MANJI, FLEA, MEDITATION, NSS, BACK, POSE n, 그리고 STATUS, SERVO i us, HELP. 관리자 명령은 프롬프트 뒤에 잠겨 있습니다: 먼저 極光을 입력한 다음 DOC, SETUP, JIGUANG, MUTE, CRSF, SCORE, ELRS, LEGEND, BRIDGE, ADMIN 또는 MUSHIN을 입력하세요.

極光 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 또는 새 릴리스이며 스케치는 그대로 남습니다.

문제 해결