02 全体のシステム - drmus0715/trinitybullet GitHub Wiki
執筆者:ひろたけ(ソフト担当)
目次
システム構成
「Trinity Bullet」は、主に以下の4つのモジュールで構成されています。
- Panel
- Master(ESP32)
- Game Management
- WebServer
また、Network LineはWi-Fiを使用し、無線LANルータと以下の図のように接続されています。
インターフェイス
Network(Ethernet) Line
主に2つの用途に使用しています。
- Management PCとGame Consoleの接続
- Management PCをWebserverとして、結果・ランキングを配信する
※ソフトウェア内部のインターフェイスはソフトウェアページをご覧ください。
CAN Line
Panel同士はCAN(Controlled Area Network)で接続されています。CANにMaster/Slaveの概念はありませんが、Panel_master(ID:0)とPanel_slave(ID:1~25)が一対多の通信を行っています。
余談
Panel同士の接続に何のBusを使用するかかなり迷いました。LEDとSWの制御の兼ね合いで、PanelにMPUを乗せることは決定していました。そうなると必要なのは ①一対多の通信が可能であること ②双方向の通信が可能であること を兼ね備えたBusです。 無線(Wi-Fi, ZigBee, Bluetooth, 普通の無線モジュール)とかEthernetとかUARTとか接点とかI2CとかSPIとか色々考えましが、CANが最も良さそうでした。ESP32にもドライバ入ってるし…
CAN Busを採用した理由としては、一対多の通信が可能かつ方向の通信が可能。加えて差動なので長距離OKであること、接続台数が多くても問題ないこと、モジュールが安価であることが挙げられます。
Common Line
詳細はハードウェアで説明されますので、ここでは省略します。
流れ
大まかな流れは以下のとおりです。
- プレイヤー:エントリー用紙を書き、スタッフに渡す(3 エントリー)
- スタッフ:エントリー用紙に従いプレイヤー登録を行う(4 プレイヤー登録)
- GamePlayManagerからMasterへプレイヤー情報を送信(5 Player情報)
- 一番中心のパネルが点灯し、押したらゲームスタート(10 ID:13押下)
- 光ったパネルを踏む(12, 13)
- タイマが終了したらゲーム終了
- プレイ結果をWebServerに送信(15)