We are currently performing an upgrade to our software. This upgrade will bring MediaWiki from version 1.31 to 1.33. While the upgrade is being performed on your wiki it will be in read-only mode. For more information check here.

杂项电路

来自Minecraft Wiki
跳转至: 导航搜索
Mcredstonesim icon.png
此条目利用红石模拟器(MCRedstoneSim)格式的图表以求表述紧凑明晰。
有些设计的高度超过了两格,此处使用GIF动态图像逐帧或者多幅图表并列展示。完整图例请见红石图例页面。

南北向传输畸变[编辑 | 编辑源代码]


下文中的内容讲述了一个通过漏洞来实现特定功能的装置。
这个漏洞有可能在未来某个版本被修复。当该漏洞被修复后,下文所说明的功能将不再有效。请慎重对待。
图1:两个可用的朝向
图2:等延迟反相输出

这里有一种含红石火把的特殊构造。本来,建构这个构造是为了起到一个2刻延迟的中继器的作用,但这种构造可能只会造成1刻延迟。(请看图1)当红石火把朝东或朝西,整个构造延迟2刻;但当火把朝南或朝北,第二个(即顶端那个)火把会与第一个火把同时改变状态,从而只产生1刻的延迟。

当不加以解释的时候,这种畸变可能会导致在复杂电路设计中出现BUG,但畸变本身有一些用处。例如,在正式版1.2之前,双开需要互为反相的红石信号控制,但对一个信号反相会产生1刻延迟。在Beta 1.3版引入红石中继器之前,唯一能够使两扇门同步开关的方法就是利用图中所示的电路。另一种应用为下图中的具有偶数宽度与周期的时钟发生器。

总而言之,由于正式版1.2之前双开门的特性,南北向传输畸变可以使控制信号在被反相后仍然与原信号同步,从而避免非门的1刻延迟。(请看图2)当您要设计具有精准时间的电路时,畸变的应用就不可或缺了,比如依赖于边沿信号传输的信号处理中。例如通过两个互相分离的边沿感应器以输入互相反相的信号,然后对它们的输出求或即可。

延时电路[编辑 | 编辑源代码]

用于加长信号传输速度的压缩版延时电路

有时您希望在您的电路中引入延时。延时电路是为了达到延时目标而建造的传统压缩版设计。然而,Beta 1.3版引入了单个的方块红石中继器,它能够被设置为1,2,3或4刻延迟,从而使延时电路过时了。出于篇目完整性的考虑,我们仍然保留了这个章节以供您参考。

这里的两个电路运用大量红石火把以保证压缩性,但也正因为如此您需要注意南北向传输畸变。为了达到最大的延迟,请在建造时使得附着的火把都朝向东边或西边。为了最大限度地微调其延迟,您可以小心地调整各火把的朝向。

设计方案A具有4刻延迟,设计方案B有3刻延迟。

超长延迟电路[编辑 | 编辑源代码]

如果利用具有不同的延迟长度与一个与门的两个中继器环链,您可以在输入与输出之间加入极长的延迟,同时兼顾压缩性与经济性。[1]

Extreme delay circuit.png

由于两个环链都需要连到与门,但具有不同周期(一个55刻,一个56刻,都需要28个中继器),所以输入到输出的实际延迟被戏剧性地大大增加( 实际延迟为55与56的最小公倍数。由于两数为互质数,所以总延迟为3080刻,即略大于5分钟。相对于在一条直链的中继器能达到的最大112刻,这个数字十分可观)。

ABBA切换器[编辑 | 编辑源代码]

ABBA切换器设计方案

当您应用活塞时可能会遇到需要按照一定次序激活它们,但按相反的次序关闭。例如隐蔽型活塞门,它们的控制电路一般都很庞大。本篇目介绍的压缩电路之所以被命名为ABBA切换器(ABBA Switch),是因为如果以双输出端为例,它被设计为先开启输出端A,再B,然后关闭则是按照先B后A的顺序。

ABBA切换器
延长版ABBA切换器

您也可以添加另外的C、D输出端,依此类推。然而增加输出端的结果是延迟的增加——因为电能在输出动作完成之前就要到达输出端的相反次序的起始点。您还可以提高中继器的档位,从而提高不同输出端激活次序之间的延迟。

ABBA切换器设计方案C

还有玩家[2]设计了一种占地面积更小的纵向设计,可以方便地应用到各种结构中。这里拉杆作为输入,两个活塞用于展示输出信号。

