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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(小车循迹控制程序设计.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

小车循迹控制程序设计.doc

1、 武汉理工大学华夏学院 课外自主实验分析报告 实验名称 小车循迹控制程序设计 专 业 软件工程 班 级 学 号 姓 名 第1章 实验分析 3 1.1 实验设计题目 3 1.2 实验设计任务 3 1.2.1 总体任务 3 1.2.2 详细任务 3 1.2.3 设计要求 3 1.3软硬件运行环境及开发工具 3 第2章 概要设计

2、4 2.1 小车软硬件设计原理 4 2.1.1 小车硬件设计原理 4 2.1.2小车软件设计原理 4 2.2 功能设计原理及实现方法 4 2.2.1小车前进功能实现 4 2.2.2 小车旋转功能实现 4 2.2.3 小车偏移修正功能设计 4 第3章 详细设计 9 3.1 硬件设计与实现 9 3.2 系统主程序流程 10 3.3功能模块详细设计 10 3.3.1 起始点到中心点路线模块设计 10 3.3.2 中心点到D点路线模块设计 10 3.3.3 D点到黑色点路线模块设计 11 3.3.4 白色点到中心点模块设计 12 3.3.5 中心点到起始点路线模

3、块设计 13 第4章 系统调试与操作说明 15 4.1 系统调试 15 4.1.1 直线调试 15 4.1.2 达到黑色终点点调试 15 4.3 操作说明 15 第5章 总结和体会 16 第6章 参考文献 16 附录: 1 1 课外实验设计计划 学生姓名: 万志雄 专业班级: 软件1111 实验题目:小车循迹控制系统设计(路线3) 实验器材:1、硬件设备:MCS-51单片机最小系统板、四个QTI传感器、两个舵机、 两个车轮、锂电池、ISP下载线、面包板; 2、软件环境:Keil C51、progisp下载器。 实验任务:(在规定

4、的时间内完成下列任务) 1.完成硬件设计并连线,以MCS-51单片机为控制核心,根据4个QTI传感器采集到的数据控制舵机的运转,进而控制车轮的速度和方向,并画出硬件原理图和实验连线图; 2.用C语言编程实现以下小车行驶线路(地图见下页): 起始点→中心点→D点,旋转360度→黑色点,旋转180度→原路返回。 时间安排:各时间段的任务可以交替进行 时间 设计内容 第一天 设计题目,实物演示、规划任务、查找相关资料 第二天 进行需求分析,完成总体设计 第三天 硬件详细设计,连接实验电路,软件详细设计,编写程序; 第四天 调试程序、测试系统、总结; 第五天 总结后完成

5、设计报告。 指 导 教 师 签 名: 2014 年 6 月 30 日 教研室主任(或责任教师)签名: 2014年 6 月 30 日 起始点 目 录 第1章 实验分析 1.1 实验设计题目 小车循迹控制系统设计(路线3) 1.2 实验设计任务及要求 1.2.1 实验总体任务 (1)硬

6、件部分:完成硬件设计并连线,以MCS-51单片机为控制核心,随时采集4个QTI传感器的数据控制舵机的运转,进而控制车轮的速度和方向。 (2)软件部分:用C语言编程实现小车行驶线路:起始点→中心点→D点(旋转360度)→黑色点→然后旋转180度→原路返回。 1.2.2任务 使用KeilC51编程软件采用C语言编程实现小车路线3的总体调试,同时不断修正小车的路线。 1.2.3 实验设计要求 完成硬件原理图设计、小车模型构建、软件编程、调试、运行等一整套工作任务。控制软件使用C语言编程;系统联调,提交一个满足要求的小车循迹控制系统设计。 1.3软硬件运行环境及开发工具

7、 以MCS-51单片机为控制核心,根据4个QTI传感器采集的数据控制舵机的运转,Windows xp操作系统PC机一台。KeilC51编程软件、progisp下载器、串口调试小助手等软件。 第2章 概要设计 2.1 小车软硬件设计原理 2.1.1 小车硬件设计原理 小车前面有4个qti感应器来随时采集数据,当探测为黑线的时候,返回值为1,当探测为白线的时候,返回值是0,只有当中间那个qti返回值全为1的时候,才走在黑线上,根据返回的状态来控制小车舵机的速度。 2.1.2小车软件设计原理 将整个过程分为五部分来实现,分别为起点到中心点,中心点到D

8、点,D点到黑色点,黑色点到中心点,中心点到起始点。在运动过程中还需设计旋转45度和180度和360度的旋转子模块,当小车偏离轨迹候后,需设计修正子模块。 2.2 功能设计原理及实现方法 2.2.1小车前进功能实现 此模块原理是向伺服电机输出若干个PWM波,波形的占空比可控制小车移动,通过 时间宽度和延时产生信号,作用于电机,从而控制其运动。在本次设计中,向伺服电机PWM波过程已经被模块化在头文件中,即motion()函数中,通过对motion()函数的三个参数进行设置来实现控制电机转动从而控制小车前进。motor_motion(uint16_t left_val, uint16_t r

9、ight_val, uint8_t count)例:其中参数left_val:左边电机的高电平时间宽度; right_val:右边电机的高电平时间宽度;count:脉冲数目 2.2.2 小车旋转功能实现 小车旋转的原理是调整两轮的移动方式、速度及移动步数。当需旋转360度时,将 左轮设置为快速后退状态,右轮为快速前进状态,多次调试测出旋转所需的步数. 2.2.3 小车偏移修正功能设计 小车偏移修正功能即对小车传感器信号状态进行检测并作出相应的处理的过程,在修正过程中偏移情况及其代码和信号状态如下: void modify(){ if((P22_state()&

10、P23_state()))||(P21_state()&&(!P22_state())&&(!P23_state())&&(!P24_state()))) { motor_motion(1470, 1700,1); //左转修正 }else if(((!P22_state())&&P23_state())||((!P21_state())&& (!P22_state())&&(!P23_state())&&P24_state())) { motor_motion(1300, 1550,1);

11、 //右转修正 } else{ motor_motion(1700,1300,1); } } (1) 当小车发生右偏移时,各传感器状态信号如下: 1 0 0 0 0 0 0 0 1 1 0 0 通过判断语句:if((P22_state()&&(!P23_state()))||(P21_state()&&(!P22_state())&&(!P23_state())&&(!P24_state())))判断小车是否向左偏移,若发生偏移此时通过调节左右轮的速度来实现,左偏

12、时调用motor_motion(1770, 1740,1)实现左轮前进速度大于右轮前进速度来实现向右偏移来对偏移进行修正。 (2 ) 当小车发生右偏移时,各传感器状态信号如下: 1 0 0 0 0 0 0 0 1 1 0 0 通过判断语句:if(((!P22_state())&&P23_state())||((!P21_state())&& (!P22_state())&&(!P23_state())&&P24_state())) 判断小车是否向右偏移。若发生偏移,此时通过调节坐游轮的速度来实现,右偏时调用motor_motion(1550, 1300,

13、1),通过调节左右轮的速度,当右轮速度大于左轮速度进行修正。 2.3.1编程头文件 (1)各个头文件如下图 图2.1 (2)delay.h头文件实现延时功能,帮助系统更加理性化,易于操作。例如小车开始部分延时3秒。delay.h头文件详细代码如下: void delay_nus(unsigned int i) { i=i/10; while(--i); } void delay_nms(unsigned int n) { n=n+1; while(--n) delay_nus(900); //

14、进行时间补偿 } (3)qti.h头文件其作用是获取4个QTI传感器采集的信号。为51单片机提供判断的输入数据。qti.h头文件P21口实例详细代码如下: /* 函数名称:P21_state() 功能: 获得左边第一个QTI的返回信号 参数:无参数 返回值:1:高电平,看到黑线;0:低电平,看到白线 */ int P21_state() { return (P2&0x02)?1:0; } (4)global.h头文件其作用是定义用到的数据类型、变量。方便程序设计,简化程序结构。详细代码如下: #ifndef GLOBAL_H #define GL

15、OBAL_H typedef unsigned int uint16_t; typedef unsigned char uint8_t; typedef unsigned char bool; #define true 1 #define false 0 #endif (5)motion.h头文件其作用是控制两个舵机运转 。详细代码如下: #include "Global.h" sbit left_motor = P1^0; //左电机接口 sbit right_motor = P1^1; //右电机接口 #define LEFT_FWD

16、 1700 //高电平时间定义,单位微秒 #define LEFT_BWD 1300 #define LEFT_SMALL_FWD 1530 #define LEFT_SMALL_BWD 1450 #define RIGHT_FWD 1300 #define RIGHT_BWD 1700 #define RIGHT_SMALL_FWD 1450 #define RIGHT_SMALL_BWD 1530 函数名称:motor_motion(uint16_t left_val, uint16_t right_val, uint8_t count) 作用:向

17、伺服电机输出若干个PWM波,波形的占空比可控制 参数:left_val:左边电机的高电平时间宽度;right_val:右边电机的高电平时间宽度;count:脉冲数目 返回值:无返回值 void motor_motion(uint16_t left_val, uint16_t right_val, uint8_t count) { uint8_t i; for(i=0; i

18、 = 1; delay_nus( right_val ); right_motor = 0; delay_nms(20); //输出一定数量的PWM波形 } } 第3章 详细设计 3.1 硬件设计与实现 小车是由多个硬件零件组装而成,每个零件负责不同的功能,根据设计任务和要实现的主要功能,来进行硬件设计。硬件设计原理图如下: 图3.1 总体电路图 图3.3灰度QTI传感器 3.2 系统

19、主程序流程 小本系统设计了五个个模块,分别为起点到中心点路线模块、中心点到D点、D点黑色点、黑色点到中心点、中心点返回到起始点路线模块。通过对每个功能模块的调用实现系统要求的功能。 3.3功能模块详细设计 3.3.1 起始点到中心点路线模块设计 起点到中心点,主要是从开始就前进,在前进过程中不停检测传感器传过来的信号,通 过判断小车是否偏离路线后决定是否修正。程序代码如下while(1){ motor_motion(1700,1300,1); modify(); if(P22_state()&&P23_state()&&P21

20、state()&&!P24_state()){ //motor_motion(1500,1500,0); //中心点停 motor_motion(1500,1300,18); //右转45度 break; } } 3.3.2 中心点到D点路线模块设计 中心点到B点,主要是从开始就前进,在前进过程中不停检测传感器传过来的信号,通 过判断小车是否偏离路线后决定是否修正。如果检测到0000信号,则执行旋转360度程序。

21、 设计函数centerToD()来实现此模块功能。程序代码如下: while(1){ motor_motion(1700,1300,1); modify(); if(!P21_state()&&!P22_state()&&!P23_state()&&!P24_state()){ //motor_motion(1500,1500,0); //D点停 motor_motion(1300,1300,150); //转360度 break; }

22、 } 程序流程图如下: 开始 前进 偏移? 前进 修正 是 否 全为1? 否 旋转360度 是 退出循环 图3.3中心点到D点模块流程图 3.3.3 D点到黑色点路线模块设计 D点到黑色点前进过程中也要进行检测修正,当遇到1111信号时,执行旋转180度,其代码为: while(1){ motor_motion(1700,1300,1); modify(); if(P21_state()&&P22_state()&&P23_s

23、tate()&&P24_state()){ motor_motion(1300,1300,75); //转180度 break; } } 程序流程图如下: 开始 前进 偏移? 前进 修正 是 否 全为1? 否 旋转180度 是 退出循环 图3.4 D点到黑点模块流程图 3.3.4 白色点到中心点模块设计 白色点到中心点循迹过程中,不断地通过传感器检测信号,进行

24、路线修正。当第一次检测到1111信号时,这表示已经到达中心点。采用的函数和刚开始去中心点的一样,模块程序代码如下: while(1){ motor_motion(1700,1300,1); modify(); if(P21_state()&&P22_state()&&P23_state()&&P24_state()){ //motor_motion(1500,1500,0); //回到中心点停 motor_motion(1700,1500,18); //向左转45度

25、 break; } } 程序流程图如下: 开始 前进 偏移? 前进 修正 是 否 全为1? 否 左旋转45度 是 退出循环 图3.5黑点到中心点模块流程图 3.3.5 中心点到起始点路线模块设计 while(1){ motor_motion(1700,1300,1); modify(); if(P21_state()&&P22_state()&&

26、P23_state()&&P24_state()){ motor_motion(1500,1500,0); //回到起始点 break; } } 程序流程图如下: 开始 前进 偏移? 前进 修正 是 否 全为1? 否 停止 是 退出循环 图3.6中心点到D点出发点模块流程图 第4章 系统调试与操作说明 4.1 系统调试 4.1.1 直线调试 主要是判断小

27、车是否能沿着黑线向前走,方法:让程序只有函数modify(),main()函数中只有motor_motion(1700,1300,1)这条语句;并烧写到小车中,把小车放在一条黑线上,看它是否能一直在黑线上前进,若不能,再qti是否连接正确,直至小车能一直走在直线上。 4.1.2 达到黑色终点点调试 主要判断小车能否到黑色终点,并原地旋转180度,方法:将自己模块程序烧写到小车中,放在黑点上面,观察小车能否到黑色终点旋转前进到中心点并并原地旋转180度,注意看其角度是否正常。 4.2 调试中遇到的问题 调试的时候,是在黑色终点处的时候,旋转度数不足。多次调试后为motor_mo

28、tion(1300,1300,75)。 4.3 操作说明 在KeilC51中写好的程序进行编译生成.hex文件,然后通过ISP下载线和progisp软件将已生成的.hex文件烧写到单片机中。当烧写成功后,拔掉下载线,然后在已设定好的路径上,摆正小车的位置,打开小车上的开关。观察小车是否按照预定的路径进行行驶。 第5章 总结和体会 整个过程中,从需求分析到设计、编码、测试,我都力求规范化和文档化,努力让自己以前学的知识运用到本系统的开发中,尽量保证整个系统的开发进度和质量,顺利完成这次的课程设计。  不过,在实验过程中,好多知识

29、都是随学随用,就增加了很多不必要的麻烦。虽说这些都会消耗系统开发的时间,但在同学以及自己的不断努力下,不怕麻烦,不怕重复,当克服了这些问题之后,我会感觉到自己的知识在一点一滴地积累,不知不觉中增加。   我相信,只要肯钻研,只要挤时间,一切自己想要的知识都可以掌握。 通过本次课程设计,我对小车循迹系统经典问题有了进一步的了解,尤其是在软件与硬件的结合方面有了新的认识。在这次课程设计中,由于没有掌握好进程同步中的一些关键知识,导致在实际操作中遇到了很多问题,比如说对单片机借口的不熟悉。此次课程设计使我明白,在程序设计中,我们需要有一个清晰的整体结构,然后针对每个模块逐步实现其功能,在设计中也

30、需要有严谨和认真的态度,才会更好的完成一项任务。 第6章 参考文献 [1] 尹志宇、郭晴,单片机入门,北京:清华大学出版社,2011.07 [2]黄维通、王晓英,万能的51单片机 ,北京:清华大学出版社,2011.01 [3] 庞娅娟、房大伟51单片机简明教程,北京:人民邮电出版社,2009.10 [4]王小科、王军、赵会东,单片机开发案例全程实录(第二版),北京:清华大学出版社2011.01 附录: #include"reg52.h" #inclu

31、de"delay.h" #include"qti.h" #include"motion.h" #include"Global.h" void modify(){ if((P22_state()&&(!P23_state()))||(P21_state()&&(!P22_state())&&(!P23_state())&&(!P24_state()))) { motor_motion(1470, 1700,1); //左转修正 }else if(((!P22_state())&&P23_state())||((!

32、P21_state())&& (!P22_state())&&(!P23_state())&&P24_state())) { motor_motion(1300, 1550,1); //右转修正 } else{ motor_motion(1700,1300,1); } } void main(void){ while(1){ motor_motion(1700,1300,1); modify(); if(P22_

33、state()&&P23_state()&&P21_state()&&!P24_state()){ motor_motion(1500,1300,18); //右转45度 break; } } while(1){ motor_motion(1700,1300,1); modify(); if(!P21_state()&&!P22_state()&&!P23_state()&&!P24_state()){ mot

34、or_motion(1300,1300,150); //转360度 break; } } while(1){ motor_motion(1700,1300,1); modify(); if(P21_state()&&P22_state()&&P23_state()&&P24_state()){ motor_motion(1300,1300,75); //转180度 b

35、reak; } } while(1){ motor_motion(1700,1300,1); modify(); if(P21_state()&&P22_state()&&P23_state()&&P24_state()){ motor_motion(1700,1500,18); //向左转45度 break; } }

36、 while(1){ motor_motion(1700,1300,1); modify(); if(P21_state()&&P22_state()&&P23_state()&&P24_state()){ motor_motion(1500,1500,0); //回到起始点 break; } } } 照片: 设计者: 万志雄 日 期:2

37、014年6月5 日 目 录 第一章 项目摘要 3 1.1项目基本情况 3 1.2建设目标 3 1.3建设内容及规模 4 1.4产品及去向 4 1.5效益分析 4 第二章 项目建设的可行性和必要性 5 2.1建设的必要性 5 2.2建设的可行性 5 2.3编制依据 6 2.4编制原则 9 第三章 项目建设的基础条件 9 3.1建设单位的基本情况 9 3.2项目的原料供应情况 10 3.3地址选择分析 10 第四章 产品 11 4.1沼气 11 4.2 沼气产量确定 12 4.3有机肥 13 4.4产品去向 13 第五章 沼气工程工艺设计

38、14 5.1工艺参数 14 5.2处理工艺选择 14 5.3工艺流程的组成 15 5.4厌氧处理工艺选择与比较 15 5.5沼气存储和净化工艺 16 5.6工艺流程 18 5.7沼气输配设施 19 5.8沼气计量设施 19 第六章 总体设计 19 6.1站内总体设计 19 6.2站外配套设计 19 第七章 土建设计 20 7.1建筑设计 20 7.2结构设计 20 第八章 电气设计 21 8.1设计依据 21 8.2设计规范 22 8.3 设计说明 22 8.4控制与保护 22 8.5防雷与接地 22 8.6配电系统 23 8.7防雷与接地 23

39、8.8 防爆设计 23 8.9供电负荷 23 第九章 安全、节能及消防 24 9.1安全生产 24 9.2防火消防 24 9.3节能 25 第十章 主要构(建)筑物、设备的设计参数 25 10.2 厌氧消化系统工艺参数设计 27 10.3 沼气净化系统工艺参数设计 28 10.4 沼气储存系统 28 10.5 沼肥储存系统 29 10.6配套设施区 29 第十一章 投资概算和资金筹措 30 11.1编制说明 30 11.2总投资估算表 31 11.3投资概算 33 11.4资金筹措 33 第十二章 项目实施进度和投招标 34 12.1进度安排 34 12.

40、2招(投)标依据 34 12.3招(投)标范围 34 12.4招(投)方式 35 第十三章 项目组织与管理 35 13.1管理 35 13.2劳动定员和组织培训 37 第十四章 环境保护和安全生产 37 14.1污染源和污染物 37 14.2污染治理方案 38 14.3安全生产 39 第十五章 产品市场分析与预测 41 15.1沼气 41 15.2沼气发电 41 15.3沼液和沼渣 43 15.4(生态)农产品。 43 第十六章 社会、生态及经济效益分析 43 16.1社会效益 43 16.2生态效益 44 16.3经济效益 44 第十七章 结论 46 第十八章 附件 47 5

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服