02 全体のシステム - drmus0715/trinitybullet GitHub Wiki

執筆者:ひろたけ(ソフト担当)

目次

システム構成

「Trinity Bullet」は、主に以下の4つのモジュールで構成されています。

  1. Panel
  2. Master(ESP32)
  3. Game Management
  4. WebServer

また、Network LineはWi-Fiを使用し、無線LANルータと以下の図のように接続されています。

インターフェイス

Network(Ethernet) Line

主に2つの用途に使用しています。

  1. Management PCとGame Consoleの接続
  2. 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

詳細はハードウェアで説明されますので、ここでは省略します。

流れ

大まかな流れは以下のとおりです。

  1. プレイヤー:エントリー用紙を書き、スタッフに渡す(3 エントリー)
  2. スタッフ:エントリー用紙に従いプレイヤー登録を行う(4 プレイヤー登録)
  3. GamePlayManagerからMasterへプレイヤー情報を送信(5 Player情報)
  4. 一番中心のパネルが点灯し、押したらゲームスタート(10 ID:13押下)
  5. 光ったパネルを踏む(12, 13)
  6. タイマが終了したらゲーム終了
  7. プレイ結果をWebServerに送信(15)