虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

您现在的位置是:首页 > 技术阅读 >  制造8位机器人-苹果IIe和Commodore 64 前来救场

制造8位机器人-苹果IIe和Commodore 64 前来救场

时间:2024-02-05

 
历经岁月的复古计算机:我们的乐高机器人由一台苹果IIe计算机和一个由乐高制成的外部接口控制(左上图)。然而我们不得不自制了一张替代适配插件(左图)。我们的Capsela机器人(右图)由插入Commodore64(右上图)的第三方硬件接口控制。


     古计算机学会(Vintage Computer Federation)是历史上最为著名的、世界上最大的计算机系统收集者和修复者组织。除了学会自己组织的复古计算机节活动以外,会员活动还包括在全美形形色色以科技为主题的集会上进行的动手展览。在2016年10月于纽约举办的世界创客大会上,复古计算机学会大西洋分会的两名70后会员,决定展示利用60年代编程语言开发的80年代的计算机和机器人工具包。他们带来的成果是查理(Charlie)和阿迪(Artie)

      查理使用Capsela结构体系构建。该系统最先由日本的三菱铅笔株式会社于1975年开始出售,随后其他国家的玩具制造商也得到销售许可(现在可以在易贝上买到)。Capsela的设计围绕着具有不同功能且相互咬合的塑料球体,一个球体可能装有马达,另一个球体可能配有一套齿轮。

      查理使用三台马达:第一台负责推动两个轮子前进和后退,第二台引导轮子左右转向,第三台负责使装饰性推进器转动。我们采用会降低速度却能增加扭矩的Capsela齿轮组和涡轮来实现不同驱动轴的90度转弯。我们还增加了一个红外探测器。

      查理的驱动系统使用Commodore64(C64)计算机的BASIC程式语言。自1982年面世以来,全世界已卖出数百万台由6502版本处理器驱动的C64计算机,它或许称得上是8位机时代最成功的家用计算机。C64计算机与查理的连接通过MultiboticsRobotic Workshop实现。Multibotics Robotic Workshop是1987年推出的Capsela套件,带有可插入C64用户端口的接口。该接口需要6节5号电池,有6条输出线路外加一个红外发射器和接收器。

      MultiboticsRobotic Workshop还包含一个机器人操作系统(ROS),这个程序可以通过附加命令对C64的标准BASIC程式进行扩展:“MOTR 2,15”意味着以速度15激活2号马达(全速的数值为30,负数表示马达向相反方向移动);“JOY”表示无须再访问内存地址来确定操纵杆状态,简化了预先存在的CommodoreBASIC操纵杆使用方式。这些以及其他ROS命令都旨在为孩子们简化机器人构建程序。

      我们从Multibotics文档描述的50个样本项目中选出一个,作为打造查理的基础,并在多次迭代中对其进行了修改,其中包括一个齿轮坏掉时需要采取的紧急变通方式,这在世界创客大会现场也出现了。可以通过一个简单的BASIC程序来操作双轴Epyx500XJ操纵杆,以实现对查理的控制:左右拨动进行控制机器转向,前后拨动设定速度和方向,按住操纵杆的按钮则停止所有运动。

      阿迪是一款在苹果IIe电脑上用Logo语言编程的乐高机器人。它以1987年仅面向学校出售的工具包DactaTC Logo为基础。乐高提供了一张适配苹果II的扩展卡。这张卡通过带状电缆连接至一个外部接口,该接口上有马达等部件的控制端口。(乐高还推出了适用于IBM个人电脑的扩展卡,但我们没有采用,因为端口存在无法正确响应的问题。我们认为这是计时引起的问题,因为我们的测试台是一台运行速度为20兆赫的康柏便携式386一体机,而针对IBM个人电脑的扩展卡运行速度是20世纪80年代初常用的4.7兆赫。)

      遗憾的是,虽然我们有外部接口,我们的工具包却遗失了接口卡。幸运的是,我们得到了一份原理图副本,我们的同事乔纳森•查普曼(JonathanChapman)用自制的苹果样机插件做了一个复制品。

      外部接口是一个自带电源的盒子,上面有0~7号8个端口。其中0~5号接口用于控制马达和照明。每个端口都只能使马达向一个方向转动,但由0和1号组成的端口A、由2和3号组成的端口B以及由4和5号组成的端口C能分别使马达进行双向转动。6和7号端口被用于读取红外和接触传感器。此外还有一个端口(无编号标记)负责为阿迪的前灯和尾灯提供不间断电源。

      Dacta TCLogo工具箱配有一个自定义版本的Logo语言,一些常用指令可以移动屏幕上的“海龟”图案,例如FD(前进)、RT(右转)、LT(左转)、PD(落笔)和PU(抬笔),还有一些指令可以通过控制外部接口来控制实体部分。比如,“IFBUT-TON? 0 [TTO‘B’ONFOR 20]”命令行意味着,当按下0号手动遥控杆的按钮时, B端口的马达会启动20毫秒。

      与Multibotics一样,乐高DactaTC工具包提供了大量样本项目来教授工程概念。同查理一样,我们先从一个样本项目开始,对其进行高度自定义以便同时响应两根手动遥控杆,一根用于控制转向,另一根使机器人前进和后退。

      查理和阿迪在世界创客大会上大放异彩。为能有稳固平坦的地面,我们原先申请了一个室内展位,但分给我们的却是一个铺设在停车场上的室外展位。这对两个工具包里小马达的连贯一致操作来说是个挑战,因此我们临时做了变更,将一张大纸板铺在地上作为演示平面。

      面对数千名好奇的成年人和孩子——以及一些碰撞,这两台机器人没有辜负我们的期望。两台计算机在整个周末运行完美。我们告诉每一位愿意倾听的孩子和大人,计算机化机器人玩具并不是当代的新发明。许多参观者对20世纪80年代的计算机和Capsela/乐高玩具都非常着迷,更别提把它们结合起来做成可编程机器人了。许多人主动提出向我们捐赠Capsela零部件,更有许多人说他们都想不起来乐高“头脑风暴”工具包里有这些部件了,我们解释说,这些部件比“头脑风暴”早了整整10年。一些参观者对我们的解释感到震惊,而他们的反应使我们为复古系统付出的努力变得更有价值。


作者:Jeffrey Brace,Evan Koblentz