APP下载

乐高NXT机器人系统C++程序设计

2012-09-19薛清平李卫红

电子设计工程 2012年1期
关键词:设备方法系统

薛清平,李卫红

(平顶山市科技进修学校 河南 平顶山 467000)

NXT-G、RoboLab 2.9都是乐高公司提供的乐高 LEGO MINDSTORMS NXT机器人系统的图形化的编程工具,除此以 外 , 还 有 Bricx Command Center、RobotC、NI LabVIEW Toolkit、leJOS NXJ、pbLua等第三方提供的编程工具。随着2010年教育部与乐高集团合作的“技术教育创新人才培养计划”项目的开展,乐高LEGO MINDSTORMS NXT机器人系统在各地中小学的推广速度也将加快[1],服务于此,有必要对乐高LEGO MINDSTORMS NXT机器人系统的相关问题尤其是二次开发问题做进一步深入探讨、研究。

1 FantomSDK

作为一个开放式的扩展平台,乐高集团提供了进行乐高LEGO MINDSTORMS NXT系统二次开发所需要的LEGO MINDSTORMS NXT Hardware Developer Kit[2]、LEGO MINDSTORMS NXT Direct Commands[3]、LEGO MINDSTORMS NXT Bluetooth Developer Kit[4]、LEGO MINDSTORMS NXT Communication protocol[5]、Mobile Application Software[6]以 及 作为二次开发不可或缺的SDK文件FantomSDK[7]的非常详尽的资料。

FantomSDK支持C++及NI Labview开发环境,可运行于Windows或MAC系统。乐高LEGO MINDSTORMS NXT机器人系统可通过USB或蓝牙两种方式与PC系统进行连接、通信,对 USB方式,LEGO提供的驱动程序Fantom.sys与NXT设备直接通信;对蓝牙方式,则是把NXT设备映射到一个COM端口,然后通过Win32文件访问端口进行通信。USB和蓝牙两种连接、通信方式,均得到FantomSDK的支持。

FantomSDK提供了Fantom的头文件、Labview的vi支持库以及基本封装类型的使用帮助。iNXTIterator对象用于遍历注册到系统上的 NXT设备,获得iNXT对象,iFileIterator对象、iModuleIterator对象用于获得NXT设备的文件、模块信息。

2 程序应用

2.1 获取设备

NXTIterator对象用于搜索注册到系统上的 NXT设备,获得iNXT对象。createNXTIterator方法产生一个NXT实例,使用后,通过destroy方法进行释放。createNXTIterator(ViBoolean,ViUInt32,tStatus)方法中 ViBoolean 参数为 true,则搜索通过USB、蓝牙连接的所有NXT设备。若ViBoolean参数为false,则仅搜索通过USB连接的NXT设备。获取NXT设备的具体C++代码如下:

编译、运行后,如果成功搜索到系统上的 NXT设备,通过 getDeviceInfo获 得 NXT 设 备 名 称 (name), 通 过getFirmwareVersion获得系统的通讯协议版本(protocolVersion)、固 件版 本 (firmwareVersion)、Flash 剩 余空间(availableFlash)信息。……

登录APP查看全文

猜你喜欢

设备方法系统
谐响应分析在设备减振中的应用
Smartflower POP 一体式光伏系统
WJ-700无人机系统
ZC系列无人机遥感系统
基于MPU6050简单控制设备
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
500kV输变电设备运行维护探讨
用对方法才能瘦
四大方法 教你不再“坐以待病”!
捕鱼