作者:程博 神秘的攸灵

1 自动化入门

  解锁自动化需要研究自动化系列建筑。

1研究界面自动化

  自动化的主要建筑位于“信号”。

1建造栏信号

  打开自动化视图(快捷键:shift + F2),可以看到自动化的基本信息。我们需要留意的是橙框里的内容。

1自动化视图

  输入口,建筑接收信号的端口。

  输出口,建筑输出信号的端口。

  电路状态,指的是信号线的状态。

  • 绿色 = 启用、工作、打开……,建筑收到绿色信号会启用,也就是工作。

  • 红色 = 禁用、停止、关闭……,建筑收到红色信号会禁用,也就是不工作。

  

  信号由信号线传递。用信号线把需要输出信号建筑的输出口和接收信号建筑的输入口连接起来,以此传递信号。

1信号线1 1信号线2

  在自动化视图下查看信号线。信号线的电路状态默认是红色。

1信号线3

  用信号线连接输出口(左)和输入口(右),并且输出绿色信号。

1信号线4

  这里有一个灯泡,通上电就会发光。

1控制灯泡1

  我们给灯泡连上信号线,并用“信号开关”控制。(信号开关,由玩家设置输出信号)

  可以看到,信号开关输出绿色信号,灯泡亮。

1控制灯泡2
1信号线4 1控制灯泡3

  让信号开关输出红色信号,灯泡熄灭。

1控制灯泡4 1控制灯泡5

  可见,自动化是用来控制建筑的启用和禁用。

  那么,自动化是根据什么来控制建筑?

  由检测机器获取信息,并由玩家设置检测机器输出信号的条件,当信息符合条件时,检测机器输出信号启用建筑;若信号不符合条件,则禁用建筑。

  在此列举一些常用例子:

  (1)复制人在使用有读条的建筑时,如果有灯光,会加快15%的读条速度。
  可以在需要读条的建筑旁边放上灯泡,但是灯泡一直开着浪费电,我们可以用自动化达成有人来使用才开灯,没人使用就关灯。

  复制人上厕所有读条,使用灯泡加快上厕所速度,用复制人运动传感器检测复制人。复制人运动传感器的检测范围覆盖灯泡的灯光范围,即可做到复制人一进入灯光范围就开灯。

1举例1 1举例2

  (2)气泵一旦通电,就会一直吸气,直到真空为止。这在实际使用中是非常不方便的,我们用自动化改善一下。

  气压传感器,检测环境气压(气体质量),并根据玩家设置的条件来输出信号。

  下图是设置为“高于1000克”,所以当气压高于1000克,启动气泵;当气压低于1000克,禁用气泵。这样气泵不会把区域抽真空,并且还能控制气压不超出1000克。

1举例3

  这种一般应用在气体生产上,一产出气体就抽走。

  气泵每次抽气最大500g,但是不管抽了多少气体,耗电都是一样的,所以用气压传感器维持气压,保证气泵每次抽气都有500g。

2 信号

2信号

  信号来源于信号输出建筑(的输出口)。

  由玩家为信号输出建筑设置输出信号的条件,然后由信号输出建筑检测信息,如果信息符合条件则输出绿色信号(启用),信息不符合条件则输出红色信号(禁用)。

  信号通过信号线传递到信号接收建筑(的输入口),建筑根据接收到的信号来工作,如果是绿色则启用,红色则禁用。

  有些建筑没有输入或输出口,不受自动化控制,本文不作赘述,读者可自己在自动化视图里留意。

  列举一些常用的与自动化有关的建筑:

  (1)常用的信号输出建筑:

  • 通过检测外部环境信息来输出信号:

  气压传感器,液压传感器,温度传感器,小动物传感器,压力板,复制人运动传感器,气体元素传感器(,液体元素传感器),雷达。

  • 通过检测其他建筑内部信息来输出信号:

  液体管道温度传感器(,气体管道温度传感器),液体管道元素传感器,气体管道元素传感器。

  (2)常用的能接收信号的建筑:

  气动门,机械门,地堡门;

  大部分发电机;

  液泵,气泵;

  液温调节器,所有电灯,孵化器,(火箭)指挥舱。

3 信号线

  信号线用于传输信号。

  信号线有两种信号状态——绿色和红色,这两种信号状态是相对关系,绿色表示启用,红色表示禁用。

  信号线默认为红色信号。如果没有输出信号的机器,只用信号线连接建筑,建筑会被禁用。

1信号线3

  当接收到绿色信号时,信号线变为绿色。

