《智能鼠原理与制作(进阶篇)》高职全套教学课件_第1页
《智能鼠原理与制作(进阶篇)》高职全套教学课件_第2页
《智能鼠原理与制作(进阶篇)》高职全套教学课件_第3页
《智能鼠原理与制作(进阶篇)》高职全套教学课件_第4页
《智能鼠原理与制作(进阶篇)》高职全套教学课件_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

项目一了解智能鼠的发展1第1篇初级篇项目1了解智能鼠的发展第1篇初级篇项目2了解智能鼠硬件第1篇初级篇项目3学习智能鼠开发环境第1篇初级篇项目4掌握智能鼠的基本操作第2篇综合篇项目1掌握智能鼠功能任务第2篇综合篇项目2了解智能鼠创新竞赛第3篇竞技篇项目1学习智能鼠算法第3篇竞技篇项目2掌握智能鼠路径优化算法第3篇竞技篇项目3尝试智能鼠走迷宫竞赛全套可编辑PPT课件学习目标(1)了解智能鼠的国际和国内发展历史。(2)了解智能鼠走迷宫竞赛平台——竞赛迷宫、计分系统。近年来随着科技的迅猛发展,智能鼠的传感器、控制器、执行器甚至是动力源都经历了多次技术性的革新。由于可选方案多样化及世界各地文化差异的影响,使得智能鼠竞赛平台、竞赛形式和竞赛标准也都有所差异。因此,为了适应在全世界范围推广,智能鼠逐渐形成了一定的标准和规范。2任务一了解智能鼠起源任务二认识智能鼠迷宫3任务一了解智能鼠起源一、智能鼠的起源1938年,美国密歇根州的数学家香农(ClaudeElwoodShannon)完成了《继电器和开关电路的分析》论文。由于布尔代数只有0和1,恰好与二进制数对应,香农将它运用于以脉冲方式处理信息的继电器开关,从理论到技术彻底改变了数字电路的设计方向,因此,这篇论文在现代数字电脑史上具有划时代的意义。1948年,香农又发表了一篇至今还在闪烁光芒的论文《通信的数学基础》,从而给自己赢得了“信息论之父”的桂冠。1956年,他参与发起了达特默斯人工智能会议,成为这一新学科的开山鼻祖之一。他不仅率先把人工智能运用于计算机下棋方面,而且发明了一个能自动穿越迷宫的“智能鼠”,以此证明计算机可以通过学习提高智能。二、智能鼠竞赛的发展历程4任务一了解智能鼠起源三、智能鼠走迷宫在中国发展1.“走出去”2.“请进来”3.“推出去”美国APEC世界Micromouse竞赛全日本Micromouse国际公开赛葡萄牙Micromouse国际竞赛印度Micromouse国际竞赛等美国APEC世界Micromouse竞赛组委会主席新加坡义安理工Micromouse教父黄明吉教授英国伯明翰城市大学PeterHarrison教授日本Micromouse组委会秘书长中川友纪子女士2016年以来,在教育部指导下,天津市先后启动泰国、印度、印尼、巴基斯坦、柬埔寨、埃及等国家鲁班工坊5任务二认识智能鼠迷宫目前,国际和国内比赛都使用同样规格的比赛场地,即一个由16×16个格子组成的方形迷宫。迷宫的“墙壁”是可以插拔的,这样就可以形成各种各样的迷宫。TQD-MicromouseMaze16×16迷宫场地规范(1)迷宫由16×16个﹑18cm×18cm大小的正方形单元所组成。(2)迷宫的隔墙高5cm,厚1.2cm,因此两个隔墙所构成的通道的实际距离为16.8cm,隔墙将整个迷宫封闭。(3)迷宫隔墙的侧面为白色,顶部为红色。迷宫的地面为木质,颜色为哑光黑。隔墙侧面和顶部的涂料能够反射红外线,地板能够吸收红外线。(4)迷宫的起始单元可选设在迷宫四个角落之中的任何一个。起始单元必须三面有隔墙,只留一个出口。迷宫的终点设在迷宫中央,由四个正方形单元构成。(5)在每个单元的四角可以插上一个小立柱,其截面为正方形。如图1-1-9所示。小立柱所处的位置称为“格点”。除了终点区域的格点外,每个格点至少要与一面隔墙相接触。(6)迷宫制作的尺寸精度误差应不大于5%,或小于2cm。迷宫地板的接缝不能大于0.5mm,接合点的坡度变化不超过4°。隔墙和立柱之间的空隙不大于1mm。(7)起点和终点设计遵照IEEEAPEC智能鼠竞赛规则标准,即终点必须位于起点方向的右侧。一、IEEE国际标准16×16智能鼠迷宫场地6任务二认识智能鼠迷宫二、IEEE专用测试场地TQD-MicromouseMazeIEEE测试专用场地是针对学生对于智能鼠学习时间短、能力水平较低的实际情况,致力于提高学生的工程实训创新水平,提供的辅助学生进行红外传感器调试的场地,如图1-1-10所示。学生只需较少的步骤,即可完成红外传感器的调试,彻底解决以前靠目测、靠感觉调试的状况,让初学者在智能鼠软硬件功能调试方面,如鱼得水、应用自如。三、全自动电子计分系统TQD-MicromouseTimerV2.0系统包含起点对射模块、终点对射模块、智能鼠计分系统模块、标准计分软件等。起点对射模块和终点对射模块采用迷你USB充电方式,通过内置的一组激光对射传感器检测智能鼠经过。智能鼠计分系统模块用于接收起点对射模块和终点对射模块通过Zigbee技术发过来的数据,经过计算机中的计分软件处理,以一种直观的方式展现智能鼠在迷宫中的运行情况。上位机软件也可以单独使用,可通过鼠标输入起点事件和终点事件。计分系统整体的计时精度可达0.001s。7思考与总结(1)IEEE国际标准智能鼠场地有哪些类型?(2)IEEE国际标准智能鼠场地套件都包括哪些?(3)目前智能鼠走迷宫竞赛已经在全世界范围内蓬勃发展,请归纳总结这项赛事的特点。(4)全自动计分系统的使用,大大提高了竞赛成绩计算的准确度,请简要说明其工作原理。8本项目到此结束THANKYOU9