纵向传输[编辑 | 编辑源代码]

纵向传输的设计方案

有时您需要纵向地传输红石信号(例如,您需要在单一的观察点控制多个电路)。为了实现纵向传输,您可以构建2x2的螺旋结构以传输电能到任意方向。

如果中继器是必要的,这里有一个1x1的可以向上传输的设计,和一个1x2向下传输设计。为了让整个结构有效,您不应当让最上方的火把点亮,只有熄灭状态能够在需要时切换电路状态。

另一种短延迟的向下传输,即设计方案C,占地面积为3x1,而且用中继器(1.5之后可以用0.5刻的比较器)代替了火把。本电路的优点是输出能够被轻易导出到任意高度,而且相位相同。

使用荧石的方案

在正式版1.2之后您能够在荧石块上铺设红石线了。玩家CaptainSparklez发现了能够无延迟地向上纵向传输最多13格的方法。

然而,在正式版1.2中,荧石块能够向上传导电能,但却不能向下传导电能。也就是说,如果想在之前版本那样在某平面上的一个荧石块上铺设红石线,然后在该荧石块侧下方的方块上也铺设红石线,两条红石线会连接起来,但如果有电源传递电能到荧石块上的红石线,电能无法继续向下传。这个现象可以以最简便的方法制造无延迟的二极管。

类似地,从正式版1.2.5开始,您也可以在倒置的台阶楼梯上铺设红石线,其电能特性与荧石块类似。

在正式版1.5后,我们可以用朝天(向下、向侧面亦可)摆放的活塞推出红石块,使之激活上面(下面/侧面)的活塞或者电路,但是延迟不容小觑。

集成组合逻辑[编辑 | 编辑源代码]

本条目包括各种利用逻辑门的依次组合达到特定逻辑功能的模块装置。

二进制运算电路[编辑 | 编辑源代码]

包括半加器、全加器、减法器等。他们能够对输入二进制数进行运算并输出结果,在现实生活中这些组件均为数字信号处理电路与运算电路的基础。详见高级红石电路条目。

编码器与译码器[编辑 | 编辑源代码]

详见高级红石电路条目。

数据选择器[编辑 | 编辑源代码]

数据选择器

数据选择器(Multiplexer, MUX)能够允许您从一个或多个输入信号中选择一个直接作为输出信号。右图的数据选择器能够多层级联,从而提供3位(3 bit)或更多位的数据选择功能。这个方案中A端和B端为输入端,C端为选择端。


活塞数据选择器(输入输出端为了便于讲解已延长)
纵向的活塞数据选择器

活塞的引入使得数据选择器的方案更为简洁,反应速度可与旧版媲美,而且体积只有3x3x2。

数据分配器[编辑 | 编辑源代码]

大型:http://i1221.photobucket.com/albums/dd478/AJFayer/Relay.jpg

中型:http://i1221.photobucket.com/albums/dd478/AJFayer/RelayM.jpg

小型:

继电器(小型)

数据分配器/解复用器(Demultiplexer)允许您选择将一个输入导向多个输出的某一端。其中具有两个输出端的又叫做继电器(Relay)。在现实生活中,“数据分配器”通常用于数字信号;“解复用器”通常用于模拟信号;“继电器”通常用于电气工程领域。

继电器由两个与门与一个RS或非锁存器组成。默认情况下,继电器某一输出端有效,通过对锁存器的操作您可以将输出换成另一个端口。不像单个RS或非锁存器具有稳定不变的输出,继电器允许您输出可变信号——也就是说您可以不输出任何信号,也可以选择信号的输出端。这个特点对于锁,以及其他涉及到接收到触发事件才输出可变信号到某输出端的应用实例,是十分有用的。不像现实中的继电器,您不需要稳定的电源输入以保持第二输出的激活。本方案需要电能以重置第一输出。

这里有一个您需要应用继电器的例子:一个锁,需要您以指定顺序按动多个按钮以开启。继电器允许您让单个按钮可以被使用多次(继电器将信号在不同时间导向多个输出端)。您还可以制作需要用开关输入多个数字的多位二进制组合锁。您可以用四个开关输入4位数字,第五个开关用于验证数字。第五个开关可以将继电器切换到其他开关从而让您能够使用同一个开关输入第二个数字。

