Minecraftデジタル信号① 基礎回路
騎空団内のMInecraft鯖が立ったので、記事を書く。
技術部の人が既にやってるようなことだが、wikiにも出てないのでデジタル信号の送り方をまとめようと思う。
そもそも何でデジタル信号にするのかというと、Minecraftだとアナログ信号が扱いにくいためである。
信号の強さが1マスごとに減少してしまう上に、リピーターを使った瞬間に最大値へ上書きされてしまうため、量の情報が即座に失われてしまう。
しかし信号を有る無しの1と0で表現するのであれば容易であることが背景にある。
まず信号の発生では一瞬だけON信号を送ったほうが何かと都合が良いので、パルサー回路を最初に用意する。
リピーターは2クリックで3tick遅延とする。
次に01信号を作る。
回路としてはシンプルで、1クリックしたリピーターを重ねて、2tickごとの遅延の差を作った情報を取り出すだけだ。
点線部に配置するかしないかで000や010という表現が出来る。
ちなみに、色が薄い四角はハーフブロックだ。ハーフブロックは上側にしか信号を伝えないので何かと便利。
最後にデジタル信号を受信する必要がある。
イメージとしては、信号を遅延ごとにわけて受けて、開始信号を利用して一瞬だけ読み取る。
今回は6tick分の信号を受信しきった瞬間にだけリピーターのロックを解除して欲しいので6+6+1=13tick分だけ遅延させている。
ちなみに011の時のみ動作する回路とかを目指す場合は、次のような受信器が必要。
実際に受信してライトにしてみた例だ。見事、真ん中だけ消灯していることが確認できる。
応用すれば、1本の線路で複数の信号を受信できるようになる。まあ、それは今後やりたい。