项目二了解智能鼠硬件10学习目标(1)认识智能鼠的基本硬件结构及各部件功能。(2)学习智能鼠中央处理器的运用。本书以TQD-Micromouse-JD智能鼠实训系统为教学载体,如图1-2-1所示。该智能鼠配备2200mAh,7.4V的可充电锂电池;支持电池的电压监测,避免电量不足带来的麻烦;预留了六个GPIO口,一个串口,一个SPI接口作为用户二次开发使用。11任务一认识智能鼠基本结构任务二认识智能鼠核心控制板12任务一认识智能鼠基本结构一、TQD-Micromouse-JD智能鼠电路组成TQD-Micromouse-JD智能鼠的电路组成框图如图1-2-3所示,主要由核心控制模块、输入模块和输出模块构成,其中核心控制模块主要包括核心板电路、电源电路和控制电路,此外由核心板电路扩展出部分外围电路构成输入/输出模块,在智能鼠运行过程中发挥信号传送和接收的功能,主要包括键盘显示电路、JTAG接口电路、按键电路、红外检测电路、电动机驱动电路。二、TQD-Micromouse-JD智能鼠的电路功能13任务二认识智能鼠核心控制板一、了解TQD-Micromouse-JD智能鼠的中央处理器智能鼠核心板是整个智能鼠控制的核心,相当于智能鼠的CPU,TQD-Micromouse-JD智能鼠采用一片QFP-48N封装的LM3S615和极少的外围器件构成。二、核心控制板供电LM3S615微控制器需要3.3V供电14思考与总结(1)智能鼠各个模块之间是如何进行数据传输的?(2)智能鼠各部分有无相似电子元器件可以替代?(3)TQD-MicroMouse-JD智能鼠由传感器、控制器和执行器三部分组成。红外线传感器检测周围障碍物距离,并由数码管直观的显示出来;控制器依据这些红外数据控制步进电动机进行动作,从而实现避障。15本项目到此结束THANKYOU16

