异星工厂吧 关注:62,246贴子:398,574

【教程攻略】电路实例教学(基础篇)

取消只看楼主收藏回复

看的人记得吱个声哦


IP属地:上海1楼2017-03-10 19:46回复
    【概述】电路基础教程,认识脉冲信号与信号处理,理解存储器原理并运用存储器实现更多需求。
    【关键字词】教程;电路;基础;脉冲信号;存储器
    【说明】这一篇内容比较多,也开始有一定难度,不过也是最关键的一篇。掌握之后绝大多数的电路需求都可以轻松完成。我讲的啰嗦些,尽量能更多的人理解。请耐心读完。如果是萌新,最好把上一篇入门篇阅读后再读此篇。


    IP属地:上海5楼2017-03-10 19:52
    收起回复
      2025-07-13 07:31:58
      广告
      此楼留作目录


      IP属地:上海6楼2017-03-10 19:52
      回复
        在教程之前,安利一本书《编码的奥秘》。

        我对这本书让我见识到了什么叫深入浅出。
        让我这种菜鸡文科生都能看懂,我也是佩服作者。
        不过提前说,看完不会让你立马变大神,它主要了提供理论基础和编码思想,相当于普及读物。但可以让你学习相关知识飞速的提高。
        我写教程也在尽量学习这本书的叙述思路。
        不过我并没有看完,能看懂不代表不需要用脑子,懒癌晚期的我已经放弃治疗。
        书算是冷门书,某宝白菜价,网上电子书也一大堆。
        有兴趣的可以了解下,某豆评分9.2呢。


        IP属地:上海7楼2017-03-10 19:57
        收起回复
          第一部分 深入认识信号----脉冲信号与持续信号
          上一篇解释信号时,用信号灯作为了例子。红灯表示停,绿灯表示行,不同颜色的灯表达了不同的信号,而不同的信号承载着不同信息。
          但相同的信号也可以表达不同的意思。比如我的手机指示灯,绿灯表示电量充满,收到通知还是绿灯,但我却能清楚的分辨它们,因为收到通知时绿灯是闪烁的。
          电量充满时,绿灯会一直亮,这被称作持续信号。
          【持续信号:长时间稳定不变的信号】
          收到通知时,绿灯闪烁,这被称作脉冲信号。
          【脉冲信号:短暂或周期性的信号】←超重点
          还是那句老话,定义仅供理解,更严谨更深入的请查阅专业解释。

          上图,可以看到箱子始终发出(红图,1)信号,这就是游戏中持续信号。
          传送带是一个很好的例子:
          把传送带设置为按持续信号读取,可以看到在红图经过该格传送带期间,始终发出(红图,1)信号。
          设置为按脉冲信号读取,你会发现只在红图进入该格传送带的一瞬间,才有一个(红图,1)信号一闪而过,如果没有灯,你可能根本没注意到(抱歉截不到图...)。
          建成这样,可以更清楚的认识脉冲信号与持续信号的区别。
          定义中说过周期性的信号也是脉冲信号,传送带一圈圈的转,红图一次次的被检测,灯一次次的亮,显然信号是有规律有周期的,因此上面传送带的信号也都可以称作为脉冲信号,换个时间尺度,又是一种理解,就像矛盾的对立统一一样。脉冲信号的周期性太复杂用不上,了解一下就行了,就不过多涉及。


          IP属地:上海8楼2017-03-10 20:05
          收起回复
            第二部分深入认识信号-信号的计算处理。

            先从一个问题说起,
            在图中,
            上面的线路,传送带发送的脉冲信号(红图,1)经由6个算数运算器到达灯,算数运算器设置的都是(红图+0,红图)即不对信号进行修改。
            中间的线路,通过电线杆直接连到灯。
            下面的线路,经过6个机械臂到灯,机械臂未做任何设置。
            那么,当传送带发出脉冲信号后,那个线路上灯先亮?
            虽然脉冲信号很快,但实测时大多数厂长应该都可以直观看出来,中间和下面灯同时先亮,紧接着上面灯亮。
            而背后的机理就是我现在要说的:信号的传输。
            【红绿线长度不影响信号的传递。】
            因此中间的灯最先亮,而下面的线路本质上是这样的

            信号其实也是直接到达的,跟中间的线路没什么区别,机械臂并没有对信号产生影响。


            IP属地:上海12楼2017-03-10 23:18
            收起回复
              信号的传输的具体机理:
              【tick是信号处理的最小时间单位。】
              信号不可能即时处理,在游戏中,每1tick计算一次信号。理论上,现实中的1秒=60tick。就像电影中的每一秒的本质上是24张图片一样。游戏中的所谓信号传输本质上是1秒计算了60次而已(游戏中生产,加工等等本质上也是1tick计算一次数据)。
              【1tick时间内,运算器会处理一次信号,并将处理结果送达其他设施。】←超重点
              注意两个关键词,“一次信号”,“送达”。
              上一篇教程说过:信号网络中的信号会叠加。
              也就是说,在“送达”的过程中也会进行一次计算。
              什么是“一次信号”?这就要回到脉冲信号。
              前面说过,传送带发出的脉冲信号一闪而过,几乎不可能看清。
              这个“一闪”有多长?很多人可能猜到了,就是1tick时间。
              这种1tick时间的脉冲信号就是“一次信号”。
              那么持续信号不是“一次信号”,该怎么处理?
              回到上面的定义:tick是信号处理的最小时间单位。
              这个“信号处理”不单指信号的接收还指信号的发出。
              拿传送带的持续信号说事,假如物品经过传送带的时间是1秒,那传送带就发出1秒的持续信号。但是在本质上,传送带发出的是60个1tick时间的脉冲信号。
              那么持续信号的处理就是处理60次1tick时间的脉冲信号。
              那传送带发出的到底是脉冲信号还是持续信号?这就要牵扯到猫的死活了
              不开玩笑了,这其实就是换一下理解角度,这本来就没有什么严格的定义。
              以上内容请尽量理解,是关键的基础。
              之后的内容,如无特殊说明,脉冲信号默认指代1tick时间的脉冲信号;tick简称t。


              IP属地:上海13楼2017-03-10 23:27
              收起回复
                回到那个灯先亮的问题,在了解信号处理后,上面的线路就是这样的:
                (方便讲述,只画了3个运算器)
                每1t都会进行一次处理和送达。那整个线路总共耗时:传送带1t+ 6个运算器6t+ 灯1t=8t
                由此我们不但能知道灯亮的先后顺序,还能知道具体的耗时:
                上面的线路:8t
                中间的耗时:2t
                下面的耗时:2t
                在以后的讲述,耗时只考虑运算器产生的。
                最后留一个问题,上面的线路在其他保持不变的情况下,这样连线:
                不进行实测(实测用处也不大...),推想一下灯会怎么亮,精确到耗时t。这还是有一定难度的,不要问我答案,我也不知道┑( ̄Д  ̄)┍


                IP属地:上海14楼2017-03-10 23:32
                收起回复
                  2025-07-13 07:25:58
                  广告
                  第三部分脉冲信号的运用--没卵用的“流光”
                  有什么用?
                  放一圈灯,然后让灯一个接一个的亮和灭,让灯转着循环着亮,跟老虎机那种灯的转圈类似。
                  如下图,现在亮的是下面第5个灯,接着第5个灯灭,第6个亮,之后6灭7亮,如此循环。
                  虽然没什么卵用,但作为观赏,装下逼还勉强可以的。

                  具体怎么建?
                  首先算数运算器首尾相连,连成一个圈。运算器都设置为(红图+0,红图),还是不对信号进行修改。
                  然后放一圈灯,每个灯连一个运算器,接收运算器的信号。所有灯设置为(红图>0)。
                  最后放一段传送带(别搞成环形),其中一节连一个运算器的输入口。传送带设置为获取脉冲信号。
                  接着在传送带的起点放个红图就行了。
                  结果是:红图经过传送带时,传送带发出脉冲信号(红图,1),然后这个(红图,1)信号在“循环”的信号网络中一圈圈的转,带动灯一圈圈的亮。
                  这个实例还是很简单的,做完再来看这两句话:
                  tick是信号处理的最小时间单位。
                  1tick时间内,运算器会处理一次信号,并将处理结果送达其他设施。
                  是不是有了一个直观的认识?


                  IP属地:上海17楼2017-03-11 14:23
                  收起回复
                    这个“流光“”显然还是很low,总不能多一个灯就加一个运算器吧,这就太臃肿了。要进行一下精简优化。
                    优化还要从信号的一个问题说起,
                    脉冲信号与持续信号要怎么转换?
                    这个问题看似没啥用,但却是很多电路中关键的一步。在以后的例子中就能看出来的。
                    比如传送带检测到“红图”时,让电闸打开一段时间。传送带的信号一闪而过,那电闸打开也会一闪而过。就算设置为持续信号也持续不了多久,根本实现不了需求。
                    现在只说一下脉冲信号转为持续信号,持续信号转脉冲信号以后用到的时候再提。
                    在编码中,有一个东西叫做SR锁存器。
                    它的功能通俗的说是这样的:
                    SR锁存器有一个输入端,一个输出端,一个重置端。
                    当输入端接收到一个信号后,将此信号锁定,在输出端持续的输出该信号。
                    之后,不管输入端的接收到任何信号,都不会改变输出端的输出。
                    只有当重置端接收信号时,才会解除锁定,恢复到初始状态。
                    很显然,这个东西能完美的做到脉冲信号转为持续信号。
                    找一找游戏中的物品,然而并没有这个东西,但我们可以根据这个思想来实现功能。
                    SR锁存器有一个关键的功能--锁定,也就是说将脉冲信号进行了“记录”,又或者说让脉冲信号不消失。
                    再看一下之前的“流光”,传送带发出了一个脉冲信号,这个脉冲信号在运算器之间转啊转。
                    有没有发现?这个脉冲信号并!没!有!消!失!这就是一种另类的锁定的。
                    为什么没有消失?因为这个脉冲信号在循环。
                    18个运算器组成了一个循环链。
                    18个能循环,那17个,16个……5个,4个,甚至是1个能不能组成循环?
                    答案已经出来了!
                    只要将运算器的输入端与输出端相连,设置运算器不对信号进行修改。
                    那么传入该运算器的脉冲信号就会一直循环,不会消失,而这个运算器也因此会始终发出持续信号。
                    信号“锁定”!脉冲信号转持续信号完成。


                    ps:误打误撞,竟然搞了一波完美的层层递进,由浅入深……


                    IP属地:上海18楼2017-03-11 14:25
                    收起回复
                      接着我们来试试搞出来的“锁存器”好不好用。

                      传送带放一个物品,发出了一个脉冲信号,然后这个信号就被记录了,具体可以在电线杆或电灯上看出来。很成功。
                      不过做电路总要把尽可能多的情况考虑到。
                      再往传送带放一个物品,

                      发现“锁存器”记录的信号变成了(红图,2),这个很好理解,新发出的脉冲信号与“锁存器”中循环的脉冲信号叠加了,变成了(红图,2)。不过这样一来这个“锁存器”就不合格了,有“存”的功能,但没有“锁”的能力。因此不能还称“锁存器”,我们给它起个名叫储存器。
                      那么真正的锁存器能不能搞出来?答案是可行的,但比较麻烦,而且并没有必要,具体以后会提到。
                      【储存器:接收信号种类不同的脉冲信号,通过信号的循环将信号储存。】
                      储存器是把信号记录了,难道就这样一直记着?总要有清除办法才行。
                      锁存器有重置端来解决这个问题,而我们只能自己实现了。
                      我们知道储存是通过信号循环完成的,那只要打断这个循环,储存就自然会结束。
                      看一下存储器的电路,能找到打断循环的几个方法:
                      1.把运算器拆了重建……
                      2.把电线拆了重建……
                      3.直接更改运算器的设置,比如更改为(红图*0,红图)
                      这些方法显然都需要人亲自操作,很多时候需要的是在得到一个信号时进行重置。
                      通过信号进行重置,可以使用信号抵消的方法完成,具体怎么做就不说了,因为这是我走的弯路……
                      再找下其他方法,
                      之前说,储存器的信号循环需要设置算数运算器不对信号进行修改,设置为+0没有修改,那设置为*1也是没有修改啊。可以将算数运算器设置为(红图*A,红图),A信号的值是1,就是具有储存器功能,A信号值为0,就是储存器重置。可能有点绕,那就不用记了,因为这也是我走的弯路……
                      这个思路从一开始就有问题,
                      不对信号进行修改,判断运算器表示我也能做啊,为啥非要用算数运算器?

                      由于输入端没有X信号输入,那X=0就是始终是成立的,然后“红图”信号就始终允许通过,最后循环成立,具有了储存器的功能。
                      而进行重置也很简单,只需要向输入端发出一个X信号就行,一般是(X,1),然后X=0就不成立了,循环中断,完成重置。
                      由此可以知道储存器分算数储存器和判断存储存器,而判断运算器的功能更优秀易操作,以后的叙述,如无特殊说明,储存器默认指代判断储存器。
                      在以后的电路中,默认以X信号作为储存器重置的信号,用红电线进行连接。这是我个人的习惯,各位厂长当然也可以依自己的喜好选择,不过习惯不好改,我以后就按自己的习惯来设计电路了。还有“红图”这个东西,莫名其妙养成了这个习惯,不得不准备一箱子红图……


                      IP属地:上海23楼2017-03-12 17:46
                      收起回复
                        之前提到:
                        由于存储器再次接收一个相同种类的信号时,信号会叠加,因此不能称作“锁存器”只能说是存储器。
                        但这个特点恰恰能让我们利用,发挥存储器的另一个极为重要的作用——计数器
                        【计数器:接收信号种类相同的脉冲信号,通过信号的循环将信号叠加并记录】

                        最初,红图经过传送带,发出一个(红图,1)脉冲信号,进入存储器,被记录
                        接着,红图再次经过传送带,又发出一个(红图,1)脉冲信号,进入存储器与存储器本来存储的(红图,1)信号叠加变成(红图,2)。
                        继续经过,与存储器的(红图,2)信号叠加,又变成了(红图,3)信号。
                        如此往复。
                        也就是说,最后的信号值就是红图经过传送带的次数。
                        这样就实现了计数的功能。
                        显然,存储器与计数器就是同一个东西,区别就在于怎么用。
                        这个计数器就是“流光”进行精简优化要用到的东西,说了这么多终于到了。
                        以上主要的基础知识也介绍完了,之后就以运用为主了。


                        IP属地:上海本楼含有高级字体32楼2017-03-20 22:59
                        回复
                          果然写到这已经没有几个人在看了……


                          IP属地:上海33楼2017-03-20 23:00
                          收起回复
                            回复 愚蠢的雄鹰 :你楼上已经回答了😂


                            IP属地:上海来自Android客户端47楼2017-04-01 00:16
                            收起回复
                              2025-07-13 07:19:58
                              广告

                              @xzk235 如果你想测试传送带的时间,这也是一个思路。
                              红图是用来测试的物品,传送带发出持续信号。X信号是用来重置的信号。
                              十个传送带的时间是107t……有点不开心


                              IP属地:上海51楼2017-04-03 17:54
                              收起回复