基于51单片机的云台姿态测量课程设计.doc
《基于51单片机的云台姿态测量课程设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的云台姿态测量课程设计.doc(37页珍藏版)》请在冰豆网上搜索。
![基于51单片机的云台姿态测量课程设计.doc](https://file1.bdocx.com/fileroot1/2022-10/19/d564cc40-9b9f-4b70-a7af-d135ea92dcc8/d564cc40-9b9f-4b70-a7af-d135ea92dcc81.gif)
单片机课程设计报告
课题名称:
云台姿态测量系统设计
院系:
专业班级:
姓名:
学号:
目录
一概述 2
1.1问题提出 2
1.2方法论证 2
二硬件设计 4
2.1控制模块 4
2.2显示模块 5
2.3传感器模块 7
三软件设计 9
3.1系统初始化 9
3.2显示程序 10
3.3传感器控制部分 11
四系统调试 12
4.1硬件调试 12
4.2软件调试 12
五总结 14
参考文献 15
附录 16
附录A:
元器件清单 16
附录B:
电路设计图 17
附录C:
C程序源代码 17
一概述
1.1问题提出
云台是安装、固定摄像机的支撑设备,它分为固定和电动云台两种。
固定云台适用于监视范围不大的情况,在固定云台上安装好摄像机后可调整摄像机的水平和俯仰的角度,达到最好的工作姿态后只要锁定调整机构就可以了。
电动云台适用于对大范围进行扫描监视,它可以扩大摄像机的监视范围。
电动云台高速姿态是由两台执行电动机来实现,电动机接受来自控制器的信号精确地运行定位。
在控制信号的作用下,云台上的摄像机既可自动扫描监视区域,也可在监控中心值班人员的操纵下跟踪监视对象。
三轴陀螺仪:
同时测定6个方向的位置,移动轨迹,加速。
单轴的只能测量两个方向的量,也就是一个系统需要三个陀螺仪,而3轴的一个就能替代三个单轴的。
3轴的体积小、重量轻、结构简单、可靠性好,是激光陀螺的发展趋势。
汽车级陀螺仪能提供精确的测量结果,可大幅提升汽车导航仪和远端资讯处理系统的航位推算(Dead-ReckoNIng)和/或地图对照(Map-Matching)功能。
在全球卫星定位系统(GPS)卫星讯号很差的室内和高楼林立的区域,航位推算系统可弥补讯号消失的影响,代替卫星检测物体的动作和高度。
陀螺仪的精确测量资料还能提高地图对照准确度;地图对照是在数位地图的道路网路上描述卫星或感测器观测的用户位置的动作轨迹的过程,地图对照被用于各种导航定位系统,包括交通流量分析和车辆行驶方向。
在工程上,陀螺仪是一种能够精确地确定运动物体的方位的仪器,它是现代航空,航海,航天和国防工业中广泛使用的一种惯性导航仪器,它的发展对一个国家的工业,国防和其它高科技的发展具有十分重要的战略意义。
传统的惯性陀螺仪主要是指机械式的陀螺仪,机械式的陀螺仪对工艺结构的要求很高,结构复杂,它的精度受到了很多方面的制约。
自从上个世纪七十年代以来,现代陀螺仪的发展已经进入了一个全新的阶段。
1976年美国Utah大学的Vali和Shorthill提出了现代光纤陀螺仪的基本设想,到八十年代以后,现代光纤陀螺仪就得到了非常迅速的发展。
由于光纤陀螺仪具有结构紧凑,灵敏度高,工作可靠等等优点,所以光纤陀螺仪在很多的领域已经完全取代了机械式的传统的陀螺仪,成为现代导航仪器中的关键部件。
拥有很广泛的应用。
(1)课程设计任务
本次课程设计题目为:
基于51单片机云台姿态测量系统。
内容:
①基于51单片机系统
②利用液晶显示屏显示出实际角度
③具有三维空间的坐标显示
(2)课程设计的基本要求
①最终设计系统应安全,简单
②学会整理,收集与课程设计相关的信息资料
③完成最初方案的设计
④优化软硬件的设计
(3)课程设计的意义
本次课程设计是对单片机课程学习的实践环节,旨在通过本次课改加强同学们对单片机知识的巩固和提高,并且增强同学们的实际动手能力和团队合作意识。
在这次课程设计中本人主要负责软件部分的调试。
1.2方法论证
(1)整体设计思路
此次课程设计题目为云台方位测量显示系统,主要需攻克的是角度的测量与显示。
角度的测量与显示,需要传感器采集模拟信号,并且转换为数字信号输入单片机,由单片机根据输入数据对显示屏进行写操作。
设计总体框架图如下:
STC89C52
LCD1602
L3D42OOD
三轴陀螺仪
电源模块
图1.1总体设计框架图
L3D42OOD三轴陀螺仪将信号采集并转化后送入STC89C52单片机,再经过单片机的处理将陀螺仪转动的方向通过LCD1602显示出来。
二硬件设计
2.1控制模块
最小系统模块由单片机、晶振。
复位电路以及电源组成。
常用的单片机有AT系列和STC系列,都能满足方案需求,AT单片机的下载串口软件没找到,STC有配套使用的各种软件,而且成本低,性价比高。
综合考虑,为了方便编程调试与下载,选用STC系列。
可用的STC系列51单片机有89C51和89C52。
功能一样的前提下,89C52的ROM更大,故最终选择STC89C52单片机。
最小系统模块的主要的功能是让单片机工作,STC89C52单片机有40个管脚,其中需要用到I/0接口有P0.0-P0.7,P1.0,P1.1。
18,19管脚接时钟信号(片内震荡),本次课设采用11.0592MHZ的晶振。
9管脚接复位输入端RST,由电容,电阻构成的上电复位电路。
20管脚接GND,40管脚接VCC(+5V)电源。
图2.1STC89C52管脚图
图2.251单片机最小系统图
2.2显示模块
市面上显示屏种类繁多,有LCD1602,12232,12864,Nokia5110等一系列显示屏,综合分析比较,本次课设,只需要显示三轴的角度值,简单的ASC2码字符显示,1602显示屏很好的满足的需求,而且操作简单,成本低廉,性价比极高。
因此最终选取LCD1602用来显示。
图2.3LCD1602显示屏管脚图
本设计采用的是液晶显示LCD1602。
LCD1602内部的字符已经储存了不同的字符形式,每一个字符都有一个固定的代码,其代码与标准的ASCII字符代码一致。
因此只要写入显示字符的ASCII码即可,这种标准化的设计给使用带来很大的方便。
比如英文字母“C”的ASCII代码是01000011(43H),显示时单片机往液晶模块写入显示指令,模块就会把地址为43H中的点阵字符图形识别出,并会在液晶屏相应位置上看到字母“C”。
LCD1602液晶显示与单片机的连接可以分为两种方式:
总线方式和模拟口线方式。
在实验中,我们常采用模拟口线连接方式。
目前市场字符液晶绝大多数是基于HD44780的液晶芯片,控制原理是完全相同的,因此基于HD44780的写控制程序可以很容易地应用到市场上大部分的字符液晶。
LCD1602液晶的几个特性:
+5V电压、对比度可调、内含复位电路;提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能;有80字节显示数据存储器DDRAM;内建有160个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM。
LCD1602采用标准的16脚接口,其中VSS为地电源,VDD接5V正电源,VEE为液晶显示器。
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作。
E端为使能端。
D0~D7为8为双向数据线。
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VEE
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
表2.1LCD1602液晶屏引脚说明
图2.4LCD1602实物图
2.3传感器模块
传感器的选择:
方案一:
使用ENC-03陀螺仪进行方位测量,工作电压为2.7-5.3V。
配合AD转换芯片ADC0804进行采样的模拟量转化为数字量,再传给单片机进行数据处理。
方案二:
使用L3G4200D三轴陀螺仪进行方位测量,其内部自带AD转换,直接输出数字信号,工作电压为2.4-3.6V。
比较:
方案一需要在转轴部分安装传感器,并且采集的是模拟量,需要外加ADC芯片进行转换,比较麻烦和不稳定。
相比之下,方案二传感器有丰富资源,安装方便,并且电路简单,性能稳定,不用增加复杂的外围电路,利于达到最终的设计目的。
综合考虑,选用方案二。
本次课程设计采用的是L3G4200D三轴陀螺仪。
该传感器是一种低功耗三轴陀螺仪,提供三个不同的±250/±500/±2000dps,它包括一个传感元件和一个IC接口能够提供角速度的检测外部世界,通过一个数字接口(IIC/SPI).传感元件是采用专门微细加工工艺,而IC接口技术实现了用CMOS允许设计一个专门的电路,以更好的匹配传感元件的特点。
特点:
①IIC/SPI数字输出接口
②两个数字输出线
③宽电压,2.4到3.6V
④高冲击生存能力,稳定
⑤工作温度:
-40°—+85°
⑥省电和睡眠模式
⑦16比特率值的数据输出
图2.5L3G4200D三轴陀螺仪
三软件设计
本次课程设计单片机的软件设计,采用的是C语言,编译环境是keil4,串口下载使用STC-ISP-V483。
设计流程如下:
开始
结束
液晶初始化
传感器初始化
读取角速度
单片机处理
LCD显示
系统上电液晶屏初始化显示X:
000,Y:
000,Z:
000,传感器的位置初始化,即初始位置为X:
000,Y:
000,Z:
000。
当传感器检测到角度改变时,传感器将角速度信号传给单片机处理,通过单片机内部的处理转换再通过LCD显示器显示出角度的变化。
3.1系统初始化
delay(500); //上电延时
InitLcd();//液晶初始化
InitL3G4200D();//初始化L3G4200D
while
(1)//循环
{
display_x();//---------显示X轴
//display_y();//---------显示Y轴,不稳定,屏蔽
display_z();//---------显示Z轴
delay(100);//延时
}
}
3.2显示程序
(1)写命令操作和写数据操作分别用两个独立的函数完成,函数内部唯一的区别就是液晶数据命令选择端的电平,具体操作如下:
Voidwrite_com(ucharcom)
{
lcdrs=0;//