项目三学习智能鼠开发环境17学习目标(1)学习IAREWARM安装及程序下载。(2)学习控制智能鼠的运行。TQD-MicroMouse-JD智能鼠采用国际通用的C编译器IAREmbeddedWorkbench作为软件开发环境,支持众多型号的微处理器。18任务一认识IAREWARM开发环境任务二学习智能鼠程序下载19任务一认识IAREWARM开发环境IAREmbeddedWorkbenchforARM(下面简称IAREWARM)是一个针对ARM处理器的集成开发环境,如图1-3-1所示,它包含项目管理器、编辑器、C/C++编译器和ARM汇编器、连接器XLINK和支持RTOS的调试工具C-SPY。在EWARM环境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。比较其他的ARM开发环境,IAREWARM具有入门容易、使用方便和代码紧凑等特点。JLINK是专门用于对Luminary系列单片机程序的调试与下载。该调试器结合IAREWARM集成开发环境,可支持所有LM3S系列MU的程序的下载与调试。一、在EWARM中新建一个新项目1.建立一个项目文件目录2.新建工作区3.生成新项目4.保存工作区5.添加新建文件6.添加对应文件二、编译、连接处理写好程序后,下载之前一定要进行编译操作,排除错误。20任务二学习智能鼠程序下载一、硬件连接在学习了智能鼠的硬件结构和IAREWARM集成开发环境后,完成TQD-Micromouse-JD智能鼠与JLINK调试器、JLINK与IARWARM的连接,连接方式如下图所示,同时给TQD-Micromouse-JD智能鼠供电。二、基础demo程序的编译下载基础demo程序的编译下载步骤如下:1.安装程序假设已经安装好IAREWARM集成开发环境、JLINK驱动和流明诺瑞驱动库,可以直接调入程序进行下载调试。2.建立项目文件目录在桌面新建一个项目文件夹DEMO。3.新建工作区启动IAREWARM集成开发环境,选择主菜单的File→New→Workspace命令,打开一个空白工作区窗口21任务二学习智能鼠程序下载4.生成新项目选择主菜单Project→CreateNewProject命令,弹出CreateNewProject对话框。EWARM提供集中应用程序和库程序的项目模板。如果选择Emptyproject,表示使用默认的项目选件设置,为一个空工程。在这里选择Emptyproject,在Toolchain栏中选择ARM,单击OK按钮,弹出“另存为”对话框,在“另存为”对话框中浏览和选择新建的DEMO目录,输入信息文件名为demo,然后保存。这时在屏幕左边的Workspace窗口中将显示新建的项目名和输出代码模式,现在DEMO目录下已生成一个demo.ewp文件,该文件中将包含与demo项目设置有关的信息,如编译、连接(build)的选件等。22任务二学习智能鼠程序下载5.保存工作区选择主菜单File→SaveWorkspace命令,保存工作区。浏览并选择D:\DEMO目录。然后将工作区取名为demo,单击“保存”按钮退出,如图1-3-9所示。这时在DEMO目录下又生成一个demo.eww文件。同时在D:\DEMO目录下还生成一个settings子目录,这个目录下存放保存窗口设置和断点设置等与当前操作有关信息的其他文件。6.添加新建文件(1)建立文件组:右击Demo-Debug,然后选择Add→AddGroup...命令,如图1-3-10所示。分别新建三个文件组:startup文件组、src文件组和lib文件组。(2)添加对应文件。向文件组添加对应文件。①在lib组添加driverlib.r79文件。右击lib,选择Add→AddFiles...命令,在弹出的对话框中选择目录:“C:\ProgramFiles\IARSystems\EmbeddedWorkbench4.0Kickstart\arm\lib\Luminary”,选择需要添加的库文件driverlib.r79,23任务二学习智能鼠程序下载②在startup文件组添加startup.c文件。将“C:\ProgramFiles(x86)\IARSystems\EmbeddedWorkbench4.0Kickstart\arm\examples\Luminary\LM3Sxxx\ewarm”下的startup.c文件复制到工程目录DEMO下面。然后右击startup,按照上述的方法,选择Add→AddFile…命令,在弹出的对话框中选择目录“桌面:\DEMO”,添加startup.c文件。③在src组中添加drive_7189.c文件、maze.c文件和Mouse_Drive.c文件。复制“D:\基础完整demo例程\MicromouseDemo\src”文件夹至桌面新建demo文件夹中,按照上述添加文件方法,选择Add→AddFile…命令,在弹出的对话框中选择目录“桌面:\DEMO”,添加drive_7189.c文件、maze.c文件和Mouse_Drive.c文件。7.编译和运行应用程序在项目选项设置已经完成的基础上,编译和运行应用程序。1)编译、连接处理选择主菜单Project→Make命令,或选中工作区中的项目名Demo-Debug,右击,在弹出快捷菜单中选择Make命令。如果想重新编译所有的文件,选择主菜单Project→RebuildAll命令,或选中工作区中的项目名Demo-Debug,右击,在弹出快捷菜单中选择RebuildAll命令。2)查看MAP文件双击Workspace中的demo.map文件名,编辑器窗口中将显示该MAP文件。从MAP文件中可以了解以下内容:(1)文件头中显示连接器版本、输出文件名以及连接命令使用的选件。(2)CROSSREFERENCE部分显示程序入口地址。(3)RUNTIMEMODEL部分显示使用的运行时模块的属性。24任务二学习智能鼠程序下载(4)MODULEMAP部分显示所有被链接的文件。每个文件中,作为应用程序一部分加载的有关模块的信息,包括各段和每个段中生命的全局符号都列出来。(5)SEGMENTSINADDRESSORDER部分显示总的代码和数据字节数。如果编译、连接没有任何错误,则生成demo.d79应用程序代码,并可以用于在IARC-SPY中调试。3)加载应用程序将JLINKUSBJTAG调试器的调试口一端接至TQD-Micromouse-JD智能鼠,另一端连接至操作计算机USB端,安装成功后,选择主菜单Project→Debug命令或单击工具条上的Debugger按钮或者按【Ctrl+D】组合键,C-SPY将开始装载demo.d79。屏幕上将显示计算机通过LMLINK加载的过程。屏幕上除了已经原先已经打开的窗口外,将显示一组C-SPY专用窗口。如DebugLog和Disassembly窗口。三、运行智能鼠走迷宫(1)待程序下载完成后,拔出JLINKUSBJTAG调试器与TQD-Micromouse-JD智能鼠连接的USB端口,将智能鼠放置于迷宫起点。(2)清除迷宫内的一切障碍物,以保证智能鼠的顺利行走。(3)打开智能鼠开关,待指示灯点亮,显示盘正常显示后,智能鼠开始走迷宫,观察智能鼠运行状态。25思考与总结(1)常见的C语言开发软件还有哪些?(2)IAREmbeddedWorkbench提供强大的配置功能,在下载程序的时候需要根据实际情况选择下载器型号以及下载方式。26本项目到此结束THANKYOU27

