ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:1.38MB ,
资源ID:9255629      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9255629.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能工程训练报告迷宫机器人.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能工程训练报告迷宫机器人.docx

1、智能工程训练报告迷宫机器人智能系统工程课程设计报告题 目迷宫机器人学生姓名学 号指导教师学 院信息科学与工程学院专业班级智能科学与技术1002内容提要迷宫机器人主要是基于单片机进行控制实现机器自主识别路况自主做出决策。我们以宝贝车作为迷宫机器人为的运动载体,利用红外壁障传感器来获得路况信息,单片机对传感器采集回来的信息进行处理及时做出决策,应用360连续舵机对单片机给出的决策信息予以响应,实现小车在迷宫中的行走。对于迷宫机器人控制系统的设计主要在于三个方面:一、控制电路设计;二、传感器选择及安放设计;三、程序设计。其中,由于控制电路采用了宝贝车默认配置,所以本次设计将核心放在传感器的使用和程序

2、设计两个方面。内容提要 1一、课程在教学计划中的地位和作用 2二、课程设计选题 3 (1) 选题:迷宫机器人 3 (2) 实验目的 3 (3) 竞赛形式: 3三、 系统主要模块和功能 4(1) 硬件部分 4(2) 程序控制部分 6四、结束语 12附录: 13 附录1:参考文献 13 附录2:程序源码及注释 13视频连接:一、课程在教学计划中的地位和作用智能系统工程训练课程是智能科学与技术专业方向本科生必修的一门专业实践课程。通过该课程的学习,使得学生能够对智能系统的开发工具、智能搜索策略、智能机器人的工作原理有所了解。为了使智能系统工程训练目标更明确,要求更具体,学生收获更大,我们采用竞赛制的

3、方式组织本年度的工程训练。共设两个实际科目的竞赛项目,学生根据本人的爱好任选其中一个课题,自由组队,以团队形式完成课题,并参加最终的竞赛。要求写出工程训练设计报告书,设计出原理图,说明工作原理,编写程序及程序流程图。希望同学认真阅读本任务书,认真查阅资料与上机调试,圆满完成智能系统工程训练。智能技术的发展日新月异,因此,学习这方面的知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。同学们要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的一切问题,最终到达胜利的彼岸。二、课程设计选题(1)

4、选题:迷宫机器人运用所学知识,基于实验室的相关硬件设备,设计并编程实现一个迷宫机器人(实物)。(2) 实验目的:进一步熟悉和掌握搭建机器人的方法,选择合适的传感器进行障碍检测;设计机器人行走策略,能够快速通过迷宫。(3) 竞赛形式:由裁判组设计实物迷宫,并设计考核评分方案;所有竞赛组通过统一的迷宫(赛前提供参考迷宫地形,比赛当天布置新迷宫),以通过时间、碰撞次数等指标进行考核评分。三、 系统主要模块和功能 根据此次课程设计的课题要求,我们将系统分为以下两个部分:(一) 硬件部分1、运动载体-宝贝车宝贝车由一个车架、两个360连续舵机以及尾部球形轮组成,实物图如下: 图3.1.1宝贝车实物图2、

5、控制电路板 本设计采用AT89S52单片机作为控制芯片。好处:编程方便,控制简单,有多个I/O口,可同时对多个传感器采集的数据进行读取和对两个360连续舵机的控制。我们设计的小车上的控制电路板实物图见下图:图3.1.2 控制电路模块3、传感器 一个正常人不可能一直闭着眼睛行走,同样,机器人在迷宫中行走必须借助传感器来获取环境的信息。综合控制算法设计方面需求以及我们实验值器材供应的情况,我们选择使用红外壁障传感器。我们使用的是3-50cm可调 E18-D50NK 红外避障传感器,如图3.1.3所示。 图3.1.3 E18-D50NK 红外避障传感器具体参数如下:红外壁障传感器E18的技术参数:1

6、、输出电流 DC/SCR/继电器 Control output:100mA/5V供电2、消耗电流 DC25mA3、响应时间 2ms4、指向角:15,有效距离3-50CM可调5、检测物体:透明或不透明体6、工作环境温度:-25+557、标准检测物体:太阳光10000LX以下 白炽灯3000LX以下8、外壳材料:塑料电气特性: U:5VDC I:100mA Sn:3-50CM4、传感器的安装及迷宫机器人的整体硬件设计如下图所示图3.1.4 硬件整体布局图(二)程序控制部分1、迷宫机器人如何走出迷宫的算法设计 对于初次进入迷宫的机器人来说当前的路径都是未知的,机器人为走出迷宫首先进行盲目搜索,我们采

