智能机器人授课方式:边讲课边实验及课程设计主讲人:金永贤第一部分入门机器人基本概念智能机器人ASU-II的连接与检测欢迎进入AS-UII的世界AS-UII有一个功能很强的“大脑”和一组灵敏的“感觉”器官。它不仅可以随着外部环境敏捷地作出反应,而且还可以与你进行交流。它有听觉、视觉、和触觉,它还会象人一样使用动作和声音,来表达与它周围世界互动时的感觉。如:AS-UII会唱歌、会跳舞;在早晨,他会叫你起床;出去散步的时候他会跟在你后面,边走边唱;……AS-UII是我们给机器人起的名字。AS是abilitystorm的缩写,意思是能力风暴,U表示大学版,II-第二版本。AS-UII的外形结构上盖主板传感器液晶显示屏底盘光明射器图1-1AS-UII结构简图AS-UII的控制面板开关:控制AS-UII电源的按钮。电源指示灯:电源指示灯的颜色是绿色。开机时,这个灯会发光,告诉你机器人已经进入工作状态了!充电指示灯:当你给机器人充电时,充电指示的红灯发光。充电口:只要将充电器的直流输出端插在充电口上,再将另一端接到220V电源上即可。下载口:使用时只需将串口通信线的一端接下载口,另一端连接在电脑机箱后面的一个九针串口上。“复位/ASOS”按钮:这是个复合按钮,用于下载操作系统和复位。图1-2控制按键部分AS-UII的控制面板复位功能:在机器人运行程序的过程中,按下此按钮,机器人就会中断程序的运行。如果要重新运行程序,须按运行键。下载操作系统功能:连接好串口通信线,打开机器人电源开关,在VJC1.5流程图编辑界面中选择“工具(T)--更新操作系统”命令,然后按下此按钮,即可下载操作系统。运行键:机器人开机后,按击“运行”键,就可以运行最近下载的程序。通信指示灯:通信指示灯位于机器人主板的前方,是一个黄色的小灯。在给机器人下载程序时,这个黄灯闪烁,表明下载正常,程序正在进入机器人的“大脑”AS-UII的充电AS-UII可以在线充电。在线充电又可分为开机充电和关机充电。1开机充电AS-UII可以一边充电一边活动,充电时,只需:(1)将充电器取出;(2)充电器直流端接机器人充电口;(3)充电器另一端插在标准电源插座上(220V,50Hz)。2关机充电AS-UII也可以关机充电。按上述三个步骤给机器人充电。关机充电1.5小时即可充满。AS-UII的连接和检测1连接串口通信线连接串口通信线是一项基本操作,下面是连接的标准步骤:取出串口通信线。一端接AS-UII的下载口,另一端接电脑机箱后的9针串口。2运行自检程序双击VJC1.5图标,在打开的对话框中选择“新建-流程图程序”,进入了流程图编辑界面。在此界面中你可以发现工具栏中有“自检”按钮,点击此按钮,即可下载自检程序。AS-UII的连接和检测自检程序下载完毕后,我们就可以检测AS-UII了。进行自检时,请拔下串口通信线,将机器人带到安全的地方(空旷,无障碍平地,2米×2米大小即可)。按下机器人电源开关,会听到“嘟”的一声,LCD上显示出“ASOS2002GrandarAbilityStorms”,同时右下角有太极状的图标在跳。太极图跳动表示AS-UII的系统运行正常。按一下“运行”键,机器人就开始自检了,LCD上会显示“AS-UIIIntelligentRobotTest”。自检内容共有八项,一项内容自检完成后,再按一下运行键,将进行下一项检测内容。下面就让我们逐项看一看:AS-UII的连接和检测1.LCD液晶显示是否正常?YesNo字符显示清晰,16×2个字符不应有缺行、缺列现象。2.扬声器(喇叭)是否正常?YesNo扬声器所播放的乐曲应清晰洪亮,无明显噪声。3.光敏传感器是否正常?YesNo左右光敏传感器的感应数值随光强不同而变化,其范围为0~255。光强越弱,数值越大,光强越强,数值越小。在相同光强条件下,左右两光敏传感器数值偏差小于10。如:(photoL172R210)表示左边的光线强。AS-UII的连接和检测4.红外传感器是否正常?YesNo在前方10cm~80cm范围内,有A4纸大小的障碍物时,在LCD上会有“”符号显示,并指明障碍物所在的方位(左前、右前或者正前)。如:IRTest表示机器人右前方有障碍。5.话筒是否正常?YesNo对着AS-UII话筒槽孔(蜂窝状小孔)说话,看LCD上的是否增加。6.碰撞传感器是否正常?YesNo按动机器人下部的碰撞环,在LCD上能显示碰撞方位(英文)。AS-UII的连接和检测7.检测直流电机是否正常?YesNo机器人可移动、转弯,同时在LCD上显示光电编码器累计计数值和瞬时电机转速。如:Motor30L100Test31R100表示左电机速度100,右电机速度100,左轮转过30个单位,右轮转过31个单位。8.光电编码器是否正常?YesNo机器人左、右轮子分别转动1圈,轮子内侧码盘也随之转动1圈,LCD上显示光电编码器的计数值约为33。轮子连续转动,LCD上则显示光电编码器的累计计数值。VJC1.5编程软件简介图形化交互式C语言(简称VJC)是用于AS-UII的专用开发系统。VJC1.5由流程图编辑界面和JC代码编辑界面组成。双击桌面上的VJC1.5图标,进入流程图编辑界面(如图1-4),可以看到这样几个部分:菜单栏、工具栏、模块库(包括执行器模块库、传感器模块库、控制模块库和程序模块库)、垃圾箱、流程图生成区、JC代码显示区。通过点击工具栏中的“编辑JC代码程序”快捷按钮(界面切换按钮)可以切换到JC代码编辑界面(如图1-5)。VJC1.5编程软件简介VJC1.5编程软件简介VJC1.5编程软件简介我们先看看流程图编辑界面:新建程序:要编写流程图程序,可以在流程图生成区直接编写。如果编辑过之后,还想再新建一个程序,那么可以选择菜单栏中“文件—新建”命令,也可以利用工具栏里的“新建”快捷按钮,直接新建一个新程序VJC1.5编程软件简介打开程序:可以选择菜单栏上“文件—打开”命令(或点击工具栏中的“打开”快捷按钮),来查看或编辑以前保存的程序。下载程序:写好的应用程序必须下载到AS-UII上运行。可以选择菜单栏中“工具(T)—下载当前程序”来下载程序(或点击工具栏中的“下载”快捷按钮)。如图1-7。VJC1.5编程软件简介下面再看看JC代码编辑界面:新建程序:可以在JC代码编辑界面中直接编写JC代码程序。如果你还想再新建一个程序,那么可以选择菜单栏中“文件—新建”命令,然后在新建的窗口里编写程序。你也可以利用工具栏里的“新建”快捷按钮,直接新建一个JC代码程序,见图1-5。打开程序:可以选择菜单栏上的“文件—打开”命令,来查看或编辑以前保存的程序。下载程序:写好的应用程序必须下载到机器人上运行。可以选择菜单栏中“工具(T)—下载当前程序”来下载程序。第一个VJC程序,Hellorobot!用VJC1.5的流程图为机器人编写第一个程序,在能力风暴的液晶显示屏LCD上显示“Hello,robot!”a)点击工具栏中的“新建”按钮,新建一个程序;b)用鼠标将“执行器模块库”中的“显示”模块拖入到流程图生成区,放在主程序模块正下方,看看“主程序”模块与“显示”模块之间是不是有箭头连接,有则说明连接上了,否则再调整一下“显示”模块的位置;c)右键点击“显示”模块,就会出现如图1-11所示的对话框,请将显示信息由HI改写为Hello,robot!设定完毕,按“确定”;第一个VJC程序,Hellorobot!d)在“程序模块库”中选择“结束”模块,将它连在“显示”模块之后,这样整个程序就编写完成了;e)将机器人与计算机连接起来;f)将机器人的“开关”按钮打开,使机器人处于开机的状态;g)按VJC界面中的“下载”按钮,待看到“下载成功!”字样时,取下串口通信线,按机器人控制面板上的“运行”按钮,机器人的液晶显示屏上就会显示出Hello,robot!第一个VJC程序,Hellorobot!voidmain({printf(Hellorobot!\n);}例:要求:先让机器人以速度100前进3秒,再让机器人以速度-60后退5秒,再在原地以功率80旋转1秒。1编写流程图a)用鼠标将“执行器模块库”中的“直行”模块移到流程图生成区,并与“主程序”模块连接上;b)右击“直行”模块,在弹出的对话框中输入速度为100、时间为3秒;c)再用鼠标将“执行器模块库”中的“直行”模块移到流程图生成区并连接在第一个“直行”模块的下面;d)设置第二个“直行”模块,在对话框中输入移动速度为-60、时间为5秒;e)再将“执行器模块库”中的“转向”模块连接到程序中,在模块上点击右键,在弹出的对话框中设置速度和时间分别为:80和1f)再将“程序模块库”中的“任务结束”模块移入到流程图生成区,并连接在程序的末尾。2保存源代码程序点击工具栏中的“保存”按钮,输入文件名,按“确定”,即可将编好的程序保存起来。3程序下载在菜单栏里“工具(T)”选项卡中选择“下载当前程序”,就会出现“智能下载程序”对话框,并显示下载进程,待出现“下载成功!”字样,程序就已经下载到能力风暴里了。4运行程序将串口通信线取下,将机器人带到宽敞平坦的地方,按机器人身上的“运行”键,能力风暴智能机器人就会运行程序,快速前进3秒,再后退7秒,然后再旋转1秒。第二部分机器人结构及传感器AS-UII的身体结构控制部分――主板和控制面板主板控制部分主要是指我们在和AS-UII机器人进行交流时,对它进行直接操作的部件,见图2-1。AS-UII的控制部分主要由以下两个部分组成:主板和控制面板。1.主板主板是AS-UII的大脑,它由很多电子元器件组成。跟人的大脑一样,它在控制身体的运动时,要完成接收信息、处理信息、发出指令等一系列过程。机器人的大脑有记忆功能,这主要由主板上的内存来实现。至于“大脑”的分析、判断、决策功能则由主板上的众多芯片共同完成。AS-UII的身体结构2.控制面板位于机器人背部的控制面板,是机器人的按钮和接口集中的地方。感官部分―传感器感官部分是AS-UII机器人用来同环境进行交流——采集环境信息的一组器件,我们称之为传感器。AS-UII上用到的传感器有以下5种:碰撞传感器,红外传感器,光敏传感器,话筒,光电编码器。1.碰撞传感器AS-UII机器人的碰撞传感器能够检测到360°范围内的碰撞,使AS-UII机器人遭遇到碰撞之后,能够转弯避开,或作出其它反应。话筒碰撞环光敏传感器红外发射管红外接收模块碰撞传感器碰撞传感器是感知碰撞信息的传感器。在能力风暴智能机器人的左前、右前、左后、右后设置有四个碰撞开关,它们与碰撞环共同构成了碰撞传感器。碰撞环与底盘柔性连接,在受力后与底盘产生相对位移,触发固连在底盘上的碰撞开关,使之闭合。碰撞传感器用流程图编一个碰撞检测程序,要求在LCD上显示:bmp_1=0(表示此时没有碰撞)若左后方受到碰撞,LCD上显示:bmp_1=4bmp_1=1左前,bmp_1=2右前,bmp_1=4左后,bmp_1=8右后1.进入VJC的流程图编辑界面,将“控制模块库”中的“永远循环”模块拖入到流程图生成区,并与“主程序”模块相连;2.将“传感器模块”库中“碰撞检测”模块连接到循环体内部,见图3-5;能力风暴传感器-碰撞传感器3.将“执行器模块库”中的“显示模块”连接在“碰撞检测”模块下方;4.设置“显示”模块。在“显示”模块上右击鼠标,在弹出的对话框中选择“引用变量”,会出现“变量百宝箱”对话框(见图3-4),点击“碰撞”图标,在碰撞变量引用中点击“碰撞变量一”,按“确定”;5.在“显示”模块正下方,连接“延时等待”模块,在“延时等待”模块上右击鼠标,设置时间为2秒;6.将“程序模块库”中的“任务结束”模块连接在循环体的下方,完成碰撞检测程序的编写。能力风暴传感器-碰撞传感器图3-4VJC碰撞显示变量设置图图3-5碰撞检测程序流程图能力风暴传感器-碰撞传感器在JC语言中,碰撞传感器的库函数是bumper(),在程序运