VB2005与NXT通信的应用研究

2011-08-28 08:40:30汪小庆
中小学电教 2011年9期
关键词:建立联系乐高护栏

☆汪小庆

(江苏省江都中学,江苏江都 225200)

蓝牙是无线数据和语音传输的开放式标准,它能够将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。由于蓝牙采用无线接口来代替有线电缆连接,具有很强的移植性,并且适用于多种场合,加上该技术功耗低、对人体危害小,而且应用简单、容易实现。笔者将在此讨论VB2005与乐高NXT通过蓝牙通信以实现计算机直接控制NXT以供共享。

一、引言

在新一轮教育改革大潮的推动下,机器人走进课堂已是大势所趋,全国很多中小学校都建立了机器人实验室,大学也不例外。在众多机器人产品中,乐高教育机器人系列产品走在了教育机器人的前列,尤其是乐高新一代NXT控制器,其性能比以前的RCX有了很大的提高。计算机与RCX通信是借助Active x控件通过计算机串口用红外线发射,这种通信有诸多不便,RCX不稳定,而且对接收方没有限制,一个信息可以发给多个RCX,造成相互干扰。NXT在这些方面有很大的改进。NXT可以建立有标记的路径(只有符合标记的NXT才能建立联系),蓝牙通过USB发射信息,比串口红外线稳定。

二、计算机、NXT软硬件环境配置

(1)计算机。在计算机上要安装Visual Basic 2005,在Windows应用程序窗体下,加载一个工具箱中的串行端口组件SerialPort(如图1)。

图1

图2

(2)NXT设置。首先要将NXT的蓝牙功能打开,屏幕显示图标,表示NXT蓝牙已打开并连接到其他蓝牙设备上。

(3)建立计算机与NXT的蓝牙联系。将USB蓝牙适配器插入计算机的USB口(一般是免驱动),在状态栏下打开蓝牙设备,点击“添加”按钮,计算机会找到附近的蓝牙设备(如图2)。send开通蓝牙功能的NXT。

注意:在建立联系的过程中一定要设置密码,可以使用默认的密码1234,这样与NXT的默认密码相同。设置密码后就是单一通道了,如果一台计算机要与几个NXT通信,可以将其他的NXT设置成相同的名字和相同的密码即可。查看COM端口,有一个传出口和一个传入口(如图3)。

图3

三、VB2005应用程序与NXT通信

如果希望通过VB2005程序控制NXT,首先需要通过VB2005的程序与NXT建立联系,然后才能控制NXT执行其他命令。建立通信联络的代码如下:

四、实践案例

目前,我国高速公路上交通事故时有发生,一旦发生事故,将使整个公路瘫痪,造成长时间的堵车。那能不能有一种创新设计,当事故发生后,后续车辆可以绕开事故现场继续通行,并对事故区域的车辆发一个提示信息,在当前路段发生车祸,小心驾驶,并附上道路处理中心的处理措施。

针对以上的情况,可以用乐高NXT机器人来模拟这一创新项目。解决方案为:在每台车上配置一个小型显示器,用来接收显示提示信息。在高速公路中间的隔离带上安装一定数量的护栏开启装置,当车祸发生后,救援指挥中心确定事故位置,打开当地位置的护栏,让后续车辆越过护栏,走对面车道的超车道,对面的车辆走行车道。同时向该区域内的车辆发送信息,前方车祸,请谨慎驾驶。具体项目实施分两步:打开护栏,释放交通指挥标志;发送信息。

(1)硬件设计如图4。

图4

(2)软件编辑。软件程序都是在VB2005中编辑的,无论是打开护栏还是发送信息都需要VB2005先与NXT建立联系,后面的指令才能被NXT执行,所以,先与NXT建立联系。在VB2005窗体上安放一个按钮,一个文本框,单击按钮,建立连接,如果成功,在文本框中返回“连接成功”字样,否则连接失败。程序界面如图5。

图5

图6

连接成功后就可以给事故区域内的车辆发送信息了。通过计算机发送的信息显示在NXT的液晶屏幕上。程序界面如图6。发送信息的代码如下:

该段代码将文本框内的字符发送到NXT并存储在存储器中,用户是看不到的,要让用户看到,必须通过NXT代码在NXT的屏幕上显示出来。代码如图7。

图7

以上的程序将发送的信息显示在液晶屏上,每隔3秒检查一次,是否有信息,有信息就显示出来,显示3秒,再检查,无限次循环。

开启关闭护栏完整程序界面如图8。

图8

开启护栏程序(VB2005)如下:

NXT接收信息后启动MINDSTORMS Edu NXT程序,执行相应指令。代码如图9。

图9

五、总结与展望

各种机器人产品都有自己的软件平台,但这些平台的功能相对狭隘,扩展性能不佳。因此,在乐高机器人的RCX中使用Active x控件来扩展编程空间,用VB6.0就可以直接控制RCX。NXT则可以使用VB2005来编程控制机器人的运行。在以上案例中只要计算机上的蓝牙适配器与NXT连接畅通,就可以通过VB2005应用程序向NXT发出指令,即做到通过计算机实时控制机器人的运行。

在本案例中,计算机指令转化为NXT执行的指令,是通过计算机通过蓝牙发送一个信息到NXT,NXT再根据MINDSTORMS Edu NXT程序转换为NXT可执行的指令,来驱动其它外设。这样的最大优点在于,可以将NXT的其它各种传感器纳入到VB2005程序中,增加了乐高机器人的适用范围和准确性,也相对降低了难度,可以让更多的人来学习使用乐高机器人,研制开发更好的项目,以锻炼学生的动手能力、自主创新能力。

[1]http://www.semia.com 中国最大的乐高中文网站.

[2]http://bricxcc.sourceforge.net/NQC、NBC 和 NXC 的编译器网站如果想使用免费的C语言给NXT编程.

[3]http://www.LEGOengineering.com/塔福茨大学工程教育研究中心,提供给教师的一个教学平台,里面有很多乐高教学案例.

[4]http://bnxt.com/NXT 最早的博客网,内容丰富,信息快速.

[5]http://mindstorms.lego.com/乐高 NXT 官方网站;具有上千个NXT案例.

[6]http://www.nxtclub.com/两位乐高迷 Steve 和 Lisa Chua 的NXT论坛.

[7]http://nxtasy.org/about/基于 NXT 信息发布和资源共享的网站,信息更新速度较快.

[8]http://thenxtstep.blogspot.com/信息发布速度最快,信息最全的英文博客.

[9]http://mynxt.matthiaspaulscholz.eu/乐 高开 发项 目 组 成 员 (德国)之一的网站,主要有他自己的作品分享.

[10]http://lejos.sourceforge.net/JAVA FOR NXT 和 RCX.

[11]http://philohome.com/nxt.htm 有很多 RCX 和 NXT 实用案例.

猜你喜欢
建立联系乐高护栏
高速公路护栏碰撞监控系统探讨
乐高2020年上半年财报:收入同比增长7%
玩具世界(2020年4期)2020-11-16 01:06:10
基于Arduino单片机的智能多功能护栏设计
电子制作(2019年20期)2019-12-04 03:51:16
幼小衔接工作中儿童学习能力的培养
不要跨越护栏
乐高乐园
学生天地(2018年18期)2018-07-05 01:51:42
学会建立联系,提升语文基础性学力
江苏教育(2017年19期)2017-12-25 09:24:45
浅析培养高中生数学建模能力
唤醒经验 建立联系 灵活运用
高速护栏引发离奇官司