(2017/03/30追記)
タイミング的に止められないだろうとの先入観から試していなかった方法ですが、実はコンパレーターの反転出力をシンプルにパワードレールに接続するだけで同等のことが実現できるようですので、リンク先のアイテム回収部分の解説を参照してみてください。
全自動カボチャ・スイカ収穫機!完全放置で栽培から回収まで行います | nishiのマインクラフト攻略
作る前にもっとちゃんと色々検証してみるべきでしたが、せっかくの初回路なので記事は記録としてそのまま残しておきます。
初のマイクラネタです。
今回は、チェストやホッパー付きのトロッコを使用して、積載されている全ての積み荷を降ろすまで停車してから引き返す停車場を造ります。
実現方法
このような停車場を造るためには、以下のような動作を実現する必要があります。
- 停車場に入ってきたトロッコを所定の位置に停車させる。
- 停車したトロッコから積み荷を降ろす。
- 積み荷を降ろし終えたことを検知する。
- 所定の位置に停車しているトロッコを逆方向に発車させる。
上記3を実現するためにディテクターレールを使いたかったのですが、他の動作と同時に条件を満たせる良い方法が思いつかなかったため、レールの下に敷いたホッパーからの出力を利用することにしました。
ということで、それぞれの実現方法は以下の通りとします。
- 動力を受けていないパワードレールを使用して、所定の位置に停車させる。
- 停車位置のレール直下のホッパーで積み荷を降ろす。
- ホッパーの出力の変化により、積み荷を降ろし終えたことを検知する。
- 壁際に設置したパワードレールに動力を与えて、トロッコを入ってきたときと逆方向に発車させる。
レールの設置
まずはレールを敷きます。
ここではテスト用に10ブロックほど敷きました。
レールの端を1ブロックずつ掘り下げ、アイテム転送先のチェストとホッパーを配置します。
ここでは後の回路が判りやすくなるよう、ホッパーを2個並べて配置しています。
それぞれのホッパーは、Shiftキーを押しながら設置してチェストと前段のホッパーに接続されるようにします。
停車場所の準備とホッパーの状態の検知
ホッパーの上にパワードレールを設置し、車止めとしてブロックを置きます。
ホッパーの上にレールを敷く場合も、Shiftキーを押しながら設置する必要があるので注意しましょう。
ホッパーの内容の変化を検知するために、ホッパーの隣を1ブロック掘り下げコンパレーターとトーチを設置します。
コンパレーターは画像の向きで設置してください。
ちなみにこのコンパレーターは、パワードレール直下のホッパーに接続して車止めブロックの下に隠れる形となっても問題なく動作します。
その場合、チェストに直接繋がっている真ん中のホッパーは不要となり、代わりにチェストがその位置に来ます。
(トーチは車止めブロックの真後ろになります。)
ここでのトーチは、信号を1ブロック上に持ち上げる他、信号が弱い場合にも遠くまで伝達できるようリピーターの意味と、後述の回路に入力するために信号を反転させる目的を兼ねます。
これで、ホッパーが空でない時のみトーチが消灯するようになりました。
荷降ろし完了時のトロッコ発車の仕組み
荷降ろし完了の検知によりトロッコを発車させる仕組みには、パルサーという回路を使用します。
参考:Minecraft Japan Wiki – テクニック/レッドストーン回路 # パルサー
これは、入力される信号がOFFからONに変わった瞬間に一瞬だけONの信号が出力されすぐにOFFとなるものです。
(2017/3/27時点で、リンク先では一瞬だけOFFになる旨の記載となっていますが、今回はリンク先画像にある“RSリピータ使用型”のトーチの先の信号を使用することになりますので、説明とは逆になります。)
今回はホッパーにアイテムが格納されてから空になる瞬間(ONからOFF)を検出したいため、先ほどコンパレーターに接続したトーチにより、ホッパーの出力を反転させて入力することになります。
この回路を、先ほどのトーチに接続して配置します。
リピーターは画像通りの向きで、遅延3(初期状態から右クリック2回)に設定してください。
この出力をパワードレールに接続します。
ここまでで、全ての積み荷を降ろすまで停車して完了後に発車する仕組みはできました。
ですが、このままではまだ以下のような2つの問題があります。
- 最初からトロッコが空の状態で入ってきた場合、ホッパーからの出力がいったんONになることがないため、パワードレールへのパルスが出力されずにいつまでも停車したままとなってしまう。
- パルスが一瞬しか出力されないため、発車したトロッコが加速しきれないまま止まってしまう。
トロッコが空の場合の対処と発車用パルスの延長
まず、トロッコが空の状態で入ってきたのかどうかを判定する必要があるので、ディテクターレールにコンパレーターを組み合わせて設置します。
これによりトロッコが空かどうかの判定はできるようになりましたが、ディテクターレールから信号が出力されるのはトロッコが通過する瞬間のみですので、後に使用するために記憶しておく必要があります。
そこで、メモリー回路のひとつであるRSラッチという回路を使用します。
参考:Memory circuit – Official Minecraft Wiki # RS-NOR_Latches
これは、RとSの入力がそれぞれ一瞬でもONになれば、その後入力がOFFになっても入力された状態を維持するというもので、これによりディテクターレールの出力を記憶できることになります。
今回はリンク先の回路のうち最もシンプルな“Basic RS-NOR Latches”の“Opposite Duplex RS Latch (A)”を使用します。
この回路の一方をディテクターレールのコンパレーター出力に、もう一方をパワードレールの入力(パルサーの出力)に、それぞれ接続します。
この際、回路の初期状態としてパワードレールが有効になるようにするため、向かって左側から組んでいくようにします。
(パルサー出力側に向いているトーチを先に設置します。)
初期状態はこのようになります。(RSラッチの向かって左側、パワードレールに繋がるワイヤーが点灯。)
ここに、ディテクターレールからの出力を接続するのですが、トロッコの内容が少ない時でも正常に信号が伝わるよう、リピーターを間に挟みます。
このリピーターは画像の向きで遅延は最短のまま(設置したままの状態)とします。
この状態でディテクターレールの上を空のトロッコが通過して入ってくれば、RSラッチの状態に変化は起きないためパワードレールに動力が伝わったままとなり、入ってきたトロッコが即座に折り返すようになります。
アイテムを積んだトロッコが入ってきた場合は、ディテクターレールからの出力によりRSラッチが反転しますので、パワードレールの動力がOFFになり、トロッコは荷降ろしの完了まで所定の位置で待機します。
また、荷降ろしが完了してホッパーからのパルスが出力された際には、RSラッチへの逆の入力となりますので、RSラッチが再度反転しパルス出力終了後もその状態を維持することで、パワードレールONによる発車を確実にすると共に回路全体がリセットされることになります。
最後に回路全体を上から見下ろした画像を貼っておきます。
動作確認
では、レールの反対側からトロッコを発車させて確認してみましょう。
パワードレール、ブロック、ボタンを設置し、チェスト付きトロッコ(ホッパー付きでも可)を置きます。
まず、何も載せずにボタンを押すと…
トロッコは停車せずに即引き返してきます。
次に、トロッコにアイテムを積んでからボタンを押すと…
しばらく荷降ろし地点に停車し、完了後に引き返してきます。
チェストには、トロッコに積んだアイテムがちゃんと移っていました。
以上で完成です。