基础机器人制作与编程(第3版) 课件全套 第1-9 机器人的大脑及编程软件的安装与使用-机器人竞赛_第1页
基础机器人制作与编程(第3版) 课件全套 第1-9 机器人的大脑及编程软件的安装与使用-机器人竞赛_第2页
基础机器人制作与编程(第3版) 课件全套 第1-9 机器人的大脑及编程软件的安装与使用-机器人竞赛_第3页
基础机器人制作与编程(第3版) 课件全套 第1-9 机器人的大脑及编程软件的安装与使用-机器人竞赛_第4页
基础机器人制作与编程(第3版) 课件全套 第1-9 机器人的大脑及编程软件的安装与使用-机器人竞赛_第5页
已阅读5页,还剩140页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基础机器人制作与编程(第3版)第1讲机器人的大脑及编程软件的安装与使用“十三五”职业教育国家规划教材BasicDuino微控制器简介01如图1.1所示为一块BasicDuino微控制器。实际上,一块BasicDuino微控制器就是一个很小的计算机。BasicDuino微控制器简介直流电源接口BasicDuino微控制器在工作时必须有电源电源可以是6V2A的电源适配器或者电池组,通过直流电源接口给微控制器供电。BasicDuino微控制器通过USB接口和一条USB电缆与计算机连接,借助计算机来为微控制器编写程序。USB接口BasicDuino微控制器简介复位键按下复位键,BasicDuino微控制器中的程序会重新开始执行。三挡电源开关用来打开BasicDuino微控制器的电源,打开后电源指示灯会亮。三档电源开关任务一获得软件1.1获得软件你将需要一台计算机来运行BASICStamp编辑器软件,要求如下:采用Windows98及以上操作系统。具有USB接口。配有光驱或能连接至互联网,两者兼有最好。计算机需求1.1获得软件操作步骤如下。1、通过浏览器访问网站。2、用鼠标单击“Downloads”菜单,显示选项。3、用鼠标单击“BASICStamp”选项。4、进入BASICStamp下载界面后,将发现有20或更高版本的编辑器软件可供下载。5、单击下载图标,如图1.2所示,下载图标像一个文件夹一样,其左边的描述为“BASICStampWindowsEditorversion2.3.1(4.3MB)”。下载软件1.1获得软件5、“文件下载”对话如图13所示,单击“保存”按钮将文件保存到硬盘中。6、如图1.4所示为“另存为”对话框。可以用“保存在”区域浏览你的计算机硬盘,选择一个理想的存储文件的位置。下载软件1.1获得软件7、选定下载文件的保存位置后,单击“保存”按钮。8、当下载BASICStamp编辑器安装程序时(如图15所示)需要等待一会儿。如果使用周制解调器,则下载BASICStamp