项目四掌握智能鼠的基本操作28学习目标(1)学习智能鼠人机交互系统的基础应用。(2)学习智能鼠的红外检测调试。(3)掌握智能鼠电动机驱动的运用。智能鼠的基本功能是从起点运行到终点。在有限宽度、大量转弯的迷宫当中快速而准确的行走,离不开高精度的传感器检测以及电动机运行控制。不同的环境,光照强度不同,地面摩擦也有一定的差异,所以必须使用人机交互的手段,调试智能鼠的红外检测和电动机转动控制。29任务一与智能鼠人机交互任务二红外检测的实现任务三智能鼠的运动控制30任务一与智能鼠人机交互随着人类认知领域的不断扩大和深入、认知层次的不断发展和提高,人类的发展空间不断扩大,许多工作具有不可预测性,因此人机交互系统的开发和应用具有很大的迫切性。嵌入式微型机器人的“人机交互”指的是Human-Robot,即人与机器人之间的交互,人机交互系统的设计应符合以下原则:用户控制原则、易用性原则、直观性原则、简洁性原则和可视性原则。一个好的机器人人机交互系统应使人脑的决策更快地传给机器人,同时也应该更快地把系统信息反馈回来,以便使用者做出决策。在TQD-Micromouse-JD智能鼠的设计中,人机交互系统主要指的是调试用显示器的电路设计,其性能的优良直接影响智能鼠的运行速度和运行状态,从而影响智能鼠走迷宫竞赛的成绩。31任务一与智能鼠人机交互一、TQD-Micromouse-JD智能鼠的显示系统智能鼠的显示系统(智能鼠的LED显示电路)主要指的是输出电路中的键盘显示电路。7289EXBOARD模块是一个键盘控制以及数码管驱动PACK板,控制芯片为ZLG7289,ZLG7289提供了SPI接口和键盘中断信号,方便与处理器连接,可驱动8位共阴极数码管或64只独立LED和64个按键。在本模块上有8个8段共阴极数码管及12个按键32任务一与智能鼠人机交互二、显示系统控制芯片ZLG7289ZLG7289是数码管显示驱动及键盘扫描管理芯片,可直接驱动8位共阴极数码管(或64只独立LED),同时还可以扫描管理多达64只按键。ZLG7289内部含有显示译码器,可直接接受BCD码或十六进制码,并同时具有两种译码方式。此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。ZLG7289采用SPI串行总线与微控制器接口,仅占用少数几根I/O口线。利用片选信号,多片ZLG7289还可以并接在一起使用,能够方便地实现多于8位的显示或多于64个按键的应用。ZLG7289可广泛地应用于仪器仪表、工业控制器、条形显示器、控制面板等领域。引脚序号引脚名称功能描述1RTCC接电源2VCC电源,+2.7~6V3NC悬空4GND接地5NC悬空6CSSPI总线片选信号,低电平有效7CLKSPI总线时钟输入信号,上升沿有效8DIOSPI总线数据信号,双向9KEY键盘中断请求信号,低电平(下降沿)有效10~16SG~SA数码管g段/键盘行信号0~数码管a段/键盘行信号617DP数码管dp段/键盘行信号718~25DIG0~DIG7数码管字选信号0/键盘列信号0~数码管字选信号7/键盘列信号726OSC2晶振输出信号27OSC1晶振输入信号28RST复位信号,低电平有效33任务一与智能鼠人机交互三、LED显示系统在TQD-Micromouse-JD智能鼠中的应用1.数码管显示指定编号1)任务目的学会7289EXBOARD模块的使用,利用提供的7289软件包显示数据。2)任务内容编程并实现,8个数码管全部显示1。3)应用原理“智能鼠”的8个数码显示管就像它的嘴巴,通过显示传递信息。显示键盘芯片ZLG7289针对TQD-Micromouse-JD的程序软件包由“ZLG7289.h”和“ZLG7289.c”两个文件组成。头文件“ZLG7289.h”包括ZLG7289的I/O接口定义和用户指令集声明,C语言文件“ZLG7289.c”是这些指令的具体实现。将每个数码管显示数据看作是一次操作,那么8个数码管就可以看作是8次显示不同数据的重复操作。数码管显示数据的核心函数是Download_7289,可以根据需要,自主设定显示的数据,具体使用方法请参考核心函数。核心函数Download_7289函数原型:voidDownload_7289(ucharmode,charnumber,chardp,chardata)函数功能:向ZLG7289下载要显示的数据输入参数:mode=0:下载数据且按方式0译码mode=1:下载数据且按方式1译码mode=2:下载数据但不译码number:数码管编号(横坐标),取值范围0~7dp=0:小数点熄灭dp=1:小数点点亮data:要显示的数据输出参数:无返回值参数:无voidDownload_7289(ucharmode,charnumber,chardp,chardata){ucharmodeDat[3]={0x80,0xC8,0x90};uchartemp_mode;uchartemp_data;if(mode>2){mode=2;}temp_mode=modeDat[mode];number&=0x07;temp_mode|=number;temp_data=data&0x7F;if(dp==1){temp_data|=0x80;}CmdDat_7289(temp_mode,temp_data);}34任务一与智能鼠人机交互4)任务流程整体思路简化为系统初始化和数码管显示数据两部分5)具体步骤步骤1:打开IAREWARM集成开发环境,新建项目工程。步骤2:按照软件使用方法,将对应章节目录文件夹下的头文件加入到工程当中。步骤3:将程序下载到“智能鼠”中。步骤4:待下载完成后,断开智能鼠和计算机的连接,打开电源,运行程序,观察数码管的显示。6)应用程序程序清单main.c#include"drive_7289.h"#include"hw_memmap.h"#include"hw_ints.h"#include"interrupt.h"#include"sysctl.h"/*************************************************************************************Functionname:main**Descriptions:主函数**inputparameters:无**outputparameters:无**Returnedvalue:无***********************************************************************************/main(void){SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ);/*使能PLL,设定系统时钟频率为50MHz*/Init_7289();/*初始化ZLG7289*//*显示数据*/Download_7289(0,0,0,1);///8个数码管全部显示1Download_7289(0,1,0,1); Download_7289(0,2,0,1);Download_7289(0,3,0,1); Download_7289(0,4,0,1); Download_7289(0,5,0,1); Download_7289(0,6,0,1); Download_7289(0,7,0,1); while(1);}35任务一与智能鼠人机交互

