![見出し画像](https://assets.st-note.com/production/uploads/images/141357984/rectangle_large_type_2_c572d2a4ff19d1fb6a11fc81004ce7f1.jpeg?width=800)
ゲームスタートボタンの製作
キーボードを隠蔽したい
パソコンで作るゲームはキーボード・マウスで操作するのが基本なのですが、操作性の点ではゲームパッドなど外付けの専用コントローラーの方が優れています。
自分で使う分にはコントローラーとキーボードが共存して問題ありませんが、イベントなどで他人にプレイしてもらうとき、キーボードが有効だと誤操作やいたずらを招くことがあり、できればキーボードは外したり隠したりしておきたいものです。
ゲームパッドのように複数のボタンが使えるものなら、そのうちの一つにスタート機能を割り当てられますが、特殊な自作のコントローラーの場合、スタートやリプレイの方法に工夫が必要になります。
私の「ネコリンピック」プロジェクトも、スペースキーをスタートボタンにしているためキーボードの隠蔽ができませんでした。
![](https://assets.st-note.com/img/1716298130055-er5CY809b0.jpg?width=800)
アーケードボタンを使いたい
外付けのボタンをスペースキーなどとして認識させる方法はあるのですが、どうせならゲーム感があり、子どもにも分かりやすくしたいので、ゲームセンターのアーケードゲーム機などに使われているアーケードボタンを使うことにしました。
アーケードボタンは大型のプラスチックのカラフルなボタンで、内蔵のLEDが点灯するエフェクトも使えます。国内だと結構高いのですがAliexpressだと260円程度で入手できます。
![](https://assets.st-note.com/img/1716298181066-bFqz3ozygA.jpg?width=800)
ボタンをPCにスペースキーと認識させる方法
外付けのアーケードボタンを、パソコン上のソフトがキーボードのスペースキーと同じものと認識してくれないと、スタートボタンにはなりません。
キーボードの状態をシリアルに変換する専用のチップもありますが、一部のマイコンボードにその機能を持ったものがあります。
Arduino micro/Leonaldo
まずはArduino。
Arduinoのうち、Arduino microとArduino LeonaldoはプログラムでArduinoをキーボード・マウスに見せかけることができます。
これらはプロセッサ(SoC)にATmega32U4を使っていますが、このSoCはUSBのインターフェースを内蔵していて、USB接続のキーボード・マウスのエミュレートができるためです。
キーボードエミュレートのプログラムはArduino microの標準のライブラリに含まれているので簡単に利用できます。
![](https://assets.st-note.com/img/1716303903311-j3QxndrCtj.png)
Arduino microの純正品は3500円程度しますが、pro microという名前で売られている互換品はAliexpressで500円程度で入手できます。
![](https://assets.st-note.com/img/1716302964794-NpDvUiotAS.png?width=800)
![](https://assets.st-note.com/img/1716303014647-7czs8P4iHt.png?width=800)
Arduino pro micro互換機を使ってアーケードボタンを作った例です。ボタンを押すと、ボタンとUSBで接続したパソコンはスペースキーが押されたと認識します。
![](https://assets.st-note.com/img/1716303179149-KAlhdMQM78.jpg?width=800)
この作例ではDIPスイッチ(pro microの左にある白い小さなスイッチが並んだもの)の組み合わせで、ボタンを押したときのキーコードがスペースキー以外の任意のものに設定できるようにしています。
micro:bitのBLEHID拡張機能
micro:bitもこの目的で使えます。
micro:bitの拡張機能にあるBLEHIDは、これを入れたmicro:bitがパソコンからはBluetooth接続のキーボードとマウスのように見えるという機能です。
公式機能ではありませんが、micro:bit財団に承認されたものなので、特に問題なく使用できます。
![](https://assets.st-note.com/img/1716304426551-ZabrIzERGU.png?width=800)
![](https://assets.st-note.com/img/1716304399378-WfSX3xGJ6V.png?width=800)
micro:bitに拡張機能を使ったプログラムを書きこんで、アーケードボタンを接続します。
![](https://assets.st-note.com/img/1716338489247-uA4F2nhCJw.png?width=800)
ボタンに内蔵されたLEDはP2に接続され、ボタンを押すと点灯する
![](https://assets.st-note.com/img/1716304877297-WyrnqHLr1h.jpg?width=800)
ケースの製作
ケースは適当な箱で良いのですが、ある程度数を用意する前提でMDFボードをレーザー加工機で切り出して、木工ボンドで組み立てました。
必要があれば何度でも同じ加工ができるのがデジタルファブリケーションの良いところです。
![](https://assets.st-note.com/img/1716305136278-upf5Gw9ofc.png?width=800)
![](https://assets.st-note.com/img/1716305224430-aIiVqehF05.jpg?width=800)
![](https://assets.st-note.com/img/1716305283309-1vhzYZexOc.jpg?width=800)
![](https://assets.st-note.com/img/1716305346238-PE7t7jqDYp.jpg?width=800)
以上
この記事が気に入ったらサポートをしてみませんか?