Picasso Docs

仕様書


1. 概要

本プロジェクトは、展示用のシステムです。
ユーザは描画や操作を通じてゲームに参加し、ペンプロッタが結果を描画します。

  • 展示環境向けのローカル操作
  • ユーザ操作とハード制御を連動

2. 機器構成

  • サーバ: Raspberry Pi(UI 表示・バックエンド制御)
  • プロッタ制御: Arduino Uno + Grbl
  • ロール紙送り制御: Arduino
  • 入力: Web カメラ(ユーザの描画を撮影)

3. ハード設計

  • ロールペーパーを自動送りし、紙をスライド
  • Grbl 対応ペンプロッタで文字やイラストを描画
  • Web カメラによる撮影でゲーム履歴を取得

4. 実行環境

  • 展示時はローカルホストでサーバを起動
  • Raspberry Pi にディスプレイ、マウス、カメラを接続

5. 技術スタック

5.1 フロントエンド

  • React(UI 構築・ボタン表示)
  • Vite(ビルドツール)

5.2 バックエンド

  • Node.js + Express(API サーバ)

6. UI 構成

6.1 初期画面

初期画面
├── ゲームスタート
│   ├── 先手
│   └── 後手
└── 過去の履歴
    └── サムネイル表示(選択するとそのゲームの履歴を確認可能)

6.2 ゲーム画面

  • 中央: キャラクター
  • 下部: 操作用ボタン(描画・送信等)
  • 上部: 過去のしりとり履歴
    • 写真+キャプションで単語表示
    • 直前の単語はネタバレ防止のため ?? 表示(フロントエンド制御)

7. 操作フロー(簡易)

  1. ユーザが先手/後手を選択
  2. ゲーム開始
  3. 描画
  4. 「送信」ボタン押下 → 撮影 & 履歴更新
  5. AIの描画 → プロッタで描画
  6. 履歴表示・次ターン開始
  7. 直前単語は ?? 表示、ゲーム終了まで繰り返し

8. 補足

  • UIは直感的操作を重視
  • ハードウェア制御とフロントUIの同期が重要