2.数码管显示不同数据1)任务目的学会7289EXBOARD模块中数码管分段显示函数、延时函数的运用。2)任务内容(1)数码管分段显示,点亮和熄灭。(2)利用延时函数,变换数码管点亮的分段编号,并调节变换频率。3)应用原理智能鼠共有8个数码管,可以表示的信息比较有限。但是每个数码管又可以看作是8个独立的LED小灯组成(包括小数点)的,不同的分段显示,可以表示不同的信息;多达64个可选LED,可以表示的信息也就大大增多了。实验对象从数码管变换为独立的LED,同样是控制目标分段点亮或熄灭。为了直观地展示出观察效果,可以使用延时函数来控制分段的点亮和熄灭的时间,例如点亮第32分段一段时间,然后熄灭一段时间。核心函数1:SegOn_7289/SegOff_7289SegOn_7289(cSeg)/*段点亮指令*//*8个数码管被看成64个独立LED*//*cSeg:0~63*/SegOff_7289(cSeg)/*段关闭指令*//*8个数码管被看成64个独立LED*//*cSeg:0~63*/核心函数2:延时函数delay_ms/*********************************************************************Functionname:voiddelay_ms(u16time)*Descriptions:延时函数********************************************************************/voiddelay_ms(unsignedinttime){unsignedinti=0;while(time--){i=5000;//时间长短可以自己定义while(i--);}}36任务一与智能鼠人机交互4)任务流程整体思路简化为系统初始化和数码管显示不同数据两部分5)具体步骤步骤1:打开IAREWARM集成开发环境,新建项目工程。步骤2:按照软件使用方法,将对应章节目录文件夹下的头文件加入到工程当中。步骤3:将程序下载到“智能鼠”中。步骤4:待下载完成后,断开智能鼠和计算机的连接,打开电源,运行程序,观察数码管的显示。6)应用程序程序清单main.c

main(void){SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ);/*使能PLL,设定系统时钟频率为50MHz*/Init_7289();/*初始化ZLG7289*/while(1){

SegOn_7289(32);/*点亮第32段*/delay_ms(1000);SegOff_7289(32);/*关闭第32段*/delay_ms(1000);}}用户可以自行尝试其他分段的亮灭,以及多个分段的组合显示。37任务一与智能鼠人机交互四、按键系统在TQD-Micromouse-JD智能鼠中的应用1.TQD-Micromouse-JD智能鼠按键系统介绍TQD-Micromouse-JD智能鼠的按键系统与数码管的LED显示系统相结合,共包含12个独立按键。在当前TQD-Micromouse-JD智能鼠设计开发过程中,尚未启用按键在智能鼠走迷宫中的功能,按键系统的配置可为后期的二次开发做准备。2.TQD-Micromouse-JD智能鼠按键参考实验1)任务目的了解TQD-Micromouse-JD智能鼠按键(中断函数)的基本原理、操作方法和应用范围。2)任务内容按下按键后,智能鼠显示系统中数码管显示按键值。3)应用原理程序运行是从主函数运行的。那么什么是中断函数呢?举个例子:为了完成学业,学生放学后写作业是必须每天都要进行的,就可以看作是主函数;而如果有人敲门,就可以看作按键系统中断函数。根据敲门人员的身份不同就有不同的结果,也就是中断函数需要执行的内容(核心函数1和核心函数2)。快递员:需要签收包裹。电力公司:缴纳电费。居委会:填写小区改造建议表等等。38任务一与智能鼠人机交互核心函数1:Key_7289/**************************************************Functionname:Key_7289**Descriptions:执行ZLG7289键盘命令。**inputparameters:无**outputparameters:无**Returnedvalue:返回读到的按键值:0~63。如果返回0xff,则表示没有键按下************************************************/charKeyDrive_7289(void){charkey;GPIOPinWrite(GPIO_PORTA_BASE,CS_7289,0x00);delayus(25);SPIWrite_7289(0x15);delayus(15);key=SPIRead_7289();GPIOPinWrite(GPIO_PORTA_BASE,CS_7289,0xff);delayus(5);returnkey;}核心函数2:GPIO_Port_A_ISR/**********************************************************************************Functionname:GPIO_Port_A_ISR**Descriptions:端口A中断服务函数**inputparameters:无**outputparameters:无**Returnedvalue:无************************************************************************************/voidGPIO_Port_A_ISR(void){ucharstatus;ucharkey;status=GPIOPinIntStatus(GPIO_PORTA_BASE,true);/*读PA口中断状态*/if(status&KEY_7289)/*判断是否为按键中断*/{GPIOPinIntClear(GPIO_PORTA_BASE,KEY_7289);/*清中断*/key=KeyDrive_7289();/*读按键值*//*若按键有效,则让8个数码管一起显示*/if(key!=0xff){Download_7289(1,0,0,key);Download_7289(1,1,0,key);Download_7289(1,2,0,key);Download_7289(1,3,0,key);Download_7289(1,4,0,key);Download_7289(1,5,0,key);Download_7289(1,6,0,key);Download_7289(1,7,0,key);}}}4)任务流程首先需要确定是什么人敲门,也就是哪一个按键被按下;然后根据按键的不同,来执行相应的内容39任务一与智能鼠人机交互5)具体步骤步骤1:打开IAREWARM集成开发环境,新建项目工程。步骤2:按照软件使用方法,将对应章节目录文件夹下的头文件加入到工程当中。步骤3:将程序下载到“智能鼠”中。步骤4:待下载完成后,断开智能鼠和计算机的连接,打开电源,运行程序,观察数码管的显示。步骤5:依次按下智能鼠面板上的按键,观察数码管显示有何变化。6)应用程序程序清单main.cmain(void){SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ);/*使能PLL,设定系统时钟频率为50MHz*/Init_7289();/*初始化ZLG7289*/GPIODirModeSet(GPIO_PORTA_BASE,KEY_7289,GPIO_DIR_MODE_IN);/*设置KEY端口为输入*/GPIOIntTypeSet(GPIO_PORTA_BASE,KEY_7289,GPIO_FALLING_EDGE);/*配置引脚下降沿触发中断*/GPIOPinIntEnable(GPIO_PORTA_BASE,KEY_7289);/*使能引脚输入中断*/IntEnable(INT_GPIOA);/*使能GPIOPA口中断*//*显示数据*/Download_7289(0,0,0,0);Download_7289(0,1,0,1);Download_7289(0,2,0,2);Download_7289(0,3,0,3);Download_7289(0,4,0,4);Download_7289(0,5,0,5);Download_7289(0,6,0,6);Download_7289(0,7,0,7);while(1);/*等待按键中断*/}40任务二红外检测的实现一、机器人传感器的作用机器人传感器在控制中起了非常重要的作用,是感知系统中必不可少的部件。根据传感器的作用,移动机器人中所采用的传感器可以分为内部传感器和外部传感器,内部传感器主要测量机器人内部系统,比如温度、电动机速度、电动机载荷、电池电压等;外部传感器主要测量外界环境,比如距离测量、声音、光线等。根据传感器的运行方式,移动机器人中所采用的传感器分为被动式传感器和主动式传感器。被动式传感器本身不发出能量,比如CCD、CMOS摄像头传感器;主动式传感器会发出探测信号,比如超声波、红外光、激光,但是此类传感器的反射信号会受到很多因素的影响,从而影响准确的信号获得,同时,信号还很容易受到干扰。二、TQD-Micromouse-JD智能鼠红外检测电路智能鼠红外检测电路用于迷宫挡板的检测,分为左方、左前方、前方、右前方、右方五个方向,五个方向的传感器电路原理相同RF2为红外发射头,W2为限流可调电阻,用来调节发射红外线的强度。41任务二红外检测的实现三、红外传感器IRM8601S工作原理为了便于理解红外接收头的工作原理,首先介绍一下调制的概念,调制是用携带信息的输入信号来控制另一信号的某参数,使之按照输入信号的规律而变化的过程,输入信号称为调制信号,被控制的信号称为载波(或载频)信号,输出信号为调制波,如图1-4-8所示。调制波又根据调制信号所控制的载波信号参数类型分为调幅波、调频波和调相波。IRM8601S调制信号为周期1200μs的方波,内部的带通滤波器的中心频率为38kHz,所以驱动发射红外线的载波信号为38kHz时传感器最灵敏,IRM8601S检测到信号时,输出有效电平(低电平),有效电平维持时间TWL的范围为400μs<TWL<800μs,42任务二红外检测的实现四、红外传感器供电电路TQD-Micromouse-JD智能鼠使用的红外线传感器的工作电压为5V,在一般情况下可以把电池的输出电压经过LDO稳压到5V。但若电池电压较低或瞬间被拉低时,系统就不能为传感器提供稳定的电源,这将严重影响传感器的灵敏度。经过以上考虑,决定把系统中已经较为稳定的3.3V电压升到5V,升压芯片采用Exar公司的低静态电流、高效率的升压芯片SP6641A,五、红外传感器在TQD-Micromouse-JD智能鼠中的应用1.TQD-Micromouse-JD智能鼠检测墙壁1)任务目的了解红外传感器在智能鼠中的作用,掌握红外检测电路在智能鼠走迷宫中检测墙壁的基本原理。2)任务内容利用红外传感器检测迷宫的挡板墙壁。若检测到挡板墙壁,对应数码管分段点亮;若检测不到,则数码管保持熄灭状态。3)应用原理红外发射头可以发出红外线,所有的物体都可以不同强弱的反射红外线。若距离合适,在经过挡板反射后可以被接收头接收。同样可以使用中断函数,来读取红外传感器是否检测到挡板墙壁。核心函数如下:43任务二红外检测的实现核心函数SysTick_ISR/******************************************************************************Functionname:SysTick_ISR**Descriptions:系统定时器中断服务函数*****************************************************************************/voidSysTick_ISR(void){staticucharstate=0;ucharcheck;switch(state){case0:IRFreqConfig(35000,2);IRFreqConfig(35000,1);/*红外传感器发射红外线*/break;case1:check=GPIOPinRead(GPIO_PORTB_BASE,0x3e);/*读取传感器状态*/PWMGenDisable(PWM_BASE,PWM_GEN_2);/*禁止PWM发生器2*/PWMGenDisable(PWM_BASE,PWM_GEN_1);/*禁止PWM发生器1*/if(check&RIGHT)SegOff_7289(32);elseSegOn_7289(32);if(check&LEFT)SegOff_7289(0);elseSegOn_7289(0);if(check&RIGHTFRONT)SegOff_7289(24);elseSegOn_7289(24);if(check&LEFTFRONT)SegOff_7289(8);elseSegOn_7289(8);if(check&FRONT)SegOff_7289(16);elseSegOn_7289(16);break;default:break;}state=(state+1)%2;/*循环检测*/}4)任务流程首先驱动PWM发生器模块发出红外线,然后通过是否接收到反射回来的红外线,来判断是否检测到挡板墙壁,并由数码管显示结果44任务二红外检测的实现5)具体步骤步骤1:打开IAREWARM集成开发环境,新建项目工程。步骤2:按照软件使用方法,将对应章节目录文件夹下的头文件加入到工程当中。步骤3:将程序下载到“智能鼠”中。步骤4:待下载完成后,断开智能鼠和计算机的连接,打开电源,运行程序,尝试用物体遮挡红外传感器,观察对应数码管的显示。6)应用程序程序清单main(void){SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ);/*使能PLL,设定系统时钟频率为50MHz*/IRInit();/*传感器初始化*/SysTimerInit();/*系统时钟初始化*/Init_7289();/*显示模块初始化*/while(1);/*等待系统中断*/}2.红外传感器测距TQD-Micromouse-JD智能鼠上共有五组红外线传感器,每组红外线传感器由红外线发射头和红外线接收头组成。TQD-Micromouse-JD智能鼠上的红外接收头是一体化红外线接收头。1)任务目的(1)掌握一体化红外接收头的工作特性。(2)学会如何产生红外线的调制信号。(3)学会如何使用一体化红外接收头传感器测距。2)任务内容(1)利用五组传感器检测一定范围内的障碍物,即可以判断一定距离的范围内是否存在障碍物。(2)左右两侧的红外传感器加入一项功能,能够粗略判断障碍物的远近距离。既可以指示出没有障碍物、检测到障碍物和障碍物靠得太近三种状态。45任务二红外检测的实现3)应用原理TQD-Micromouse-JD智能鼠共有两组红外PWM发生器模块,分别为驱动两个45°红外发射的1号发生器模块,以及驱动正左、正前、正右三个红外发射的2号发生器模块。核心函数1.IRFreqConfig/************************************************************************************Functionname:IRFreqConfig**Descriptions:设置PWM频率**inputparameters:freq:红外线载波频率**number:选择需要设置的PWM模块**outputparameters:无**Returnedvalue:无**********************************************************************************/voidIRFreqConfig(uintfreq,charnumber){freq=SysCtlClockGet()/freq;switch(number){

case1:PWMGenPeriodSet(PWM_BASE,PWM_GEN_1,freq);/*设置PWM发生器1的周期*/PWMPulseWidthSet(PWM_BASE,PWM_OUT_2,freq/2);/*设置PWM2输出的脉冲宽度*/PWMGenEnable(PWM_BASE,PWM_GEN_1);/*使能PWM发生器1*/break;

case2:PWMGenPeriodSet(PWM_BASE,PWM_GEN_2,freq);/*设置PWM发生器2的周期*/PWMPulseWidthSet(PWM_BASE,PWM_OUT_4,freq/2);/*设置PWM4输出的脉冲宽度*/PWMGenEnable(PWM_BASE,PWM_GEN_2);/*使能PWM发生器2*/break;default:break;}}核心函数2:SysTick_ISR函数原型:SysTick_ISR()函数功能:系统定时器中断服务函数输入参数:无输出参数:无返回值:

