|
|
制作一台电脑(可编程可人机交互),其实并不难,只需要满足几个条件(先卖个关子)
下面,我将介绍,如何简单制作一个机械电脑。
不知道您有没有打开过一个音乐盒观察过其内部结构呢。
它的主要结构是:
卷轴 : 上有一些小突起
钢琴 : 就是可以发音的一排小钢片
此外还有发条供应能量。
由于音乐盒的例子很容易理解,所以我以音乐盒为例。
功能调用 Calling a Function
让我们改变观点,那些“小钢片”不是用作发音,而是启动某个功能的控制开关。控制开关,在传统的机械中是很平常之物,不难制作。而只要敲击某个开关,就可以启动某个功能(某个机器)了,这相当于“功能调用”。而且理论上,我们可以调用任何功能。关于功能(某个机器)和开关,属于传统机械制造的话题,自然已相当成熟,它并不是现代之技术。
对于这些功能对应的小开关,我们可以像音乐盒中的钢琴键那样,排列成一排。
程序编制与执行 Programming for Functions, and Performing
现在,我们已经有了一系列功能开关,它们排成一排。
于是,我们可以把程序“编写”在卷轴上,正如音乐盒一样,卷轴上的“小突起”会敲击功能开关。
随着卷轴的转动,那些功能(Function)就可以按照我们编写的程序被调用。
这便是程序的执行了。
跳转 Jumping
我们知道,一个开关被敲击之后,便会启动一个机械而执行一个功能。
同样,可以执行“跳转”功能。具体如何制造执行该功能的机械部件呢?举例如下:
(1) 使卷轴稍微远离“钢琴键”(那排小开关)
(2) 将卷轴逆向/正向旋转
(3) 使卷轴重新靠近“钢琴键”(那排小开关)
这里有一个问题:“我们如何告诉机器,要跳转到什么位置呢?”
---- 有很多解决方案。简单起见,我先给出一种理想的方案:用“小突起”的长度代表跳转的相对角度,不一定是线性关系,总之突起越长,跳转的就越远。细节在此略去。
此外,对于正/反向的跳转,可以用一个开关,也可以用2个不同的开关,这都无所谓(请注意卷轴是圆柱体!)。总而言之,我们能够实现跳转功能。
条件判断
换言之,就是逻辑门。And, Or, Not 这些可以简单地用杠杆实现。在此,我想我不必??碌刂馗茨阋丫???亩?髁恕
条件跳转
我们稍微更改一下之前的跳转机制。结合逻辑们。
让我们想象,不是用一个“小突起”实现跳转,而是用 2 个或 3 个。
我们记得,之前约定,突起越长,跳转的就越远,如果没有突起,则不会执行跳转。
为了实现 Not 跳转,我们需要2个开关:
1 - Not跳转开关。没有突起表示不执行Not跳转。如有突起则突长度控制跳转角度。
2 - 条件值开关。有突起代表 True 反之为 False。
机械会对这个条件值进行 Not 操作(杠杆实现),然后做跳转。
如果需要实现 And 或 Or 跳转,则需要3个开关,具体过程和 Not 跳转类似。
用户输入 User Input
上面我们用“卷轴上的小突起敲击小开关”来进行条件跳转,现在我们稍作变化,由用户来按压“小开关”。当然,用户只允许按压那些代表“条件值”的开关。
(其实我们还可以这样:另外设置一组条件跳转开关,专门用来接受用户的操作)
复杂的条件表达式
这完全可以用软件解决,而不是硬件,不是吗?
(先判断第一个条件,并跳转,然后再判断第二个条件,如此下去)
现在我们看看实现了什么,以及还缺少什么 ... ... |
|