見出し画像

Arduinoでポップンコントローラーを作る

インフィニタスのDP環境ギターヒーローの専コンをベースにギターフリークス用のコントローラーへ改造とやってきて、次はポップンのコントローラーを作る試みだ。DIY精神は止まることはない
REVIVE USBを使おうかとも思ったが、あちらは6個までの同時押しにしか対応していないと聞いたので今回もArduino互換機のPro Microを使用する

・ボタンを調達する

いつものAliExpress。買った当時は送料込みで4,583円。ポップンボタンは総じて送料が高く、自分が調べたところこれが一番安いように思えた
10個入りで各色2個ずつなので赤ボタンが1個余る。9個買えば1個余分に作れることになる。そんな人が居るかは知らないが
この記事を書いているときはひどく円安の相場になっているので、相場が落ち着けばもう少し安く買えるかもしれない
※注意:自身でAliExpress上を探して購入する場合は大きさに注意すること。似た写真で60mmボタンの商品もある。値段で即決する前に商品概要の熟読を忘れずに※

10日ほどで届く

IIDX用のボタンを買ったときと同じく、バネが非常に重い。こっちはポップン用にさらに重いものが使われている。しかしスイッチはIIDX用のボタンに付属してきたスイッチと同じ重さのようで、バネ抜きするとちょうどいい重さになる。他に使い道も無い(=壊れても問題無い)のでしばらくはバネ抜きで使う

・土台の作成

もはや恒例となった土台の作成。今回は丸型に切るので少々難しい
まずは型紙から作成。ギターヒーローコンを買った駿河屋の段ボールがあるのでそれを使う

大きめの段ボールは何かと役に立つ

質の悪いハサミ等で切断すると紙屑が散らばるので鋭利なカッターなどを用いる。円形にも切るわけだし
ボタン間の寸法さえ分かれば全体の大きさは大味でいい。下図は筆者の作った型紙

730mm×330mm。この写真だけ需要ありそう
はめ込んでズレてないか確認

ボタン直径88mmはAliExpressの画像参照。正確には87.8mmだがハマらないと困るので88mmでいい
三和ボタンのほうは買っていないので分からない。他のボタンを使う場合は上記の寸法は過信しないこと(三和ボタンや芝ボタンの寸法の情報求む)

商品サイトの寸法を無断転載

そして本番の木材加工作業。なんせポップンミュージックは腕でプレイするゲームなのでIIDXとは比較にならないほどコントローラーへの負荷が大きい。今回はより強固な材料を使う。カッターで切れる程度のMDF材でもいいがプレイ中に割れただの直すだのとなれば余計な手間がかかるため、12ミリ合板を使用する。加工は面倒になるが仕方ない

ドリルで円形に穴を開けていく。自在錐などがあれば楽なんだろうけど

この板は弟が使った余りの端材なので0円

ここからは気合のやすりがけ作業

同時に板を載せるための枠を作る。今回は耐久性重視でネジ止めするので厚めの材木を使う

出来上がったものがこちら

結果使ったのは2*4の材木。180cm×2で約1,300円。実際に使ったのは2メートルくらい(73*2+33*2-3.8*4)。手元のネジとドリルがちょうどしなかったのでL型金具で固定。さすがにこれで壊れることは無いと思いたい

次は板の整形作業。ボタンがハマるまで削りながら調整する。仕上げやバリ取り程度のヤスリでは歯が立たないので、木工用の荒目のものでゴリゴリいく

ダイソーの木工用ヤスリがコスパ良すぎる

まぁまぁめんどくさいので次からは素直に自在錐を買おうと思う
ボタンには回転防止の出っ張りがあるため、これがハマるように直線上にも溝を開ける

ヤスリの側面で削る
板と土台の間に隙間があると叩いた勢いで浮いたり騒音の問題になったりするのでしっかり留める
どうでもいいけどこのシルエット、マリオシリーズのテレサっぽくない?

あとはボタンをはめ込めば一応の形に…なるはずだったのだが、少し誤算があった。枠組みの木材が太すぎてボタン固定用の蓋が入りきらなかった

ギリギリ入らない

これを解決するために下段の両端にも溝を作る。ついでにケーブルを通す溝も作る

全体の横幅を広げるか、より細い木材を使えば問題は無い


板と枠を組み合わせたもの。見た目はかなり良い感じ

・配線

いつも通りスイッチ用のギボシ端子をモニョモニョしていく。難しくなければ楽しくもない

GNDを4つ,5つで分けてPro Microのブレッドボードに刺していく

Arduino側のスケッチはギタコンのときと同じ。適当なピンに刺してあとはコンフィグで調整する
以下ギタコン制作の記事で書いたスケッチと同じもの

#include <Arduino.h>
#include "HID-Project.h"

//ピン番号 0は欠番
int button[12] = {
  0, 2, 3, 4, 5, 6, 7,
  8, 9, 10, 14, 15
};
int i;

void setup() {
  for (i = 1; i < 12; i++) pinMode(button[i], INPUT_PULLUP);
  Gamepad.begin();
}

void loop() {
  for (i = 1; i < 12; i++) {
    if (digitalRead(button[i]) == LOW) {
      Gamepad.press(i);
    }
    else {
      Gamepad.release(i);
    }
  }
  Gamepad.write();
}

・完成

DPコンとの比較。横幅は少し短いが奥に長い。そして木材の質量があるため重い

ズレも無くサイズも最小限に抑えられた。公式コンが接地型ボタンを採用してるのに対してこちらはマイクロスイッチ。後述の通り値段も4分の1ほどで、もはや公式から買う理由が一切無い
もちろんながらプレイ中の音は非常にうるさい。IIDXなんか比較にならないくらいうるさい。静音化は必須だろう。といってもボタンに衝撃吸収用のサムシングを埋め込むだけ
下記はプレイ動画

IIDXと違いボタン押下時の入力しかないので、物理的な部分を作ればあとは非常に簡単。BEMANIシリーズのコントローラーでは一番自作の難易度が低いだろう
今回はArduinoに繋いだが、PS用のコントローラー各種に配線すれば理論的にはCSでも使えるはず

・費用

  • AliExpressのポップンボタン各色10個入り 4,583円(送料込)

  • Arduino互換機Pro Micro 約1,000円

  • 木材 約1,300円

  • その他、電子工作部品や備品等 約500円

合計7,500円ほど。工具さえ揃っていれば、当記事で無料で手に入れた板を含めても+1,000円ほどで作れると思う