无关键变量:state有0,1,2,3四个状态。SysTick_ISR函数每毫秒会进一次SysTick中断state=0:第一次进函数,配置红外发射频率为35000state=1:第二次进函数,进行红外接收,测量近距离的情况state=2:第三次进函数,配置红外发射频率为38000state=3:第四次进函数,进行红外接收,测量远距离的情况voidSysTick_ISR(void){staticucharstate=0;ucharcheck;switch(state){case0:IRFreqConfig(35000,2);/*探测左右两侧近距*/IRFreqConfig(35000,1);/*驱动斜角上的传感器检测*/break;case1:check=GPIOPinRead(GPIO_PORTB_BASE,0x3e);/*读取传感器状态*/PWMGenDisable(PWM_BASE,PWM_GEN_2);/*禁止PWM发生器2*/PWMGenDisable(PWM_BASE,PWM_GEN_1);/*禁止PWM发生器1*/if(check&RIGHT)SegOff_7289(38);elseSegOn_7289(38);if(check&LEFT)SegOff_7289(6);elseSegOn_7289(6);if(check&RIGHTFRONT)SegOff_7289(24);elseSegOn_7289(24);if(check&LEFTFRONT)SegOff_7289(8);elseSegOn_7289(8);break;case2:IRFreqConfig(38000,2);/*驱动检测左前右三个方向远距*/break;case3:check=GPIOPinRead(GPIO_PORTB_BASE,0x2a);/*读取传感器状态*/PWMGenDisable(PWM_BASE,PWM_GEN_2);/*禁止PWM发生器2*/if(check&RIGHT)SegOff_7289(32);elseSegOn_7289(32);if(check&LEFT)SegOff_7289(0);elseSegOn_7289(0);if(check&FRONT)SegOff_7289(16);elseSegOn_7289(16);break;default:break;}state=(state+1)%4;/*循环检测*/}46任务二红外检测的实现4)任务流程相比较检测墙壁实验,本实验增加了一个测量远距离墙壁信息的检测。根据传感器特性可知,红外发射频率越接近38kHz,检测距离越远。所以,在上一个实验基础之上,增加一次2号PWM发生器模块的驱动,并使用较大的频率,5)具体步骤步骤1:打开IAREWARM集成开发环境,新建项目工程。步骤2:按照软件使用方法,将对应章节目录文件夹下的头文件加入到工程中。步骤3:将程序下载到“智能鼠”中。步骤4:待下载完成后,断开智能鼠和计算机的连接,打开电源,运行程序,用挡板检测红外传感器的测量情况。6)应用程序主函数:mainmain(void){SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ);/*使能PLL,设定系统时钟频率为50MHz*/