编辑器安装程序可能需要一点时间。9、下载完成后,出现如图1.6所示的对话框,此时可以直接跳到任务2安装软件。下载软件任务二安装软件1.2安装软件一步一步进行软件安装如果BASICStamp编器安装程序是从网站上下的,则在下完成后单击窗口中的“运行”按钮,如图1.9所示。如果是从光盘中安装的,则单击“Instal1”按钮,如图1.10所示。1.2安装软件一步一步进行软件安装3、当BASICStamp编辑器安装向导窗口打开后,单击“Next”按钮,如图1.11所示。4、安装类型选择“Complete”(完全安装)单选,如图1.12所示。单“Next”按钮行下一步。5、当安装向导提示“ReadytoInstalltheProgram”时,单击“Instal1”按钮开始安装,如图1.13所示。6、当安装向导提示“BASICStampEditorv2.3.1nstallationCompleted”(编辑器安装顺利完成)时,单击“Fimish”按钮结束安装,如图1.14所示。任务三硬件安装1.3硬件安装BasicDuino微控制器需要连接电源以便运行,同时也需要连接到计算机上以便编程。以上接线完成后,就可以用编辑器软件对系统进行测试了。任务四你的第一个程序1.4你的第一个程序将该例程输入BASICStamp编辑器。许多代码可通过单击工具栏中的按钮自动生成,其他的则需要通过键盘输入。一个简洁的显示程序框将显示从计算机下载程序到BasicDuino微控制器的进度过程下载完成后将显示调试终端界面,如图1.22所示。例程:HelloBoeBot.bs21.4你的第一个程序例程中最前面的两行代码是注释。注释在程序执行过程中会被忽略,因为注释是为了给人阅读的,不是给微控制器阅读的。在PBASIC语言中,所有以右单引号开始的语句在执行时都会被认为是注释。下面的第一句注释告诉读者该例程的文件名是什么;第二句注释是一句简单的单句描述,说明程序是做什么的。HelloBoeBotbs2是如何使BasicDuino微控制器工作的任务五查询指令1.5查询指令1、在BASICStamp编辑器中,单击“Help”菜单项,然后选择“Index”选项,如图1.27所示。2、在“键入要查找的关键字”文本框中输入指令“DEBUG”,如图1.28所示。3、当指令字“DEBUG”出现在文本框下面的列表中时双击它,然后单击“显示”按钮。使用BASICStamp编辑器帮助1.5查询指令1、《BASICStammp手册》可以免费从派拉力狮公司的网站上下载,也可以从产品光盘中找到。2、如图1.29所示是《BASICStamp手册》目录部分(第2页)的摘录,在该手册的第97页详细介绍了DEBUG指令。3、如图1.30所示是《BASICStamp手册》中的一段摘录,这里对DEBUG指令做了详尽的说明。4、大致浏览手册中关于DEBUG指令的说明。5、统计一下手册中关于DEBUG指令给出了多少个程序示例。获得并使用《BASICStamp手册》任务六介绍ASCII码1.6介绍ASCII码ASCII是“AmericanStandardCodeforInformationInterchange(美国信息交换标准代码)”的简称。绝大多数微控制器和PC都是利用这种代码给每个键盘按键分配数字的。一些数字对应键盘的具体动作,如光标上移、光标下移、空格、删除等,其他的数字则对应可打印的字母和符号。利用ASCII码编程DEBUG指今之后的每个ASCII码都与一个显现在调试终端上的字母相对应。程序AsciiName.bs2是如何运行的任务七断开电源,完成实验2.7断开电源,完成实验对BasicDuino微控制器而言,断开电源比较容易。将BasicDuino

微控制器上的三挡电源开关拨到左边的“0”位即可。断开电源把电源从BasicDuino微控制器上断开很重要,原因有两点:第一,如果系统在不使用时断开电源,则电池可以用得更久;第二,在以后的实验中,将在机器人的面包板上搭建电路。感谢观看基础机器人制作与编程(第3版)“十三五”职业教育国家规划教材基础机器人制作与编程(第3版)第二讲机器人的伺服电机“十三五”职业教育国家规划教材任务一将同服电机连接至BasicDuino微控制器2.1将同服电机连接至BasicDuino微控制器把三挡开关拨至“0”挡,切断BasicDuino微控制器的电源,如图2.2所示。连接何服电机和BasicDuino

