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 enum मान (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 लाइब्रेरी के रूप में इंस्टॉल करें, फिर File → Examples → Yoshimitsu → Yoshimitsu_Default खोलें। एक बार फ्लैश करें; उसके बाद अपडेट git pull या नया रिलीज़ है — स्केच अछूता रहता है।

समस्या निवारण