照光式押ボタンの実装

2016.11.30

こちらの記事でも書かれている「MONEY COLOSSEUM」という格闘ゲームを作る際に、Arduinoを使ったボタンを作成しました。
格闘ゲームというからには、ボタンというのも

img_6003

こういう、電子工作でよく見かけるタクトスイッチではなく、

img_5999

こういう、いかにもゲームらしいボタンです。

必要な機材

1.ボタン×1

千石電商さんで取り扱われているOBSA-60UMを使用しました。
LED付きのボタンで、点灯・消灯をArduinoで操作できます。

2.ボタン用ハーネス×1

ボタン用のハーネスは、同じく千石電商さんで取り扱いのあるLHS-Hです。
ちなみに準備期間中に一度このハーネスが断線してしまったことがあります。
予備をしっかり持っておくと安心です。

3.Arduino Uno R3×1

秋月電子さんで買うと、Aオス-BオスのUSBケーブルも付けてくれます。

4.抵抗220Ω×1

よく使われる220Ωです。

5.ジャンパーワイヤ×9

至近距離用の小さいやつがあると使いやすいです。

6.ブレッドボード×1

秋月電子さんで売っているこちらのブレッドボードは、裏側に粘着面があるのが便利です。

ボタンの組み立て

ボタンはパーツが分かれた状態で売られているので、こちらをまず組み立てます。

img_5997

組み立てるといっても、パーツ同士をはめて回すだけです。
結構固いので、壊れるんじゃないかとドキドキしますが、ガシっとはめてしまって大丈夫です。

img_5998

ハーネスのはんだ付け

ハーネスの先端がビニールにくるまれているので、こちらを剥いで、ジャンパーワイヤ-とはんだ付けします。

ボタンにハーネスをとりつける

こちらも結構固いです。特に取り外す時は結構力を使います。
差し込むとこういう形になります。

img_5637

回路を組む

ボタンのハーネス差し込み口をよく見ると、上から順に
+ / – / NO / COM
と書かれています。
こちらを下記のとおりブレッドボードに差し込んでいきます。

led

Arduinoにスケッチを書き込む

今回作成したゲームでは、ボタンを押すタイミングは1回のみだったので、ボタンのステータスを管理して、ボタンを押すタイミングではLEDを点灯、それ以外の間はLEDを消灯するようにしました。
シリアルで「N」が送られて来たら、LEDを点灯させ、ボタンを受け付け状態にし、「0」の値を送ります。
シリアルで「F」が送られて来たら、LEDを消灯させ、ボタンからの信号は無視するようにします。
また、1回の押下でたくさんの値を送ってしまうことを避けるため、val_pastで前回の値を保持して判定を入れています。

まとめ

ちょっとしたアミューズメント機器を作る際には、こういうゲームらしいボタンはよく使われるものかと思います。
ボタン自体の実装は今後もこれを使いまわすことができそうです。