ナギサものおき

【Minecraft PE】レッドストーン回路の発展 ~XOR回路やラッチ回路~

calendar

reload

【Minecraft PE】レッドストーン回路の発展 ~XOR回路やラッチ回路~

マイクラPEのレッドストーン回路が実装されてからというもの、このブログでは過去2回にわたって、レッドストーン回路の基礎から応用までを特集してきました。

今回はさらに発展させ、計算機の部品として使用するような、より高度な回路を使ってみましょう。

レッドストーン回路とは

まずレッドストーン回路とは、地中から採掘できるレッドストーンを使う回路です。このように周囲に何かしら影響を与える(例えばレッドストーンランプだと光を与える)出力と、それを制御するための入力、そしてレッドストーンから成り立ちます。

145

さらに、NOT、AND、ORなどの論理素子やクロック回路を間に挟むことによって、より高度な条件で入力から出力までを制御することを可能にしました。

175

これまでの記事を下に示しますので、まだの方はこれらをどうぞ。今回の記事は、これまでの記事の知識は習得済みであるものとして話を進めます。

【Minecraft PE】ver 0.13から実装、レッドストーン回路の使い方 | ナギサものおき
マイクラPEが0.12にアップデートしたのがつい先日のように感じられますが、もう0.13が出ました。今回もいくつかの新要素が実装されましたが、中でもレッドストーンを心待ちにされていた方は多いのではない…
【Minecraft PE】レッドストーン回路の応用 ~論理回路~ | ナギサものおき
昨日の記事で、まずレッドストーン回路の基礎をお伝えしました。今回はより高度な制御ができるように、論理素子の作り方を学んでから、実用化していきます。

難しい言葉のように感じますが、例えば「2つ同時にス…

では、今回の本題に入ります。

XOR回路

XORというのは、「エクスクルーシヴ・オア」の略で、日本語で言うと「排他的論理和」。人によってすごい難しい言葉のように感じるか、もしくは中二っぽいと感じるかもしれませんが、それは置いといて。

ANDとかORならまだ日常的に聞く程度ですが、XORなんて圧倒的に聞きなれないですよね。でも目的は単純です。

  • 入力が2つ、出力が1つある(ANDとかORとかと同じです)。
  • 2つの入力が異なるとき(片方がONでもう片方がOFFのとき)、ONを出力する。

ただこれだけ。実際にRS回路で見てみましょう。

184

実装するにはいろいろな置き方があるんですが、RS回路的に一番見やすいのが、ORのNOT(NORと言う)が3個組み合わさり、最後にORでまとめているこれ。なぜこれでXORになるのか説明するのはめっちゃ複雑になってしまい、式(ブール代数)とか書いたほうがむしろ分かりやすいくらいなので、割愛させてもらいます。

XORのテスト

185

例えばONとONのときは、どちらの入力も同じなので、OFFが出力されます。

186

ONとOFFとか、OFFとONであれば、入力が異なるので、ONが出力されます。

XORの実用例

さて、XORなんて何に使うんでしょうか。

例えばあなたの家に階段とか長い廊下があって、そこの同じランプをON/OFFするスイッチが上下に2つあったりしません?それで、ランプや別のスイッチがどんな状態でも、どちらかのスイッチを1回押せばランプが点いたり消えたりします。よく考えれば不思議ですよね(※)。

こういうのを、まさにXORを使うと作ることができます。階段の上下にレバーを配置し、それらをXORの入力にします。XORの出力をランプに接続します。

187

188

テクニック

RSトーチは真上のブロックに信号を伝える性質もあるため、「ブロックの上にRSトーチ」というセットを偶数個積み上げることにより、ON/OFFを保ったまま、1×1の面積で上に持ち上げることができます(どうせNOT通すつもりなら奇数個でもいいけど)。ただし遅延が発生します(次回説明)。最初に伝えた持ち上げ方法はブロックをらせん状にするものでしたので、2×2の面積が必要でした。

どうして「どちらかのスイッチを1回押せばランプが点いたり消えたり」するのかを論理的に考えてみましょう。

まずどちらかのスイッチの立場に立って考えると、自分の状態がどうであれ、もう片方のスイッチが自分と同じならランプが消えており、異なればランプがついているわけです。そこで自分のON/OFFを切り替えると、もう片方のスイッチが自分と同じか異なるかという事実がそのたびに入れ替わるため、ランプのON/OFFも切り替わるというわけ。

※建築だと論理素子ではなく三路スイッチって機構で実現しているようです。同じことなのに分野が違うだけでまるで知らないんですよね……。

コンパクトなXOR回路

コンパレーターという装置をこのように2つ配置することによって、もっとコンパクトなXOR回路を作ることができます。

【Minecraft PE】レッドストーンコンパレーターの使い方 | ナギサものおき
昨日は、レッドストーンリピーター(反復装置)について特集しました。今日はレッドストーンコンパレーターについて見ていきましょう。

コンパレーターは、ON/OFFの概念だけではなく、信号の強さに影響する…

ただし、コンパレーターについてまだ詳しく紹介していないので、この記事ではトーチだけを使用したタイプのみ使用します。

レールの切り替え

さて、回路自体の話とは少し違うのですが、次に使うので、レールの話をさせてください。

189

例えばこのように、T字になるようにレールを組んでみてください。その後、その脇までRSを通してくるか、直接入力を置きます。

190

それで入力をオンオフしてみると、なんとレールの曲がり方を変えることができます!これを利用すると、トロッコでの行き先をレバーなどを使って変更することができるようになります。次の話は、ここの入力にちょっと変わった回路を使ってみようというお話です。

