格安にbeatmaniaIIDX INFINITASで使える専コン作り Part1
前置き
beatmaniaIIDXは家庭用ゲームとしてINFINITASというバージョンがあります。
しかし純正のコントローラーって凄まじく高くて手がでないんですよね。(そもそも今売られてないし転売品も高い)
中国産のコントローラーでも最近設定次第で対応できたり、昔販売したコントローラーを変換器を介して使ったりとプレイ方法はいくつか存在します。
しかし前者は権利的な問題でたまに来なかったなどの話を耳にします。
変換器を介した場合はjoytokeyなどを用いて反応するようにしなくてはならず遅延もあり、同時押しの判定も大きくブレてまともにプレーするのはかなり厳しいと言えるでしょう。(もともと家にあるディスプレイのせいで判定どこかイマイチわからないんですけどね)
いろいろ調べてみると専コン作りで調べると昔のコントローラーの基板を再利用したり、もっとローコストにするために100円位で中古ショップなどにたまにおいている5鍵盤のものを改造して使用している方もいますが結局INFINITASで動かそうとするとjoytokeyなどを使用しないといけません。
ということで今回はそれらの様に基板の再利用は行わず、Arduino leonardoを用いてjoytokeyなどを介さずに出来る限り安く作っていくことにしました。
どこを安くすべきなのか
まずはじめに専コンを作る上で一番高くなってしまう部分はどこなのかというと基板や皿(ここは凝ると高いですがここでは安く作ることを最初から念頭においているためそんなにかからない)ではなくてボタンです。
今回は安く作ることが前提なのでこれを使うことはしません。他にも安いボタンがそれも今回は使いません。
少し前に静電容量センサを使った専コンを作っていた人がいたのでそのアイデアをお借りする形で更に省コストに抑えるべくダンボールとアルミホイルで代用します(アルミホイル単体でも良かったですがボタンの位置を見失いやすかったため変更)。
これによりボタンひとつに1円もかかるかかからないかくらいの値段になります。
先に申しておきますと静電容量センサというのは触れただけで反応してしまいますのでボタンを押したいんだという人はこちらをおすすめしますが、私は使ったことがないです。またマイクロスイッチももちろん使わないのでその辺を使いたい方は別の機会にまた別のコントローラーをつくろうとおもうのでその時に紹介したいと思います。
材料
最初に大まかな材料を記載しておきます
- Arduino leonardo 1台
- ATTiny13A 7つ
- アルミホイル 少量
- ダンボール ある程度
- ロータリーエンコーダ 1つ
- 木材 ある程度(筆者は1000円分くらい)
- ジャンパ線、導線 ある程度(あったものを使用したためかかってない)
- ブレッドボード、ユニバーサル基板(これもあったものを使用。はんだ付けしたい気分にならなかったのでブレッドボードに刺さったまま動作確認していますが、常時使うなら最後にはんだづけするのをおすすめします)
- AVR ISP mkⅡ(あったものを使用。ない場合は2000円位余計にかかる)
- 接着剤、両面テープ
細かくは計算していないですが4000~5000円程度でできるのではないでしょうか。ものが揃っていない場合でも多分8000円にはおさまるとおもいます。
環境導入
さあつくるぞ!という時の最初の壁です。というかここを乗り切るとほぼ終わりです。
Arduino leonardoとATtiny13Aを書き込むための環境を整えます。
そもそもなにをこの2つのマイコンにやらせるのかを説明していないので説明します。
まずATtiny13Aは静電容量センサとして働いてもらい、Arduino leonardoはATtiny13Aやロータリーエンコーダから合図をもらい反応していたかしていないか等をみてPCに出力するために働いてもらいます。
まずArduinoの開発環境を整えましょう。
今回開発に用いたPCではUbuntu16.04を使用していますが、おそらくwindowsでも可能だと思われます。ただ調べていく中で注意しなくてはならないことがいくつかあるのでその都度、紹介していきます。
まずこちらから統合開発環境であるArduino IDEをダウンロードします。自分のOSにあったものを選択して下さい。
windowsの場合はインストーラーをダウンロードして実行するとよいと思います。
Ubuntuの場合は.tar.xzのような形式のものがダウンロードできると思いますのでそちらを解凍します。
その後使用しているUbuntuの中にJavaが動く環境がない場合はターミナル上で
sudo apt-get install openjdk-8-jre
と入力してもらえば多分導入できます。
その後先ほど解凍したファイルの中に移動しターミナル上で
sudo ./arduino
と入力すると無事起動すると思います。
普通にダブルクリックでも起動しますがマイコン(今回使用するのはArduino leonardoとATTiny13A)に書き込む際に権限が無いため恐らく書き込めません。
ただし、このままだとATTiny13Aに書き込めないため書き込む準備を行います。
ATTiny13Aに書き込むための準備は大変ですがこちらで紹介されているので割愛させてもらいます。
Arduino IDE で ATtiny 他の開発 | Make | kosakalab
Arduino IDE に ATtiny10/13 の開発環境を組み込む | Make | kosakalab
ちなみに今回ATtiny13Aを用いましたがこの環境導入は明らかにATtiny85などを使ったほうが楽なので自身がない方はそちらをおすすめします。書き込むコードに変更点はないです。
また自分では確認していませんがAVRISP mkⅡがなくてもArduinoからAVRマイコンに書き込む方法もあるみたいですが、自分では試していないためわかりません。
あとwindows環境ではatmel studioというAVRマイコンに書き込むための統合開発環境がありますが、調べていたところドライバが共存できないためArduino IDEと平行して使うと書き込む際にエラーがでたりするみたいです。(ここも未確認)
ひとまず…
ここまでにして次回に静電容量センサの作り方やロータリーエンコーダの作り方、出力の仕方など書いてていきたいと思います
ありがとうございました。