【SOCDクリーナー】③ 論理回路編
論理回路でSOCDクリーナー
論理回路とは
私がSOCDクリーナーを自作するにあたって用いたのは論理回路というものです。
論理回路とは、ある入力を検知すると、決まった法則に従って出力するという変わった回路です。
例えば、二つの入力口のうち両方とも入力があった時だけ出力するものがあります。これをAND回路とかANDゲートと呼びます。ほかにもNANDゲートやORゲートなど様々です。
この仕組みを使えば、左右同時押しの時に出力をゼロにしたりすることができます。
論理回路について詳しく知りたい方は、論理回路と検索すれば情報はいっぱい出てきますので、そちらを見てください。
ここからは、ある程度論理回路について知っていることを前提で書いていきます。といっても、私もそんなに詳しいわけではなく、このSOCDのためにだけ勉強した半端者なので、そこまで難しい内容にはならないと思います。
アナログスイッチを使う
上の画像は「アナログスイッチ」というものの仕組みを表したものです。
スイッチにつながる端子に信号を送る(電圧をかける)ことで、スイッチを切り替えるというものです。
前回の記事では、「GNDと同じ電位」につなぐことでパッドの基盤は反応する、と書きました。
しかし、最初のころそれが信じられなかった自分は、このアナログスイッチを制御することでSOCDクリーナーを作りました。これなら確実に基盤の端子をGNDに接続できるからです。
論理回路には、ANDとXORを使いました。言葉で説明するより、動画で見たほうが早いので下の動画をご覧ください。
SOCD cleaner R+L=N using analog switch
SOCD cleaner U+D=U using analog switch
上の動画は左右同時押しでニュートラル、下の動画は上下同時押しで上優先の仕組みを表しています。
線が緑色になっている状態が電位が高い=信号ありの状態で、白くなっていると電位が低い=信号なしの状態です。
こうして制御されたアナログスイッチで、パッド基盤上の端子とGNDとを接続してやれば、立派なSOCDクリーナーです。
論理回路の組み合わせは無数に考えられるので、もしかしたらもっと効率的な回路の作り方があるかもしれませんが、私はこれを考案して作りました。
アナログスイッチを使わない
私がアナログスイッチを使った理由は、確実にパッド基盤を動かすためでした。
しかしながら、理論上はそんなことをする必要はなく、「GNDと同じ電位」に接続できればいいのです。
論理回路にとって、「GNDと同じ電位」というのは「信号がない」「入出力がゼロ」であるということです。
ここで、論理回路とパッド基盤のGNDが共通になるようにしてやれば、パッド基盤にとってのGNDと、論理回路にとっての信号ゼロが同じ電位を持つことになります。
つまり、論理回路のゼロ状態の出力口と、パッド基盤のGNDでないほうの端子とをつなげてやると、パッドは「GNDにつながった」と検知することになります。
このようにして、アナログスイッチは省略してやることができます。
そうすると、論理回路の組み方は下のようになります。
SOCD cleaner R+L=N using only NAND gates
SOCD cleaner U+D=U using only NAND gates
上が左右でニュートラル、下が上下で上優先です。
先ほどのアナログスイッチを使った場合とは、出力が正反対になっているのが分かるでしょうか。このように、入力されたときに出力をゼロにしてやることでもパッドを動かすことができます。
こちらの、アナログスイッチを使わないほうはまだ実際に作ったわけではないので、製作が終わり次第記事にしたいと思います。
追記
記事になりました
tunnel-the-hitboxer.hatenablog.com
まとめ
今回はかなり難しい内容になりました。あまり難しいことを考えないで結果だけ述べることを心掛けたので、消化不良な感じがあります。
ここが分からないよという方は、コメントください。
以上です