PC版Pinball FX2用のピンボールコントローラーを作成する手順をまとめました。できるだけ安く。
この文書には、Arduino Leonardoを使用してSteam版Pinball FX2用のピンボールコントローラーを作成する方法が書かれています。
組み立てた電子部品を入れる箱を用意します。加工が容易で、失敗してもそれほど痛くない100円ショップのタッパーを使いたいと思います。
奥行き15~20センチ・幅20~30センチ・高さ8~12センチくらいの、底が平たいものを買ってきてください。家で余っているタッパーでも構いません。
部品は、秋葉原にある2軒の電子部品ショップで全て揃えることができます。お店で直接買ってもいいのですが、店頭に在庫が無いこともありますし、細かい部品が山のようにある中から探し出すのは大変なので、慣れていない方は通販で買うことをおすすめします。
商品名 | 通販コード | 単価 | 個数 | 価格 |
---|---|---|---|---|
Arduino Leonaro | M-07384 | 2,910円 | 1 | 2,910円 |
ブレッドボードEIC-301 | P-00313 | 190円 | 1 | 190円 |
ジャンパーワイヤ EIC-J-L | P-00288 | 400円 | 1 | 400円 |
ジャンパーコード(オス-オス)セット | C-05159 | 220円 | 1 | 220円 |
3軸加速度センサKXR94-2050 | M-05153 | 850円 | 1 | 850円 |
3mmプラネジ(7mm)+六角スペーサー(14mm)セット | P-01861 | 50円 | 1 | 50円 |
タクトスイッチ(黒色) | P-03647 | 10円 | 4 | 40円 |
上記の商品をまとめて買いたい時は、下のボックス内のテキストをコピーして一括購入ページを開き、テキストボックスに貼り付けてから「かごに入れる」ボタンを押せば一気に買い物かごに入れることができます。その後、タクトスイッチの個数を4に修正して注文してください。
M-07384
P-00313
P-00288
C-05159
M-05153
P-01861
P-03647
送料は500円です。代金引換の場合は300円加算されます。
商品名 | 管理コード | 単価 | 個数 | 価格 |
---|---|---|---|---|
USB(2.0) microUSBケーブル 1.5m | EEHD-4F4F | 145円 | 1 | 145円 |
セイミツ ゲームスイッチφ30 黄 | EEHD-47GG | 152円 | 4 | 608円 |
ファストン端子#110(メス) | 3D8B-SMH2 | 6円 | 10 | 60円 |
ファストン端子は8個あれば良いのですが、10個以上でないと注文出来ません。ファストン端子用電工ペンチを初めて使う方は、失敗を見越して20個くらい買っておいたほうが良いでしょう。
送料は432円です。代金引換の場合は324円が加算されます。
無事に全ての道具と部品が揃ったでしょうか。次はいよいよ組み立てです。
ブレッドボードは面倒なハンダ付け無しで電子回路が組み立てられる優れ物です。板に空いている小さな穴は、内部で下の図のようにつながっています。
(秋月電子通商EIC-301商品ページより引用)
つながっている穴に電線や部品を刺せば、内部で接続してくれるという仕組みです。
また、購入したブレッドボードをよく見ると、上の図と同じようにA~Xの英字と1~20の数字が書いてあるのが見えるかと思います。(見にくければ、文字部分を鉛筆で薄くこすってください。)
電線や部品を刺す時に、この英字と数字で刺す位置を指定するので、上下を間違えないように作業する場所に置いてください。
ブレッドボードに、まずジャンパーワイヤーで配線を行います。ブレッドボードにワイヤーを刺し込む時、変な力を加えると線が曲がってしまって使い物にならなくなるので、ラジオペンチの先端を使ってワイヤーの先端を垂直に半刺しした後、上から指で押さえるとうまく刺さります。
以下のようにジャンパーワイヤーを刺し込んでください。
図内の番号 | 刺す場所1 | 刺す場所2 | ワイヤーの色 |
---|---|---|---|
(1) | E1 | Y1 | 白 |
(2) | H2 | Y2 | 黄 |
(3) | H8 | Y8 | 黄 |
(4) | X9 | F9 | 白 |
(5) | H9 | H11 | 赤 |
(6) | I9 | I12 | オレンジ |
(7) | J13 | Y13 | 赤 |
(8) | C14 | C16 | 赤 |
(9) | E16 | Y16 | 白 |
(10) | H19 | Y19 | 黄 |
(11) | H23 | Y23 | 黄 |
線を刺し終わったら、次に加速度センサーとタクトスイッチを差し込みます。向きに注意してください。
加速度センサーは、1と書かれたピンがF11に、8と書かれたピンがE11に入るように刺し込みます。
タクトスイッチは、ブレッドボード中央の溝をまたぐように刺し込みます。
図内の番号 | 左上 | 右上 | 左下 | 右下 |
---|---|---|---|---|
(1) | E2 | E4 | F2 | F4 |
(2) | E6 | E8 | F6 | F8 |
(3) | E17 | E19 | F17 | F19 |
(4) | E21 | E23 | F21 | F23 |
最後に、10cmのジャンパーコードを刺し込みます。
図内の番号 | 刺す場所 | ワイヤーの色 |
---|---|---|
(1) | X1 | 赤 |
(2) | A1 | 黒 |
(3) | A4 | 白 |
(4) | A6 | オレンジ |
(5) | A12 | 黄 |
(6) | A13 | 青 |
(7) | A17 | 緑 |
(8) | A21 | 黒 |
あとはArduino Leonardoにプログラムを書き込んで、ブレッドボードに接続してやれば、とりあえずピンボールコントローラーとして使えるようになります。
Arduino Leonardoに空いている4つの穴に、3mmプラネジ(7mm)+六角スペーサー(14mm)セットを使って足を付けます。
USBコネクタに近い穴はネジの頭が隣のコネクタにぶつかってしまうので、1本だけネジの頭をニッパーか爪切りで1/4くらい切り落としてください。
青い面からネジを入れて指で押さえ、裏からスペーサーで止めます。
ブレッドボードに刺した8本のジャンパーコードを、Arduino Leonardoのコネクタに刺し込みます。
図内の番号 | ブレッドボードの場所 | Arduinoのコネクタ | ワイヤーの色 |
---|---|---|---|
(1) | X1 | 5V | 赤 |
(2) | A1 | GND | 黒 |
(3) | A4 | A0 | 白 |
(4) | A6 | A1 | オレンジ |
(5) | A12 | A2 | 黄 |
(6) | A13 | A3 | 青 |
(7) | A17 | A4 | 緑 |
(8) | A21 | A5 | 黒 |
プログラムの作成と書き込みをするための開発環境をArduino公式サイトからダウンロードします。
DownloadのWindows Installerをクリックし、実行ファイルをダウンロードしてください。ダウンロードが終わったら、実行ファイルをダブルクリックしてインストールします。
インストールの詳しい手順はこちらを参考に行なってください。
USBケーブルで、パソコンとArduino Leonardoを接続しましょう。まずArduino LeonardoにマイクロB端子を挿してから、パソコンのUSBコネクタに接続します。
ここで注意してほしいことが2点あります。
正常に接続されると、スタートメニューの「デバイスとプリンター」にArduino Leonardoのアイコンがキーボードとして表示されます。
Arduino Leonardoのアイコンをダブルクリックしてプロパティを表示させ、「ハードウエア」タブをクリックして「デバイスの機能」欄の一番上にある「Arduino Leonardo 」の後ろの「COM●」(●は数字)をメモしてください。
スタートメニューからArduinoをクリックしてArduino開発環境を起動します。
Arduino開発環境のウィンドウが開いたら、メニューバーの「ツール」→「マイコンボード」をクリックし、「Arduino Leonardo」をクリックします。
同じようにメニューバーの「ツール」→「シリアルポート」をクリックし、先ほどメモした「COM●」をクリックします。
こちらのプログラムファイルをダウンロードして下さい。(右クリックし、名前を付けて保存してください)
メニューバーの「ファイル」→「開く...」をクリックし、ダウンロードしたinoファイルを開いてください。その時フォルダを作るか聞かれるので、「はい」をクリックしてください。
左上の矢印マークをクリックすると、Arduino Leonardoにプログラムが書き込まれます。
書き込みが終わったら、動作試験をしてみましょう。スタートメニュから「メモ帳」を開き、ブレッドボードを揺らしたりボタンを押してみてください。
うまく動いたでしょうか?もし反応がない場合は、配線をもう一度見直してください。
Pinball FX2を起動し、オプションのキーボード設定で以下のように設定を変更します。
好きな台をスタートさせ、実際に動作するか確認しましょう。
最後に、作成した回路をタッパーに入れ、コントローラーとして完成させましょう。
タッパーを横向きに置き、手のひらをタッパーの角に当てて、中指の先が当たる場所にしるしを着けます。
そこを中心にして3cmの穴を開けた紙を置き、サインペンで縁をなぞって円を書きます。反対側にも同じようにして3cmの円を描きます。
タッパーの前面左右にも直径3cmの円を書きます。円は平らな場所に描いていてください。
円をカッターで切り、丸穴を4つ開けます。
タッパーの左奥に、カッターでUSBケーブルを通す穴を開けます。位置は低めに、サイズはUSBケーブルの細い方が通るくらいの大きさで開けてください。
4つの丸穴に、ゲームスイッチを差し込みます。スイッチ脇の爪が引っかかるまで押し込んでください。
ブレッドボードの裏面は両面テープになっているので、保護シートをはがしてタッパーの底に貼り付けます。なるべく左右中央の手前側につけてください。Arduino Leonardoはブレッドボードの奥側に置き、足を両面テープか接着剤で固定してください。
ジャンパーコードの20cmと25cmを4本ずつ、計8本を使ってブレッドボードとゲームスイッチを接続します。ジャンパーコードのブレッドボード側はそのままで良いのですが、スイッチ側はファストン端子を取り付ける必要があります。
ファストン型端子圧着工具を使えば、ファストン端子をコードに簡単に接続できます。
1.25の所でファストン端子の細い部分をくわえます。
ジャンパーコードの先端を端子の広い方から差し込み、握りつぶします。
ファストン端子の開いた部分がハート型に曲がって、ジャンパーコードの先端部分を締め付けます。
図にすると、こんな感じです。
ジャンパーコードの黒いカバー部分も、5.5の所を使って同じくハート型に締め付けます。
ハンダごてを使う場合は、ジャンパーコードを直接ハンダ付けしてください。
8本全てにファストン端子が付いたら、同じ長さのコードを2本ずつより合わせ、4組作ります。
コードのファストン端子を、ゲームスイッチにそれぞれ取り付けます。
ブレッドボード上のタクトスイッチを外し、下の図の通りにジャンパーコードを刺し込みます。
(線が多すぎてごちゃごちゃしてしまうので、下の図ではジャンパーコードは抜いてあります。)
図内の番号 | 接続先スイッチ | コード長さ | コード1 | コード2 |
---|---|---|---|---|
(1) | 左側面 | 25cm | F2 | E4 |
(2) | 前面左 | 20cm | E6 | F8 |
(3) | 前面右 | 20cm | E17 | F19 |
(4) | 右側面 | 25cm | E21 | F23 |
タッパーの左奥にあけた穴からUSBケーブルを引き込み、Arduino Leonardoに接続します。
タッパーのふたを閉じて、完成です。お疲れ様でした。
外観にこだわりたい気持ちは分かりますが、タッパーは値段も安く、加工しやすく、長持ちします。それ以外の素材でのケースの作成は割とめんどくさいです。予算と時間に合わせて、好きな素材でかっこいいケースを作ってください。おすすめはタカチ。
安くて加工もしやすいですが、長持ちはしないでしょう。同居人にうっかり捨てられてしまうかもしれません。
ホールソーさえ使える環境があれば、最も簡単に加工ができ、しっかりしたものが作れるでしょう。手汗がしみこむ材の場合は、ニスなどで表面加工したほうが良いでしょう。
金工用ドリルとヤスリと根気があればOKです。一度作ってしまえば、一番長持ちするでしょう。
金工用ドリルとヤスリとかなりの根気があれば、本物のピンボール台に一番近いものが作れるでしょう。ただし、材料・工具共にかなり高いです。
手間さえかければ、安くする方法はいくつかあります。手間をかける価値があるかどうかは、自分で判断してください。
線も部品も全てハンダ付けできる人は、ユニバーサル基板という60円から買える基板を使いましょう。配線も汎用の電線を使えば、ブレッドボード用ジャンパーよりはるかに安く済みます。センサーのような高い部品は直接ハンダ付けせず、ピンソケットをハンダ付けして刺すようにしてください。線の取り回しに自信がない方は、ブレッドボード互換のユニバーサル基板を使うと良いでしょう。
ストロベリー・リナックスという会社から出ているダ・ヴィンチ32U with Arduino Bootloaderが、最も安いArduino Leonardoの互換機です。ストロベリー・リナックス直販で1,500円+消費税(送料380円+消費税・代引手数料285円+消費税)で購入できます。
ただし本家とは形状もピン配置もまったく違い、情報源も少ないので、説明書や回路図を読んで自分で移植できる方におすすめします。
秋月電子で売られているPIC18F14K50という、たったの220円で買えるマイコンは、Arduino Leonardoと同じようにUSBキーボードになります。動作させるのに必要な周辺部品を合わせても500円未満でArduino Leonardoと置き換えることができます。
ただし、プログラムの書き換えにはPIC専用の書き込み機(4,500円~)が必要ですし、回路設計もプログラムも開発環境も全てガッツリ勉強して考える必要があります。壁は高いですが、それなりのやりがいはあると思います。
部品リストでせんごくネット通販で買うように書かれているものは、他のお店で買うこともできます。せんごくネットからの送料を節約したい方は、以下の手段を検討してみてください。
して。
ゲーム側でPinball FX2と同じようにキー設定を変えれば、他のピンボールソフトで使うことも出来ます。しかし、ピンボールゲームは意外とキー設定の自由度が低いものが多く、対応できないこともあるでしょう。その時はハードやソフトを改造することで対応できます。
PinballFX2.inoファイルをArduino開発環境で開き、キー割り当ての部分を変更して、Arduino Leonardoに再度書き込んでください。
今回使ったArduino Leonardoは、自由に使えるピンがまだたくさん余っています。筆者はそこにディップスイッチを繋いで、複数の設定を切り替えられるようにしています。
筆者のコントローラーの構成を知りたい方はこちらのファイルをダウンロードして下さい。
Arduino Leonardoは1024バイトのEEPROM(スケッチから簡単に読み書き可能なフラッシュメモリ)を搭載しています。パソコンとArduino Leonardoをシリアル通信で結んで、設定をEEPROMに保存するようなプログラムを書けば、設定をArduino開発環境無しで自由に書き換えることができるようになります。
Arduinoではありませんが、ビットトレードワン社のREVIVE USBなどはこの方式をとっているので参考になるかと思います。
各機種のパッドやジョイスティックを改造すれば、コンシューマ機でも使えるでしょう。具体的にはパッドやジョイスティックのスイッチ部分にトランジスタを付け、Arduinoでトランジスタの通電状態を変化させてやればいいはずです。
ただし、パソコンと違ってマウスやキーボードが使えないため、ピンボールに特化したコントローラーだけではメニューでカーソルを上下左右に動かすなどの操作ができません。パッドやジョイスティック本来の機能を生かしたまま、ピンボールコントローラーを合体させる必要があります。
このピンボールコントローラーは、Arduino LeonardoをUSBキーボードとして利用することで実現されています。USBキーボードになる機能を持ったArduinoは、LeonardoとDue、およびその互換機のみです。残念ながらそれ以前のArduinoでは、USBキーボードになれません。
電子工作の腕に覚えがある方は、PS/2キーボードをArduinoで再現して、PS/2→USB変換機経由でパソコンに繋いでしまうというのも面白そうですね。
元が取れるかどうかは別問題として、ライセンスに関する情報は以下の通りです。