欢迎来到天天文库
浏览记录
ID:33058603
大小:53.37 KB
页数:14页
时间:2019-02-19
《机电课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、机电测控综合训练课程设计报告姓名:梁志开班级:机实1001班学号:U201010585指导老师:何岭松陶凌阳林向南时间:2014年3月7日目录一、设计背景3二、设计内容3三、程序框图4四、程序编写6五、设计小结9六、程序附件9一.设计背景本次课程设计名为机电测控综合训练课程设计,以课程提供的测控实践平台的实验条件为基础,自选一个机电测控方面的题目,在3周时间内完成一个小型机电测控系统的设计与制作工作。课程设计旨在帮助我们了解和掌握机电测控产品设计、开发的实施过程和主要环节,培养根据工程任务,综合应用四年所学光、机、电、计算机等知识,提出解决方案、
2、实施解决方案、完成工程任务的能力以及理论联系实际的设计思想和解决工程实际问题的能力。本次课程设计所选的机器人小车为德普施科技有限公司生产的宝贝车机器人,采用的51单片机问8位的AT89S52单片机,可反复擦写1000次,配置十分灵活,可扩展性强。二、设计内容根据本次课程设计的宗旨与条件,我们组经过思考确定了设计项目,即安全指南车。本组安全指南车的项目采用的机器人小车为德普施科技有限公司友情提供的宝贝车机器人,采用AT89S52单片机对小车轮上的舵机进行控制,传感器使用的是HM55B指南针模块和超声波传感器各一个。经过硬件的组装与调试之后,通过HM
3、55B指南针模块能够对该车进行持续不断的角度测量,并通过舵机控制使该样车实现在初始方向任意的情况下均能自动转向,最终指向南方行驶;接着,又考虑到指南车在一直朝南行驶的途中可能会撞到障碍物,会给指南车带来安全问题,因此,本指南车又使用超声波传感器进行距离测量,当测量到与障碍物的距离达到危险距离的时候,程序控制指南车停止行驶,保障指南车的安全,是为安全指南车。本次安全指南车的设计过程总共设计到三个设计内容,分别由本组的3个人分别承担完成。三个设计内容包括传感器测控电路的设计、制作、调试(由本组的王健同学完成),单片机测控程序的设计、编写、调试(由本组
4、的梁志开同学完成),LabView测控程序的设计、编写、调试(由本组的梅志远同学完成)。下面的报告内容将着重介绍由我自己完成的ke订单片机C程序的设计内容。三、程序框图任何程序的设计首先都需要进行程序思路的探索,本次课程设计的安全指南车也经过了这一过程。下图为安全指南车的程序思路流程图。;判断与障碍物的距离:Ir」jI
5、大于危险距离丨
6、小于危险距离停止行驶•
7、朝南行驶如上图可以知道本次设计的安全指南车的程序思路流程,首先小车执行指南针指南程序,能够在任意方位都转成朝南方行驶,接着执行超声波测距程序,持续与前方物体经行距离测量,遇到障碍物时,如果行
8、驶至距离障碍物的安全距离以内时,单片机程序控制舵机停止转动进而使小车停止行驶,从而保证指南车的安全。有了程序思路流程图之后,就需要设计正规的程序框图,下面即安全指南车的程序框图。初始化测量角度rIX0O10左转前进右转测量距离-d一m一CO前进四.程序编写本部分内容仅介绍几个重要部分的程序编写内容,更加完整的kei1单片机C程序将会在第六节程序附件中展示。1、指南针坐标值获取程序voidCoiEpass_Get_Axes(){一一unsignedcharstatus;x=0x0000;y=0x0000;HIGH_EN;匸OW_云N;ShiftOu
9、t(MSBFIRST,Reset,4);HIGH_EN;匸OW_云N;ShiftOut(MSBFIRST,Measure,.4);status=0;do{HIGH_EN;匸OW_云N;ShiftOut(MSBFIRSTZReport,4);status=ShiftIn(MSBFIRSTZ4);}while(status!=Ready);x=Shifrln(MSBFIRST,11);y=Shifrln(MSBFIRST,11);HIGH_EN;if(y&0x0400)y=y
10、NegMask;if(x&0x0400)x=x
11、NegMask;由指南针传
12、感器的工作原理可知,指南针的指南原理即算出地磁场的坐标在指南针所处位置坐标上的坐标值x、y,经过angle0=arctan(-y/x)的计算即可算出方向角9的值。因此,必须首先获得x、y的值。2、指南车指南程序voidKain(){uart_Init();while(1){=Compa3s_Get_Axes();//狈!J呈angle=atan2(yzx);radian=angle*100;degrees=radian*57.297;degrees=(degrees/10)+1800;degrees=degrees/10;printf(rrx=%
13、dfy=%dfdegree3=%dnzxfy,degrees);if(degrees>=100°rees<=270){Righ
此文档下载收益归作者所有