mixiユーザー(id:272676)

2015年10月20日21:15

10649 view

ボタン入力の仕組みと連射・同時押し

突然だが、ボタン入力の仕組みおよびそれを踏まえた連射・同時押しの改造の仕方を書こう。

まず、ボタンがどういう風につながっているか、ってのが下の写真。
普通はコンパネ上にボタンがあるけど、元をたどれば写真のような感じで基板のコネクターにつながっている。
フォト

これを図にしたのが図1。
AボタンはJAMMAコネクターの表22番とGND、Bボタンは表23番とGND、Cボタンは表24番と…、といった感じでつながっている。
フォト

で、基板の内部がどうなっているのか、ってのが図2。
フォト

まあこんな感じですよ、ということで以下少し図を省略するね。

ボタンが押されていない状態なのが図3。
フォト

VCCとつながっているため、A点の電位(相対電圧)が「1(高電位・ハイレベル)」(+5V)になっている。

ボタンを押したときの状態が図4。
フォト

GND(0V)と直結しVCCには抵抗があるためA点の電位は「0(低電位・ローレベル)」(0V)になる。

逆にいえば、基板(ゲーム)はA点の電位を見ていて、A点が「1」なら「ボタンが押されていない」と判断し、「0」なら「押している」と判断している、ということ。

余談だけど、テストモードのIO CHECKなんかでボタンを押してなかったら「0」で押したら「1」に表示されるゲームがあるけど、実際には逆。
これを「負論理」っていう。


さて、以上を踏まえてまずは連射から。
高速で「0」と「1」を繰り返す出力のみを持つ連射装置が一般的かつ大多数だと思うから、このタイプの連射装置の使用を前提に話をする。
この装置はGNDにつながってるAボタンの線を外し、変わりに装置の出力をつないで使う。(図5)
フォト

A連ボタンを押すと、基板のA点に装置から出力される点滅が伝わる。
A点が「0」と「1」を高速で繰り返すので、基板は「高速で連射している」と判断する、という仕組み。

では、A連なしボタンとA連ボタンの両方が欲しい時(溜め撃ちと連射ね)はどうするか、ということで図6。
フォト

Aの線を分岐させてAボタンとA連ボタンを作る。

じゃあ、A連ボタンとB連ボタンが欲しい時はどうするのか、ってのが図7。
フォト

連射出力の線を分岐させればOK。

もういっそのことA・B・Cのそれぞれ30連・15連・連なしのボタンが欲しい、って時はどうするのか、ということで以前の日記に書いた図を再掲。
フォト


次は同時押し。
失敗例として挙げられるのが、A・Bそれぞれの線を分岐させてそれをまとめてA+Bボタンとするもの。(図8)
フォト

フォト

こうやってしまうとAボタンを押したときも基板のB点が「0」になってしまう。(図9)
結果として、全てのボタンがA+Bボタンとなってしまい失敗。

こうならないようにするために、同時押しにはダイオードを使う。(図10)
ダイオードは電流を1方向にしか流さない部品で、向きがあるため注意。
フォト

フォト

A+Bボタンを押すと基板のA点・B点が「0」になる。(図11)
フォト

Aボタンを押すと基板のA点は「0」になるがB点は「0」にならない。(図12)


これで連射・同時押しのつなぎ方は分かるかな?
ハイスコアアタックなどに役立ててもらえば嬉しい。
7 0

コメント

mixiユーザー

ログインしてコメントを確認・投稿する

<2015年10月>
    123
45678910
11121314151617
18192021222324
25262728293031