3信号线1

  

  建筑只会输出绿色信号和不输出信号,红色信号是信号线默认存在的,

  当接收到绿色信号,整条信号线都会变成绿色,绿色信号会覆盖红色信号。

3信号线2 3信号线3

  

  信号线桥,中间可以穿过另一条信号线。

3信号线桥1 3信号线桥2

4 逻辑门

0. 逻辑门的属性

  逻辑门,可以看作是一种信号处理元件,把接收到的信号转换成相应的信号再输出。

  逻辑门转换信号大约有0.1s的延迟(目测)。

  给逻辑门连接信号线时需要注意,小心把输入口和输出口连到一起。

4逻辑门注意事项

  

  

  信号的红色用 0 表示,绿色用1表示。

  1 表示启用,0 表示禁用。

  

  下文用“气压传感器”来输出信号,因为气压传感器的信号状态更显眼。

  当气压传感器发亮时,输出 1 ;暗淡时,输出 0

4定义1 4定义2

1. 与门

与门
在自动化视图里,左边两个白口是输入口,右边黑口是输出口。

  

  只有在两个输入口都收到 1 时,才输出 1

  只要其中一个(或两个)输入口收到 0,就输出 0

  输入口以 AB 表示,输出口以 L 表示,用逻辑表达式来表述,则可写为

L = A · B

  式中小圆点“ · ”表示 AB运算。也称为逻辑乘。在不引起混淆的前提下,一般省略乘号“ · ”,写成 L = AB

表1 与逻辑真值表
与门真值表

  真值表,是表征逻辑事件输入和输出之间全部可能状态的表格(把所有输入和输出情况都列出来),以1表示真,0 表示假。

  以表1与逻辑真值表为例,当A=0,B=0,则L=0……当A=1,B=1,则L=1,这四种情况,就是与逻辑的输入和输出之间的全部可能。

  为了方便表示,用逻辑表达式代替真值表,也就是L = AB
   当A=0,B=0,L=A乘B=0乘0=0
   当A=0,B=1,L=A乘B=0乘1=0
   当A=1,B=0,L=A乘B=1乘0=0
   当A=1,B=1,L=A乘B=1乘1=1

与门实例

2. 或门

或门
在自动化视图里,左边两个白口是输入口,右边黑口是输出口。

     

  只要其中一个(或两个)输入口收到 1 ,就输出 1

  只有在两个输入口都收到 0 时,才输出 0

  输入口以 AB 表示,输出口以 L 表示,用逻辑表达式来表述,则可写为

L = A + B

  式中符号“ + ”表示 AB运算,也表示逻辑加。

表2 或逻辑真值表

或门真值表

  用逻辑表达式代替真值表,也就是L= A + B
   当A=0,B=0,L=A+B=0+0=0
   当A=0,B=1,L=A+B=0+1=1
   当A=1,B=0,L=A+B=1+0=1
   当A=1,B=1,L=A+B=1+1=1
  逻辑代数只有0和1,所以1+1只能等于1。

或门实例

  其实直接把两条信号线连起来也等价于或门,不过或门可以起到分割信号线的作用,使输入的两条信号线相互独立,不会影响到彼此。

3. 非门

非门
在自动化视图里,左边白口是输入口,右边黑口是输出口。

  

  输出与输入相反。

  当输入口收到 0 时,输出 1

  当输入口收到 1 时,输出 0

  输入口以 AB 表示,输出口以 L 表示,用逻辑表达式来表述,则可写为

L = A

  式中字母 A 上方的短线“ — ”表示运算。

表3 非逻辑真值表

非门真值表

用逻辑表达式代替真值表,也就是L= A
   当A=0,L=A=1
   当A=1,L=A=0

非门实例

4. 缓冲门

缓冲门
在自动化视图里,左边白口是输入口,右边黑口是输出口。

  

  缓冲门,用于缓冲(维持)输出 1

  作用:当输入从 1 变为 0 时(且维持在 0),在缓冲时间里维持输出 1 ,直到缓冲时间结束才输出 0 。玩家可以设置缓冲时间。

缓冲门设置时间

  输入 1 时,立刻输出 1

  当输入信号由 1 转变成 0 时,有一段缓冲时间,在这段缓冲时间里,维持输出 1 ,并且,如果输入信号维持 0 ,那么缓冲时间结束后输出 0 ;如果输入信号变回 1 ,那么维持输出 1

表4 缓冲门功能表
缓冲门功能表

  缓冲时间提示:在缓冲信号时,缓冲门身上有个绿色条随时间走动。

