Dave from DesignSpark
こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Dave from DesignSpark
Thank you! Your feedback has been received.
Dave from DesignSpark
There was a problem submitting your feedback, please try again later.
Dave from DesignSpark
こちらの記事の感想をお聞かせください。
開発背景
covid-19の流行で自粛を余儀なくされています。その中で、運動不足・コミュニケーション不足を解消するために開発しました。対面でしかできないと思われていた腕相撲を、MuscleAirを使うことで新たな腕相撲としてのMuscleAirを楽しんでもらいたいと思っています。また、一般的に腕相撲は筋肉がある人が勝つゲームですが、MuscleAirはいかに効率的に筋肉を使えるかが勝負の鍵となっています。
設計
全体構成
バックエンド
login機能
- 名前を入力
- すでにユーザがいるならマッチ
- 誰もユーザがいないなら部屋を作成
battle
- 筋力センサの値を受け取り、相手の残り体力ゲージ(初期ゲージ50)を送る
- 60秒以上続いているもしくは、どちらかのゲージが0になったら終了。
フロントエンド
まず自分の名前を決め、対戦相手を待つ。対戦相手が見つかり次第対戦が始まる。
対戦中の処理は以下のようになっている。
- 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プリンタでデバイスのケースを作成する。
今後の展望
以下のことを考えています。
- CPU実装
- ランキング実装
- デバイス側での腕相撲の演出