撃つ!避ける!倒す!FPSゲームのようなハイテク光線銃システムを作ってみました。完成品とモノづくりのポイントを紹介します。
<投稿者:Nii @neet2121>
本職は機械エンジニアですが、仕事の合間にプロジェクト的モノづくりをやっています。今は電子サバゲ―システムを作っています。
なぜ作ったか
海外製の光線銃を使って遊ぶイベント(https://k-7.jp/)があり、スポーツライクでかなり楽しめました。我が家でも水鉄砲遊びがブームだったので、家族で遊べる光線銃が欲しくなりました。
コンセプトは3つです。
- 安全で痛くない銃撃戦
- 基本要素の「撃つ」「当たる」「当てられる」がしっかり楽しめる
- 3歳児が遊べる大きさ、手軽さ、そして堅牢さ
何を作ったか
完成品の動画です。
スマートグラスはハンドガンと無線通信(BLE)で同期。 pic.twitter.com/giBr5PDbGs
— Nii (@neet2121) 2020年1月7日
赤外線ハンドガンのトリガーを引くと、銃口から赤外線信号が照射されます。赤外線センサで信号を受信すると、被弾判定されるシステムです。スマートグラスユニットを追加することで、まさにFPSゲームのように対戦できます。
M5Stack拡張可能なマイクロ制御モジュールWiFi Bluetooth ESP32開発キットArduino LCD用2インチLCD ESP-32内蔵ESP8266 (1セット)
- 出版社/メーカー: M5Stack
- メディア:
赤外線通信の確立
技術的なポイントのひとつが、赤外線通信です。赤外線LEDを使い、凸レンズで集光する方法を採用しました。M5Stackが赤外線LEDを制御し、受光モジュールで信号を読み取ります。
ハードの開発では、凸レンズの入手が課題でした。100円ショップでレンズを買い集め、焦点距離を比較したところ、ダイソーの「とげ抜きルーペ」がいい感じでした。
レンズの選定手法はこちら
次はプログラムの実装です。光線銃システムの特性上、次の課題がありました。
- 敵味方の識別が可能な"データ"の送信が必要
- 一方で、手ブレやターゲットの動きでも通信失敗しないように、短時間で通信を完了する必要がある
- データ送信と同時に射撃演出(LCD、効果音、テープLED)を行ため、送信処理落ち対策が必要
- 射撃演出中でもデータ受信(被弾)ができる必要あり
光線銃に適した赤外線通信フォーマットを策定し、5msecで通信完了できるようにしました。
M5StackはCPUがデュアルコアになっています。タスクをそれぞれのコアに割り振ることで、安定して赤外線通信を行えるようになりました。
プログラムの実装方法はこちら
全方向赤外線センサの開発
受光モジュールは受信できる角度に制限があります。受光モジュールに自作の反射鏡を組み合わせ、全方位から受信できるようにしました。
反射鏡の製作過程の概要です。
- 反射鏡の形状をExcelで解析して求める
- Fusion360に座標を読み込ませ、型をモデリングする
- 3Dプリンタ(Adventurer3)で型を出力する
- バキュームフォームで型形状をミラー塩ビ板に写し取る
反射鏡の計算手法や、製作過程の詳細はこちら
組み合わせるとこんな感じです。
テープLEDによる演出
初号機ではテープLEDが無く、相手に当たったかどうか分かりにくい問題がありました。「撃つ」「当たる」「当てられる」が分かりやすく楽しめるように、テープLEDを追加しました。動画でご覧ください。
今年作ったもの④ 赤外線ハンドガン試作2号機。プログラムを修正して動作は満足。残りは通信距離を伸ばすハードの修正。2020年は10台ぐらい作って、ゲーム実投入を目指す。 pic.twitter.com/Lt6vssN6mM
— Nii (@neet2121) 2019年12月31日
真正面からでもLEDが見え、かつ射撃時に自分は眩しくない形状を狙っています。
外装設計と部品の配置
工具のような機能美デザインを目指しました。今回3Dプリンタを購入したのですが、一部はMDF素材を使用しています。デザイン上の理由もありますが、モノコックボディのように高い剛性が得られる利点があります。
初号機のフレームは軽量化を狙って薄板形状にしたところ、ABSフィラメントの特性に由来する熱変形に苦しめられました。2号機はその反省から、できるだけ肉厚を増やし、スライサーの3Dインフィル機能で中空構造にすることで、熱変形の防止と軽量化を両立しています。また、3Dプリンタ出力部品で細かい部品を挟み込むことで、マウント用の部品点数を減らしています。
ABSフィラメントの熱変形対策はこちら
Anker PowerCore+ mini (3350mAh 超小型モバイルバッテリー) 【PSE認証済 / PowerIQ搭載】iPhone&Android対応(ブラック)
- 出版社/メーカー: Anker
- メディア: -
長時間の運用とバッテリー交換が簡単にできることを狙って、モバイルバッテリー(Anker PowerCore+ mini)を搭載しました。マガジンのように着脱でき、着脱の感触も良い感じです。グリップ内に収めることで重さを感じにくいように工夫しています。動画はこちら。
やっぱり、バッテリー抜き差しだけで楽しい pic.twitter.com/7qLFMdSo1J
— Nii (@neet2121) 2019年12月19日
赤外線センサとテープLEDの透明なケースは、バキュームフォームで作っています。
スマートグラスユニットの製作
M5StickCをスマートグラス化する方法は、以前の記事にまとめています。
電子サバゲーシステムに適用する際に、次の課題がありました。
- 眼鏡をかけた状態でも使用できる
- 着脱が簡単
- 重量バランスが良く、しっかり頭にホールドされ、激しい運動でも落ちない
- リフレクタの位置調整が手軽にできる
そこで、帽子のツバ部分に洗濯ばさみのようにスマートグラスを取り付けることにしました。
重量バランスを考慮し、後頭部側にモバイルバッテリーを取り付けています。
スマートグラスとハンドガンはBLE(Bluetooth Low Enegy)で同期しています。スマートグラスユニットについては、とりあえず動くところまでできました。もう少し堅牢さの面で改善したいです。
子どもと遊んでみた
3歳児と遊んでみました。めっちゃ楽しい!
試作2号機、2台目動いたので、子供と遊んでみた!#M5stack #Adventurer3 pic.twitter.com/1GgKwTsCaU
— Nii (@neet2121) 2020年1月18日
まとめ
3つのコンセプトから出発し、いくつかの要素開発を経て、電子サバゲ―システムとして組み上げることができました。どうすれば実現できるか?を技術要素にブレイクダウンし、丁寧に解決していくことが大切だと感じました。モノづくり系のイベントで実演予定なので、ぜひ手に取って遊んでみてください!
<投稿者:Nii @neet2121>
本職は機械エンジニアですが、仕事の合間にプロジェクト的モノづくりをやっています。今は電子サバゲ―システムを作っています。