🟥 OMOIKANE 通信プロトコル仕様書 v3.0(完成版)
1. 概要
本仕様書は、PC(GUI)と Arduino UNO(AI コア)が Tic-Tac-Toe の対戦および学習データ管理を行うための 双方向テキストプロトコルを定義する。
目的は以下の 3 点。
-
堅牢な状態同期
-
遊び心のある AI 応答
-
拡張性のあるコマンド体系
🟥 2. 通信方式
-
ASCII テキスト
-
改行
\n区切り -
PC → UNO:コマンド
-
UNO → PC:応答・状態通知
🟥 3. PC → UNO コマンド一覧
| コマンド | 意味 | UNO の返答 |
|---|---|---|
0〜8 |
プレイヤーの手 | P:x → C:y → 勝敗 → READY |
r |
ゲームリセット | TIC-TAC-TOE READY |
c |
EEPROM 初期化 | MEMORY PURGED → TIC-TAC-TOE READY |
AYA |
生存確認(Are You Alive) | I AM ALIVE |
AUO |
状態確認(Are yoU OK) | STATUS:xxxx |
v |
バージョン確認 | VERSION:x.x |
🟥 4. UNO → PC 応答一覧(AI 風味)
4.1 起動直後
コード
STATS:a,b,c,d
WAKE UP... SYSTEM ONLINE
TIC-TAC-TOE READY
4.2 プレイヤーの手
コード
P:x
4.3 AI の手
コード
C:y
4.4 勝敗
コード
YOU WIN
AI WIN
DRAW
STATUS:MISSION_COMPLETE
TIC-TAC-TOE READY
4.5 EEPROM 初期化
コード
MEMORY PURGED
TIC-TAC-TOE READY
🟥 5. 状態確認(AUO)応答一覧
| 状態 | 返答 |
|---|---|
| 起動直後 | STATUS:WAKE_UP |
| READY | STATUS:READY |
| プレイヤー待ち | STATUS:WAITING_FOR_PLAYER |
| AI 思考中 | STATUS:THINKING_NOW |
| 勝敗後 | STATUS:MISSION_COMPLETE |
| EEPROM 初期化直後 | STATUS:CLEARED |
| 異常検出 | STATUS:ERROR_STATE |
🟥 6. 生存確認(AYA)
コード
I AM ALIVE
UNO が応答すれば生存確認完了。
🟥 7. 状態遷移図(v3.0)
コード
[BOOT]
↓ STATS
[WAKE_UP]
↓ READY
[WAITING_FOR_PLAYER] ← プレイヤーの手
↓
[THINKING_NOW] ← AI の手
↓
[MISSION_COMPLETE]
↓ resetBoard()
[READY]
🟥 8. 異常時の動作
UNO が内部エラーを検出した場合:
コード
STATUS:ERROR_STATE
PC 側は:
-
AYAで生存確認 -
AUOで状態確認 -
必要なら
rまたはcを送信
🟥 9. プロトコルの設計思想
-
堅牢性:READY を必ず返すことで同期ズレを防ぐ
-
遊び心:AI らしい応答で世界観を強化
-
拡張性:AUO/AYA により PC 側が UNO を見失わない
-
明確性:状態名は誤解を招かないものを採用(PANIC は廃止)