United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

リモート腕相撲 「Muscle Air」

開発背景

covid-19の流行で自粛を余儀なくされています。その中で、運動不足・コミュニケーション不足を解消するために開発しました。対面でしかできないと思われていた腕相撲を、MuscleAirを使うことで新たな腕相撲としてのMuscleAirを楽しんでもらいたいと思っています。また、一般的に腕相撲は筋肉がある人が勝つゲームですが、MuscleAirはいかに効率的に筋肉を使えるかが勝負の鍵となっています。

設計

全体構成

%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588_2021-07-03_18.46_.00_1_bdbbbc7e9548f27ead026abe38172ed5421ab5ed.png

バックエンド

login機能

  • 名前を入力
    • すでにユーザがいるならマッチ
    • 誰もユーザがいないなら部屋を作成

battle

  • 筋力センサの値を受け取り、相手の残り体力ゲージ(初期ゲージ50)を送る
    • 60秒以上続いているもしくは、どちらかのゲージが0になったら終了。

フロントエンド

まず自分の名前を決め、対戦相手を待つ。対戦相手が見つかり次第対戦が始まる。

Battle_668f6a18f3da35c14b871f99c3b4c6477ca018f8.jpg

対戦中の処理は以下のようになっている。

  • Raspberry Pi のPHPページから非同期で値を取得(HTTPのGETメソッド+正規表現)
  • 自分のセンサの値を0.5秒毎にサーバに送る
  • サーバから返答として体力ゲージ情報を受け取る
  • 勝敗判定をするとともに、UIに反映させる

 

電子工作・ケース作成

筋電センサ : MyoWare 筋電センサ 

ADコンバータ : MCP3208-CI/P 

を用いてハードウェア側を制作した。

1.Raspberry PiにApache サーバを立てる

2.MCP3208のch0に筋電センサを繋ぎ、Python3を利用して値を取る

3.Apacheサーバ上のPHPにアクセスするたびにsshで2のプログラムを実行し、データを取る

腕型のデバイスは、腕の絵を書き、blenderでstlファイルにする。

stlファイルを3Dスライサーでgcodeファイルを出力し、3Dプリンタでデバイスのケースを作成する。

IMG20210614103738_fba689221e767fd193322e76275e77b686bab928.jpg

 

今後の展望

以下のことを考えています。

  • CPU実装
  • ランキング実装
  • デバイス側での腕相撲の演出
Muscle_Air さんはまだ自己紹介を入力されていません...