golems吧 关注:87贴子:395
  • 14回复贴,共1
电控主要有两个内容:逻辑和时序,对应着”功能模块“和”电池“。
下面请随我探索


IP属地:上海1楼2016-02-18 22:01回复
    搞清2个基本问题:
    1。一个输出能拖多少个负载——用1个按键,我拖了10个力源(激光),应该还可以增加,但对我试验逻辑已经足够了。
    2。几个输出能接到一个输入上——用2个按键接到示波器,可以得到-1,0,1三种电压,用3个按键,则按下一个时,示波器无反应。证明最多只能2个输出同时加载到输入上。
    有了这两个认识,就可以对虚拟的构件进行逻辑设计了。


    IP属地:上海2楼2016-02-18 22:07
    回复
      电平定义:以示波器为观察窗口,定义1表示逻辑1,-1表示逻辑0
      由于两个不同输出(1和-1)在输入端口上能得到0,可以此为界,设计出逻辑门电路。
      举例:在功能模块内定义函数如下图,即可实现或输出,当两个输入均为-1时,输入端口为-1,函数输出-1;当两个输入不同时(0电平),函数在中间位置输出为1;同为1时,当然也输出1,这就是逻辑或。
      同理,定义不同的函数图,就可得到或非,与,与非,非

      在构件复杂的逻辑时,为方便取用,可把一些基本的预定义功能模块(逻辑门)做成零件库,标以不同色彩。我是这样做的:


      IP属地:上海3楼2016-02-18 22:23
      收起回复
        时间继电器
        这也是非常重要的工控元件,用Golems实现的简介如下:
        需要一个“电池”,设曲线为Line,设下面的横坐标长度为定时值,比如2秒,去掉Periodic(周期)复选钩子。把Battery Option(电池选项卡)中的Threshold设为1,Input设为<,Action设为“Reset Time“,这样当控制端无信号时,电池呈复位状态,输出-1。
        把电池输出接到另一个控制块"B",B的函数选用100%,Threshold=1,input为">=",Action为Turn Off/On(开关行为).
        原理:
        当电池控制端为1时,电池结束复位状态,开始随时间增加而递增输出值,当中途控制端失去1信号时,电池复位,再来信号就重新开始计时,直到达到设定时间(比如2s),输出为1,这个1信号被接到B块的控制端,B根据开关行为的设定输出100%,即1,由此实现定时。
        电池未达到1时,B的控制不起作用,B会输出0,如与其他逻辑相连,最好通过一个或门或者与门,使得输出-1.
        接线很简单就不上图了:定时信号从电池控制端输入,电池输出给B块控制端,然后就能从B块输出端得到定时判断的结论了。
        以上两种常用器件均在Golems里验证过。并在我另一贴的机器里使用中。


        IP属地:上海5楼2016-02-20 00:33
        回复
          上升沿检测
          搞过电的对此应用不会陌生,Golems可以这样做

          图例中,键盘作为输入点,异或门一个非门,输出加个或非门,异或门设置控制如下:1,>=,Turn Off/On。
          原理是利用非门的延时产生的时间差在异或内得到一个脉冲,脉冲宽度等于延时值,可通过增加非门数量来加宽。
          如果是上下沿都检测,去掉异或门的控制端连线和输出的或非门就可以了。


          IP属地:上海6楼2016-02-20 12:58
          回复
            我真是奇怪了,Golems这么强大的逻辑内涵,MC能做到么?可笑还有那么多人去搞什么红石电路。


            IP属地:上海7楼2016-02-20 13:41
            回复
              发一个猛一点的,1bit计数器,化简了很长时间不成功,比标准的多了1个门。键盘“1bit"是输入,示波器”1"是输出。


              IP属地:上海8楼2016-02-20 20:54
              收起回复
                在电控方面,最近也有了深入的了解,但写起来啰嗦。
                今天给大家介绍一个小作品,计数器。
                计数器就是能随着外部触发进行数据累加的装置,下图是对键盘按动次数在10以内进行累加,在示波器端看到累加结果。

                所有功能块的设置在表中已有,波形都很简单,采用自带波形,特殊一点的是4号块,要把1时的输出1改为0。
                原理:按下按钮时,2#锁住3#的当前电压,1#与3#叠加的电压送往2#,在2#输出结果;释放按钮时,2#锁住,3#被释放灌进2#作为当前值。这样交替锁住与释放,就可以累加。
                但是功能块在释放的时候会产生一个1电压的脉冲干扰(是游戏缺陷),后续的4、5#块就是过滤此脉冲并使波形连续。不能让这个脉冲对调用产生乱动作。
                吧友可以根据这个原理,自行修改1#内的基数,比如改成0.01,以实现更大数据的计数,初步认识至少可以记录0~199(输出-0.99~0.99)范围的数字,只受限于条件判断的精度。


                IP属地:上海11楼2016-03-02 14:40
                收起回复
                  十进制计数器已研究到能够循环计数,但还不能进位级联。
                  无意中发现了一种1位计数逻辑,不需要10个功能块,及其简单,并可以级联,计数到256,只要8组级联。

                  2#波形-1时1,0时-1,1时-1;3#波形line。控制均为>=1,值保持。
                  功能:按一下键盘状态翻转一次。


                  IP属地:上海12楼2016-03-03 01:42
                  收起回复
                    看懂golems里的电子元件(1/2)
                    游戏只给了2个电子元件,function和battery,从字面意思理解为功能块和电源块。但这两个东西的设计实在是太逆天了,它居然是电子世界的高度概括。
                    用数据分析的眼光来给它们分类,恰巧是值域和时域的控制器,用工控的眼光来给它们分类,是逻辑和时序。
                    它们都有输出和控制接口,功能块带有输入口,电池块不需要输入,时间是默认输入。它们均由2个选项卡的内容构成:
                    第一个选项卡名为function,里面可以定义曲线,自带有一些简单函数如线性函数(y=x),还有sin和根号,可以用鼠标随意更改曲线走向做自定义函数,并可保存为本制作的一个专用函数,可以在别的功能块里调用而不必每个功能块都去做出这函数。
                    第二个选项卡名为modifier options,字面意思为调制选项,主要内容有二项:
                    1)开关阈值,要输入数字;激活条件,选择>还是<,这个功能用来根据控制电压使能下一项功能。
                    2)激活行为:开/关、反相、值锁存、值相乘。
                    这2个东西,就可以构造出控制需要的所有电子行为。


                    IP属地:上海13楼2016-03-16 11:26
                    回复