九州・福岡・東京ときどきIoT

21年間のはてなダイアリー&アメブロからの避難所

バイブプログラミング チープデバイスとの独自プロトコル。

🟥 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 は廃止)