
自分だけの自爆ボタンを作ってみた
これは、2年前に同僚から「イベント展示用に自爆スイッチ作って欲しいんだよね」という所から始まりました。
その時に作ったのがコチラです。このボタンを押すと表示されたモデルが爆発するというコンテンツを作成しました。
そして展示したコンテンツは、こんな感じでビル爆発するというものした。
ゲームパッドやキーボードマウスと違って、専用ボタンで押すと何とも言えない高揚感に駆られますね…。
ちなみに…その時は時間がなかったので、既製品の組み合わせで済ませました。
ガワはコチラ(購入したものがなかったので、代用品です)
ボタンにある二股の部分にUSBスイッチケーブルを配線して、専用ソフトでどのボタンに割り当てるかを決めたら完成です。大きな工作も必要なく配線だけで出来ます。
ただ、一個あたり3000円します。しかもガワのボタン部分よりもUSB部分の方が高い!!!
もう少し数作ってみたいなぁと思って当時に同僚に話したところ、「DigisparkというマイコンチップとArduino使って、電子工作すれば…ボタンは安く出来るよ」と教えてもらい、いくつかDigisparkも貰いました。
AliExpressだと1個 150円前後で売っているみたいです。
あとはボタン型スイッチも適当にAmazonで20個で1000円位のを買います…
ここにスイッチの回路を電子工作で取り付けます。
はんだ付けをしてこんな感じになりました。
Arduino上では下記のようなコードになります。
// ※押している間、Unity側では常にInput.GetKeyDown/GetKeyUpが trueになります。
// 処理には、1フレーム分バッファして工夫するなどが必要です。
#include "DigiKeyboard.h"
const int LED_PIN = 0;
const int LED_PIN2 = 1;
const int BTN_PIN = 2;
void setup() {
// don't need to set anything up to use DigiKeyboard
pinMode(LED_PIN,OUTPUT);
pinMode(LED_PIN2,OUTPUT);
pinMode(BTN_PIN,INPUT);
DigiKeyboard.sendKeyStroke(0);
}
void loop() {
int val = 0;
val = digitalRead( BTN_PIN);
if( val != HIGH ){
DigiKeyboard.sendKeyStroke(KEY_ENTER);
digitalWrite(LED_PIN , HIGH);
digitalWrite(LED_PIN2 , HIGH);
}else{
digitalWrite(LED_PIN , LOW);
digitalWrite(LED_PIN2 , LOW);
DigiKeyboard.delay(8);
}
DigiKeyboard.delay(2);
}
そして100円均一で買ってきた木材を切り貼りして、ガワを作りました。
しかし木を切ったり貼ったりは大変でした……。
なので、3Dプリンタも勢いで買ったし、3Dプリンタでやるお!!
こんな感じでパーツが出来て…(天板の黒はガンプラマーカーで塗りました)
そして、完成!
これでボタン沢山つくれるようになりました!
コチラに3Dデータとともに置いておきます