《蓝牙(NXT)机器人编程指导.docx》由会员分享,可在线阅读,更多相关《蓝牙(NXT)机器人编程指导.docx(45页珍藏版)》请在三一办公上搜索。
1、第1 章:NXT 软件和硬件概述本章将介绍以下内容: 蓝牙机器人硬件系统 蓝牙机器人软件系统 给蓝牙机器人编写一个最简单的程序1.1 蓝牙机器人系统1.1.1 硬件组成蓝牙机器人硬件是由 NXT 控制器、伺服电机、传感器等组成,如图1.1.1 所示。NXT 控制器就像人的大脑,伺服电机好比人的肌肉,提供动力,传感器就像人的五官,采集外界环境的数据,然后反馈回大脑进行处理。1NXT 控制器介绍性能参数 特点描述主处理器 32 位ARM7 处理器 AT91SAM7S256 256K 闪存,64K 静态内存 主频:48MHZ协处理器 8 位AVR 处理器 ATmega48 4K 闪存,512 字节静
2、态内存 主频:9MHZ蓝牙无线通讯 蓝牙核心规范2.0EDR 系统支持串口规范 内置47K RAM,外置 8Mbit 闪存主频:26MHZUSB2.0 通讯 传输速度12Mbit/s输入端口 4个6 线数字接口,支持数字和模拟接口 1个高速端口,符合国际总线标准IEC 61158 TYPE-4/欧洲标准 EN 50170输出端口 3个六线数字接口,支持解码器信号输入显示屏 100x64 象素黑白图像显示 可视区域 26mm x 40.6mm扬声器 8位分辨率的输出频道 支持216KHZ 采样率电源 6节AA 电池,1400mA 的锂电池板连接线 6线工业标准连接线 RJ12 右侧卡口2NXT
3、伺服电机特性内置角度传感器可以测量速度和距离可以精准控制:当机器人运行时,可以校准速度控制精度可以精确到 1 度电机上的孔结构更容易固定和安装每个电机内置一个角度传感器,这使你能准确的控制电机转动,角度传感器测量电机转动能精确到1 度电机转动1 圈等于360 度,因此如果你在程序里设定电机转动180 度,电机输出时将转动半圈。3 NXT 传感器特性触动传感器性能上与RCX 触动传感器一样,但NXT 触动传感器前端带有十字孔,方便我们制作缓冲器触动传感器性能上与RCX 触动传感器一样,但NXT 触动传感器前端带有十字孔,方便我们制作缓冲器光电传感器可以读取周围环境光的强度可以从红外发射管的反射光
4、来读值可以识别颜色,灵敏度更高红外发光管是可以关掉的,从而达到只读取环境光的强度声音传感器能测量普通声音(dB)和用A 计权测量的分贝(dBA)能识别声音模式能进行音调的识别,频率越高声音的音调越高超声波传感器能测量距离,范围在0-255cm 之间,检测误差+/-3cm,检测角度150 度能识别物体,通过检测距离能识别物体运动4NXT 蓝牙特性蓝牙(BlueTooth)是一种低成本大容量短距离无线通讯新规范,蓝牙规范采用微波频段工作,传输速率每秒1MB字节,最少传输距离10 米,通过增加发射功率可达到100米。NXT 蓝牙一般特性 蓝牙V2.0(CLASS II) 支持SPP(串行埠定义) 传
5、输范围至少10M,最大范围达到30M 或甚至更远 具有很强的安全性NXT 蓝牙的主要功能: 与带有蓝牙功能的设备通讯。如:手机、电脑等 能同时可以与3 个设备连接 可以搜索其它蓝牙设备 能记住前一个连接的设备并快速连接 可以将NXT 隐藏 可以关闭蓝牙以节省电源1.1.2 软件组成The LEGO MINDSTORMS Education NXT Software 是使用“LabView 引擎开发的图形化编程软件,该软件入门起点低,拓展面广,具有循序渐进式的友好的用户界面,整个编程界面只使用了43 个命令图标,编程速度更快,功能更强大。软件共分为”模块界面、编程区、控制面板、参数设置面板和教学
6、区“五部分。相比其它图形化编程软件,该软件在功能上做了很大提高,具体特点如下:1. 基于Labview 图形化编程语言(G 语言)G 语言(Graphical Language)。G 语言是一个划时代的高效用的图形化编程开发环境,提供了一种更快捷的程序编写方法,编程环境直观明了,它有几百个模块组成,用一个个图形模块代替传统的编程语句,例如循环、条件等都有相应的图标,可以完成所有C 语言和VB 等语言的功能,设计者只需要把所需的图标从功能模块中抓取下来进行连线即可实现程序编写,无需编写任何代码,与传统编程的表现形式有根本区别,但其编程的逻辑思维与传统编程一样,和C、VB 等一样都是计算机的编程语
7、言。所有这些特性使G 语言更易于学习,从而减少程序开发时间,提高编程质量。2. 循序渐进式的友好的用户界面交互式快速入门向导, 三等级编程模块区,从易到难,从基本模块到高级模块。38 个编程模块,入门更加快方便、快捷。3. 任务驱动式的学习环境39 个活动案例1.2 软件安装1.2.1 系统配置要求在我们安装 LEGO MINDSTORMS Education NXT Software 软件之前,要确信电脑系统配置满足最低要求。PC 机配置要求 操作系统要求是Windows XP 专业版或者家庭版,并且要带有SP2 补丁 处理器要求是英特尔奔腾处理器或者最小为800MHZ 的处理器(推荐1.5
8、G或者更高) 内存最小为256M(推荐512 兆 M)要有大于300M 可用的硬盘空间 1 个可用USB 端口和CD-ROM 光驱 支持蓝牙适配器(可选)1.2.2 PC 机上安装步骤退出电脑上打开的程序窗口 将安装光盘插入光驱 如果你发现电脑没有自动安装软件 单击电脑屏幕左下角“开始”按钮,点击“运行” 并输入“G:autorun.exe(G 为光驱的盘符) 接下来按照屏幕上提示的步骤安装就行了。1.3 硬件快速入门1.3.1 安装电池NXT 控制器需要安装6 节AA 电池,推荐使用碱性电池,NXT 也可以使用AA/LR6 类可充电电池,但是,NXT 力量显示出来也许没使用碱性电池大。当NX
9、T 显示电量低时,这个电量图象会不停的闪动注意!不能在NXT 内使用不同类型的电池,要及时将用完电池取出,NXT 长期不使用时要将里面电池取出,不能在NXT 内直接对AA/LR6 类充电电池充电1.3.2 NXT 控制器全貌1NXT 输入、输出端口NXT 控制器是LEGO MINDSTORMS 教育机器人的大脑,它有三个输出端口、四个输入端口和一个USB 端口。伺服电机通过连接线可以连接到NXT 控制器任意输出端口(A、B、C)上,也可以使用套装内转换线缆,将灯泡和RCX 系列的电机连接到输出端口上,在NXT 上电机或灯泡默认设置如下:端口 A:此端口上电机或灯泡起到扩展功能的作用端口 B:当
10、机器人由两电机驱动运动时,B 端口连接一个电机,通常是机器人左边的驱动部分端口 C:当机器人由两电机驱动运动时,C 端口连接一个电机,通常是机器人右边的驱动部分 传感器通过连接线可以连接到NXT 控制器任意输入端口(1、2、3、4)上,也可以使用套装内转换线缆,将RCX 系列的传感器或第三方传感器连接到输入端口上,在NXT 上传感器默认设置如下:端口 1:连接触动传感器端口 2:连接声音传感器端口 3:连接光电传感器端口 4:连接超声波传感器2NXT 控制器各个面板操作说明NXT 控制器包含6 个操作面版,分别为“My Files”、“Try Me”、“Settings”、“Bluetooth
11、”、“View”、“NXTProgram”,下面简单介绍每个操作面版功能。该彩单内可以保存在NXT 上编写的程序和从电脑上下载的程序可以测试程序里传感器和电机的工作状态不需要在电脑上编写程序来控制机器人,可以通过在NXT 控制器上编写程序控制机器人该操作面版可以查看NXT 不同设置,例如NXT 扬声器、关机模式、NXT 版本信息,还可以删除NXT 内保存的程序在查看菜单里,可以快速查看当前传感器和电机的工作状态和数据,能方便我们在程序设计中设置传感器和电机的参数值可以通过蓝牙无线技术使NXT 与其他蓝牙设备进行连接,如:NXT设备、手机(带有蓝牙功能)和电脑。你也可以使用蓝牙而无须USB 连接
12、线将程序从电脑上下载到NXT,你甚至可以下载程序到手机,用手机来控制NXT 机器人。3NXT 显示器上各标识的解释1.3.3 菜单详解1NXT 主菜单-My Files2NXT 主菜单ry Me3NXT 主菜单NXT Program我们可以将在NXT 上编写的程序进行保存,程序将被自动保存在“NXT Files”中,以后可以在该文件夹中打开保存的程序。现在来编写下以下程序,体会如何在程序中使用各种传感器4NXT 主菜单-Settings5NXT 主菜单-View6NXT 主菜单-Bluetooth1.3.4 与电脑通讯1使用USB 通讯(1)PC 机上连接NXT(2)MAC 机上连接NXT将N
13、XT 连接到电脑之前要确信电脑上已经安装有LEGO MINDSTORMS Education NXT Software打开NXT 电源,用USB 连接线将NXT 与电脑进行连接。2使用蓝牙无线通讯3蓝牙通讯的简单介绍(略)1.4 软件快速入门1.4.1 软件菜单介绍1菜单和工具栏2档案管理1.4.2 软件面板NXT 整个工作面板分为“模块面板”、“编程区面板”、“控制面板”、“参数设置面板”、“教学区面板”五个面板,下面对每个面板功能进行介绍。1模块面板介绍如图中所示“模块面板”又分为“基本面版”、“完整面板”和“自定义面板”三个面板。“基本面板”包括常用的7 个功能模块,从上到下依次为“输出
14、功能模块、记录功能模块、声音功能模块、显示功能模块、等待功能模块”、循环功能模块、分支功能模块”。下面就每个图标功能作简单介绍:模块功能介绍可以设置A、B、C 三个输出端口连接方式,电机输出方向、能量级别和延续时间等。记录A、B、C 端口输出动作,可以设置记录时间,然后通过“播放”功能,将刚才NXT 执行的动作复制出来。通过程序下载声音文件到NXT,并保存在“Sound Files”文件中,可以选择软件自带的声音文件,也可以自己来编写。可以显示图象和文本,我们可以通过将“数字转换为文本”功能,将电机和传感器的数据适时显示在NXT 屏幕上。有时间和传感器等待,包括触动传感器、声音传感器、光电传感
15、器和超声波传感器等待。包括“无限循环、时间循环、传感器循环、次数循环和逻辑判断循环”分支条件有传感器和参数值判断,传感器分支包括“触动、声音、光电、超声波、温度、角度、计时器、蓝牙通讯和NXT 按妞”,参数值分支包括“数字判断、逻辑判断和文本判断”。“完整面板”里面包括了所有编程模块,能完成VB、C 语言所有的功能。我们可以将“基本面板”比作为ROBOLAB 编程里的“导航者”级别,那么“完整面板”就相当于“发明家”级别。面板包括6 个功能模块,每个功能模块里包含了子模块,从上到下分别为“基本功能模块、输出功能模块、传感器设置模块、结构模块、数据运算模块、高级功能模块”。模块功能介绍包含“基本
16、面板”里所有的功能模块输出功能模块,包括单电机、灯泡、发送信息(通过蓝牙)、声音和NXT显示器输出模块可以设置NXT 传感器、RCX 传感器、计时器传感器、NXT 按钮和接收信息(通过蓝牙)模块包括“等待、循环、分支”结构功能模块和停止输出功能模块可以定义变量,能进行数据运算,包括加、减、乘、除、大小、范围和逻辑判断包括文本模块、数字转换文本模块、保持激活模块、文件存储模块、校准模块、重置电机模块“自定义面板”分为自己定义的模块和网上下载的模块,通过自定义模块,我们可以设置自己的功能模块,比如说修改功能模块的参数或将几个不同的功能模块做成一个新的模块,实现一个新的功能,模块将自动保存在“我的文
17、档”默认的“LEGO Creations”文件夹中,可以方便我们以后调用。模块功能介绍能自己设计模块,根据需求可以设计成不同的图标,能进行个性化命名,将一段程序模块化可以把任务分解成若干小任务来单独完成,方便阅读可以从网络上下载模块,满足自己的需求2控制面板3编程区介绍编程区是我们完成程序编写的区域,可以关闭掉教学区域来增大编程区的窗口,方便我们编写和阅读。左图为程序开始图标。编写程序时直接将要使用的功能模块从“模块面板”中拖到编程区进行设置即可,可以用鼠标移动模块,能将模块拖拉到编程区的任意位置,操作简便。4参数设置面板NXT 软件中只有43 个功能模块(不包括自定义模块),但每个功能模块都
18、有对应的参数面板,通过修改参数可以使模块实现不同的功能,相比ROBOLAB 软件中,NXT 软件中每个模块集成了多方面的功能,下面举个例子看下。完成A、C 两电机输出,运行2 秒后停止。在ROBOLAB 软件中程序编写如下:在NXT 软件中编写程序如下:我们来比较一下,完成同一任务,在ROBOLAB 软件中编写需要4 个功能图标来实现,而在NXT 软件中只需一个功能模块就能完成。如上图,模块对应的参数面板设置为图,其中包括了电机输出端口设置、运行方向设置、转弯设置、电机能量级别设置、延续时间设置和停止设置,可以看出,在NXT 软件中编写程序会更方便和简洁,修改起来也非常容易,直接在参数面板里修
19、改。1.4.3 我的第一个程序HELLO WORLD到这里,我们已经了解和学习了NXT 的硬件和软件,现在来编写一个简单的程序,理解程序是如何下载到NXT的。第2 章:普通面板本章将介绍以下内容: 运动模块 判断模块 等待模块 声音模块 循环模块 显示模块 记录/学习模块 NXT 之间相互通讯2.1 运动模块1. 模块功能使用这个模块控制机器人向前走或者向后走直线,还可以控制机器人走曲线。通过运行特性确保机器人走多远。这个模块右上角的字母表示电机连接到NXT 的哪个输出端口。这个图标表示机器人运行的方向。这个图标表示电机能量。机器人速度也可能受其他条件影响,比如地面的摩擦力或者机器人是在上坡或
20、者下坡。这个图标表示你设置电机的延续特性是没有限制,角度,圈数,或者时间。这个图标表示方向属性设置为“停止”。该设置将停止所有电机。3. 设定运动模块选择你所要控制的电机端口。如果你选择控制两个电机(举例:B&C),电机将以相同的能量向前或者向后运动。如果你选择三个电机,电机B&C 保持同步。选择电机是向前,向后还是停止运行。选择停止将会重置电机。如果使用两个电机驱动一辆小车(轮子在两侧),通过移动操纵滑条可以控制机器人走曲线的方向。滑条移动到任意一端,小车原地旋转。滑条和输入框可以设置电机能量0-100。通过延续下拉菜单,可以设置电机永不间断的运行,或者一定时间(秒),圈数(默认)或者角度。
21、选择电机完成动作后是刹车或是缓停。如果你想让机器人停在一个精确的位置,将电机设置为刹车。设置为刹车将会使机器人在运动完之后稍微向后后退一点,这将会使NXT 非常耗电,因为为了精确定位。反馈工具箱可以检测电机转了多少角度或者几圈。按重置按钮将会将数值重设为0。3. 电机对应机器人运行方向当通过配置面板给机器人设置好电机运行方向后,有时会发现机器人并没有按照设定的方向来运行。其实电机是有默认运行方向的,下图显示了电机默认向前转的安装方式:下幅图表显示了电机数据中心接口的不同特性:2.2 等待模块通过该模块机器人可以在继续运行之前等待一个特定的条件。使用滑条或者键入数值设置一个触发值,当传感器的值低
22、于或高于这个出发值的时候程序继续执行。等待模块右上角的数字表示传感器所连接的端口。在下面会讲到根据需要可以在设置面板里面修改端口号。如果你选择了等待光电,等待声音或者等待超声波模块,这个图标显示触发值的设置点;橘黄色条越多,说明触发值越高。如果你选择等待触动传感器,这图标将显示触动传感器的状态(反复碰撞,按下,或者弹开)。2. 设置等待模块超声波传感器通过超声波传感器,机器人能够判断离障碍物的距离。选择超声波传感器所连接的端口。默认是连接在4 端口的。如果选择左侧,则该模块在小于触发点时被触发;如果选择右侧,则大于触发点时被触发。通过滑条来设置触发值或者在输入框内输入数值(如果定义为厘米,数值
23、范围0-250 或者如果定义为英寸,数值范围是0-100)。注意根据所探测物体表面的反射率不同距离会有所差异。选择读取数值单位是厘米还是英寸。通过反馈箱可以实时读取超声波传感器的数值(0-250 cm 或者 0-100 英寸)。读取数值为0 表示传感器能够探测到的最近距离。如果设置为厘米,数值为250 时代表传感器所能探测到的最远距离。如果设置为英寸,则所能探测到的最远距离为100。注意:超声波传感器的盲区为3cm 。声音传感器声音传感器能够使机器人产生听觉,能够感应声音频率的高低。选择声音传感器所连接端口。默认是连接在2 端口的。使用滑条来设置触发值或者在输入框内输入数值来定义触发值。如果选
24、择滑条右侧,只有当监测到的数值大于触发值时传感器才会被触发;如果选择左侧,则只有当检测到的数值小于触发值时传感器才会被触发。也可以通过数字旁的下拉菜单来选择是大于还是小于。反馈箱能够实时显示声音传感器所读取的数值(0-100)。你可以通过它来试出不同的触发值。光电传感器选择“光电传感器”,你的程序将会等待光电传感器被一个特定的值触发。选择光电传感器所连接端口。默认连接到三端口。通过滑条可以设置触发值,也可以在输入框里面键入触发值。如果想大于触发值触发选择滑条右侧的圆形按钮,小于触发值触发则选择左侧的圆形按钮。也可以通过滑条下发的下拉菜单来选择。如果选中“发光”,光电传感器将会打开自身的红灯并且
25、检测是否有光返回;如果不选中,则直接接收反射光线。(可以通过该设置减少不必要光线的干扰)反馈工具箱显示传感器实时监测到的数值。通过它可以试出不同的触发值。触动传感器触动传感器能够让机器人产生触觉。通过感知触动传感器被按下,松开还是按下后松开,来决定下一个动作什么时候开始执行。选择触动传感器所连接端口。模块默认1 端口连接触动传感器。选择触动传感器的状态,是按下,松开还是按下后松开继续执行下一个动作。当你想迅速按下然后松开触动传感器后触发下一个动作选择按下后松开。如果想触动传感器按下后触发下一动作选择按下。如果当触动传感器松开时触发下一动作选择松开。通过反馈箱能实时监测触动传感器的状态。当触动传
26、感器被按下,显示数值1。NXT 按钮NXT 积木块上的四个按钮也可以当作传感器来使用,相当于触动传感器,同样有三种状态:按下,松开和按下后松开。选择哪一个按钮(向左,向右,确认和返回)继续下一个动作。当想迅速按下再松开某个按钮来触发下一个动作,选择按下后松开。想按下某个按钮后触发下一个动作,选择按下。想松开某个按钮后触发下一个动作,则选择松开。(内置)角度传感器通过角度传感器来设置电机所转的圈数或者角度值。选择电机所连接的端口。选择是向前还是向后。通过下拉菜单选择是角度还是度数。在程序运行前输入你所要运行的圈数或者角度值。通过反馈箱来实时显示角度传感器的数值。使用重启按钮来对反馈箱进行清零。计
27、时器如果选择计时器,则当 NXT 的内部时钟达到某一个特定时间值的时候才会触发下一动作。选择你所要监测的NXT 计时器(1,2 或者3)。在输入框内输入数值(秒)。通过下拉菜单选择大于还是小于。可以通过上下箭头来增加或减小数值(0-4294967)。时间通过时间模块来决定等待多长时间再继续执行下一个动作。选择等待的时间(秒)。能够精确到0.1 秒!2.3 循环模块1. 模块功能通过循环模块可以重复执行某一段指令。设置条件可以结束循环:时间,循环的次数,一个逻辑信号或者传感器的状态。你也可以设置一个死循环。显示设置当循环模块属性设置为“永久”时,将会在模块尾部下端显示一个无限()图标。如果选中设
28、置面板上的“显示计数器”,会出现一个接头,可以将你所设置循环的次数作为一个输入值在程序中随时调用(如果你通过数据线连接到其他模块的数据中心)。你也可以使用当前的数值控制循环本身。如果你选择传感器来控制循环,循环尾部将会显示你所选择的传感器。例如,你选择了一个光电传感器控制循环,在循环尾部你将会看到一个光电传感器图标。当然,传感器的相关信息也会显示在设置面板上。2. 添加模块到循环模块如果循环模块已经放在了横梁上,你会看到循环模块内部有一小段横梁;将鼠标浮动到这段横梁上面拖拽则会得到添加模块的区域,将所要添加的图标拖拽过来即可。当然你也可以直接将所添加的图标拖拽到那段横梁上,程序会自动将模块添加
29、到循环模块内。移动循环模块只有循环模块能够被选中,用鼠标左键选中模块本身就可以移动循环模块了;选中模块周围的部分或者模块内部是没办法来移动循环模块的。3设置循环模块循环模块默认是无限循环。同样循环模块也有很多,这里只以光电循环模块为例。光电传感器当选择了“光电传感器”,循环内部的程序模块将等待光电传感器测到一个特定的光值才会结束循环,程序继续向下执行。选择光电传感器连接的端口。默认是连接到 3 端口。通过滑条可以设置触发值,也可以在输入框里面键入触发值。如果想大于触发值触发选择滑条右侧的圆形按钮,小于触发值触发则选择左侧的圆形按钮。也可以通过滑条下发的下拉菜单来选择。如果选中“发光”,光电传感
30、器将会打开自身的红灯并且检测是否有光返回;如果没有选中,则直接接收反射光线。反馈工具箱显示传感器实时监测到的数值。如果选中设置面板上的“显示计数器”,会出现一个接头,可以将你所设置循环的次数作为一个输入值在程序中随时调用(如果你通过数据线连接到其他模块的数据中心)。记数如果选择了“记数”,那么循环内的任何程序都要等待记数器达到某一特定值后才能跳出循环。输入想要循环的次数。举例,如果输入数值为“2”,那么程序执行两次后自动结束。通过选择“显示记数器”,能够从循环的左侧接口连接到右侧的记数器。这样能够计算出循环的次数并且在到达设定的值后跳出循环。逻辑如果选择“逻辑”,需要通过其它模块的数据中心连接
31、到其右侧的接口,循环内的程序将根据接收到信息的真假来结束循环。选择逻辑类型,真或者假。如果选择了配置面板上的“显示记数器”,在循环的左侧如同记数一样能够显示一个接口,通过数据线可以进行动态定义。2.4 判断模块1. 模块功能通过该模块可以在两种不同情况间进行选择。比如,触动传感器判断,当触动被按下的时候执行一段程序,当弹开的时候执行另一段程序。显示设置这个图标显示判断的条件是传感器还是其他条件。图中所表示的状态是触动传感器判断模块。当触动传感器被按下上面的模块将被执行。当触动传感器松开则执行下面的支路。如果你选择数值条件来控制判断模块,一个数据线头将会显示在判断模块前端的下部;你必须从另外一个
32、模块连接一个逻辑或者数值才能控制判断模块。通过“显示直线观看”可以改变判断模块的显示形式,去掉“直线观看”前面的对勾判断模块将会将判断模块变成标签显示模式,可以通过单击标签来选择相应条件下相对应的程序,同样可以对模块进行修改。2. 添加模块到判断模块同循环模块内一样,将所需模块拖拽到判断模块相应分支的空白位置即可。判断模块能够自动适应。移动判断模块只有判断模块本身能够被选中,用鼠标左键选中模块本身就可以移动判断模块了;选中模块周围的部分或者模块内部是没办法来移动判断模块的。3设置判断模块判断模块种类也有很多,同样以光电传感器为例。光电传感器如果想通过光电传感器的数值变化来判断执行哪段程序选择光
33、电传感器判断控制特性。通过“直线显示”,判断模块分支可以变成通过标签来切换。单击标签,可以观察和编辑模块,也可以看清楚什么条件触发相应模块运行。选择光电传感器所连接端口。默认光电传感器连接到 3 端口。你可以根据需求来改变。通过滑条设置触发值或者在输入框内键入数值。默认值为50,如果光电探测到的数值高于50 将运行上面的分支,如果低于50 则运行下面的分支。如果选中“发光”,光电传感器将会打开自身的红灯并且检测是否有光返回;如果没有选中,则直接接收反射光线。反馈工具箱显示传感器实时监测到的数值。参考例程第3 章:高级面板本章将介绍以下内容: 数据中心 传感器模块 数据模块 高级模块3.1 数据
34、中心可以通过模块下面的数据中心完成模块之间的数据传递,数据的运算等。许多模块想被定义成函数的话,必须要有数据线连接。比如从一个随机模块输出则必须通过数据线才能够将数据输出。3.1.1 打开数据中心和创建数据线当一个模块放到编程区后,单击模块左下角边缘的突起部分即可打开模块的数据中心。注意:有些时候数据中心并不是完全打开的,有些是隐藏起来的。为了将所有的数据处理显示出来,只需再次单击模块左下角边缘突起部分即可。连接好后也可以通过单击突起部分将数据中心收回,这样程序看起来更简洁。3.1.2 数据类型同ROBOLAB 软件一样,不同的数据类型通过不同颜色的线来表示。携带着信息的数据线从左侧数据中心的
35、插头连出来到另外一个模块的数据输入端。A 输入端 B 输出端 C 数字数据线(黄色)D 逻辑数据线(绿色)E 文本数据线(橙色)F 坏线(灰色)3.2 传感器模块3.2.1 光电传感器模块1模块功能用来监测环境光值。通过数据线,能够将传感器实时采集到的数值和基于采集到的光值是高于触发值还是低于触发值这样一个逻辑信号(真/假)传递出来。触发值是在某一范围内的特定值。比如,你想让机器人当光值大于60 的时候开始向前运行,那么触发值就为60。通过滑条来设置触发值或者在输入框内键入数值来设置触发值。通过按钮或者下拉菜单来指定范围(高于或者低于触发值),这将能够生成“真”信号。“真”部分将是桔色;“假”
36、部分是灰色的。光电传感器默认触发值为50。必须至少从光电传感器的数据中心拖拽出一条数据线连接到其它模块的数据中心!探测光电传感器自身的反射光线如果选中“发光”,则光电传感器将打开其自身的红色光源,并且监测其所反射回来的光值。这一特性在光线比较复杂的情况下(比如非常亮的房间内)会非常有效。同样这一特性也能够当作距离传感器来使用。因此,可以通过这个特性可以使机器人绕开障碍物。显示光电传感器所连接端口。可以通过配置面板来进行端口定义。显示所设置的触发点是多少。颜色条越多,所设触发值越大。显示“发光”特性是否打开。将模块放置到编程区后会自动打开光电传感器模块的数据中心。2配置光电传感器模块选择光电传感
37、器所连接端口,模块默认光电传感器连接在3 端口。可以根据需要来选择。使用滑条来设置触发值或者在输入框内输入数值来定义触发值。可以通过下拉菜单来设置“真”“假”;也可以通过选择左侧或者右侧按钮来设置。如果选择“发光”,光电传感器将会打开自身的红光并且接收其发射光。否则只接收外界的光线。反馈控制箱实时显示光电传感器所读取的数值(0-100)。你可以通过它来尝试出不同的触发值。下幅图表显示了光电传感器数据中心端口的不同特性建议使用:足球机器人中,当找到足球后,离球越近机器人运行速度越快。3.2.2 NXT 按钮模块1. 模块功能当 NXT 某个按钮被触发的时候,该模块将会通过数据线输出一个“真”信号
38、。你要选择一个按钮并且这个按钮触发后就发出一个“真”信号。1.显示NXT 按钮被触发的方式。2.显示哪一个NXT 按钮被触发。3.将该模块放置到编程区域后会自动打开模块的数据中心。2配置NXT 按钮模块1.选择触发哪一个按钮。2.选择触发按钮的触发方式。如果想要按钮按下后触发选择按下;如果想要按钮松开后触发选择松开;如果想要按下且松开按钮之后再触发选择缓冲。下幅图表显示了NXT 按钮模块数据中心端口的不同特性3.2.3 声音传感器模块1.模块功能用来监测声音。通过数据线能够将声音传感器采集到的当前值和声音是否高于触发值或者低于触发值所产生的逻辑信号(真/假)传递出来。触发值是某种条件下某个特定
39、的值。比如,想要机器人在声音大于60的时候开始向前运行,那么触发点就是60。声音传感器模块默认声音值50 时会生成一个“真”信号。通过配制面板的反馈控制箱能够实时监测声音传感器所读取的数值(为了确保能够接收到反馈,确认传感器已经连接到所选择的端口,并且已经建立连接)。必须至少有一个通过数据线连接到其他模块的数据中心的数据输出。显示设置1.显示声音传感器所连接的端口。可以根据需求在配制面板上进行修改。2.显示所设置触发值的大小。颜色条显示的越多,触发值越高。3.将模块放置到编程区后会自动打开其数据中心。至少有一个数据输出到其他模块的数据中心。2配置声音传感器模块1.选择声音传感器所连接端口。默认
40、声音传感器连接到2 端口。可以根据需求自己来修改。2.通过滑条来设定触发值或者在输入框内键入数值来设定。如果想大于触发值来触发的话选择右端;如果想小于触发值来触发的话选择左端。当然也可以通过下拉菜单来设定“真”“假”。3.2.4 触动传感器模块1.模块功能该模块在程序中的某一部分检测触动传感器的状态。通过数据线传送出所检测出来的状态,即逻辑信号(真或者假)。如果传感器被触发,将发送出一个“真”信号;如果没有被触发,将发送一个“假”信号。必须从这个模块的数据中心拖拽出一条数据输出线连接到另外一个模块。显示触动传感器连接到了几端口。可以根据需求在配置面板里面进行修改。显示哪一种触动传感器的状态来发
41、送“真”信号(按下,松开,或者按下后松开)。将触动传感器模块拖拽到编程区后会自动打开其数据中心。2配置出动传感器模块选择触动传感器所连接端口。软件默认,触动传感器连接到 1 端口。你可以根据需要进行修改。触动传感器的触发有三种方式。如果想要按下后松开(延时少于0.5 秒)触动传感器来触发模块选择缓冲。如果想要按下触动传感器来触发模块选择被按下。如果想要松开触动传感器来触发模块选择松开。通过反馈控制箱来测试你的触动传感器。当触动传感器被触发,将在反馈控制箱内选择数字“1”。当触动传感器被缓冲后按下“重置”将反馈控制箱清零。3.3 数据模块3.3.1 比较模块1. 模块功能该模块能够决定一个数是大
42、于,小于还是等于另外一个数。输入的数值可以键入或者是通过数据线来动态定义。打开比较模块的数据中心,将会在其左侧看到两个输入端口,在其右侧有三个输出端口。两个输入端口将要通过其它模块的数据线来连接(除非某一端口被定义为常量)。比较之后的结果将从最底部的输出端口输出;从该端口连接数据线到其它模块的数据中心。和输入端口相对应的两个输出端口可以将输入端口的数值传递给其它模块。2. 配置比较模块可以键入输入的数值或者通过数据线来动态定义。当数据线已经连接,输入框将变成灰色,既不能够再输入数值。通过下拉菜单,可以选择3 种不同的比较方式: 大于() 小于()在这种情况下,如果第一个输入值大于第二个输入值,
43、比较模块将返回为“真”。否则,返回为“假”。小于()在这种情况下,如果第一个输入值小于第二个输入值,比较模块将返回为“真”。否则返回为“假”。等于(=)在这种情况下,如果第一个输入值等于第二个输入值,比较模块将返回为“真”。否则返回为“假”。如果 输入A=输入B,输出=“真”3.3.2 运算模块1. 模块功能这个模块执行简单的数学运算,比如加,减,乘和除。输入值可以键入或者通过数据线动态定义。将运算模块放到编程区后会自动打开其数据中心,在数据中心的左侧有两个输入端口(在左侧),三个输出端口(在右侧)。用于数学运算的输入值可以键入或者通过数据线来动态定义。等式的结果将通过最底部的输出端口输出;通
44、过数据线将输出连接到其它模块数据中心。和输入端口相对应的两个输出端口可以在需要的情况下将输入端口的数值传递给其它模块。2. 配置运算模块输入值可以键入或者通过数据线来进行动态定义。如果数据线已经连接,输入框将会变成灰色,既不可更改。通过下拉菜单可以进行四种运算: 加(+) 减(-) 乘(*) 除(/)加法两个数值相加之后将结果输出。输入A+输入B=输出减法第一个数值减去第二个数值后将结果输出。输入A-输入B=输出乘法两个数相乘之后将结果输出。输入A*输入B=输出除法第一个数除以第二个数之后将结果输出。输入A/输入B=输出3.3.3 逻辑模块1. 模块功能该模块在其输入端执行一个逻辑操作,然后通过数据线将真/假结果输出。输入(必须是“真”或者“假”)通过按钮来定义或者数据线来动态定义。逻辑模块仅仅使用两种值,“真”和“假”作为输入和输出。这两种状态通常用数字“1”和“0”来表示,“1”代表“真”,“0”代表“假”。计算机老师可能更容易理解,因为计算机计算采用二进制运算。计算机将复杂的数据转换为1 和0 后再进行运算。你也可以通过数值1 和0 作为输入,但是必须用逻辑数据线来定义。这个模块的四种操作可以执行一系列比较。在下面将会详