缓冲门时间提示1 缓冲门时间提示2

  应用场景:

  (1)维持输出 1 :输入信号非常短暂,但又需要长时间的输出,可以用缓冲门延长输出时间。

  (2)消除短暂的输入 0 :建筑是一直在接收 1 工作,但可能因为逻辑电路问题,会有短暂的 0 出现,影响了建筑工作,就可以用缓冲门消去短暂的 0 。当要用信号禁用建筑时,只要 0 的持续时间超过缓冲时间,建筑自然会被禁用。

5. 过滤门

过滤门
在自动化视图里,左边白口是输入口,右边黑口是输出口。

  

  过滤门,用于过滤输入 1 (延迟响应输出 1 )。

  作用:当输入从 0 变为 1 时(且维持在 1 ),在过滤时间里维持输出 0 ,直到过滤时间结束才输出 1 。玩家可以设置过滤时间。

过滤门设置时间

  当输入信号由 0 转变为 1 时,有一段过滤时间,在这段过滤时间里,维持输出 0 ,并且,如果输入信号维持 1 ,那么过滤时间结束后输出 1 ;如果输入信号变回 0 ,那么维持输出 0

  当输入信号由 1 转变为 0 时,立刻输出 0

表5 过滤门功能表

过滤门功能表

  过滤时间提示:在过滤信号时,过滤门身上有个红色条随时间走动。

过滤门时间提示1 过滤门时间提示2

  应用场景:

  (1)用来延时,利用过滤门延迟输出 1

  (2)消除短暂的输入 1 :可能因为逻辑电路问题,会有短暂的 1 出现,影响了建筑工作,就可以用过滤门过滤掉短暂的 1

6. 异或门

异或门
在自动化视图里,左边两个白口是输入口,右边黑口是输出口。

  当两个输入信号相同时,输出为 0

  当两个输入信号不同时,输出为 1

  输入口以 AB 表示,输出口以 L 表示,用逻辑表达式来表述,则可写为

L = AB + AB = AB

  式中符号“ ⊕ ”表示 AB异或运算。

表6 异或逻辑真值表

异或门真值表

异或门实例

7. 锁存器

锁存器

  锁存器有两个输入口:置位端 S ,复位端 R 。普通的输入口就是置位端 S 端(左上)。在输入口的基础上多出一个圆圈,就是复位端 R 端(左下)。

  锁存器,可以把信号储存起来,并输出储存的信号。

  当 S 收到 1R 收到 0 )时,锁存器储存这个 1 ,即使 S 变成0 ,因为锁存器已经存储了 1 ,所以还是一直维持输出 1

  当 R 收到 1 时,强制清除锁存器内部的信号(即使S收到1 ),锁存器内部没有信号就等于输出 0

锁存器输入输出

表7 锁存器功能表

锁存器真值表

  *缺氧里,当 S =1, R =1时, Q =0。对于这种情况,在现实的锁存器中,当 S =1, R =1时, Q 是处在既非1,又非0的非定义状态,即结果不定,在现实中是不允许出现这种情况的。不过,游戏毕竟是游戏嘛,就当是课外小知识啦。

  

5 组合逻辑电路设计

5.1 二进制(未写)

  百度一下你就知道。

  

5.2 逻辑函数及其表示方法

  基本的逻辑函数有与、或、非。此外还有常用的逻辑函数有同或、异或、或非、与非等等,这些逻辑函数都可通过与、或、非复合而成。为了减少读者的学习成本,本文只用最基本的与、或、非。

  

  逻辑函数的表示方法有真值表、逻辑函数表达式、逻辑图

  

  真值表,是表征逻辑事件输入和输出之间全部可能状态的表格(把所有输入和输出情况都列出来),以1表示真,0 表示假。

  

表1 与逻辑真值表
与门真值表

  以表1与逻辑真值表为例,当A=0,B=0,则L=0……当A=1,B=1,则L=1,这四种情况,就是与逻辑的输入和输出之间的全部可能。

  为了方便表示,我们可以用逻辑表达式代替真值表,与逻辑为L = AB

   当A=0,B=0,L=A乘B=0乘0=0

   当A=0,B=1,L=A乘B=0乘1=0

   当A=1,B=1,L=A乘B=1乘1=1

  

表2 或逻辑真值表

或门真值表

  或逻辑,表2是或逻辑的输入和输出之间的全部可能。

  用逻辑表达式代替真值表,或逻辑为L= A + B

   当A=0,B=0,L=A+B=0+0=0

   当A=0,B=1,L=A+B=0+1=1

   当A=1,B=1,L=A+B=1+1=1

   逻辑代数只有0和1,所以1+1只能等于1。

  