微控制器,如图23所示。连接伺服电机到BasicDuino微控制器任务二伺服电机调零2.2伺服电机调零机器人套件中提供的螺丝刀是本任务需要的工具。调零工具如图2.4所示的信号是发送到与P12端连接的服电机的零点校准信号,称为零点标定信号。如果何服电机零点已经调节好,则发送这个信号给伺服电机就可以让其保持静止不动。发送零点标定信号任务三如何保持数值和计数2.3如何保持数值和计数控制一段代码执行次数的简便方法是利用FOR...NEXT循环语句,其语法如下:FORCounter=StartValueTOEndValue(STEPStepValue!)...NEXT省略号“...”表示可以在FOR和NEXT之间放一条或多条程序指令。使用这个循环语句前要确保先声明一个变量替代参数Counter。参数StartValue和EndValue可以是数值,也可以是变量。在语法描述中位于大括号()之间的代码表示可选参数。计数并控制循环次数任务四测试伺服电机2.4测试伺服电机现在通过编程发送一系列1.3ms的脉冲给服电机细研究该脉冲是如何控制服电机的。如图2.6所示是用脉宽为1.3m的控制信号使服电机全速顺时针旋转全速的范围是50~60r/min,即约每秒转一转。你可以用下面的程序ServoP13Clockwisebs2将这些脉冲信号发送给P13端口用脉冲宽度控制伺服电机的速度和方向2.4测试伺服电机控制伺服电机旋转速度和方向的方法非常简单,还有一个简单的方法可以控制伺服电机运行的时间,那就是用FOR..NEXT循环语句。采用FOR..NEXT循环语句,它会使服电机运行几秒。例程:ControlServoRunTimes.bs2:1、输入、保存并运行程序ControlServoRunTimes.bs2。2、验证程序运行效果是否为:与P13端口连接的服电机先逆时针旋转23s,与P12端口连接的伺服电机再逆时针旋转4.6s。用FORNEXT循环语句控制伺服电机的运行时间感谢观看“十三五”职业教育国家规划教材基础机器人制作与编程(第3版)基础机器人制作与编程(第3版)第三讲机器人的组装和测试“十三五”职业教育国家规划教材任务一组装机器人3.1组装机器人1、L型2x2连接件6个;2、2x10板件2个;3、2x11板件2个;4、开槽杆件5个;5、钢珠1个;6、万向轮2个;7、不锈钢·螺钉2个;8、不锈钢六角螺母2个;9、垫圈筒2个10、铆钉18个;11、十字沉头M3x10螺钉(黑色尼龙)2个;需要的零件3.1组装机器人12、十字沉头M3x6螺钉(黑色尼龙)38个;13、车轮固定螺钉2个;14、M3六角螺母(透明)24个;15、单通M3x10+6六角螺柱(黑色尼龙)2个;16、单通M3x12+6六角螺柱(黑色尼龙)2个;17、单通M3x15+6六角螺柱(黑色尼龙)10个;18、双通M3x30六角螺柱(黑色尼龙)4个;需要的零件3.1组装机器人19、双通M3x35六角螺柱(黑色尼龙)2个;20、电池盒1个;21、拓展盖板1个;22、车轮2个;

