纳英特仿真软件使用说明.docx
《纳英特仿真软件使用说明.docx》由会员分享,可在线阅读,更多相关《纳英特仿真软件使用说明.docx(36页珍藏版)》请在冰点文库上搜索。
![纳英特仿真软件使用说明.docx](https://file1.bingdoc.com/fileroot1/2023-5/25/eda22749-daf8-48a5-89eb-b2932dd774c9/eda22749-daf8-48a5-89eb-b2932dd774c91.gif)
纳英特仿真软件使用说明
纳英特®积木式机器人
仿真系统
使
用
说
明
1、软件安装
系统要求:
1、操作系统:
win98,win2000全系列,winXp,win2003server
2、运行环境:
.NetFrameworkv1.1,DirectX9.0c
3、硬件要求:
600MHz以上的主频的CPU,128M内存,8M显存以上的3D显卡.
安装准备:
1.如果未安装.netFramework,则需要安装.netFrameworkv1.1,安装文件为dotnetfx.exe,langpack.exe为中文语言包
2.如果是win98系统,需要IE5.0以上。
请用户自行检查。
3.安装过程中提示msxml*.dll不能注册,则安装mdac_typ_2.7_CHS.exe
4.如果是WinXP以下版本,如果没有安装DirectX9.0c,则需要进行DirectX9.0c的安装,安装文件位于DirectX9.0c目录。
安装步骤:
1、运行
。
2、跳出如下界面,选择‘安装驱动’
安装驱动成功后,点击‘关闭’即可。
3、出现如下安装界面
按照提示安装,并输入序列号(序列号在源文件夹内)即可完成安装。
注意:
使用时需插入加密狗。
2.软件界面
2.1.系统主菜单
图示如下:
快速启动:
通过选择已保存的项目文件,用户可直接、快速的进入仿真。
进入仿真:
通过进行相关设置,按照一定的步骤开始新的仿真。
机器人搭建:
进行新机器人的搭建或者已存机器人的编辑修改。
场地编辑:
进行新仿真场地的搭建或者已存场地的编辑修改。
退出:
退出当前系统。
2.2.快速启动
实现已设定项目的管理,通过选择相应的项目,可直接、快速进入仿真的目的。
界面如下图所示:
:
存放着保存的历史仿真项目。
:
打开选择的项目文件。
:
将选择的项目所有需要的资源打包成可分发的包。
:
导入可分发的包文件。
2.3.进入仿真
通过进行相关设置,按照以下的步骤开始新的仿真:
●机器人组队设置
●机器人场地合成
●仿真运行
2.3.1.机器人组队设置
进行仿真的规则、场地、分组,机器人以及机器人名称、机器人控制程序的设定。
图示如下:
其中左侧面板为设置面板,右边面板为内容预览面板。
规则选择:
选择比赛规则,如要编辑规则,可使用规则编辑器。
场地选择:
选择与项目相适应的比赛场地。
分组:
选择比赛队伍名称,将各个队伍加以区别。
名称:
编辑机器人名称,作为仿真中的机器人代号,接受中英文、数字。
程序代码:
选择程序,作为机器人的控制程序。
机器人:
选择已搭建完成的机器人。
加载:
打开保存的历史仿真项目。
下一步:
设置完成,进入下一步(机器人场地合成),如果有信息未设置完成,将无法进入下一步,并且会有相应的提示。
2.3.2控制程序的编辑
在当前操作界面中,可以新建,编辑机器人控制程序。
新建程序:
通过点击“程序代码”下拉列表中的“新建”项目,可打开控制程序编辑窗口,进入新程序编辑状态。
编辑程序:
在预览状态下,双击预览窗口可打开控制程序编辑器,对当前预览程序进行编辑。
关于控制程序编辑器的具体操作,请参见程序编写章节。
2.3.3机器人场地合成
该步骤完成机器人在场地中的初始位置设定,并且可以保存当前的仿真项目,供以后快速启动。
进入该界面以后,窗口的左上角将会列出当前所有可用的机器人,点击机器人之后,按照提示,选择机器人在场地中的放置位置。
图示如下:
(如果场地中已经包含了起始点,则系统将自动设置机器人到起始点位置。
)
返回:
返回到上一步(机器人组队设置)
保存:
保存当前仿真项目,供快速启动使用。
进入仿真:
进入仿真运行界面。
2.3.4.仿真运行
机器人按照预定的设置,在控制程序的控制下完成预定的功能,系统将依据场地,机器人的部件安装方式等因素进行较为真实的过程模拟。
图示如下:
2.3.4.1各控制按钮的说明
加载控制程序:
在机器人选中的情况下,可修改当前的控制程序,改变机器人运行状态。
注:
如果机器人正在运行中,系统将会有提示用户首先暂停机器人的运行。
开始:
默认情况下,当前场景中所有的机器人将开始运行。
如果某个机器人被选中,则只会运行选中的机器人,而其他的继续处于停止状态。
同时,计时器开始计时。
停止:
默认情况下,当前场景中所有的机器人将停止运行。
如果某个机器人被选中,则只会停止选中的机器人,而其他的继续处于运行状态。
同时,计时器停止计时。
复位:
默认情况下,当前场景中所有的机器人的位置,程序等将被重置回初始状态。
如果某个机器人被选中,则只会复位选中的机器人,而其他的继续处于运行状态。
此时,计时器处于停止状态。
俯视:
从顶部向下观察整个场景。
正视:
从场景正前方观察整个场景。
侧视:
从场景的正左方观察整个场景。
选择机器人或其零部件或者场地时,将显示选中物的状态,示例如右图:
代码显示:
显示当前选中机器人的控制代码以及当前执行的具体语句。
显示部件本地坐标系:
控制各个物体(部件)本地坐标系是否显示。
(注:
所谓的本地坐标系是以各物体(部件)的中心点为坐标原点的坐标系统。
)
返回主菜单:
返回到系统主菜单。
2.3.4.2基本操作
选中/取消选中机器人:
Ctrl+鼠标左键或鼠标右键点击目标机器人,即可选中机器人,如欲取消,则点击空白处。
显示机器人(或者其组成部件)的基本信息:
选中目标机器人,则屏幕左上角将显示该机器人(部件)的基本信息,如下图所示:
调整机器人的基本位置信息:
右键选择目标机器人(如右图所示),设置其属性。
将会打开基本的属性设置窗口。
该窗口可以设置机器人的位置,名称等基本信息。
选择机器人部件的情况下,可以设置部件的相应基本属性,如其安装的端口,如果是传感器,则可设置检测距离,检测角度,轮子可设置转动速度等等。
图示如下:
(以机器人为例子)
名称:
可修改机器人在仿真中的名字。
上下左右按钮分别可进行前后左右的位置调整,居中按钮可进行机器人的旋转。
X10,x5,x1,x0.1单选框,可设置位置调制的粒度
机器人实时编辑:
在仿真时,通过右键“编辑”快捷菜单,可切换到机器人编辑界面,对选中的机器人进行编辑。
场地实时编辑:
在仿真时,,通过右键“编辑”快捷菜单,可切换到场地机器人编辑界面,对场地进行编辑。
2.4.机器人搭建
该模块利用系统提供的各种机器人配件完成机器人从零件到整机的搭建。
本系统采用装配点的思想,快速、准确第实现配件的装配过程。
:
选择要搭建的机器人类型:
选择新建,则从机器人最原始状态开始搭建;选择其他项目,则对已搭建完成的机器人进行编辑。
:
选择需要搭建的部件种类,用以快速查找部件。
主要类型有:
传感器,轮子,马达。
:
当前机器人组件类型所包含的具体配件。
:
用右键选中3D中的部件,点击可从参数设置从设置部件的位置、方向等各个参数。
:
选中现有部件类型列表中的部件,点击可添加此部件到“工作桌面”。
:
用右键选中3D中的部件,点击可删除此部件。
2.4.1基本操作
通过“添加部件”按钮将选中的配件添加到“工作桌面”后,鼠标左键选择当前添加的配件的装配点,再选择装配目的装配点,即可完成操作,具体过程如图所示:
●选择当前添加的配件,如:
Z马达,选取其中一个装配点。
●选择停靠位置的装配点,如下图所示:
即可完成装配。
装配结果如下图:
●安装角度的旋转:
选中旋转目标配件,右键打开“属性设置”,通过
按钮,即可实现配件的旋转,注意:
一旦配件已被安装,则只能以装配点为旋转中心进行角度的调整。
如下图:
●“打断”装配关系:
选中“打断”目标,右键打开“属性设置“,通过“上”、“下”、“左”、“右”按钮可进行“打断操作”。
2.4.2属性设置
本系统目前自带的机器人配件中,需要用户进行属性设置的有以下种类:
灰度传感器,红外避障传感器,指南针,
马达
下面对这几类配件的属性设置做一个简单的介绍:
2.4.2.1灰度传感器属性设置
a.名称:
设置灰度传感器名称。
b.感应区夹角,半径:
设置灰度传感器探测范围。
c.端口号:
设置灰度传感器所接入机器人端口号。
d.感应区是否显示:
选择是否在3D中以红色显示感应范围
2.4.2.2红外传感器属性设置
a.名称:
设置红外传感器名称
b.颜色设置:
设置红外传感器感应区颜色。
c.感应区夹角,夹角:
设置红外传感器探测范围。
d.端口号:
指定红外传感器与机器人连接的端口。
e.感应区是否显示:
选择是否显示感应范围。
2.4.2.3指南针属性设置
a.名称:
设置指南针名称
b.颜色设置:
(对指南针无效)。
c.感应区夹角,夹角:
(对指南针无效)。
d.端口号:
设置指南针所接入机器人端口号。
e.感应区是否显示:
(对指南针无效)。
3.1.场地编辑
可在此模块中搭建新的场地或者对已保存的场地进行编辑,主要有场地底面的选择,障碍物的放置等。
3.1.1.界面说明
:
选择项目场地:
选择新建,则从场地最原始状态开始搭建;选择其他项目,则从已搭建完成的场地基础上开始搭建。
:
选择场地部件的种类,以便快速查找所需场地部件。
:
选择所需场地部件名称。
:
用右键选中3D中的部件,点击可从参数设置从设置部件的位置、方向等各个参数,
:
选中现有部件类型列表中的部件,点击可添加此部件。
:
用选中场景中的障碍物,点击可删除此部件。
3.1.2场地属性设置
a.名称:
设置场地名称。
b.长度,宽度:
调节场地的大小。
c.地面纹理:
选择场地图案。
该文件为jpg格式的图形文件,可由操作系统自带的“画图”工具制作,也可以通过任何图像制作工具生成。
一旦选择了具体的地面纹理,场地的长宽设置将不再起作用。
所以在制作场地时,一般将场地纸做成实际尺寸大小(单位:
像素),如一个2.5米X1.5米的场地,在用画图制作jpg文件时,该文件的尺寸为250x150,(单位:
像素)。
如右图:
4.程序编辑器的使用
系统附带的程序编辑器,可以进行图形化的程序、C代码程序的编辑。
4.1基本操作
添加模块:
在模块库区选择模块,按下鼠标,拖放至目的区域,待方向线变红色时,松开鼠标,完成操作。
->
—>
删除模块:
选择删除目标,单击鼠标右键,选择删除模块,确认即完成操作。
如果删除的模块是条件旁断、循环模块,则应至模块起始处删除。
在删除此类模块时,将删除该模块所包含的所有的模块。
设置参数:
选择设置对象,双击打开设置窗口,或者通过右键快捷菜单,选择模块属性。
模块的拖放:
选择目标模块(可按住”Ctrl”多选),拖放至目的区域即可(既可插入至流程图,也可以放置于空白区域).如果多个模块是非连续的,则无法直接插入至流程图!
提示:
空白区域的IF,For,While,连续的两个普通模块间可以插入模块.
4.2.模块说明
4.2.1执行器模块库
移动模块
该模块主要完成机器人的直行、转向动作。
0、1号电机分别代表机器人的左、右电机。
通过功率大小滚动条的拖拉或者功率数值输入框的输入可以设定电机的运行功率。
“-”表示电机反转。
功率绝对数值越大,电机转速越快。
延时模块
该模块主要实现延续机器人的上一个动作状态。
主要和移动模块或者扩展电机模块相搭配,实现机器人移动或者某个动作的延续性。
如:
让机器人以100%的功率向前直行5秒钟,延时模块可如下设置:
相应的程序代码为:
停止模块
该模块主要实现停止电机运转。
可实现所有电机停止运转,也可以设定停止一个或几个电机。
停止所有电机,则给“停止所有电机”打上“”。
停止一个或几个电机,去掉“停止所有电机”的“”,选择停止对象。
启动电机模块
该模块主要实现扩展电机的使用。
使用时,可打开任意一个电机。
操作同移动模块。
显示模块
该模块主要实现信息的打印输出。
支持多参数输出。
使用时,在显示信息输入框中输入要显示的内容,如:
“helloworld!
”。
当需要显示端口值或者某个变量的值时,单击“引用”按钮打开“引用”窗口。
如:
要显示模拟端口5的数值,则在工具栏中点击“模拟输入”,选择第“5”端口,确定退出。
显示多个参数,则多次点击“引用”,以增加显示参数。
当需要手动编辑显示内容时,可以选择
。
音乐模块
该模块主要用于生成音乐。
依据乐理,选择音符与节拍,单击“>>”按钮,增加至音符列表。
其中,时间框显示的时间与节拍是相对应的。
用户可以自行输入发音延续时间进行自定义。
如果您的计算机有内置扬声器,还可以通过单击“试听”按钮视听当前的音乐。
伺服电机模块(当前仿真版本尚未支持)
该模块包含八个子模块,主要完成伺服电机的初始化、定位与关闭。
“开始伺服”模块用于所有伺服电机的初始化。
该模块不需要设定任何参数。
“关闭伺服”模块用于关闭所有伺服电机。
该模块同样不需要设定任何参数。
“伺服电机0”至“伺服电机5”主要用于0-5号伺服电机的定位。
在实际应用过程中,要对伺服电机进行操作,必须先初始化伺服电机。
将某伺服电机进行连续的定位,可以使用For循环来控制。
如:
只完成伺服电机0定位到500的位置这一目的可如下操作:
定位参数可以用双击相应的伺服电机模块进行设置。
例2:
让控制机器人左右手的伺服电机0,伺服电机1从0运动至1000的位置,
多次循环的设置如下:
循环变量为“i”,起始值为0,循环次数1000,步进量100。
如图:
伺服电机0模块参数设置:
打开设置窗口,点击“引用”按钮,选择“全局变量”,在下拉列表中选择刚才声明的变量“i”。
伺服电机1设置同理。
4.2.2控制模块库
该库主要实现流程图的流程控制。
主要有:
多次循环模块,条件循环模块,中断循环模块,条件判断模块。
多次循环模块
该模块将直行循环体内的操作x次,x的大小由用户自行设定,除非用户中断循环。
参数设置界面如图:
选中“高级设置”可以自定义一些高级选项。
如下图:
循环变量的设置:
主函数双击
;子程序双击
(注:
这里是“函数func”,函数名不同,则显示不同)打开函数属性管理窗口。
选取目标函数,切换至“函数变量”页面,单击工具栏中的“增加变量”,输入变量名称、选择数据类型即可。
默认的变量名称为“unknown”,数据类型为“int”。
起始值:
循环开始时赋予循环变量的数值,通常为0。
通过“引用”框的选择,可以将某个变量作为起始值。
循环次数:
循环结束值。
通过“引用”框的选择,可以将某个变量作为循环次数。
步进量:
每次循环,循环变量的变化值,通常为1。
其他步进量主要用于伺服电机的控制。
条件循环模块
该模块主要实现永远循环,以及符合某个条件才执行循环的功能。
永远循环:
为条件循环的默认循环。
打开设置窗口,直接确定退出即可。
条件循环:
不选择“永远循环”,出现条件的设置窗口。
同条件判断模块的条件设置。
中断循环模块
主要用于循环的退出。
如果有多重循环嵌套,则只是退出当前循环。
如:
条件判断模块
该模块完成if….else功能。
既如果条件成立执行某个操作,否则(不成立)执行另一个操作。
如:
条件如果成立,则“移动”,否则“停止”。
条件的设置:
双击
打开设置窗口。
条件分为“旁断类条件”,“表达式条件”,“常用操作”三大类。
一个条件可以包含这三类条件。
分别设置条件,点击“增加条件”,可以实现多条件的判断。
判断类条件:
实现某个变量大小的旁断或者某个变量是什么的旁断。
如:
设置条件旁断“3号模拟口的模拟量是否大于127”,可如下进行:
在“变量”下拉框中选择“模拟输入”,在“端口”下拉框中选择端口“3”
然后选择判断符“大于”,输入目标数值大小,这里是127。
单击“增加条件”按钮,完成条件添加。
“确定”退出。
条件间的逻辑关系
如果已经设置一个条件,再增加一个条件,会自动弹出条件间关系的设置窗口。
依据需要,选择相应的逻辑关系既可。
“和”关系:
“条件1”和“条件2”,“和”关系表示两个条件都成立,则条件成立。
“或者”关系:
“条件1”或者“条件2”,表示两个条件中有一个成立,则条件成立。
“非”关系:
“条件1”非“条件2”,表示条件1成立条件2不成立,则条件成立。
4.3.3程序模块库
该库包含的模块主要完成系统函数的调用,表达式的赋值,进程开启关闭以及子程序调用等高级功能。
调用系统函数(当前仿真版本尚未支持)
系统内部集成了丰富的函数,很多函数并没有定义到模块中去。
通过此模块可以调用这些函数,如下图:
其中:
无返回值类函数起到“过程”的作用,只完成任务,不返回任何值。
返回值为数值类型的函数将返回一个结果。
表达式定义模块
主要实现变量的赋值(初始化)。
一个表达式定义模块可以包含多个表达式定义。
参数的设置首先需要添加变量。
单击“引用”打开变量引用窗口。
“增加”可以增加一个表达式定义。
如:
往模块里增加“i=ananlog(3)”,操作如下:
如果还未设置变量则先打开函数属性定义变量。
在下拉框中选择对应的变量“i”
单击“引用”打开引用窗口。
选择“模拟输入”,端口选择“3”,确定退出。
单击“增加”完成表达式的添加。
进程模块
所谓的进程就是一个并发执行的子程序,在机器人平台中来讲,开启一个进程意味着系统会给这个进程分配50ms的执行时间.
进程的实体就是某个函数.
如下面这段程序:
()
voidmain()
{
start_process(music());
while
(1)
{
tone(1000.0,1.0);
}
}
voidmusic()
{
while
(1)
{
beep();
}
}
再看这个:
(由于music里面是个死循环,程序将不会再往下,我们只能听到连续不断的beep声,tone(1000.0,1.0)将不会发生.)
voidmain()
{
music();
while
(1)
{
tone(1000.0,1.0);
}
}
voidmusic()
{
while
(1)
{
beep();
}
}
进程函数的定义和普通函数的定义没有任何区别(函数管理)。
一个程序可以包含多个进程,这些进程将同时被执行。
进程的操作依靠进程标志进行。
进程标志实际是一个int型变量,同建立普通变量没有区别。
下面用具体的例子说明进程的开启与关闭。
准备工作:
声明进程标志变量名为ret,数据类型为int。
增加函数func。
开启进程模块
选择一个函数,单击“增加”,将此函数增加为进程。
如果误操作,可以“删除”。
如果该函数有参数,则自动在“参数”一栏中列出,用户可单击“修改”进行函数参数的设置。
如果以后不对该进程进行操作,可以忽略进程标志的设置。
如果以后需要关闭该进程,则必须给该线程设置一个进程标志返回值,这里我们选择ret。
确定退出。
关闭进程模块
选择当前关闭目标进程,单击“>>”按钮,完成退出。
注意:
一个开启线程模块可以拥有多个线程的开启,一个关闭线程模块也可以拥有多个线程的关闭。
调用子程序
子程序的调用操作类似与线程开启。
下面以实际例子进行说明。
准备工作:
增加函数migong。
选择migong函数,增加为“子程序条用模块”拥有的函数,如果该函数有参数,通过“修改”按钮可以修改参数的值。
如果该函数有返回值,而且需要使用这个返回值,则可以通过“选择返回值变量”下拉框给该函数设定。
子程序返回
该模块主要用于子程序的返回值定义。
如:
定义fire函数,fire函数的返回值定义为int类型。
1表示灭火成功,0表示灭火失败。
如:
定义fire函数,fire函数的返回值定义为int类型。
1表示灭火成功。