クロック回路をランダム要素として

191

さて、本題に戻りましょう。これは前回お教えしたクロック回路(さらに簡略化してありますが機能は同じ)ですが、これに関連して1つ問題です。上の回路の、動かし始めてある時間が経ったときの出力は何でしょうか

答えは実は「わからない」です。なぜって、ONとOFFを繰り返して出力しているのですから、ちゃんと動かし始めてから何秒たったかということを決めないと、ONなのかOFFなのかは決定することができないのです。

それはどういうことかというと、出力は事実上「ランダムである」ということができます。このランダムさを使った回路の例を以下に示します。

クロック回路でランダム分岐

192

上で説明したレールの切り替えポイントが出てきました。ここへの出力がOFFのときは左に、ONのときは右に、線路が切り替わるようになっています。画像のようにクロック回路を接続したらどうなるでしょうか?(ただし、ここに3個のNOTで作ると、ON/OFFの切り替わりが早すぎるため、7個まで増やしています。機能的にはやはり変わりません)

前に述べたランダムさにより、このポイントをトロッコが通過するとき、どちら側に線路が曲がっているかはランダムです。つまりこの回路は、2方向あるうちのランダムな方向にトロッコを走らせるという回路です。

例えば、ジェットコースターを作るときなんかにこの分岐を用意しておきます。すると、そこを通過するタイミングによって、どちら側のコースに曲がるか分からないようにできます。プレイヤーの意思によらず(つまりレバーを押したりなどせず)、適当な方向に曲げることができるというのは、クロック回路のランダムさのおかげです。

合流方法

さて、ここでまた別問題が発生します。分岐したからにはどこかで合流すべきだと思いますが、そのときもレールの向きを適切に変えてやらないと、スムーズな合流にならないですね。どうしましょうか。

193

ディテクターレール」を使います。これはレール上にスイッチが組み合わさったもので、ディテクターレール上をトロッコが通過するとONを出力するという、ボタンの一種ですね。

194

向きを変えてやらなければならないほうのレールを1個ディテクターレールに変えておきます。ここからRSをポイントまで伸ばしておくだけで完了。あとはトロッコがディテクターレール上を通るときだけ、ポイントが適切な向きに向いてくれます

ちなみに、もともと正しい方向につながっている反対側には、当然何も置く必要はないです。

ラッチ回路

最後に、データを保存できる回路を作ってみましょう!「ラッチ回路」と言います。

179

じつは前回でもちらっと名前を出していました。というのも、ラッチ回路はNOTを2個組み合わせることでできるからで、クロック回路はNOT3個(理論上は1個ですが)で作成できる回路なので、かなり似ているからです。

というわけで仲間……なのかと思いきや、全く違う意味で使いますよ。

1ビットの保存

上でも述べましたが、NOTを2個だけ、単純にループさせるだけで出来上がり。

195

で、この回路は放っておいても動くわけではありません。まずはこのように、何らかの入力をONになっている側、OFFになっている側両方に入力をつないでやります

196

で、このボタンをそれぞれ押してみてください。何かに気づかないでしょうか?

197

少し難しいかもしれませんが、こうしてみると気づきやすくなりますか?

198

答えを言ってしまうと、この回路1個で1ビットのデータ……つまり、ONまたはOFFを保存しておいて、常に出力し続けることができるということなのです。その証拠に、なぜかボタンという、ONになるのに時間制限のある入力を使っているのにもかかわらず、ランプがONになったら逆側のボタンを押さない限りはそのままになりますよね。

ラッチ回路の実用例

とはいえこの1ビットが保存されてるってのはかなり分かりにくい概念なので、実用例を挙げて理解の助けになればと思います。

199

この回路では、ラッチ回路のドアへの出力は最初ONになっています。つまり、最初はONが保存されているわけです。で、入力としては、ドアの中に感圧板を置いてあります。

200

さて、この中の感圧板を踏むとどうなるでしょうか。

201

ドアが閉まります。そして、感圧板から離れてもドアが開くことはありません。閉じ込められてしまいました

これはどういうことかというと、感圧板を踏んだことによって、ラッチ回路にOFFが保存されてしまって、ドアが閉まりっぱなしになったということなのです。トラップとして使えますね。

これをラッチ回路でやるメリットとしては、ドアを一度閉めたら(逆側にONを入力しない限り)開くことは二度とない、ということなのです。単に中からレバーでドアを操作するようなことだと、元に戻すことのできる操作になってしまうため、こういうトラップとしては不適格だというわけ。

ラッチ回路の応用

で、このラッチ回路ですが、複数用意すればそれだけ多くのデータを表現することができるようになります。8個用意すると8ビットとなり、2の8乗=256通りを表現できるわけです。これを利用して、計算機などのかなり高度な回路の部品として利用することができます

こちらもおすすめ

このページで作ったXOR回路は、計算機の部品としても重要な役割を果たします。どのような経緯で使うのか、興味があれば見てみてください。

【Minecraft】計算機の作り方を分かりやすく解説!【半加算器】 | ナギサものおき
レッドストーン回路には無限の可能性があり、複雑な動作をするものも工夫次第で作れますが、なかなか難解で手を出せないという方も多いのでは?

手始めに、単純な計算機を作りながら練習してみませんか。もちろん…

この記事をシェアする

コメント

コメントはありません。

down コメントを残す




folder リテラシー

【Twitter】悪質な連携アプリの解除方法と正しい見分け方を知ろう
more...

folder ブログについて

ものおき、改修しました。
【お知らせ】サーバ変更を完了しました
ブログ1か月続けて思ったこと
more...