用计算机编程
为孩子赋能

制作红石”时钟电路”

时钟电路

"时钟电路"会周期性地输出红石信号, 从而循环激活与之相连的红石装置.

info
注意, "脉冲电路"和"时钟电路"只是人们的定义. 实际上, "时钟电路"也可以产生"脉冲"1, 只不过两者的侧重点不同:

  • "时钟电路"强调多次循环触发, 作用是让红石装置反复激活
  • "脉冲电路"不强调多次触发, 而是强调单次红石信号的持续长度, 让红石装置以确定的时间长度维持激活状态

如何理解"循环""周期"和"频率"?

为了更方便地理解"时钟电路", 我们先了解一下"循环""周期"和"频率"的概念:

  • "循环"是连续多次运行同一个流程, 比如"时钟"的秒针、分针、时针不断在循环转圈.
  • "周期"是指运行 1 个流程所需的时间. 通常单位为"秒"
  • "频率"是指 1 秒运行多少个周期. 单位为"赫兹(Hertz, 简写为Hz)"2
  • "周期"和"频率"是反比例关系. 假设运行 1 个"周期"的时间为 t. 那么, "频率"就是 1/t. "周期"越短, "频率"就越大, 也就意味着运行速度越快

比如, 下图中, 圆圈每隔 0.5 秒点亮, 从 1 到 6 逐个亮起总共需要 0.5 x 6 = 3 秒. 那么它的频率就是 1/3 Hz:

循环亮光b

如果我们将圆圈改成每隔 1 秒点亮, 那么从 1 到 6 逐个亮起总共需要 1 x 6 = 6 秒. 那么它的频率就是 1/6 Hz:

循环亮光

5 种"时钟电路"

我们可以利用各种材料的特性来建造"时钟电路", 根据材料的不同, 可以分为:

  • 火把时钟: 利用"红石火把"的"反相原理"3
  • 中继器时钟: 利用"红石中继器"的"延时特性"和"单向传输特性"4
  • 比较器时钟: 利用"红石比较器"的"检查容器填充度"的特性5
  • 漏斗时钟: 利用"漏斗"的"自动转移物品"的特性6
  • 活塞时钟:

1.火把时钟

"火把时钟"是根据"红石火把"的"反相原理"[1], 将一串"红石火把"首尾相连, 让"红石火把"之间不断循环熄灭和开启的"时钟电路". 这种电路会输出一个反复切换开启和关闭的"脉冲信号"[2].

最简单的"三刻火把时钟"

我们先制作一个最基础的"三刻火把时钟".

因为"红石火把"在对信号进行反转时会产生 1 红石刻7延迟, 所以"三刻火把时钟"总的"运行周期"是 3 个红石刻[3], 即 0.3 秒, "频率"是 1 / 0.3 ≈ 3, 即 1 秒能运行 3 个周期, 也就是说, 红石线在 1 秒内能够明灭 3 次.

3刻时钟0

原理:

  1. 附着在 A 方块上的火把亮起, 点亮了 D (红石线)
  2. 点亮的 D (红石线) 弱充能了 B 方块, 导致附着在 B 方块上的火把熄灭, 所以 E (红石线)熄灭
  3. 熄灭的 E (红石线)不再充能 C 方块, 根据"红石火把"的"反相原理"[1], 附着在 C 方块上的红石火把亮起, 所以点亮了 F (红石线)
  4. 点亮的 F (红石线)弱充能了 A 方块, 根据"红石火把"的"反相原理", 附着在 A 方块上的火把熄灭, 所以 D (红石线) 熄灭
  5. 熄灭的 D (红石线) 不再充能 B 方块, 根据"红石火把"的"反相原理", 附着在 B 方块上的火把亮起, 所以点亮了 E (红石线)
  6. 点亮的 E (红石线) 弱充能了 C 方块, 根据"红石火把"的"反相原理", 附着在 C 方块上的火把熄灭, 所以 F (红石线)熄灭
  7. 熄灭的 F (红石线)不再充能 A 方块, 根据"红石火把"的"反相原理", 附着在 A 方块上的火把亮起
  8. 重复循环"第 1 ~ 7 步骤", 从而形成循环往复的红石信号.