IRInit();/*传感器初始化*/SysTimerInit();/*系统时钟初始化*/Init_7289();/*显示模块初始化*/while(1);/*等待中断*/}47任务二红外检测的实现六、智能鼠传感器调节的方法1.任务目的智能鼠是通过五组红外传感器来检测四周障碍物距离信息的,这些距离信息有的较远,有的较近。本任务通过红外传感器发射强度的调试方法,使之能够得到正确的障碍物距离信息。2.主要步骤步骤1:连接好电路,W1与RF1组成红外线发射电路,控制红外线发射的端口连接到微控制器,在五组红外传感器里,RF1,RF3,RF5共同连接到PE0端口;RF2,RF4共同连接到PB0端口。红外接收头U1~U5的输出信号分别连接到微控制器的PB1~PB5端口。步骤2:程序下载。打开“2.红外传感器测距”demo程序,编译下载程序。步骤3:上电复位,数码管显示数据。智能鼠的五组红外传感器在使用时需要通过调节W1~W5五个可调电阻来调整传感器的探测距离,也就是调节机器人的视觉距离。第一至五个数码管分别用来指示U1~U5五组传感器的状态,用手分别遮挡这五组传感器,就能观测到对应数码管的点亮或者熄灭;第六个数码管空闲;第七、八个数码管显示的是电池电压48任务二红外检测的实现步骤4:调节U1和U5的灵敏度。(1)左侧90°红外传感器调节。通过调节W1设置U1传感器灵敏度。智能鼠贴紧右侧挡板,调节W1,使第一个数码管能稳定的点亮第一个段,第二个段刚好点不亮或处于微弱的闪烁状态,(2)右侧90°红外传感器调节。通过调节W5设置U5传感器灵敏度。方法同上,智能鼠贴紧左侧挡板,使第五个数码管能稳定的点亮第一个段,第二个段刚好不亮或处于微弱的闪烁状态,步骤5:调节U2和U4的灵敏度。(1)左侧45°红外传感器调节:将智能鼠车体放在通道正中间,调节W2,直到LED显示模块的左侧第二个数码管处于由灭到亮的闪烁状态,此时的传感器为最佳状态,(2)右侧45°红外传感器调节:将智能鼠车体放在通道正中间,调节W4,直到LED显示模块的左侧第四个数码管处于由灭到亮的闪烁状态,此时的传感器为最佳状态,49任务二红外检测的实现步骤6:调节U3的灵敏度。正前方红外传感器调节:将智能鼠车体置于迷宫格正中位置,调节W3,直到LED显示模块的左侧第三个数码管处于由灭到亮的闪烁状态,此时的传感器为最佳状态,50任务三智能鼠的运动控制一、机器人执行机构的作用机器人一般由执行机构、驱动装置、检测装置和控制系统等组成。执行机构即机器人本体,可分为直角坐标式、圆柱坐标式、极坐标式和关节坐标式等类型。驱动装置是驱使执行机构运动的机构,按照控制系统发出的指令信号,借助于动力元件使机器人进行动作。输入的是电信号,输出的是线、角位移量,机器人使用的驱动装置主要是电力驱动装置,如步进电动机、伺服电动机等,此外也有采用液压、气动等驱动装置。检测装置的作用是实时检测机器人的运动及工作情况,根据需要反馈给控制系统,与设定信息进行比较后,对执行机构进行调整,以保证机器人的动作符合预定的要求。控制系统有两种,一种是集中式控制,即机器人的全部控制由一台微型计算机完成;另一种是分散式控制,即采用多台微机来分担机器人的控制。二、认识智能鼠的电动机驱动模块1.TQD-Micromouse-JD智能鼠电动机驱动电路TQD-Micromouse-JD智能鼠电动机驱动电路如下图所示。其中BA6845FS是步进电动机驱动芯片,每个芯片包含两个H桥电路,它的最大驱动电流为1A,且在输入逻辑的控制下输出有三种模式:正向、反向和停止。51任务三智能鼠的运动控制IN11/21IN12/22OUT11/21OUT12/22模式LHHL正向HHLH反向LL开路开路停止HL开路开路停止三、智能鼠跑起来1.任务目的学习TQD-Micromouse-JD智能鼠的电动机驱动模块的使用。2.任务内容编程并实现智能鼠电动机的驱动,使智能鼠按照一定的速度运行。3.应用原理经过学习电动机驱动,大家已经知道电动机有多种参数需要考虑:(1)电动机状态:启动还是停止?(2)运行方向:向前还是向后?(3)速度:快还是慢?(4)需要转动的步数.(5)已经转动的步数。因此可以建立一个函数结构体来存储这些参数。52任务三智能鼠的运动控制结构体和其他类型基础数据类型一样(例如int类型,char类型),只不过结构体可以根据需要进行自定义。结构体在函数中的作用是封装。封装的好处就是可以再次利用。让使用者不必关心具体是什么,只要根据定义使用就可以了。核心定义:电动机驱动/********************************************************************************结构体定义*********************************************************************************/typedefstructmotor{charstate;/*电动机运行状态*/chardir;/*电动机运行方向*/uintstep_need;/*电动机需要转动的步数*/uintstep_done;/*电动机已转动的步数*/uintspeed;/*电动机转动速度*/}MOTOR;/***********************************************************************************常量宏定义:电动机状态************************************************************************************/#defineSTOP0/*电动机停止*/#defineRUN1/*电动机运行*//***********************************************************************************常量宏定义:电动机运行方向************************************************

温馨提示

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

评论

0/150

提交评论