西电智能系统平台实验.docx

上传人:b****5 文档编号:6445341 上传时间:2023-01-06 格式:DOCX 页数:8 大小:777.33KB
下载 相关 举报
西电智能系统平台实验.docx_第1页
第1页 / 共8页
西电智能系统平台实验.docx_第2页
第2页 / 共8页
西电智能系统平台实验.docx_第3页
第3页 / 共8页
西电智能系统平台实验.docx_第4页
第4页 / 共8页
西电智能系统平台实验.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

西电智能系统平台实验.docx

《西电智能系统平台实验.docx》由会员分享,可在线阅读,更多相关《西电智能系统平台实验.docx(8页珍藏版)》请在冰豆网上搜索。

西电智能系统平台实验.docx

西电智能系统平台实验

班级:

021051

学号:

02105035

姓名:

戴涛

 

实验5-6AS-UII机器人实验

一、实验目的

了解AS-UII的内部结构以及系统结构,熟练的操作机器人;能够完整的组装一个AS-EIM工程创新模块中级套件;掌握能力风暴编程,深刻理解流程图编程方法。

二、原理简介

AS-UII是面向教育的新一代智能移动机器人。

AS-UII有一个功能比较强大的微处理系统和传感器系统,而且它还能扩展听觉、视觉和触觉,成为真正意义上的智能机器人。

AS-UII是专门为大学进行课程教学、工程训练、机器人竞赛、科技创新以及研究服务开发的新型移动智能机器人。

1.图形化交互式C语言简介

图形化交互式C语言(简称VJC)是用于能力风暴机器人系列产品的软件开发系统,具有基于流程图的编程语言和交互式C语言,为开发智能机器人项目、程序与算法、教学等提供了简单而又功能强大的平台。

该系统不仅可以用直观的流程图编程,也可以用JC代码编写更复杂高级的机器人程序。

有了流程图和JC语言两种编程方法,VJC能够在编写机器人程序中发挥最大的创造力。

VJC操作简便,有活泼明快的图案和简短的文字说明,可以很方便地用图形模块搭建程序流程图,搭建流程图的同时,动态生成无语法错误的JC代码。

流程图搭建完毕,JC程序就已经编写完成。

可以立即下载程序到机器人中运行,还可以在JC代码编辑环境中对程序进行编辑,注释和修改等。

流程图用图框表示各种操作,直观形象,易于理解。

流程图能够比较清楚地显示出各个框图之间的逻辑关系,因此它是表示算法的较好工具。

图形化编程用常规的计算机语言编程,需要输入繁杂的程序代码,并且编写的程序还要符合特定的“语法”。

而图形化编程不需要记忆计算机语言的语法,也不需要输入程序代码,只要按照“先做什么,后做什么”的初步设想,就可以编出程序。

图形化交互式C语言(VJC)正是按这个思想设计的,使用VJC软件,同学们不用关心语言实现的细节,且能避免语法错误,有利与集中精力寻求解决问题的方法。

VJC的图形化编程采用的是流程图模型,它由图形模块及带有箭头的方向线组成。

常用的模块有五类:

执行器模块(蓝色矩阵)、单功能传感器模块(紫色平行四边形)、带判断功能的传感器模块(紫色菱形),控制模块(红色菱形)和程序模块(黄色矩形流程图支持多任务程序、子程序调用、浮点数和整数、全局变量、简单表达式、复合条件判断以及循环嵌套等。

)每一种类型的模块都可以完成一定的功能,只要按逻辑连接这些模块就可以编出程序。

一般的程序乃至复杂的程序都能够用流程图编写。

2.VJC6.0界面介绍

JC代码编辑界面打开VJC6.0,选择“JC代码程序”,就进入JC代码编辑界面。

它由这样几个部分组成的:

菜单栏、工具栏、状态栏、JC代码编辑窗口、较好信息窗口。

流程图编辑界面:

选择“流程图程序”,就进入流程图编程界面。

它由这样几个部分组成的:

菜单栏、工具栏、模块库、垃圾箱、流程图生成区、JC代码显示区(必须单击“JC代码”按钮才能显示)。

交互信息窗口可以显示:

编译结果、机器人程序中的全局变量、函数名列表、机器人正在运行的进程表、交互式语句的执行结果。

JC程序下载后,可以在交互信息窗口中看到编译的结果。

如果下载的JC程序有语法错误。

用鼠标双击编译结果中的错误,光标会自动跳转到出错的JC语句所在行。

3.流程图编程

模块是编程的基本单元,其操作也是经常要用到的。

VJC的图形模块分以下几类:

执行器模块、传感器模块、控制模块、程序模块库、多功能扩展卡模块(多功能扩展卡模块只适用于AS-M、AS-MII、AS-UII)、伺服电机驱动模块(伺服电机驱动模块适用于AS-M、AS-MII、AS-UII)以及通讯模块(通讯模块只适用于AS-UII)。

不同型号的机器人的模块库略有不同,下面对图形模块库分类介绍其使用方法。

流程图编程详尽描述如下:

进入VJC1.6开发版的流程图编辑界面,编写此程序的步骤如下:

用鼠标点击左边“控制模块库”,从中选择“多次循环”。

将此图标拖到流程图生成区,与主程序相连。