通过简单的改造, 我们就能把这个"火把时钟"变成一个不断发射箭矢的发射器:

箭矢发射器

上图中, 当"拉杆"没有开启时, 后方的"火把时钟"循环输出红石信号, 反复激活"发射器", 使其发射箭矢. 当"拉杆"开启后, "拉杆"持续强充能了其附着的方块, 所以"发射器"持续收到红石信号, 所以只能发射一次箭矢, 后面就停止发射了.

其实我一开始是这样制造"箭矢发射器"的(错误的示范):

箭矢发射器B

上图的制造方法是有些问题: 尽管"拉杆"启闭也可以控制"箭矢发射器", 但是, 当"拉杆"打开后, "拉杆"所附着的方块被持续强充能, 方块持续点亮了所连接的红石线, "时钟电路"的循环功能被破坏了!


N 刻火把时钟

上面讲解的是最基础的"三刻火把时钟", 其实, 我们可以继续添加火把来拓展"时钟电路", 以增加时钟的"周期", 降低"频率". 不过, 需要保证火把的数量是奇数 (如果是偶数, 火把互相之间形成平衡, 无法反复明灭).

之前的"三刻火把时钟"的"频率"是 1 秒能运行 3.3 个周期, 也就是说, 红石线在 1 秒内能够明灭 3.3 次. 如果我们想设计一个"火把时钟电路", 让其 1 秒明灭 2 次. 如何设计呢?

  1. "1 秒明灭 2 次"表示"频率"为 2 Hz, 所以"周期"为 1 / 2 = 0.5 秒
  2. 0.5 秒即 5 个红石刻, 也就是说需要制作"五刻火把时钟"
  3. 我们只需要在之前"三刻火把时钟"的基础上, 再增加 2 个红石火把和方块即可:
    五刻时钟

一刻火把时钟

可能有人会好奇, "一刻火把时钟"是如何实现的. 不幸的是, "一刻火把时钟"的"红石火把"在反复明灭几次后, 会很快损毁, 从而失去信号, 我们可以动手试一下:

一刻时钟

原理:

  1. C (红石火把)亮起, 导致强充能了其上方的 B 方块, 所以点亮了 D (红石粉)
  2. 点亮的 D (红石粉)弱充能了 A 方块, 根据"红石火把"的"反相原理"[1], 附着其上的 C (红石火把)熄灭
  3. C (红石火把) 熄灭, 导致 B 方块不再被充能, 所以 D (红石粉) 熄灭
  4. 熄灭的 D (红石粉) 不再充能 A 方块, 根据"红石火把"的"反相原理", 附着其上的 C (红石火把) 亮起
  5. 重复循环"第 1 ~ 4步骤"(不过, 红石火把会很快烧毁)

火把时钟的功能极限

从上文得知, 我们可以根据需要的"频率", 来设计相应的"N 刻火把时钟". 同时, 我们也知道了, "一刻火把时钟"会很快烧毁, 所以"火把时钟"所能实现的功能范围是以"三刻火把时钟"为极限的.

因此, "火把时钟"所能实现的功能极限:

最大(max) 最小(min)
频率 3.3 Hz (理论上可以无限小)
周期 (理论上可以无限大) 0.3 秒

2.中继器时钟

基础方案

中继器时钟_00

上图中的 2 个"中继器"的延时都为 4 红石刻, 所以整个电路的运行周期是 4 x 2 x 0.1 = 0.8 秒, 频率是 1 / 0.8 = 1.25 Hz.

原理:

  1. 从外部输入一个短暂的红石信号(在左下角放上"红石火把", 并立即拆除), 由于"中继器"的"单向传输"特性[4], "中继器 a"输入红石信号, 而"中继器 b"无法通过红石信号
  2. "中继器 a"被输入红石信号后, 尽管外部的红石火把已经拆除, 但是由于"中继器"的"延时特性", 红石信号被延迟了几个红石刻才输出(相当于红石信号被储存在"中继器 a"中一段时间). 输出后, "中继器 a"因为没有输入而熄灭;
  3. "中继器 a"的输出成为"中继器 b"的输入, 同样的, 红石信号被延迟了几个红石刻才输出, 输出后, "中继器 b"熄灭;
  4. "中继器 b"的输出成为"中继器 a"的输入
  5. 重复循环"第 2 ~ 4 步骤", 从而实现红石线反复明灭

