基于自由摆的平板控制系统—毕业设计论文.doc_第1页
基于自由摆的平板控制系统—毕业设计论文.doc_第2页
基于自由摆的平板控制系统—毕业设计论文.doc_第3页
基于自由摆的平板控制系统—毕业设计论文.doc_第4页
基于自由摆的平板控制系统—毕业设计论文.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

基于自由摆的平板控制系统摘要本系统以由msp430f149单片机作为中心控制系统,由角度监测模块、电机驱动模块、液晶显示模块、键盘模块和电源电路组成。角度监测模块采用三轴加速度传感器mma7361,实时测量平板与水平面的角度,通过多次采集取平均值的方法基于倾角转换公式将所采样的数据转换成角度反馈给单片机,从而控制步进电机转动相应的角度,使物体能始终保持平衡,并通过液晶实时显示所转过的角度。电机驱动部分使用sm-202a细分驱动驱动步进电机精确地控制平板转动相应角度。最后通过传感器采集的角度实时控制电机旋转相应角度以使激光笔始终照射在水平线附近。本操作简单,控制界面直观、简洁,经检验系统性能指标达到了设计要求,工作可靠,功耗低,具有良好的人机交互性能。关键词:平衡控制、msp430单片机、角度传感器、步进电机16目录1、引言.12、系统方案. . . . .12.1控制器模块的论证与选择12.2角度检测模块的论证与选择12.3电机的论证与选择12.4显示模块的论证与选择23、理论分析与设计. . . . . . . . . . . . . . . . . . . . . 23.1摆杆摆一个周期平板转一周23.2硬币不滑落的建模与计算23.3使激光笔始终照射在中心线附近的建模与计算34、电路与程序设计. . . . . . . . . . . . . . . . . . . . . .34.1模块设计34.1.1系统总体框图34.1.2角度检测模块设计44.1.3电机驱动模块设计44.2程序设计54.2.1程序功能描述与设计思路54.2.2程序流程图55、测试方案与测试结果. . . . . . . . . . . . . . . . . . . .65.1测试方案65.1.1硬件测试65.1.2软件仿真测试65.1.3硬件软件联调65.2测试条件与仪器65.3测试结果及分析66、设计总结. . . . . . . . . . . . . . . . . . . . . . . . .8附录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9一、引言随着单片机的不断普及,其与传感器的结合也在相关领域应用得越来越广泛,尤其在自动控制领域更是得到了管广泛应用,本系统正是在这样的背景下应用单片机与传感器进行设计制作。二、系统方案2.1控制器模块的论证与选择根据设计要求,控制器主要用于计算平板调整角度、控制电机工作模式、显示摆杆与垂直面夹角及系统完成激光笔照射在中心线上时的声光提示。方案一:采用stc89c51作为系统控制器。它的技术成熟,成本低,引脚较少,硬件布局较简单。stc89c51为八位单片机,数据转换速度慢,且实时性不好,复杂的控制算法难以实现,不利于高精度的控制。方案二:采用ti公司的msp430f149单片机作为控制器。msp430系列单片机是16位、risc、超低功耗的处理器。其超低功耗的架构加上灵活的时钟系统可延长电池的使用寿命;处理能力强,运算速度快,其内部集成了12的ad,并采用了dma模块,因此其数据传输速度快;且成本低。综合考虑以上两种方案,采用方案二。2.2度检测模块的论证与选择角度检测模块检测平板与水平方向的夹角以及检测摆杆与垂直方向的夹角。方案一:采用mma7361检测。mma7361是一款低功耗、低成本、低姿态微型电容式三轴加速度传感器,具有信号调理,温度补偿,自我测试,mma7361l包括一个休眠模式,可使用电池供电。方案二:采用as5040检测。as5040是由amsco公司生产的一种非接触、高分辨力编码、在0360范围内进行角度测量的传感器芯片。但为了测量角度,需要使用两极磁铁,在芯片的中心旋转。这样使得系统更加复杂,且加大了电机负载。综合以上两种方案,考虑成本及功耗等因素,选择方案一。2.3制电机的论证与选择方案一:采用减速电机。减速电机结构紧凑,体积小,承受过载能力强,且能耗低,性能优越,效率高,振动小。但由于机械效率影响,减速电机输出扭矩的增加和电机功率的增加不成正比,易出现死区现象,不利于控制。方案二:使用步进电机。步进电机的旋转角度正比于脉冲数,精度高且不累计误差,具有较好的位置精度和运动的重复性。另外步进电机的显著特点就是快速启停能力和转换精度高,正反转控制灵活。综合以上两种方案,摆杆在运动过程中需要进行实时检测平板和摆杆的位置,且需要系统启停反应快,故选择方案二。2.4显示模块的论证与选择方案一:使用数码管显示。数码管电压低、寿命长、对外界环境要求低,易于维护,同时它是采用bcd编码显示数字,亮度高。但是其耗能大,电路复杂,占用资源较多,且显示信息少,精度低。方案二:使用液晶屏显示。lcd具有轻薄短小、低耗电量、影像稳定不闪烁等优势,可视面积大,画面效果好,显示信息量大,分辨率高且抗干扰性强;外围电路少,使用方便。综合考虑以上两种方案,选择采用方案二。三、理论分析与设计3.1摆杆一个周期平板转一周根据摆杆摆动周期公式,可近似求出摆杆摆动一个周期所需的时间。利用所算出的时间控制电机在这一时间段内旋转360,在允许误差范围内该方案可满足题目要求。3.2硬币不滑落的建模与计算图1 硬币不滑落时的物理模型如图1所示,设当摆杆倾角为时,平台与水平方向的夹角为。对硬币进行受力分析,其合力为自身重力与离心力这两个力的合力。若硬币不掉,则平台平面与合力方向垂直。由此可建立平面几何模型,求得与的关系。具体计算如下:在abc中,利用余弦定理求得。其中,。再利用正弦定理得。由于平台转动角后水平,所以硬币不滑落的平台旋转角度为度。3.3使激光笔始终照射在中心线附近的建模与计算图2 激光照射系统模型如图2,理论上系统在没有对平板做任何处理时,平板垂直于摆杆,且与水平面成角,在基本要求部分中,只要调节平板始终与水平面夹角为0;要使激光笔能照射中心线,则平板的转动角即。在摆杆靠近靶子一侧表达式为:;在摆杆远离靶子一侧有表达式:通过该关系表达式可确定平板在不同时刻相对摆杆所需摆过的角度,经过msp430单片机计算控制可使平板上的激光笔始终照射在中心线附近。四、电路与程序设计4.1模块设计4.1.1系统总体框图系统总体框图如图3:图3 系统总体框图4.1.2角度检测模块设计电路如图4所示。我们选用三轴加速度传感器mma7361测量平板转动角度。通过使用msp430内部12位adc采样x、y、z输出的模拟量,并利用三轴建模可以计算出平板的倾角。图4 角度模块电路图4.1.3电机驱动模块设计图5 电机驱动模块4.2程序设计4.2.1程序功能描述与设计思路本系统主要通过430单片机来控制电路的键盘输入,平板状态控制的算法和显示操作等功能,通过三轴加速度传感器模块检测平板与水平面的夹角。细分驱动sm202-a驱动步进电机实现平板的旋转。通过键盘输入系统的工作模式,并通过lcd直观地显示相关参数。4.2.2程序流程图图6 程序流程图五、测试方案与测试结果:5.1测试方案5.1.1硬件测试硬件测试时,可先用万用表检测印制板及焊接的质量是否符合要求,有无虚焊及线路间有无短路、断路,检查无误后,可通电检测电源部分是否正常工作。5.1.2软件仿真测试软件编译和仿真调试是在iar编译器下进行,源程序编译及仿真调试应分段或子程序为单位逐个进行,最后结合硬件实时调节。子程序测试包括:1)显示程序;2)声光提示程序;3)键盘程序;4)角度传感器模块。5.1.3硬件软件联调基本要求的测试第一次,我们设置平板的摆动为模式1,要求平板能随着摆杆的摆动而旋转35周,平板旋转一周偏差不大于45。第二次,设置平板的工作为模式2,在平板上粘贴一张画有一组间距为1cm平行线的打印纸,将摆杆从45处放下,5周期后,控制摆杆缓慢停下,这时硬币滑离平板中心距离0cm。第三次,让摆杆从60处放下,5周期后,控制摆杆缓缓停下,此时接触平板的硬币数为1。5.2测试条件与仪器1、测试条件:检查电路板,保证电路无虚焊及线路间无短路、断路。2、测试仪器如表1:表1 测试仪器序号类型1直流稳压稳流电源2数字万用表3量角器4卷尺5秒表5.3测试结果及分析5.3.1测试分析与结论测试结果如2:表2 摆杆和平板测量周数 木板旋转时间t1 摆杆摆动时间t2 t t/t2 10r 18.7s 19.2s 0.5s 2.6%20r 37.9s 38.6s 0.7s 1.8%30r 56.6s 57.6s 1.0s 1.7%40r 76.0s 77.4s 1.4s 1.8%50r 95.2s 96.8s 1.6s 1.6%60r 103.8s 105.9s 2.1s 2%表2分析:单摆周期测量值为1.92s,木板旋转周期测量值为1.89s,平板和摆杆同时转动数周后,时间偏差/摆杆摆动时间最大为2.6%。表3 板水平数据测量角度 光斑相对高度 木板中心相对高度 绝对误差 |(h1-h2)/h2|h1/cm h2/cm60 50.9 50.0 0.9 1.8%48 32.5 33.1 -0.6 1.8%36 19.6 19.1 0.5 2.6%24 8.9 8.6 0.3 3.4%12 2.1 2.2 -0.1 4.5%0 0.0 0.0 0.0 0%12 2.2 2.2 0.0 0% 表4 定点指向次数 静态光斑偏移距离/cm 动态光斑偏移距离/cm1 1.56 9.452 1.45 12.083 1.43 8.134 1.52 13.745 1.48 12.34平均 1.49 9.69表3分析:在平板上安装一支激光笔,在一端竖直放置且与单摆运动面垂直的对照板,作木板上一点(非木板轴中心)高度h1测量用。同时利用公式1- cos算出木板中心的理论高度h2。比较h1和h2高度,若相等则保持水平。经测量(h1-h2)/h2最大为4.5%。表4分析:因为本实验采用直流电机,所以抖动范围较小,可以实现要求。通过脉宽调制可以控制光斑寻点的速递和抖动程度,同时在平衡位置时角度变化较大,且支架在控制单摆摆动中稍有形变,亦会对光斑的投射产生影响。此设计采用角度传感器进行检测,结合430单片机编程,对系统各电路和实际运行的测试,得出上述数据。根据上述测试数据,由此可以得出以下结论:系统精度相对来说比较高,误差很小,系统各项功能均达到设计要求;由于增加了lcd显示当前信息,显示清晰醒目,灵活性较大。综上所述,本设计达到基础部分设计要求。六、设计总结本文旨在设计并制作一个基于自由摆的平板控制系统:以msp430f149单片机为控制核心,采用角度传感器对单片机的反馈控制,融合数学公式的计算,直流电机的转动,ad采样从而实现相应功能。由于系统装置在运动过程中存在轻微形变,机械设计存在误差且直流电机和角度传感器然存在一定的精度误差,致使系统在控制平摆转动时存在相应偏差,这些不足将会是我们以后一直前进的方向。参考文献:1 沈建华.msp430系列16位超低功耗单片机原理与实践. 北京航空航天大学出版社,2008.7.2 彭军.测量电子电路设计滤波器篇.科学出版社,2004.05.3 罗杰.电子线路设计.电子工业出版社,2008.4.附:源程序主函数:#include #include #include #include#define uchar unsigned char#define uint unsigned int#include mcu_init.h#include lcd12864.h#include xifen.cunsigned char x,y; /定义参数位置 显示unsigned int x1,y1,z1,y2;int degree;/角度double m;/弧度#include adc12.h#define num_of_results 16 /进行32次测量,算平均值static uint results0num_of_results; /a0 p6.0保存adc转换结果的数组 static uint results1num_of_results; /a1 p6.1保存adc转换结果的数组 static uint results2num_of_results; /a2 p6.2保存adc转换结果的数组 unsigned long int vbufx=0;/电压扩大1000的值unsigned long int vbufy=0;unsigned long int vbufz=0;/电压扩大1000的#define delay_us(x)_delay_cycles(long)(cpu_f*(double)x/1000000.0)#define delay_ms(x)_delay_cycles(long)(cpu_f*(double)x/1000.0)struct point int x0; int y0; int d; int sj; double n;p,q;void systemtime() unsigned char i;bcsctl1&=xt2off; /打开xt2振荡器do ifg1 &= ofifg; / 清除振荡器失效标志 for (i=255;i0;i-); / 延时,等待xt2起振while (ifg1 & ofifg) != 0); / 判断xt2是否起振bcsctl2=0x88; void main( void ) msp430f149_config(); /单片机初始化 wdtctl = wdtpw + wdthold; systemtime(); p1dir=0xff;p1out=0xff; p2dir=0xff;p2out=0xff; p3dir=0xff;p3out=0xff; p4dir=0xff;p4out=0xff; /p5dir=0xff;p5out=0xff; /p6dir = 0xff;p6out = 0xff; q.x0=8000;/初始化 q.y0=0; q.d=0; q.n=0.0; q.sj=0; ini_lcd(); /初始化液晶 lcdwritestring(1,0,角度: ); lcdwritestring(2,0,x: v); lcdwritestring(3,0,y: v); /lcdwritestring(4,0,z: v); adc12(); /adc初始化 /dj_1(300); p1dir&=bit3; /p1sel|=bit0; /中断功能 p1ies|=bit3; /选择下降沿触发 p1ie|=bit3; /打开中断允许 p1ifg=0; p2dir&=bit3; /p1sel|=bit0; /中断功能 p2ies|=bit3; /选择下降沿触发 p2ie|=bit3; /打开中断允许 p2ifg=0; _eint(); while(1); /进入低功耗模式、等待中断 /* 函数名称:adc12isr 功 能:adc中断服务函数,4在这里用多次平均的 计算p6.0口的模拟电压数值 参 数:无 返回值 :无 */#pragma vector=adc_vector _interrupt void adc12isr (void) static uint index = 0; results0index = adc12mem2; / move results results1index = adc12mem3; results2index = adc12mem4; index+; if(index = num_of_results) /adc12ie&=0x10; uchar i; unsigned long sum0= 0; unsigned long sum1= 0; unsigned long sum2= 0; index = 0; for(i = 0; i = 4; /除以16 sum1= 4; sum2= 4; /if(m0)/属于这个范围 / /m1=3.1413925-m; /degree1 = (int)(m1 * 180/3.1413926); / x=2;y=4; vbufx=trans_val(sum0); x=3;y=4; vbufy=trans_val(sum1); x=4;y=4; vbufz=trans_val(sum2); vbufx*=100;/计算电压并扩大10000倍 3.3为内部参 vbufy*=100;/计算电压并扩大10000倍 3.3为内部参 vbufz*=100; x1=vbufx-16000; y1=vbufy-17200; /具体数值现场测量,有变化,角度误差 40以内,误差0) /左上 if(p.x0q.x0)/左下 k=(100*(1-cos(p.n)/(150+100*sin(p.n); zj=p.d-(int)(atan(k)*180/3.141592); p.sj=abs(zj-q.sj); dj_0(p.sj); x=4;y=1; trans_valjiaodu(p.sj); q=p; delay_ms(100); else if(p.x0q.x0)/右下 k=(100*(1-cos(p.n)/(150-100*sin(p.n); zj=p.d+(int)(atan(

温馨提示

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

评论

0/150

提交评论