23、BasicDuino微控制器1个;24、QTI传感器(绿色)4个;25、面包板1个;26、伺服舵机2个;27、扎带1条;28、杜邦线4条;29、椭圆形金色QC标贴1个。需要的零件3.1组装机器人1、螺丝刀1把;2、尖嘴钳1把。需要的工具3.1组装机器人第一步:把铆钉安装在机器人板件上,如图3.2所示;第二步:安装开槽杆件,如图3.3所示;第三步:安装螺柱,如图3.4所示;第四步:安装服舵机,如图3.5所示;组装步骤3.1组装机器人第五步:安装伺服电池盒,如图3.6所示;第六步:安装车轮和万向轮,如图3.7所示;第七步:安装BasicDuino微控制器和面包板,如图3.8所示;第八步:安装QTI传感器并接线,如图3.9所示。组装步骤任务二重新测试伺服电机3.2重新测试伺服电机下面的例程用来测试连接右轮的伺服电机,程序将使右轮先顺时针旋转3s,再停止1s最后逆时针旋转3s。测试右轮1、伺服电机根本不转。(1)确定BasicDuino微控制器上的三挡电源开关拨到了“2”位,然后按下并释放复位键重新运行程序;(2)参照图2.3仔细检查同服电机的接线;(3)检查程序输入是否正确。伺服电机故障排除些常见的故障现象和维修方法3.2重新测试伺服电机2、右边的伺服电机不转,但是左边的伺服电机旋转。(1)断开电源,拔下伺服电机插头。(2)把原来连接到P12端口的何服电机连接到P13端口,把原来连接到P13端口的服电机连接到P12端口。(3)打开电源,重新运行程序RightServoTest.bs2。伺服电机故障排除些常见的故障现象和维修方法3.2重新测试伺服电机3、轮子不能完全停下来,而是缓慢地旋转。(1)如果轮子缓慢地逆时针旋转,则换一个比750小一点的数;(2)如果轮子缓慢地顺时针旋转,则换一个比750大一点的数;(3)如果在740~760中找到了一个数能让服电机完全停止,则用这个数代替程序中所有PULSEOUT12750语句中的750。伺服电机故障排除些常见的故障现象和维修方法4、轮子在顺时针旋转和逆时针旋转之间不停止。(1)拆除轮子,取下伺服电机;(2)重新执行第2讲中的任务2,完成同服电机调零。任务三开始/复位指示电路和编程01部件清单1、已经过测试的机器人。2、扬声器1个。3、连接线若干。01搭建开始/复位指示电路如图3.11所示是扬声器报警指示电路,而图3.12是其实际接线电路。按照图3.11和图3.12在机器人面包板上搭建开始/复位指示电路。3.3开始/复位指示电路和编程01对开始/复位指示电路编程下面的例程用于测试扬声器。程序采用FREOOUT指给扬声器发送精确定时的高低电平信号。013.3开始/复位指示电路和编程01程序StartResetIndicatorbs2的工作原理程序StartResetIndicator.bs2一开始显示信息“Beep!!!!”,在信息显示完后,FREQOUT指令立刻使扬声器发出3000Hz的声音并持续2S。由于程序执行得很快,以至于信息显示和扬声器发出声音好像同时发生一样。任务四用调试终端测试速度3.4用调试终端测试速度如图3.13所示的调试终端窗能帮助你加快作图过程。可以通过该窗口的传送窗格(TransmitWindowpane)给BasicDuino微控制器发送信息,通过发送信息告诉BasicDuino微控制器发送给服电机的脉宽是多少,然后测量在不同脉宽下伺服电机的运行速度。3.4用调试终端测试速度DEBUGIN指令将输入到传送窗格中的值存入一个变量中。在下面的例程中,字变量pulseWidth将被用来存储DEBUGIN指令接收到的值。现在用DEBUGIN指令来获取输入到传送窗格中的十进制数值,并将其存储到变量pulseWidth中。后面的程序可以使用此值,在本任务中该值用在PULSOUT指的参数Duration中。使用DEBUGIN指令感谢观看基础机器人制作与编程(第3版)“十三五”职业教育国家规划教材基础机器人制作与编程(第3版)第四讲机器人巡航“十三五”职业教育国家规划教材任务一基本巡航动作4.1基本巡航动作下面是使机器人向前走3s的例程:1、确保BasicDuino微控制器和伺服电机都已接通电源。2、输入、保存并运行程序RobotForwardThreeSeconds.bs2。向前巡航当给两条PULSOUT指令中参数Duration以不同的值时,可以使机器人以不同的方式巡航。例如,下面的两条PULSOUT指令可以使机器人向后走:PULSOUT13,650PULSOUT12,850向后巡航和原地旋转任务二基本巡航运动的调整4.2基本巡航运动的调整校准的第一步是让机器人直线运动一段足够长的距离来检查它是向左偏还是向右偏。向前全速运动10s应该足够了。对上面的RobotForwardThreeSeconds.bs2程序进行简单地修改就可以满足这一检验要求。1、打开程序RobotForwardThreeSeconds.bs2,将程序另存为RobotForwardTenSeconds.bs2。2、将变量counter的EndValue参数值由122改为407。3、运行程序,仔细观察在机器人向前行走10s的过程中是否会向左偏或向右偏。机器人直线运动的校准4.2基本巡航运动的调整软件调节可以使机器人旋转一个期望的角度,如旋转90”等。由于机器人的旋转时间决定了它的旋转角度,而FOR...NEXT循环控制着运行时间,所以可以通过调整FOR.NEXT循环的参数EndValue得到所需要的旋转角度。下面的程序可以使机器人向左旋转90度。FORcounter=1TO24'Rotateleft-about1/4turnPULSOUT13,650PULSOUT12,650PAUSE20转动调整任务三计算运动距离4.3计算运动距离在机器人运动之前,必须先测试出机器人的直线运动速度。最简单的方法是把机器人放在一把尺子旁边,让机器人向前走1s,然后测量机器人走了多远,这样就得到了它的运动速度。例程如下:1、输入、保存并运行程序ForwardOneSecond.bs2。2、将机器人放在尺子旁边。3、确保机器人两个轮子与地面接触点的连线与尺子的0cm刻度线对齐。4、按下复位键,重新运行程序。5、测量从出发点到机器人停下时两个轮子与地面接触点的连线的垂直距离。任务四匀变速运动4.4匀变速运动匀变速运动是指逐渐增加或减小机器人的运动速度,而不是急起或急停。这种运动方式可以提高机器人的电源和伺服电机的使用寿命。1、输入、保存并运行程序StartAndStopWithRamping.bs2。2、验证机器人是否先逐渐加速到全速,再保持一段时间,最后逐渐减速到停止。编写匀变速程序任务五用子程序简化巡航运动程序4.5用子程序简化巡航运动程序01子程序一个PBASIC子程序有两个部分。一个部分是子程序调用,它告诉程序跳到可重复执行代码部分,执行后回到调用点;另一个部分是实际的子程序,它以作为自已名字的标号为子程序的起点,以RETURN指令为终点,标号和RETURN指令之间的代码段执行想让子程序做的工作。01例程:OneSubroutine.bs21、输入、保存并运行程序OneSubroutine.bs2。2、观察调试终端,按几次复位键,每次都应该看到顺序相同的3条信息。任务六高级主题一一在EEPROM中建立复杂运动4.6高级主题一一在EEPROM中建立复杂运动EEPROM与RAM(随机存取存储器)在以下几个方面有所不同。1、EEPROM存储一个值要花费较多时间,有时需要几毫秒。2、EEPROM支持写操作的次数是有限的,约为1千万次,而RAM能无限次地读/写。3、EEPROM的主要功能是存储程序,数据可以存储在剩余的部分。如图4.3所示给出了程序MovementsWithSubroutines.bs2的存储映射图。4.6高级主题一一在EEPROM中建立复杂运动这种编程方法需要用到一些新的PBASIC指令:DATA指令READ和SELECT…CASE...ENDSELECT指令。在运行新的例程之前,先学习一下如何使用这些新指令。EEPROM指南1、仔细阅读程序EepromNavigationbs2,理解程序的每一部分是如何工作的。2、输入、保存并运行程序EepromNavigationbs2。例程:EepromNavigation.bs2感谢观看基础机器人制作与编程(第3版)“十三五”职业教育国家规划教材基础机器人制作与编程(第3版)第五讲机器人触觉导航“十三五”职业教育国家规划教材任务一安装并测试机器人的胡须5.1安装并测试机器人的胡须01搭建好胡须硬件1、准备好胡须硬件,如图5.1所示。2、断开BasicDuino微控制器的电源。3、按照图5.2所示将机器人胡须安装到面包板上。5.1安装并测试机器人的胡须01搭建好胡须硬件3、按照图5.2所示将机器人胡须安装到面包板上。按照如图5.3所示胡须电路示意图和图5.4所示胡须安装实物图在面包板上将电路搭建。5.1安装并测试机器人的胡须01搭建好胡须硬件3、按照图5.2所示将机器人胡须安装到面包板上。安装胡须后的基础机器人如图5.5所示。需要特别注意的一点是,面包板需要与BasicDuino微控制器共地,所以要将BasicDuino微控制器的负极(GND)与胡须相连,具体连接方式如图5.6所示。5.1安装并测试机器人的胡须01测试胡须例程:TestWhiskers.bs2。本例程用来测试胡须的功能是否正常。通过显示存储在P7和P5的输入存器(IN7和IN5)中的二进制数值,测试BasicDuino微控制器是否检测到胡须的状态。当相应输入寄存器的存储值为1时,说明胡须没有被按下;当存储值为0时,说明胡须被按下。任务二现场测试胡须5.2现场测试胡须1、断开BasicDuino微控制器的电源。2、参照图5.7所示的LED胡须测试电路图完成实际接线。搭建LED胡须测试电路5.2现场测试胡须1、重新接通BasicDuino微控制器的电源。2、将程序TestWhiskers.bs2另存为TestWhiskersWithLeds.bs2。3、在PAUSE50和LOOP之间插入以下两段IF…THEN语句。4、运行程序TestWhiskersWithLeds.bs2。5、轻轻按下胡须,测试上述程序。如果每根胡须在接到自己的3-pin接头时红色LED灯均变亮,则测试通过。对LED胡须测试电路编程任务三胡须导航5.3胡须导航当机器人向前行走碰到障碍物时,它的一根或两根胡须会被按下,此时可以调用第4讲中的基本动作子程序使机器人倒退或转弯,以避开障碍物重新向前行走,直到遇到另一个障碍物后再重复上述过程。为了实现上述功能,需要编程使机器人能够进行条件判断。PBASIC语言中有一个条件判断指令语句IF...THEN。编写程序,使机器人能够基于胡须导航5.3胡须导航主程序中的IF…THEN语用于检测胡须所有可能的状态。一个全速前进的脉冲可以使机器人前进大约1/2cm。发送一个控制脉冲,然后检测胡须状态是一个好主意。由于IF...THEN语句一般嵌套在DO...LOOP之中,所以每次程序从ForwardPulse返回都要运行到LOOP语句处,然后再返回到DO,此时IF…THEN语句会再次执行检测胡须的状态。带着胡须的机器人是如何漫游的任务四机器人迷路时的人工智能决策5.4机器人迷路时的人工智能决策编程逃离墙角编写逃离墙角程序时,需要使用IF…THEN嵌套语句,即令程序先检查一种条件,如果该条件成立(条件为真),则再检查包含于这个条件之内的另一个条件。程序EscapingCorners.bs2是如何工作的1、首先创建3个特别的变量用于探测墙角;2、变量必须经过初始化(给定初始值);3、看如何探测连续和交替碰到墙角。首先检查是否有任何一根胡须被按下;4、假如有胡须被按下,则检查当前状态是否与上次不同;5、在胡须没有被交替按下时,计数值复位,因为此时机器人没有陷入墙角。感谢观看基础机器人制作与编程(第3版)“十三五”职业教育国家规划教材基础机器人制作与编程(第3版)第六讲用光敏电阻进行导航“十三五”职业教育国家规划教材任务一搭建和测试光敏探测电路6.1搭建和测试光敏探测电路如图6.2所示是光敏探测电路原理图,图6.3是光敏探测电路接线图。搭建光敏探测电路6.1搭建和测试光敏探测电路由于光敏电阻的阻值随着光照强弱的变化而变化,故Vo的输出电压也随之改变。当R的阻值增大时,Vo会减小;当R的阻值减小时,Vo会增大。这实际上构成了一个光敏电阳分压器。Vo是将BasicDuino