我们可以通过调节"中继器"的延时来方便地调节"时钟电路"的"频率":

  • 如果我们想加快频率, 就需要缩短"中继器"的延时. 比如说, 将 2 个中继器的延时都调整为 1 红石刻, 那么 1 个周期的时间是 1 x 2 x 0.1 = 0.2 秒, 频率为 1 / 0.2 = 5 Hz, 也就是说 1 秒内明灭 5 次;
  • 需要注意的是, 如果任意一个"红石中继器"的延时为 1, 即没有延时. 整个电路将持续点亮;

建造"中继器时钟"时, 需要注意:

  • 2 个"中继器"面朝相反的方向摆放
  • 插上红石火把后需要立刻拆除, 操作的速度必须快于红石信号的传播速度(在这里就是指"中继器"的总延时时间), 否则"时钟电路"会失败. 比如说, 2 个中继器都延时 0.2 秒, 所以总延时 0.4 秒. 如果从"插上火把"到"敲掉火把"所耗费的时间大于 0.4 秒, 则时钟电路制作失败, 将持续点亮, 无法明灭 (我的操作速度在中继器总延时 0.4~0.8 秒的情况下可以制作成功"时钟电路", 在总延时 0.2 秒时, 就失败了. 不过, 在后面的"进阶方案"中, 我们利用自动装置, 能够在中继器总延时 0.2 秒的状态下制作成功"时钟电路") 8
    中继器时钟_建造

衍生方案

如同之前的"N 刻火把时钟", 我们也同样可以通过增加"中继器"来增加时钟的"周期", 降低"频率".

基础方案的"中继器时钟", 在总延时 0.8 秒的情况下, "周期"就是 0.8 秒, "频率"就是 1 / 0.8 = 1.25 Hz, 如果我们想减慢速度, 也就是增大"周期"减小"频率", 可以通过增加中继器以增加总延时来实现:

中继器时钟_衍生方案

进阶方案

我们将之前的方案改造一下, 将手动快速拆除"红石火把"的功能, 交给"T 触发器"9, 用于自动切断"供能元件":

中继器时钟_改良版b

其主体部分和之前的"基础方案"是一样的, 也是把两个"中继器"面朝相反方向放置. 唯一的区别是, 使用"T 触发器"[8]将"供能部分"改造成可以自动切断:

中继器时钟_改良版_整体结构图

其原理是:

中继器时钟_改良版

当"拉杆 a"打开, 其附着的"方块 b"被强充能

  1. 强充能的"方块 b"激活了"粘性活塞 c", "粘性活塞 c"推出了"方块 d"
  2. 强充能的"方块 b"激活了相邻的"红石线 g", "红石线 g"激活"中继器 h"
    1. 激活的"中继器 h"强充能了"方块 j", "方块 j"激活了相邻的"红石线 k", "红石线 k" 激活了 "中继器 l", "中继器 l"激活了"红石线 f", "红石线 f"激活了"中继器 e", "中继器 e"强充能了"方块 d"
    2. 同时, 激活的"中继器 h"强充能了其附着的方块, 该方块激活了"粘性活塞 i", 将"方块 j"推开, 从而断开了之前"中继器 h"对"方块 j"的强充能, 也就断开了"方块 j"对"红石线 k"的激活
    3. 然而, 强充能的"方块 d"激活了"红石线 k", 使得红石信号的"k -> l -> f -> e -> d -> k 循环"得以维持

3.比较器时钟

比较器时钟

原理:

  1. 首先, 把"比较器"切换为"减法模式", 即当侧面的红石输入强度和后面的输入强度相等时, 前面输出为 0;
  2. 一开始, "红石火把"在"比较器"后面提供 15 强度的红石信号, 而"比较器"的侧面没有红石信号, 即信号强度为 0, 所以, "比较器"前面的输出强度为 15 – 0 = 15;
  3. 当"比较器"输出 15 强度的红石信号, 随着红石线的传递, 信号强度开始衰减, 但是到达"中继器"之后, 信号强度被"中继器"提升到 15 强度, 此时, "比较器"后面是 15 强度, 侧面是 15 强度, 因此前面的输出强度为 0;
  4. 循环"第 2 ~ 3 步骤", 红石线路反复明灭

