1第1章:NXT软件和硬件概述本章将介绍以下内容:●蓝牙机器人硬件系统●蓝牙机器人软件系统●给蓝牙机器人编写一个最简单的程序1.1蓝牙机器人系统1.1.1硬件组成蓝牙机器人硬件是由NXT控制器、伺服电机、传感器等组成,如图1.1.1所示。NXT控制器就像人的大脑,伺服电机好比人的肌肉,提供动力,传感器就像人的五官,采集外界环境的数据,然后反馈回大脑进行处理。1.NXT控制器介绍性能参数特点描述主处理器32位ARM7处理器AT91SAM7S256256K闪存,64K静态内存主频:48MHZ协处理器8位AVR处理器ATmega484K闪存,512字节静态内存主频:9MHZ蓝牙无线通讯蓝牙核心规范2.0+EDR系统支持串口规范内置47KRAM,外置8Mbit闪存主频:26MHZUSB2.0通讯传输速度12Mbit/s输入端口4个6线数字接口,支持数字和模拟接口1个高速端口,符合国际总线标准IEC61158TYPE-4/欧洲标准EN50170输出端口3个六线数字接口,支持解码器信号输入显示屏100x64象素黑白图像显示可视区域26mmx40.6mm2扬声器8位分辨率的输出频道支持2-16KHZ采样率电源6节AA电池,1400mA的锂电池板连接线6线工业标准连接线RJ12右侧卡口2.NXT伺服电机特性内置角度传感器可以测量速度和距离可以精准控制:●当机器人运行时,可以校准速度●控制精度可以精确到1度●电机上的孔结构更容易固定和安装●每个电机内置一个角度传感器,这使你能准确的控制电机转动,角度传感器测量电机转动能精确到1度电机转动1圈等于360度,因此如果你在程序里设定电机转动180度,电机输出时将转动半圈。3.NXT传感器特性触动传感器性能上与RCX触动传感器一样,但NXT触动传感器前端带有十字孔,方便我们制作缓冲器触动传感器性能上与RCX触动传感器一样,但NXT触动传感器前端带有十字孔,方便我们制作缓冲器光电传感器可以读取周围环境光的强度可以从红外发射管的反射光来读值可以识别颜色,灵敏度更高红外发光管是可以关掉的,从而达到只读取环境光的强度声音传感器能测量普通声音(dB)和用A计权测量的分贝(dBA)能识别声音模式能进行音调的识别,频率越高声音的音调越高超声波传感器能测量距离,范围在0-255cm之间,检测误差+/-3cm,检测角度150度能识别物体,通过检测距离能识别物体运动34.NXT蓝牙特性蓝牙(BlueTooth)是一种低成本大容量短距离无线通讯新规范,蓝牙规范采用微波频段工作,传输速率每秒1MB字节,最少传输距离10米,通过增加发射功率可达到100米。NXT蓝牙一般特性●蓝牙V2.0(CLASSII)●支持SPP(串行埠定义)●传输范围至少10M,最大范围达到30M或甚至更远●具有很强的安全性NXT蓝牙的主要功能:●与带有蓝牙功能的设备通讯。如:手机、电脑等●能同时可以与3个设备连接●可以搜索其它蓝牙设备●能记住前一个连接的设备并快速连接●可以将NXT隐藏●可以关闭蓝牙以节省电源1.1.2软件组成TheLEGO®MINDSTORMS®EducationNXTSoftware是使用“LabView™引擎开发的图形化编程软件,该软件入门起点低,拓展面广,具有循序渐进式的友好的用户界面,整个编程界面只使用了43个命令图标,编程速度更快,功能更强大。软件共分为”模块界面、编程区、控制面板、参数设置面板和教学区“五部分。相比其它图形化编程软件,该软件在功能上做了很大提高,具体特点如下:1.基于Labview图形化编程语言(G语言)G语言(GraphicalLanguage)。G语言是一个划时代的高效用的图形化编程开发环境,提供了一种更快捷的程序编写方法,编程环境直观明了,它有几百个模块组成,用一个个图形模块代替传统的编程语句,例如循环、条件等都有相应的图标,可以完成所有C语言和VB等语言的功能,设计者只需要把所需的图标从功能模块中抓取下来进行连线即可实现程序编写,无需编写任何代码,与传统编程的表现形式有根本区别,但其编程的逻辑思维与传统编程一样,和C、VB等一样都是计算机的编程语言。所有这些特性使G语言更易于学习,从而减少程序开发时间,提高编程质量。42.循序渐进式的友好的用户界面交互式快速入门向导,三等级编程模块区,从易到难,从基本模块到高级模块。38个编程模块,入门更加快方便、快捷。3.任务驱动式的学习环境-39个活动案例1.2软件安装1.2.1系统配置要求在我们安装LEGO®MINDSTORMS®EducationNXTSoftware软件之前,要确信电脑系统配置满足最低要求。PC机配置要求●操作系统要求是WindowsXP专业版或者家庭版,并且要带有SP2补丁●处理器要求是英特尔奔腾处理器或者最小为800MHZ的处理器(推荐1.5G或者更高)●内存最小为256M(推荐512兆M)要有大于300M可用的硬盘空间●1个可用USB端口和CD-ROM光驱●支持蓝牙适配器(可选)1.2.2PC机上安装步骤退出电脑上打开的程序窗口→将安装光盘插入光驱→如果你发现电脑没有自动安装软件→单击电脑屏幕左下角“开始”按钮,点击“运行”→并输入“G:\autorun.exe(G为光驱的盘符)→接下来按照屏幕上提示的步骤安装就行了。1.3硬件快速入门1.3.1安装电池NXT控制器需要安装6节AA电池,推荐使用碱性电池,NXT也可以使用AA/LR6类可充电电池,但5是,NXT力量显示出来也许没使用碱性电池大。当NXT显示电量低时,这个电量图象会不停的闪动注意!不能在NXT内使用不同类型的电池,要及时将用完电池取出,NXT长期不使用时要将里面电池取出,不能在NXT内直接对AA/LR6类充电电池充电1.3.2NXT控制器全貌1.NXT输入、输出端口●NXT控制器是LEGO®MINDSTORMS®教育机器人的大脑,它有三个输出端口、四个输入端口和一个USB端口。●伺服电机通过连接线可以连接到NXT控制器任意输出端口(A、B、C)上,也可以使用套装内转换线缆,将●灯泡和RCX系列的电机连接到输出端口上,在NXT上电机或灯泡默认设置如下:端口A:此端口上电机或灯泡起到扩展功能的作用6端口B:当机器人由两电机驱动运动时,B端口连接一个电机,通常是机器人左边的驱动部分端口C:当机器人由两电机驱动运动时,C端口连接一个电机,通常是机器人右边的驱动部分●传感器通过连接线可以连接到NXT控制器任意输入端口(1、2、3、4)上,也可以使用套装内转换线缆,将RCX系列的传感器或第三方传感器连接到输入端口上,在NXT上传感器默认设置如下:端口1:连接触动传感器端口2:连接声音传感器端口3:连接光电传感器端口4:连接超声波传感器2.NXT控制器各个面板操作说明NXT控制器包含6个操作面版,分别为“MyFiles”、“TryMe”、“Settings”、“Bluetooth”、“View”、“NXTProgram”,下面简单介绍每个操作面版功能。该彩单内可以保存在NXT上编写的程序和从电脑上下载的程序可以测试程序里传感器和电机的工作状态不需要在电脑上编写程序来控制机器人,可以通过在NXT控制器上编写程序控制机器人该操作面版可以查看NXT不同设置,例如NXT扬声器、关机模式、NXT版本信息,还可以删除NXT内保存的程序在查看菜单里,可以快速查看当前传感器和电机的工作状态和数据,能方便我们在程序设计中设置传感器和电机的参数值7可以通过蓝牙无线技术使NXT与其他蓝牙设备进行连接,如:NXT设备、手机(带有蓝牙功能)和电脑。你也可以使用蓝牙而无须USB连接线将程序从电脑上下载到NXT,你甚至可以下载程序到手机,用手机来控制NXT机器人。3.NXT显示器上各标识的解释81.3.3菜单详解91.NXT主菜单-MyFiles2.NXT主菜单-TryMe3.NXT主菜单-NXTProgram10我们可以将在NXT上编写的程序进行保存,程序将被自动保存在“NXTFiles”中,以后可以在该文件夹中打开保存的程序。现在来编写下以下程序,体会如何在程序中使用各种传感器4.NXT主菜单-Settings115.NXT主菜单-View6.NXT主菜单-Bluetooth121.3.4与电脑通讯1.使用USB通讯(1)PC机上连接NXT(2)MAC机上连接NXT将NXT连接到电脑之前要确信电脑上已经安装有LEGO®MINDSTORMS®EducationNXTSoftware打开NXT电源,用USB连接线将NXT与电脑进行连接。132.使用蓝牙无线通讯143.蓝牙通讯的简单介绍(略)1.4软件快速入门1.4.1软件菜单介绍1.菜单和工具栏152.档案管理161.4.2软件面板17NXT整个工作面板分为“模块面板”、“编程区面板”、“控制面板”、“参数设置面板”、“教学区面板”五个面板,下面对每个面板功能进行介绍。1.模块面板介绍如图中所示“模块面板”又分为“基本面版”、“完整面板”和“自定义面板”三个面板。“基本面板”包括常用的7个功能模块,从上到下依次为“输出功能模块、记录功能模块、声音功能模块、显示功能模块、等待功能模块”、循环功能模块、分支功能模块”。下面就每个图标功能作简单介绍:模块功能介绍可以设置A、B、C三个输出端口连接方式,电机输出方向、能量级别和延续时间等。记录A、B、C端口输出动作,可以设置记录时间,然后通过“播放”功能,将刚才NXT执行的动作复制出来。通过程序下载声音文件到NXT,并保存在“SoundFiles”文件中,可以选择软件自带的声音文件,也可以自己来编写。可以显示图象和文本,我们可以通过将“数字转换为文本”功能,将电机和传感器的数据适时显示在NXT屏幕上。18有时间和传感器等待,包括触动传感器、声音传感器、光电传感器和超声波传感器等待。包括“无限循环、时间循环、传感器循环、次数循环和逻辑判断循环”分支条件有传感器和参数值判断,传感器分支包括“触动、声音、光电、超声波、温度、角度、计时器、蓝牙通讯和NXT按妞”,参数值分支包括“数字判断、逻辑判断和文本判断”。“完整面板”里面包括了所有编程模块,能完成VB、C语言所有的功能。我们可以将“基本面板”比作为ROBOLAB编程里的“导航者”级别,那么“完整面板”就相当于“发明家”级别。面板包括6个功能模块,每个功能模块里包含了子模块,从上到下分别为“基本功能模块、输出功能模块、传感器设置模块、结构模块、数据运算模块、高级功能模块”。模块功能介绍包含“基本面板”里所有的功能模块输出功能模块,包括单电机、灯泡、发送信息(通过蓝牙)、声音和NXT显示器输出模块可以设置NXT传感器、RCX传感器、计时器传感器、NXT按钮和接收信息(通过蓝牙)模块包括“等待、循环、分支”结构功能模块和停止输出功能模块可以定义变量,能进行数据运算,包括加、减、乘、除、大小、、范围和逻辑判断包括文本模块、数字转换文本模块、保持激活模块、文件存储模块、校准模块、重置电机模块“自定义面板”分为自己定义的模块和网上下载的模块,通过自定义模块,我们可以设置自己的功能模块,比如说修改功能模块的参数或将几个不同的功能模块做成一个新的模块,实现一个新的功能,模块将自动保存在“我的文档”默认的“LEGOCreations”文件夹中,可以方便我们以后调用。19模块功能介绍能自己设计模块,根据需求可以设计成不同的图标,能进行个性化命名,将一段程序模块化可以把任务分解成若干小任务来单独完成,方便阅读可以从网络上下载模块,满足自己的需求2.控制面板3.编程区介绍编程区是我们完成程序编写的区域,可以关闭掉教学区域来增大编程区的窗口,方便我们编写和阅读。左图为程序开始图标。编写程序时直接将要使用的功能模块从“模块面板”中拖到编程区进行设置即可,可以用鼠标移动模块,能将模块拖拉到编程区的任意位置,操作简便。204.参数设置面板NXT软件中只有43个功能模块(不包括自定义模块),但每个功能模块都有对应的参数面板,通过修改参数可以使模块实现不同的功能,相比ROBOLAB软件中,NXT