7、用深度优先的算法作为机器人在迷宫中行走路线选择的标准。程序设计流程如图3.2.1:图3.2.1程序设计流程图2、对舵机的控制舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它(舵机)内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。

8、一般舵机的控制要求如图3.2.2所示。图3.2.2 舵机的控制要求单片机系统实现对舵机输出转角的控制,需要完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms分为两次中断执行,一次短定时中断和一次长定时中断。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高下面是一个用AT89S52对舵机实现控制是一个小程序: 要求,单片机控制舵机,让舵机到中间位置后,左转15度,延迟2ms,右转15度。(

9、度数不要求精确)。舵机为0.52.5ms。晶振11.0592M#includeunsigned int pwm;unsigned char flag;sbit p10=P10;void timer0() interrupt 1 using 1 p10=!p10; pwm=20000-pwm; TH0=pwm/256; TL0=pwm%256; flag+; if(flag10)flag+; if(flag=10&p10=0)pwm=1250;flag=11;/保证回到90度再左转15; void timer1() interrupt 3 using 1 ET1=0;/2ms到关闭定时器1 ET

10、0=0; TR0=0; pwm=1750; TH0=pwm/256; TL0=pwm%256; ET0=1; TR0=1; void int0 (void) interrupt 0 using 1 /判断左转到15,通过传感器判断或者其他信号判断 ,能正好保证刚左转15度,开始延时2ms TR1=1;/定时器1开始计数 void main(void) p10=1; TMOD=0x11; pwm=1500;/回90度 TH0=pwm/256; TL0=pwm%256; TH1=2000/256; TL1=2000%256; EA=1; ET0=1; ET1=1; TR0=1; while(1);

11、3、岔道控制程序列举:/*= 右转部分 =*/ if(key_H=0&key_L=0&key_R=1)|(key_H=0&key_L=1&key_R=1)|(key_H=1&key_L=0&key_R=1)|(key_H=1&key_L=1&key_R=1) /右转 delay1ms(9); if(key_H=0&key_L=0&key_R=1)|(key_H=0&key_L=1&key_R=1)|(key_H=1&key_L=0&key_R=1)|(key_H=1&key_L=1&key_R=1) /右转 delay1ms(9); if(key_H=0&key_L=0&key_R=1)|(k

12、ey_H=0&key_L=1&key_R=1)|(key_H=1&key_L=0&key_R=1)|(key_H=1&key_L=1&key_R=1) /再次右转 RDJ=20-LDJ; ET1=0;TR1=0; delay1ms(610); /600 ET1=1;TR1=1; delay1ms(500); /*= 直道部分 =*/ if(key_H=1&key_L=0&key_R=0)|(key_H=1&key_L=1&key_R=0) /走直道 delay1ms(9); if(key_H=1&key_L=0&key_R=0)|(key_H=1&key_L=1&key_R=0) /走直道 d

13、elay1ms(9); if(key_H=1&key_L=0&key_R=0)|(key_H=1&key_L=1&key_R=0) /再次确定走直道 RDJ=20-LDJ; delay1ms(100);/勿动 /*= 左转部分 =*/ if(key_H=0&key_L=1&key_R=0) /左转 delay1ms(9); if(key_H=0&key_L=1&key_R=0) /左转 delay1ms(9); if(key_H=0&key_L=1&key_R=0) /再次左转 RDJ=20-LDJ; ET0=0;TR0=0; delay1ms(640); ET0=1;TR0=1; delay

14、1ms(500); /*= 进入死胡同部分 =*/ if(key_H=0&key_L=0&key_R=0) /死胡同,原地旋转180 delay1ms(18); if(key_H=0&key_L=0&key_R=0) /死胡同,原地旋转180 delay1ms(108); if(key_H=0&key_L=0&key_R=0) RDJ=LDJ; delay1ms(580); RDJ=20-LDJ; delay1ms(500); 4、系统框图如下所示:图3.4 系统框图在实际运动中,利用红外接近传感器实现对墙体的感应,产生相应的高低电平并输出至控制模块,由控制模块对信号进行相应的分析,并通过路径