-通过将RS或非锁存器的两个输出到任一与门来建造继电器,然后对其他与门输入端加入共同的一个输入端。触发锁存器就能够改变输出。

纵向版本:

纵向的小型继电器版本

本纵向版本体积为8x5x1,荧石块用于隔离两个与门之间的输入。拉杆用于切换输出,按钮用于激活选中的输出。

这里还有一种更加集成化的继电器设计。A为输入端,B为选择端,C和D为输出端。

第一层
第二层‎

三态缓冲器[编辑 | 编辑源代码]

三态缓冲器(Three State Buffer)相当于一个由一个使能信号B控制、输入为A输出为C的开关。当B为假时,开关闭合,输入A与输出C相同;当该信号为真时,开关断开,输出C与输入A无关。这样的话就能实现输出端的低电平、高电平与高阻态(即无关态)三种状态的变化。这类电路在现实生活中的集成电路技术中应用广泛。

一般习惯将一个输入(B)被取反的与门作为三态缓冲器,其逻辑关系与蕴含门有相似之处。因为蕴含门一般由一个输入端被取反的或门组成——故只需要将蕴含门的或门换成与门(取反的输入为B端),或是将输出取反(取反的输入为A端),就可以轻易地改造为三态缓冲器。

A B C
0 0 0
1 0 1
0 1 高阻态
1 1 高阻态

集成时序逻辑[编辑 | 编辑源代码]

本节包括各类集成化的时序逻辑模块装置。

移位寄存器[编辑 | 编辑源代码]

移位寄存器(Shift Register)实际上是D触发器的串联,或是共享时钟输入的JK触发器序列,使用红石中继器的锁存功能也能制作移位寄存器。特点是前一个触发器的输出还会连到下一触发器的D输入端。故移位寄存器按照时钟输入的触发速度能够将串行数据依次显示在各个输出端。中文视频[3]


移位寄存器具有多种移位方式:

逻辑左/右移位: 逻辑移位指溢出的位不会被储存。在另一端多出来的空位被补零操作代替。因此逻辑移位方式适用于无符号二进制数字。

循环移位: 移位的另一种形式是循环移位,一般称为“位循环”。在位循环中,从一端溢出的位会在另一端在被补回来,就好像序列被连成环了一样。

算术左/右移位: 算数左移位相当于逻辑左移位。然而在算术右移位中,并非是在左端补零,而是对最左端数字进行复制。这一特点允许您对补码形式的二进制数进行除2操作——即使它是负数。(左移位允许对带符号或无符号数进行乘2操作)

计数器[编辑 | 编辑源代码]

计数器(Counter)是用于记录输入脉冲数量的装置,基本结构为级联的边沿触发型触发器。 运用单稳态电路(见WIKI单稳态电路)的输入(按钮)以及红石中继器的延迟效果来进行计数 比如在按钮的10刻输入下,通过一个单向10刻环向延迟使其每次输入都只激活一个单向电路 ===计数器清零器 在一个计数器的所有单向环形电路上都做一个超过或与环形电路时间相同的截断电路,此电路激发能量需要是单稳态电路。

随机数据生成器[编辑 | 编辑源代码]

随机数据生成器可以输出随机生成的数据。这里有一个随机数据生成器的教程:[4]

伪随机数据生成器[编辑 | 编辑源代码]

线性反馈移位寄存器是用来生成伪随机数的电路。下面是一个16位的线性反馈移位寄存器例子。中文视频 [5]

方块更新感应器[编辑 | 编辑源代码]

方块更新感应器(Block Update Detecter,BUD)会侦测毗邻方块的更新。BUD最早由知名的Minecraft玩家Etho发明。“方块更新”指以任何能够改变方块状态的动作:放置方块、移除方块、开门、中继器的延迟改变、蛋糕被食用、长出草、形成积雪、使用熔炉(或停止使用熔炉)等等(开关箱子与使用工作台并不会引起方块更新,但睡在床上会引起)。大多数流行的BUD均采用了活塞作为核心部件。

可以看到“方块更新”包括很多动作,但他们有一个共同点,那就是方块的变化(方块本身的ID被改变)。例如,移除某方块就是该方块被空气方块代替;放置方块,移除方块、长出草、积雪等等变化都是这些方块代替了空气方块,熔炉在被使用时与未使用时的方块ID不同,等等同理。

