江寒开始打造无线电收发电路。
由于是土法炼钢,协议什么的,暂时先扔到一边,只将发射和接受功能整合了一下,再添加上信号调制、解调部分。
虽然有点简陋,但进行基本的无线电信号处理,还是没什么大问题的。
像这样的装置,一共打造了两套。
收发器A的输出端焊上RS232端子,插到286的扩展接口卡的串口上。
另一套收发器B,则连接到机械臂的控制电路上。
这样,当计算机下达指令到串口后,就会被收发器A拾取,经过调制后,转换成模拟信号,用无线电波发送出去。
收发器B接收到这个无线信号后,就会对信号进行解调,转换回数字序列,控制小车和机械臂做出相应的动作。
同样,以后有需要的时候,各种传感器返回的信号,也会送入收发器B,调制后发射出去。
收发器A接收之后,再解调成数字信号,送入电脑的串行端口,供程序读取。
说起来简单,做起来……
其实也不算特别复杂。
几个小时后,电动车和机械臂终于摆脱了累赘的导线,无拘无束地畅游了起来。
接下来,就可以执行原定计划了。
江寒在电脑上编写了一段程序,并运行了起来。
只见电动车发动之后,就自动行驶到了菜单栏那里,升高了机械臂。
然后控制着石膏手,在商品列表上“触摸”了起来。
列表中的内容不断响应着触摸,变化着显示内容。
几秒钟之后,随着结账按钮被按动,一些小零件出现在了工作台上。
到这里,实验获得了完全的成功。
接下来,江寒又改进了一下程序,让“石膏手”操作的对象,不再是商品列表,而是图纸列表。
很快这具自动化的机械,就代替江寒,使用系统的自动构建功能,将“雨菲一型”构建了出来。
随后只见电动车跑到“雨菲一型”的边缘,降低机械臂,然后激发了一块绑在上面的电磁铁。
这样一来,“雨菲一型”的电路一角,就被机械臂吸了起来。
随后电动车又跑到回收站边,升高机械臂往前一送,再中断电磁铁的供电,于是“雨菲一型”就被送进了回收站。
电动车又操控“石膏手”,触摸了一下确认按钮,将“雨菲一型”换成了积分。
构建、回收、再构建、再回收……如此反复循环。
每完成一次,江寒的“学以致用”积分,都会比原先增加4个。
这正是江寒想要的效果。
没错,他今天忙碌了这么久,想要弄出来的,就是这么一个自动刷分机器人。
虽然效率有点低,每分钟差不多只能刷出10来点积分。
然而,它可以24小时不间断地工作,这是人类无论如何也做不到的。
一个小时600多分,一天下来,怎么也能有个分左右。
积少成多,一个月下来,就可以额外带来45万以上的积分!
而且,以后积分多起来之后,完全可以生产五、六台这样的机器人,让他们组队刷分。
就像星际争霸里的SCV一样,轮流采矿,排队送进仓库。
又或者组成流水线,各司其职,一台机械只负责一个动作。
而江寒,就能躺着获取学以致用积分了。
江寒畅想了一下未来的美好景象,随后就继续进行改进。
现在这套机械装置,还有个十分严重的问题。
程序运行了一段时间之后,电动车的轨迹就会逐渐产生偏差。
偏差不经过纠正,就会持续变大,达到一定程度,石膏手就再也触摸不到菜单。
导致这种现象的原因,是这个机器人并没有安装任何传感器。
计算机得不到任何反馈信息,也就无从纠正误差。
要想解决这个问题,倒也不难,只要给机器人安装上各种传感器就行。
比如,可以给它装一对高清摄像头,作为“眼睛”……
然而,就算剩下的积分还能买得起一、两个摄像头,以这台286的落后性能,也无法实时地处理图像数据。
所以只能寻求替代方案。
江寒琢磨了一下,打起了灰度传感器的主意。
灰度传感器是一种模拟传感器,在机器人巡线等方面,拥有相当的实用价值。
众所周知,物体的颜色深浅,对光的反射有很大影响,而光线的强度,又可以影响到光敏电阻的工作。
利用这个原理,就可以对物体的颜色进行检测。
在真实的世界中,检测面的材质、外界光线的干扰,都会影响到这种检测手段的准确性。
然而在虚拟空间里,以上两个问题完全不存在。
这么理想的实验环境,在现实中基本找不到。
江寒在商品列表里找了一下,还真发现了灰度传感器,价格也不算特别贵。
他本来还打算,如果买不到或者买不起,就弄两颗光敏电阻,自己DIY一个。
现在倒是省事儿了。
系统提供的灰度传感器,一共有两种。
一种是比较简单的模拟式,一个只要5万积分。
另一种是传说中的智能传感器,功能十分强大,当然价格也要贵一些,要20多万积分。
江寒本着够用就行的原则,理所当然、不可不戒地买了两个便宜的。
灰度传感器共有三个管脚,分别是电源、地线和输出。
江寒分辨了一下,将其正确地连接到了机器人的控制电路里。
然后他又围绕着灰度传感器,重新设计了一下机器人的控制电路,并升级了一下程序。
这样一来,机器人在接受计算机控制的同时,也能利用灰度传感器,得到环境中的信息,实时反馈给计算机。
有了这些数据,就能更加灵活地指挥机器人了。
电路部分其实挺简单的。
RS232串口本身是支持全双工模式的,只需要在连接的时候,多加两根控制线就行。
但程序的升级,就没那么容易了,一不小心,就会发生读写冲突。
江寒调试了好一会儿,才终于让程序正确地运行了起来。
程序中控制小车巡线的部分,有很多现成的算法。
基本思想都差不多。
在小车左边和右边,各安装一个灰度传感器,行驶过程中,轮流检测传感器的取值。
一旦发现偏离,就及时调整电机的运转状态,控制小车的行驶方向。
这样,小车经常会走出一条“S”型轨迹,或者Z型轨迹来。
江寒当然不会这样做了,他开动脑筋,设计了一套比较先进的巡线算法。
虽然更加复杂,但也更加好用,至少小车跑起来,不会经常扭来扭去。
最后,江寒又在地面上刷出了两条平行的黑色轨迹,又在两条轨迹之间,打上许多格子,就像铁道上的枕木一样。
这样拥有灰度传感器的小车,就基本上没有迷路的可能了。
然而,光这样就够了吗?
江寒思考了一下,又在菜单栏那里,安置了一块黑白相间的格子板。
并在石膏手的“手指”处,安装了第三个灰度传感器。
这样一来,当机器人触摸操作菜单时,就有了一个大概的参考坐标。
当然,在没有机器视觉的情况下,想要判断触摸操作成功与否,是相当困难的一件事。
巧妇难为无米之炊,限于硬件设备的落后,江寒也找不到什么靠谱的办法。
最后,他只好在程序中强化了一下电动车的控制,力争让其行驶得更加平稳,同时,还在运动路径计算等方面下了一些功夫,让操作变得更加精准。
各种手段运用到极致,再加上虚拟空间中的理想化条件,江寒总算将机器人的连续无障碍工作时间,延长到了100小时以上。
这已经可以接受了,大不了每天抽点时间,人工调整个两、三次就行了。
江寒让机器人自动运行起来。
随着一台台“雨菲一型”CPU被构建、回收,他的学以致用积分,也缓慢地增长了起来。
随后他就开始策划下一项工程。
他现在最希望拥有的,真正的WIFI信号接收器,也就是无线网卡。