微控制器的I/0端口作为输入口时检测到的电压。光敏探测电路是如何工作的6.1搭建和测试光敏探测电路先进行一般性检查:1、检查接线和程序录入是否正确。2、确认每个元件都牢固地插接。3、检查电阻颜色。如果无论你是否投一个阴影,输入寄存器的IN3或IN6的值均为0,此时进行如下检查:1、如果房间微暗,建议增加光的亮度。2、如果房间较亮,必须把手捂住光敏电阻的采光面才能使寄存器的值从1变为0,则可以用低阻值的电阻代替2K2电阻,如可以尝试使用1k2电阻(棕-黑-红)。光敏电阻分压器排错任务二行走和躲避阴影6.2行走和躲避阴影例程:RoamingWithPhotoresistorDividers.bs2。1、打开程序RoamingWithWhiskers.bs2,将其另RoamingWithPhotoresistorDividers.bs2。2、按如图6.5所示对程序进行修改。3、重新接通BasicDuino微控制器的电源。4、运行并测试程序。5、验证当用手在光敏电阻上投一个阴影时,机器人能否避开阴影。6、修改程序注释,使注释符合光敏电阻分压器的行为。创业环境对创业的影响任务三更易于响应的阴影控制机器人6.3更易于响应的阴影控制机器人一个有趣的控制机器人的方法是让机器人处在正常的光亮环境下,!然后让它跟随你在光敏电阻上方制造的阴影行走,这是一种引导机器人运动的简便方法简单的阴影控制机器人1、输入、保存并运行程序ShadowGuidedBoeBot.bs2。2、用手投阴影到光敏电阻上。3、仔细分析这个程序,充分理解程序是怎样工作的。该程序很简单,但功能非常强大。例程:ShadowGuidedBoeBot.bs2任务四从光敏电阻中得到更多的信息6.4从光敏电阻中得到更多的信息电容器是存储电荷的电路基本元件。电容器存储了多少电荷通常用法拉(F)来表示,1F是一个非常大的值,在实际电路中并不实用。本任务所使用的电容器存储的电荷量是百万分之几法拉。如图6.7所示是0.01pF电容器的电路符号和电容器的实物图,电容器上的103表示它的电容值。电容器简介6.4从光敏电阻中得到更多的信息1、断开BasicDuino微控制器的电源。2、参照图6.8和图6.9完成两个RC光敏探测电路的实际接线。重新搭建光敏探测电路6.4从光敏电阻中得到更多的信息与电容通过光敏果通过编程改变I/0端口使其仅监测电压,则电容会通过光敏电阻放电。电阻放电时,其两端电压逐渐衰减,IN6检测到电压降到1.4V所用的时间取决于光敏电阳阳值的大小。如果外界光线比较弱,光敏电阻的阻值较大,则电容需要较长的时间放电;如果外界光线非常强,光敏电阻的阻值较小,则由于它阻止电流的能力很弱,电容会很快失去电荷。PC衰减时间6.4从光敏电阻中得到更多的信息可以通过编程使BasicDuino微控制器先给电容充电,再测量电容两端电压衰减到1.4V所用的时间。测得的衰减时间可以用来表征光敏电阻的阻值,阻值又可以反映光敏电阻探测到的光的强弱。测量PC衰减时间6.5更易于响应的阴影控制机器人调节光敏电阻的角度,使它能够找到手电筒光束。提示:如果光敏电阻的采光面指向机器人前方5.1cm处,则本任务会完成得最好。如图6.11所示,调节光敏电阻的采光面使其指向机器人前面5.1cm处。用手电简光束引导机器人行走在编程使机器人朝着手电筒光束运动之前,必须知道机器人前方有无手电筒光束,以及对应的机器人光敏电阻输出的时间区别。测试光敏电阻对手电筒光束的响应任务五用手电简光束引导机器人行走6.5更易于响应的阴影控制机器人调节光敏电阻的角度,使它能够找到手电筒光束。提示:如果光敏电阻的采光面指向机器人前方5.1cm处,则本任务会完成得最好。如图6.11所示,调节光敏电阻的采光面使其指向机器人前面5.1cm处。用手电简光束引导机器人行走在编程使机器人朝着手电筒光束运动之前,必须知道机器人前方有无手电筒光束,以及对应的机器人光敏电阻输出的时间区别。测试光敏电阻对手电筒光束的响应任务六向光源移动6.6向光源移动如果光敏电阻的聚光表面向上并向外,则本任务的完成效果最好。调节光敏电阻聚光表面的指向,使其方向为向上并向外,如图6.12所示。重新调节光敏电阻6.6向光源移动使机器人向亮光移动的程序设计思路是:当两侧光敏电阻的测量结果差别较小时,机器人向前直走;当两侧光敏电阻的测量结果差别较大时,机器人转向测量值较小的一侧。简而言之,机器人会朝着更亮的地方行走。编写向亮光移动的程序感谢观看“十三五”职业教育国家规划教材基础机器人制作与编程(第3版)基础机器人制作与编程(第3版)第七讲机器人红外线导航“十三五”职业教育国家规划教材任务一搭建并测试红外探测电路7.1搭建并测试红外探测电路01本任务将搭建并测试红外探测电路。部件清单:(1)红外线接收器2个。(2)红外发光二极管(已用热缩套管封装)2个。(3)22022电阻(红-红-棕)2个。(4)1k电阻(棕-黑-红)2个。如图7.2所示是本任务需要用到的红外线接收器和红外发光二极管的示意图。7.1搭建并测试红外探测电路01根据如图7.3所示的红外探测电路原理图,在BasicDuino微控制器的面包板上搭建两组红外线发射和接收电路对(也称IR探测器)。如图7.4所示是红外探测电路的参考接线图。7.1搭建并测试红外探测电路01用FREQOUT指令测试红外探测电路FREOOUT指令主要用于产生频率范围为1~32768Hz的音调,也可以用高于32768Hz的参数Freq1直接产生一种高频和声。本任务用指令FREOOUT8,1,38500向P8端发送持续时间为1ms的38.5kHz的高频和声,使连接到P8端口的红外发光二极管发射与和声频率相同的红外线。如果红外线被机器人行进路径上的物体反射回来,则红外线接收器将给BasicDuino微控制器发送一个信号,让机器人的大脑知道已经检测到反射回来的红外线任务二物体检测和红外干扰的实地测试7.2物体检测和红外干扰的实地测试这里用到的LED指示电路和第5讲“机器人触觉导航”中的LED胡须测试电路类似,读者可参考图5.7完成电路搭建。部件清单:(1)红色LED灯2个。(2)220瓦电阻(红-红-棕)2个。断开BasicDuino微控制器的电源。参照图5.7所示的LED胡须测试电路图和图7.5所示的带有LED指示的红外探测电路接线图完成实际电路搭建。搭建LED指示路灯任务三红外探测距离的调整7.3红外探测距离的调整本任务将使用不同阻值的电阻来调整机器人红外探测系统的探测距离。部件清单如下。(1)470瓦电阻(黄-紫-棕)2个。(2)220瓦电阻(红-红-棕)2个。(3)2k瓦电阻(红-黑-红)2个。(4)4.7k瓦电阻(黄-紫-红)2个。首先,用一个红色的LED灯来观察串联电阻阻值与LED灯亮度之间的关系,只需发送个高电平信号给LED灯就可以进行测试。串联电阻与LED灯的亮度任务四探测和避开障碍物7.5探测和避开障碍物用红外线导航和用触觉导航的策略几乎一样,因此可以直接修改程序RoamingWithWhiskers.bs2,使它适用于红外线导航。打开RoamingWithWhiskersbs2程序,更改程序名称和注释,加入两个位变量来存储R探测器的状态。修改胡须导航程序,使其适用于红外线导航任务五提高红外线导航程序的性能7.5提高红外线导航程序的性能探测障碍物很重要的一点是在机器人撞到它之前给机器人留有绕开它的空间。如果前方有障碍物,则机器人会使用脉冲指令避开它,然后再次探测;如果障碍物还在,则机器人会再使用另一个脉冲指令来避开它。机器人能持续使用脉冲指令并不断探测,直到它绕开障碍物为止,此时向机器人发送一个向前行走的脉冲指令。在脉冲之间采样以避免碰撞任务六边沿探测7.6边缘探测01用绝缘带模拟桌子的边沿如图7.7所示,制作一个有黑色绝缘带边界的场地。绝缘带各边之间应紧密连接,没有纸露出来。用2k欧姆电阻代替图7.3中与P2端口和P8端口连接的1k欧姆电阳,使机器人的探测距离近一些。接通BasicDuino微控制器电源。运行程序IrInterferenceSnifferbs2,确保周围没有荧光灯干扰机器人的IR探测器。运行程序TestIrPairsAndIndicatorsbs2,确保机器人在初始位置时能探测到粘贴板,但探测不到绝缘带。7.6边沿探测01边沿探测编程如果希望机器人能够在桌面上行走而不会走到桌子的边沿,只需修改程序FastIrNavigationbs2中的IFTHEN语即可。主要的修改是,当irDetectLeft和irDetectRight的值都为0(探测到桌面)时,机器人向前行走;当某个R探测器没有探测到物体时,机器人会向另一个IR探测器方向运动,从而避开边沿。例如,如果irDetectLeft的值是1,则机器人会向右转。在编写避开边沿程序时,还要考虑的问题是机器人的可调整距离。感谢观看“十三五”职业教育国家规划教材基础机器人制作与编程(第3版)基础机器人制作与编程(第3版)第八讲机器人距离探测“十三五”职业教育国家规划教材任务一测试扫描频率8.1测试扫描频率01下面用图8.2说明机器人如何用红外频率扫描方式进行距离探测。图中,目标物体在区域3,当机器人发送37500Hz和38250Hz频的红外线时能够探测到物体,当机器人发送39500Hz40500Hz及41500H频率的红外线时不能测到物体。用红外频率扫描方式进行距离探测任务二机器人尾随控制8.2机器人尾随控制01本任务将使一个机器人跟随另一个机器人行走。被跟随的机器人称为引导机器人,跟随的机器人称为尾随机器人,尾随机器人必须知道距离引导机器人有多远。如果尾随机器人落在后面,则它必须能察觉并加速:如果尾随机器人距离引导机器人太近,则它也必须能察觉并减速,如果两者之间的距离正好合适,那么它会等待直到测量距离发生变化用红外频率扫描方式进行距离探测任务三跟踪条纹带8.3跟踪条纹带01材料清单如下。(1)白色粘贴板一张,尺寸为56cmx71cm。(2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论