不同种类的BUD尽管具有共同的激活条件——感应器的临近方块更新,但建构原理利用了各式各样的漏洞或特性。一种活塞BUD利用了下面的活塞激活特性:活塞能够被任意隔一格之上的被充能方块或是那方块侧面的被充能方块激活——但满足这个激活条件之后,活塞临近方块必须更新才可以让活塞臂伸出——而且,当激活条件不被满足后,活塞临近方块要再次更新才能让活塞臂缩回。某些活塞BUD还利用了其他的漏洞,请看这个中文视频:[6]

BUD几乎可以应用到所有机构中,从陷阱到能够感应阳光来开关隐藏门的装置等等。这里有一个应用实例,请仔细观看作者构筑BUD的顺序。YouTube英文版:[7] 优酷中文版:[8]

有很多可以自动复位的BUD例子,基本上都是通过激活BUD时通过一定电路重新在设定自身状态的方式。例如这个YouTube视频:[9] 优酷中文版:[10]

信号转换[编辑 | 编辑源代码]

本节包括各种红石信号与其他类型的信号之间的转换设备。

物品“按钮”[编辑 | 编辑源代码]

一个正在工作的物品"按钮".

从1.0正式版开始,我们可以让一个木质压力板像一个按钮一样工作了(有物品激活压力板后)。在之前的版本中,我们没有办法自动清除掉在压力版上的物品——只能等它自动消失(5分钟后)或者捡起来。所以所有的需要用物品来激活的秘密按钮都是半自动的,因为我们要手动清理掉在上面的物品。现在你可以通过把木质压力板放在栅栏 (栅栏的碰撞箱被更新为跟它自己显示出来的大小差不多的程度)上:当一个物品从一个压力板旁边压上去的时候 (不是在中间),它会直接滑过压力板而产生一个长度为1秒的脉冲 (就像一个按钮那样).

物品“按钮”: A - 物品落入点; B - 输出端; C - 物品销毁点.

为了保证物品顺利滑过压力板,我们需要用水把它冲向压力板而不是直接把它扔在板子上。需要注意的是,栅栏会和周围的固体方块连接,而这种连接可以阻挡物品的下落。所以确保你把流向压力板的那一格水放在非固体方块 (像玻璃) 上面。 可以肯定的一点是,为了使物品被水冲下去之后不会停在栅栏上 (虽然经测试即使是最短的2格坡道也未遇到这种情况,但为了保险起见,要让流向栅栏的水位尽可能低。)

物理信号到红石信号的转换[编辑 | 编辑源代码]

一个物理信号到红石信号的转换器

通过水和熔岩(液体)源独特的刷新方法, 我们可以把一个方块的状态更改这种"物理信号"转为红石信号。 为了达到这个目的,您可以创建一个指定方块状态改变时会发生变化的水或者熔岩流。(请您务必参阅 [1],文章利用了液体在被放置时流向最近的8格以内的高度更低的沟渠,而且在液体源临近方块状态改变之前流向不会改变的特性。请注意该文章中的操作次序。),然后在液体源另一侧的方块放置红石火把/红石线,最后在同侧的近处构造更低的沟渠。一旦液体源邻近的方块状态改变,液体源自己的流向会被更新,使得方向改变的液体流可以冲走这个红石火把/红石线。这样,这个红石火把/红石线的消失导致输出信号的改变,从而达到信号转换的目的。

一旦设置完成,液体源毗邻方块状态改变会触发您希望看到的结果。“方块状态改变”包括:方块放置与毁灭,沙子或沙砾掉落到该处,长出草丛,水稻生长,被充能,门的开关,甚至是红石矿石“发出蒸汽”。

这个装置只能工作一次,之后需要手动复原。

请参阅方块更新感应器(BUD)章节。BUD具有更强的适应性。

红石信号到动流体信号的转换[编辑 | 编辑源代码]

红石-动流体信号转换器

与上一篇目同理,您也可以利用同样的特性构建红石信号到动流体信号的转换。同样希望您仔细阅读该文章[2]然后将一个红石线导向液体源的毗邻方块。红石线的状态一旦改变,液体源的流向就会被更新。如果设置得当的话,您可以通过电路来重定向液体流向。

而且自Beta 1.7之后,活塞能够被多功能地使用在液体控制中。活塞的伸臂能够阻断任意方向流来的液体,粘性活塞粘连的方块同样有这个作用。所以,用活塞来完成红石信号到动流体信号转换是十分容易的,而且不需要人工重置。

参考[编辑 | 编辑源代码]