15、规划算法确定行进路线,最后由驱动模块控制小车做出相应的运动。四、结束语根据本次智能系统工程的设计要求,我们小组系统地阅读了大量的资料,认真分析了设计课题的需求,并且系统学习了AT89S52单片机的工作原理及其使用方法。以实验室提供的硬件设备为基础,我们系统的进行了多次试验,结合课题任务和机器人硬件进行了程序的编制,本系统基本能够满足设计要求,能够较快较平稳的使小车避开障碍物、寻找路径、走出迷宫本次课题设计,不仅是对我们课本所学知识的考查,更是对我们的自学能力和收集资料能力以及动手能力的考验。本次设计使我们对一个项目的整体设计有了初步认识,从硬件到软件,以及传感器的接入,提升了我们对智能系统的认

16、识与掌握。 当然,在处理硬件接口和软件调试的过程中,出现过些问题,但是在大家的努力下最后都能够比较好的解决。总之,在此次智能系统工程训练的过程中,无论是对于过去学习过的智能控制方法或是其他一些相关知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践动手能力。附录:附录1:参考文献1. 蔡自兴.智能控制导论.中国水利水电出版社.2007年5月1日2.郭天祥.单片机原理及应用附录2:程序源码及注释#include#define uint8 unsigned char#define uint16 unsigned intsbit key_H=P20;sbi

17、t key_L=P21;sbit key_R=P22;/PWM的输出端口sbit PWM_OUT0=P00;sbit PWM_OUT1=P01;/PWM的数据值uint16 PWM_Value0=500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500;uint16 PWM_Value1=500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200

18、,2300,2400,2500;uint8 order1; /定时器扫描序列/uint8 dangwei=0; /舵机转速档位uint8 LDJ; /左舵机参数设定uint8 RDJ; /右舵机参数设定uint8 zfz; /控制舵机正反转/*= 定时器T0的中断服务程序=*/void timer0(void) interrupt 1 using 1 switch(order1) case 1: PWM_OUT0=1; TH0=-PWM_Value0LDJ/256; TL0=-PWM_Value0LDJ%256; break; case 2: PWM_OUT0=0; TH0=-(20000-P

19、WM_Value0LDJ)/256; TL0=-(20000-PWM_Value0LDJ)%256; order1=0; break; default : order1=0; order1+; /*= 定时器T1的中断服务程序=*/void timer1(void) interrupt 3 switch(order1) case 1: PWM_OUT1=1; TH1=-PWM_Value1RDJ/256; TL1=-PWM_Value1RDJ%256; break; case 2: PWM_OUT1=0; TH1=-(20000-PWM_Value1RDJ)/256; TL1=-(20000-

20、PWM_Value1RDJ)%256; order1=0; break; default : order1=0; order1+; /*= 初始化中断 =*/void InitPWM(void) order1=1; TMOD |=0x11; TH0=-1500/256; TL0=-1500%256; TH1=-1500/256; TL1=-1500%256; EA=1; EX0=0; ET0=1;ET1=1; TR0=1;TR1=1; PT0=1;PT1=1;PX0=0;void delay1ms(unsigned int ms) /1ms延时函数 unsigned int i; while(

21、ms-) for(i=0;i115;i+) ; void main(void) uint8 ydxz; LDJ=0; InitPWM(); while(1) /*=右转部分=*/ if(key_H=0&key_L=0&key_R=1)|(key_H=0&key_L=1&key_R=1)|(key_H=1&key_L=0&key_R=1)|(key_H=1&key_L=1&key_R=1) /右转 delay1ms(9); if(key_H=0&key_L=0&key_R=1)|(key_H=0&key_L=1&key_R=1)|(key_H=1&key_L=0&key_R=1)|(key_H=

22、1&key_L=1&key_R=1) /右转 delay1ms(9); if(key_H=0&key_L=0&key_R=1)|(key_H=0&key_L=1&key_R=1)|(key_H=1&key_L=0&key_R=1)|(key_H=1&key_L=1&key_R=1) /再次右转 RDJ=20-LDJ; ET1=0;TR1=0; delay1ms(610); /600 ET1=1;TR1=1; delay1ms(500); /*=直道部分=*/ if(key_H=1&key_L=0&key_R=0)|(key_H=1&key_L=1&key_R=0) /走直道 delay1ms(9); if(key_H=1&key_L=0&key_R=0)|(key_H=1&key_L=1&key_R=0) /走直道 delay1ms(9); if(key_H=1&key_L=0&key_R=0)|(key_H=1&key_L=1&key_R=0) /再次确定走直道 RDJ=20-LDJ; delay1ms(100);/勿动 /*=

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

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