建造时, 注意"红石比较器"和"红石中继器"的放置方向
注意"比较器"要切换成"减法模式"(比较器前面的灯会亮起)


4.漏斗时钟

漏斗时钟

建造时, 要注意把两个"漏斗"的输出管相互连接在一起.

我们可以先放置一个"漏斗", 然后将十字光标对准这个"漏斗"的侧面, 按住 Shift 键, 放置另一个"漏斗", 这样, 两个"漏斗"的"输出管"就能连接在一起了.

建造好之后, 丢一个普通方块到其中一个漏斗, "时钟线路"就可以工作了.

原理:

  1. 当我们丢一个普通方块到其中一个"漏斗",
    • 和该"漏斗"相邻的"比较器"监测到"漏斗"中有物品, 从而产生红石信号. 因为"漏斗"中只有 1 个物品, 所以"比较器"产生的红石信号强度是 1 单位强度10
    • 同时, 根据"漏斗"的"自动传输特性"[6], "漏斗"会将物品传输到"输出管"连接的容器中, 在这里, "输出管"连接的是另一个"漏斗", 所以, 方块被传输到另一个"漏斗"中
  2. 另一个"漏斗"接收到方块, 重复上面"第 1 条步骤"
  3. 循环"第 1 ~ 2 步骤", 左右两侧的红石线反复明灭

改良版本:

因为"比较器"产生的红石信号强度和"漏斗"的填充度成正比例关系, 所以, 当"漏斗"只有 1 个普通方块时, 只产生 1 个单位强度的红石信号, 走 1 格距离, 红石信号就衰减为 0 了. 因此, 我们在红石线后面接上"中继器", 将红石信号强度提升到 15 单位强度, 方便后面连接其他红石设备:

漏斗时钟_改良版


5.活塞时钟

活塞时钟

原理:

活塞时钟流程图

  1. "方块 a"被正下方的"红石火把"强充能, 从而激活相连的"红石线 b", 激活"中继器 c", 从而激活"活塞 d", "活塞 d"将"方块 a"推出去;
  2. "方块 a"被推出去后, 同样地, 被正下方的"红石火把"强充能, 从而激活相连的"红石线 e", 激活"中继器 f", 从而激活"活塞 g", "活塞 g"将"方块 a"推出去;
  3. 如此循环往复

"红石中继器"在这里的目的是, 因为空间紧凑, 需要利用它"单向传输"的特性, 保证线路走向
使用"活塞"或者"粘性活塞"都可以



  1. "脉冲"这个词就是取自"像脉搏一样波动"之意, "脉冲电流"就是指像脉搏一样间歇起伏的电流. 这里的"脉冲"就是指"一个脉冲电流的周期". 详细解释见这里 

  2. "赫兹(Hertz/Hz)"是以首位用实验验证电磁波存在的科学家海因里希·赫兹(Heinrich Rudolf Hertz)命名的 

  3. "红石火把"的"反相原理"是指, 如果"红石火把"所附着的方块被充能, 则"红石火把"会熄灭. 详细的解释见 这里 

  4. "中继器"的特性见这里 

  5. "比较器"的特性见这里 

  6. "漏斗"的特性见这里 

  7. "刻"是 Minecraft 世界中的时间单位, 1 红石刻 = 0.1 秒. 详细解释见这里 

  8. 之前总延时 0.2 秒的情况下, "时钟电路"总是制作失败. 我还以为是由于人眼的"视觉暂留"现象导致的 — 人眼能够保留 0.1 ~ 0.4 秒左右的图像, 所以我以为人眼无法察觉周期为 0.2 秒的明灭周期电路. 之后引入自动装置, 设计了"进阶方案", 发现在中继器总延时 0.2 秒的状态下可以制作成功"时钟电路". 这推翻了我之前"视觉暂留"的解释, 证明了"时钟电路"的失败是由于手动操作的速度太慢的缘故 

  9. 这里使用的是"紧凑型 T 触发器

  10. 已知容器中的物品数量, 计算"比较器"发出的红石信号强度的计算方法见这里 

赞(4)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址