表3 非逻辑真值表

非门真值表

  非逻辑,表3是非逻辑的输入和输出之间的全部可能。

  用逻辑表达式代替真值表,也就是L= A

   当A=0,L=A=1

   当A=1,L=A=0

  逻辑图,相当于用缺氧里的逻辑门连接形成一个逻辑电路。

5真值表画出电路图

  

  逻辑表达式有化简方法,一是“逻辑代数的基本公式”,二是“卡诺图”,不过编者认为缺氧里用不上复杂到需要化简的逻辑电路,所以不作介绍,有兴趣的读者请自行查阅。

  

5.3 真值表到逻辑图的转换

  首先根据真值表写出逻辑表达式,然后依照逻辑表达式画出逻辑图。

  

  (1)根据真值表写出逻辑表达式

  编者随便写一个真值表:

5画一个真值表

  • 找到输出为1的行,把一行中的所有输入变量相与(相乘),输入为0的用反变量表示(加上非号)。

  表中第一和第三行输出为1,先把这两行的表达式列出来:

第一行:L1= AB
第三行:L2= AB
  • 把上一步得出的表达式相或(相加),得到总的逻辑表达式:
L= L1+L2=AB+AB

  

  (2)根据逻辑表达式画出逻辑图。

  画L1:A,又叫“非A”,所以A先连非门得到A,B也是先连非门得到B

    AB,即AB相乘,相当于连与门,最后得到L1。

  画L2:B先连非门得到B,再和A连与门得到L2。

  画L:L1和L2相加,相当于连或门,最后得到L。

5真值表画出电路图

  

  (3)在我们实际画图时,首先根据自己想要的结果,先写出真值表(把所有输入和输出情况都列出来),可以偷懒只列出输出为1的情况,然后用上述方法得到逻辑电路图。

  

5.4 例题

  题目1:有如下真值表,画出逻辑电路图。

5例题1真值表

  在我们实际画真值表时,可以偷懒只列输出为1的情况:

5例题1偷懒真值表

  写出逻辑表达式:L=ABC+ABC

  画出逻辑电路图:

5例题1逻辑电路图

  

  题目2:本来想拿缺氧作例子,但是实在想不到缺氧有什么例子用得上这些知识……

  题目3:好好学习天天向上。

  

6 (未写)时序逻辑电路设计

  
  
  

7 数字电子技术基础*

  对于数电,如果只是为了玩缺氧或其他游戏装逼,编者不建议学习数电

  首先读者要明白,这只是一个游戏,用得上的数电知识靠自己悟也能悟出来,悟不出来的绝对是要搞用来装逼的东西,编者的建议是随便搞搞能用就行,不要争强好胜,游戏里根本用不上数电。

  编者自己造模块的首要目标就是简单实用耐操,画不出来就换思路、换结构,自动化部分尽量从简,省心省力多舒服。

  只能说,对数电这门专业课,真正需要的人自己已经学了,不需要的人就没学的必要,有时间去学一门课外课程,不如搞好自己的课程。

  

7.1 推荐教学视频与学习路线

  对数电感兴趣的读者可购买书本学习,推荐书目:《数字电子技术基础》(哈尔滨工业大学),《数字电子技术基础》(清华大学),《电子技术基础  数字部分》(华中科技大学)。
  

  学习视频:数字电子技术基础(清华大学,王红主讲)
  https://www.bilibili.com/video/BV18p411Z7ce

  

 学习路线(带*为选看,在课程是重点知识,但是在缺氧里用不上)

  • 组合电路。

  P1绪论、信息与编码

  P2信息与编码2

  P3逻辑代数的基本公式

  P4 逻辑函数的表示方法

  P5逻辑函数的表示方法和标准形式

  P6逻辑函数化简法

  P7具有无关项的逻辑函数及其化简

  P18组合电路的分析和设计方法

  P22竞争与冒险

  *P19典型的组合电路模块(1)第一讲

  *P20典型的组合电路模块(1)第二讲

  *P21典型的组合电路模块(2)

  

  • 时许电路。缺氧里知道锁存器是怎样的就行,不用学太多。

  P24触发器的电路结构和动作特点

  *P25~P36

  

参考文献
[1]杨春玲.数字电子技术基础(第二版)[M].北京:高等教育出版社,2017.
[2]王红.数字电子技术基础(清华大学王红主讲).https://www.bilibili.com/video/BV18p411Z7ce
[3]康华光.电子技术基础 数字部分(第六版)[M].北京:高等教育出版社,2014.