RCX的编程软件在哪下???(我是一个RCX的爱好者)
发布网友
发布时间:2022-04-24 10:08
我来回答
共1个回答
热心网友
时间:2023-04-29 23:22
问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。我们在为乐高机器人编程的时候通常会用ROBOLAB这样的解释程序。虽然它有些缺陷,但使用它的优点非常多。
ROBOLAB软件是LEGO Group、美国Tufts大学和美国国家仪器公司(NI公司)联合开发的教学机器人编程软件。该软件的核心为NI公司开发的图形化编程环境Lab VIEW。ROBOLAB软件从1.0版到2.5.4版已历经8次修改,每次修改都增加不同的功能,目前ROBOLAB软件功能已经非常强大。2.5.4版ROBOLAB是唯一完全汉化版的机器人解释程序。它作为教学机器人专用的编程语言,是一个低起步、高发展、简单易学的图形化软件,它可以让一个没有任何编程知识的学生在短时间内掌握程序设计。它具备了C、VB等高级语言的各种功能,不同的是ROBOLAB软件编程不需要记各种语句的格式,不需要在电脑上输入语句,所要作的工作就是将所需要的图标逻辑性地连接起来完成程序的编写。ROBOLAB最特别的优点是它提供不同的水平等级以及不同的编程方式。它提供两种方式——“编程者”和“研究者” 。研究者提供了数据采集分析功能。“编程者”分导航者和发明家者。导航者级别提供的编程环境和例子较为简单,适宜初学者;它为初学者提供了固定的编程模块,你可以在这里面用鼠标点击图标模块并在下拉图标模块中选取所需图标来完成。发明家级别则提供全部的控制能力。在这两种级别中,分别分了四个等级,从浅到深。前面提到过该软件的功能是非常强大的,那么,它具体表现在哪几方面呢?
1、 ROBOLAB具有200多个功能模块,具有VB、C/C++等语言常见的功能;
2、 它可以直接或间接控制机器人运动;
3、 使用ROBOLAB作为服务器,实现远程控制机器人;
4、 强大的数据采集和处理功能,可以通过DCP传感器采集数据,并进行数据处理和分析;
5、 使用Lab VIEW的核心语言------G语言,来进行专业的数据分析和工程测试。
根据中国教育网2008年3月提供的数据,我国目前中小学在校人数约为2.27亿人,在这些孩子当中有约3500万人有上网经历(约占在校人数的15.4%)。也就是说目前我国有至少3500万的中小学生正在接触电脑,相信在他们中间有绝大部分的学生希望获得更多的科技知识。但目前的现状是我国的科技教育没有跟上这些学生的需求,很多的中小学生虽然在使用电脑、在接触高科技的设备,比如在我们身边越来越多的各种功能的机器人。但对他们来说这些设备都是非常神秘的,想了解其中的奥秘但无从下手。而北京西觅亚公司为我们带来的LEGO Dacta机器人系统在这个方面找到了突破口。
LEGO Dacta机器人系统核心是RCX,一个*性的微型控制器,这个控制器可以通过红外线接收在电脑上编写的程序,也可以将采集的数据通过红外线传送到电脑中,甚至与“伙伴”(其它RCX)联系,作为这个系统的大脑。它使用传感器(就像人类的眼睛或鼻子等)感知环境的变化(例如亮度,温度等),处理这些采集回来的数据,并控制输出部分(马达或灯)的开和关。当然机器人的制作是一个循序渐进的过程,首先你需要确立目标,你需要一个什么样的机器人?接着需要设计和搭建,然后在电脑上使用ROBOLAB 为机器人编写程序,通过红外发射器将程序下载到RCX 上,由于RCX是一个微型计算机。它的核心是日立公司的H8微控制器和512KB的外置RAM。微控制器负责控制3个输出端口和3个输入端口。微控制器内置的16KB ROM含有基本的程序,如引导模块以供启动使用。除了H8微控制器和存储芯片外,RCX含有一个紧凑的图形LCD,一个微型的扬声器(直径为15mm)和LCD控制器,一个电压调整器,两个红外传输二极管,一个光电二极管和大量的无源部件。下载成功后,RCX 就可以脱离电脑自动运行,最后是测试你的机器人,是否实现你的目标?哪些需要改进?回到第一步,改进你的机器人。在这个过程中,需要学生发挥自己的创作才能,综合利用各种知识,还有充分发挥团队合作精神。它也为我国的中小学生学习机器人原理,探索科技知识起到了很好的辅助作用。
在整个LEGO Dacta机器人系统的制作过程中编程是很重要的步骤,它将我们的指令传递给LEGO Dacta机器人系统,使LEGO Dacta机器人系统可以按照我们的目标运行。
而如何将编程的过程系统化的讲解给广大的中小学科技爱好者呢,我在具体的工作中总结出来了一些小经验,希望可以和大家一起探讨。下面,我用一个电风扇的编程过程来为大家介绍。
任务是搭建一个电风扇,就像我们家里的电风扇一样。可以打开并关闭电风扇、给电风扇调节不同的风速、可以为电风扇设定关闭时间。在这个任务中我们首先需要搭建一个电风扇出来。
由于本文重点讨论编程问题,故不讨论电风扇的搭建步骤。
为了更好的给中小学科技爱好者讲解这个任务,在这里将任务分三步来完成。具体步骤如下:
1、 可以控制电风扇的开关,为我们带来阵阵凉风;
2、 可以按照需求,为电风扇调节不同的旋转速度;
3、 为电风扇设定时间,让电风扇可以在规定的时间打开或关闭;
为了更直观的让学生掌握计算机编程原理,在这里要引入流程图的设计和步骤编写。流程图是编程思路的体现,也是我们在编程前必须的准备。在这里我们先要为电风扇编写流程图。它的应用非常广泛,它是人们对解决问题的方法、思路或算法的一种描述。它的优点是:采用简单规范的符号,画法简单;结构清晰,逻辑性强;便于描述,容易理解。
下面就用流程图将任务分解步骤逐一完成,并在电脑上用ROBOLAB2.5.4编写程序。
一、 控制电风扇的开关,为我们带来阵阵凉风;
在这里先让学生们想想家里的电风扇是如何工作的?首先电风扇是停止的状态;我们打开电源后电风扇的电机就会转动,带动同一个轴上的扇叶旋转起来;我们关闭电源后电风扇的电机就会停止转动,扇叶也会停止旋转。
让学生们用触动开关来制作电风扇的开关,使他们制作的电风扇转动起来。(触动传感器是教学机器人传感器大家庭中最简单、最直观的一种。它的工作方式非常像是你家门铃上的按钮:当它被按下时,电路接通,电流就通过,RCX就能检测到这个数据流,你的程序就会读取触动传感器的当前状态:开或者关。当然,给RCX装上一个触动传感器,就相当于人有感觉器官一样。机器人就可以知道你是否在接触它。)
按照家里电风扇的工作方式,将马达接入RCX中的A端口,将触动开关接入RCX中的1端口。编写流程图如下:
开 始
停止A、B、C、端口
按下1号触动传感器
A马达向左旋转
按下1号触动传感器
结 束
通过流程图的制作和程序编写,学生们可以发现给机器人编写程序的思路是按照先控制输出端口,然后输入端口提供信号,再次控制输出端口的逻辑顺序依次编写的。将这个程序循环运行和单次运行,让学生观察程序的变化。同时可以使学生理解循环在程序中的作用。
二、 按照需求给风扇调节不同的旋转速度;
在这里为了能够便于观察,我们在编写程序的时候就要考虑到让马达的转速由低到高依次变化。按照机器人编写程序的思路先控制输出端口,然后输入端口提供信号,再次控制输出端口的逻辑顺序依次编写。编写流程图如下:
开 始
停止A、B、C、端口
按下1号触动传感器
A马达以1倍的速度向左旋转
按下1号触动传感器
结 束
A马达以3倍的速度向左旋转
按下1号触动传感器
A马达以5倍的速度向左旋转
按下1号触动传感器
RCX的微型马达按照提供电压的不同,有1~5种速度,他们是按照由慢到快的顺序排列的。
在这里可以让学生想想如果用两个触动传感器如何编写程序呢?当然,在这个循环程序中无法使我们随时可以控制风扇的开关。下面介绍更高级的编程方式及流程图。
用这个级别编程时学生会发现比用导航者级别编程要复杂,而且前面提到的编程逻辑在这里也需要加以改变。这就需要编写详细的流通图了:
开 始
标记红色跳转点
按下1号触动传感器
A马达向左旋转
按下3号触动传感器
结 束
A马达以1倍的速度向左旋转
按下3号触动传感器
A马达以3倍的速度向左旋转
按下3号触动传感器
当按下1号触动开关结束
A马达5倍的速度向左旋转
A马达停止转动
跳至标记红色跳转点
未按下
1
号
触动开关
在这个程序当中我们应用了事件分支。什么是事件呢?如果你以前经常在用计算机编程的话,可能很早就留意到在Windows 编写程序和在DOS下有很大的区别,特别是Windows 的消息机制,Windows 上编程是事件驱动(Event-Drive)的,Windows 产生各种事件,例如鼠标点击,数据输入等,程序就对各种事件进行响应。在RCX 的以前的固件(Firmware)版本中,不是事件驱动的。而现在,Firmware 3.28 首次支持这个先进的特性,配合ROBOLAB2.5,你就可以编写程序对事件做出迅速响应,提高了实时性。可以这样说,事件驱动是这个新版本固件的最优秀的功能。有这样的一个情景,你正在欣赏着你喜欢的电视剧,这个时候电话响了,我们可以认
为这就是一个事件,这个时候你就要对这个事件进行处理,你可以接听电话,但很巧合的是这个时候你家的门铃响起,那么,你是先听电话还是先开门呢?你就要考虑这两个任务的优先级,关于任务的优先级,将在本节后面介绍。我们在Windows 中使用的软件也就象情景中你,需要处理各种事件(每一秒钟都会有上千种事件发生),例如敲打键盘、点击鼠标、时钟等等,软件的责任就是处理各种各样的事件。
定义一个事件我们需要定义事件的属性和触发条件,当然在标准事件中事件属性是默认的。在这个程序中我们设置了当1号触动开关被按下则触发事件的条件。如果事件没有被触发则程序在蓝色跳转程序中循环,如果条件被触发则程序跳出蓝色跳转程序。
特别解释一下跳转的定义,跳转语句即GOTO语句,是无条件转移语句。即在程序的任意地方标记转移点和着陆点。当程序运行至标记转移点时程序会无条件的转移至着陆点。程序着陆点可以在标记转移点的前面也可以在标记转移点的后面。在ROBOLAB中可以使用红蓝黄绿黑五个颜色的跳转,如果全部用完了还可以使用白色跳转加跳转号(6~20)。所以在一个程序中可以同时使用20个跳转命令。
三、 为电风扇设定时间,让电风扇可以在规定的时间打开或关闭;
时间是机器人系统中一个非常重要的控制信息。在这里我们首先让学生用时间控制机器人的关闭,即使电风扇旋转10秒后自动关闭。
(图5)
如果要让电风扇在5秒后打开,转动10秒后停止呢。学生会很快写出下面的流程图。
关闭A、B、C端口
关闭A、B、C端口
关闭A、B、C端口
等待5秒钟
等待5秒钟
关闭A、B、C端口
开 始
等待5秒钟
A马达向左旋转
等待10秒钟
停止并结束
如何制作一个电风扇的计时器呢,即可以控制电风扇在多长时间关闭或打开。
我们在5秒内设定风扇的关闭时间。以5秒为一个控制单位来设定时间的计时器需要用到分支和容器。分支即if条件语句。在ROBOLAB 中,使用了分支与合并来实现条件选择。每个图标的左边有一个输入,右边上下有两个不同条件的输出,在条件分支的最后必须使用合并图标,将两个分支合并在一起。那容器是什么意思呢?很多人在学习ROBOLAB 时,觉得容器(Container)这个概念很难理解,因为在其它的编程环境下没有容器这个概念。那么究竟容器是什么,它有什么作用呢?记得我刚学习计算机语言时,老师为了解释变量的概念以及如何交换两个变量的值,举个例子:一个杯子A 装满牛奶,另一个杯子B 装满咖啡,如何使牛奶装在B 杯子上,而咖啡装在A。在这里杯子就是容器,也就是高级语言中的变量。如果你了解微控制器(MCU),那么容器就是MCU 中的寄存器。该程序图如下:
(图6)
我们看到在这个程序中运用了多重分支而没有用到循环是为什么呢?因为ROBOLAB的程序是从左到右依次运行的。我们如果用循环语句即While和for语句编写程序如下。
(图7)
图7中给循环程序设定跳出循环的条件是红色计时器大于5秒钟,可在运行时我们会发现红色计时器大于5秒钟后并不能立即跳出循环。这是因为程序是自左向右依次运行的,在程序的循环达到跳出条件后必须再运行一次按下1号触动开关的步骤才可以跳出循环。如果我们在循环程序达到跳出条件后没有按1号触动开关则程序会在这里停止至到1号触动开关被按下。这样则背离了我们使计时器5秒后结束设定的目的,所以在这里我们要用到分支。在分支程序中我们看到1号触动开关无论是否被按下程序都将从左到右依次运行,故程序可在5秒后结束设定,这符合我们的初衷。图6程序流程图如下:
开 始
A马达向右旋转
红色容器清零
红色计时器清零
设定红色着陆点
当红色计时器大于5秒
是否按下1号触动开关
是
是
红色容器加5
显示红色容器值
等待0.2秒
否
显示红色容器值
等待红色容器值秒
A马达停
跳转至蓝色着陆点
跳转至红色着陆点
蓝色着陆点
结 束
合并分支
合并分支
流程图中虚线部分指在程序运行中未实际运行的流程线。至此我们将电风扇的所有功能全部设定完成。将以上程序合并在一起后可以看到我们生活中的电风扇了。学生通过这些可以清楚地认识到机器人的思维是由我们给它设定的,机器人是按照我们预先设定的程序依次运行的。如果我们的程序设定有误机器人也会按照我们的错误程序运行。这样可以使学生们体会到细心和完善的分析是非常重要的。
同时我们和学生一起了解到搭建机器人通常有4个阶段:提出创意---设计与搭建---计算机编程---运行调试。而这4个阶段与现代产品的设计流程又是惊人的相似:概念设计---结构设计---智能控制---产品测试。4个阶段以分析问题为基础,始终不离开人的智能活动,这一过程决定了人的思维的主导作用,而不仅仅是第一阶段。创意是进行创新设计的源头,思维往往比较笼统、不成熟,其结果是概念设计方案的多样性。方案通过结构设计来体现,我们提供了基于多学科理论基础的可重建结构模型的创建,这些集机械结构、传感器、控制器、电路接口以及系统理论于一体的机器人模型,为概念设计方案多样性的实现提供了物质保障与技术基础。轻松的ROBOLAB编程环境下产生的设计程序完全解脱了烦琐的程序化语言所带来的智力投入,快速而简单的机器人控制技术在反复调试中不断完善的机器人模型及控制程序,为方案的决策提供了实物再现和科学的评价依据,而非纯理论的评判,且方案评价几乎是对产品全部。所有创建模型都是智能化机器人、现代科技的模拟者,都是赶超时代、开拓未来的典范。每一个项目都是在创造现实、建造未来。