鼠标右键“多次循环”图标,就会出现相应的对话框,将循环次数改为4次。

从“执行器模块库”中,选择“直行”模块,连接在流程图中,在“直行”模块上右击鼠标,就会出现一个参数设置框。

根据要求选择合适的速度和时间,这时机器人就可以完成走直线的任务。

再选择“转向”模块,连接在流程图中,鼠标右击“转向”模块,出现设置参数的对话框,在“速度”和“时间”状态栏内,填写适当的值,使机器人右转90度。

最后从程序模块中,把“结束”模块添加上去,放在循环体外,就完成了一个走四边形的机器人程序编写。

程序编写完毕,接下来就要把编号的程序下载到机器人里运行、调试了。

首先把机器人和计算机用串口连接线连接起来,打开机器人电源开关,然后点击工具栏中的“下载”按钮,在界面中就会出现一个“智能下载程序”对话框,待看到“下载成功”字样时,拔下串口连接线,间机器人带到宽敞的地方,按下机器人身上的“运行”键,机器人就开始走四边形了。

也许会发现机器人走的不很规则,转弯的角度不正确,那么就需要修改“直行”和“转向”模块中的参数,再下载,运行。

多任务的编程方法,以下是一个多任务的例子:

例1:

边唱歌边跳舞的机器人

将“程序模块库”里“任务开始”移入到流程图生成区,这样就生成了两个任务(主任务和一个任务),分别在主程序和任务下编写让机器人跳舞和唱歌的程序,下载程序运行,机器人就能一边跳舞一边唱歌了。

例2:

机器人走四边形

要求让机器人完成“前进→转弯→前进→转弯→前进→转弯→前进→转弯”的动作,机器人需要完成四个“前进→转弯”动作。

编程时,而要让机器人完成一个“前进→转弯”,需要气动电机,使机器人以一定的速度向前运行一段时间,然后停下,以左轮为中心旋转90度再停下。

这个动作使用两个模块就这样就走完了四边形的一边。

要让机器人走四个边,有一个简便的方法,就是循环上述步骤,循环重复4此,机器人就能够走完一个四边形了。

4.程序的下载及运行

程序编写完毕,用串口连接线一端接机器人控制面板上的“下载口”,另一端接计算机的一个九针串口,打开机器人电源开关,按工具栏上的“下载”按钮,或者使用菜单栏上的“工具(T)-下载当前程序(D)”命令,你就可以下载程序了。

这是会出现一个智能下载对话框,并显示下载进程。

等待出现“下载成功!

”字样时,关闭对话框。

拔下机器人上的串口连接线,按下机器人的“运行”按钮,机器人就开始运行下载的程序了。

三、程序说明

第一次:

实验1:

流程图如下

实现机器人声音检测,如果分贝小于某个数值就执行“前进”操作,并且一直处于红外检测和避障操作,红外检测只要检测到和障碍物的距离小于一定值的话就执行“左转”操作,然后前进,再检测,如果满足条件,将再次左转,一直到避开障碍物。

如果失灵碰撞到障碍物,那么“躲避碰撞”程序将检测到碰撞后向左转,一直循环到避开障碍物。

在主程序运行过程中,检测亮度并显示的子任务也在并行执行,通过光传感器将检测到的光亮度显示在机器人的显示屏上。

实验2:

光感小车,组装图如下

流程图如下

智能光感小车——小车会根据前方的两个光传感器来判断行驶方向。

如果左边的光感器检测到光强度大于100,则马达一反转,如果小于100,则再检测右边光感器的光强度,如果大于100,则马达二反转,否则两个马达都正转。

这样就实现了小车跟随强光走,从而避开障碍物,因为遇到障碍的一面其光感强度必然减小,从而向光强的那个方向转向。

第二次

机器手臂,组装图如下

流程图如下

第一个循环控制底座马达,即马达1。

第二个循环控制机器臂的升降,即马达2和4。

第三个循环控制机器夹的开合。

模拟口输入为三个磁传感器,根据外界磁力的大小来进行响应。

这样就可以用磁棒来控制机器手臂,让其可以上下左右都可以旋转,实现抓取东西。

通过实验,可以看到我们组的机器手臂可以实现全部功能。

唯一不足就是地盘齿轮损坏,导致地盘旋转不是很顺畅,其他部位均可正常运行。

四、实验总结

通过这两次实验,基本掌握了JC6.0的编程,它可以用流程图编程,可视化强,而且简单,非常适合初学者学习。

通过这两次实验,基本了解了机器人编程操作,增加了动手实践能力,也增加了对机器人的兴趣。

五.实验代码

intma_1=0;

intmcm_1=0;

voidmain()

{

start_process(task_0());

start_process(task_1());

while

(1)

{

ma_1=analogport(7);

if(ma_1>50)

{

mcm_1=(mcm_1&0b11111100)|0b1;

write(0x4000,mcm_1);

}

else

{

mcm_1=(mcm_1&0b11111100)|0b11;

write(0x4000,mcm_1);

}

}

}

voidtask_0()

{

while

(1)

{

ma_1=analogport(6);

if(ma_1>50)

{

mcm_1=(mcm_1&0b110011)|0b1000100;

write(0x4000,mcm_1);

}

else

{

mcm_1=(mcm_1&0b110011)|0b11001100;

write(0x4000,mcm_1);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1