欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于自由摆的平板控制系统—毕业设计论文.doc

    • 资源ID:27071959       资源大小:453KB        全文页数:17页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于自由摆的平板控制系统—毕业设计论文.doc

    基于自由摆的平板控制系统摘要本系统以由msp430F149单片机作为中心控制系统,由角度监测模块、电机驱动模块、液晶显示模块、键盘模块和电源电路组成。角度监测模块采用三轴加速度传感器mma7361,实时测量平板与水平面的角度,通过屡次采集取平均值的方法基于倾角转换公式将所采样的数据转换成角度反响给单片机,从而控制步进电机转动相应的角度,使物体能始终保持平衡,并通过液晶实时显示所转过的角度。电机驱动局部使用SM-202A细分驱动驱动步进电机精确地控制平板转动相应角度。最后通过传感器采集的角度实时控制电机旋转相应角度以使激光笔始终照射在水平线附近。本操作简单,控制界面直观、简洁,经检验系统性能指标到达了设计要求,工作可靠,功耗低,具有良好的人机交互性能。关键词:平衡控制、msp430单片机、角度传感器、步进电机目录1、引言.12、系统方案. . . . .1控制器模块的论证与选择1角度检测模块的论证与选择1电机的论证与选择12.4显示模块的论证与选择23、理论分析与设计. . . . . . . . . . . . . . . . . . . . . 2摆杆摆一个周期平板转一周2硬币不滑落的建模与计算2使激光笔始终照射在中心线附近的建模与计算34、电路与程序设计. . . . . . . . . . . . . . . . . . . . . .3模块设计3.1系统总体框图3角度检测模块设计4电机驱动模块设计4程序设计5.1程序功能描述与设计思路5.2程序流程图55、测试方案与测试结果. . . . . . . . . . . . . . . . . . . .65.1测试方案6硬件测试6软件仿真测试6硬件软件联调6测试条件与仪器6测试结果及分析66、设计总结. . . . . . . . . . . . . . . . . . . . . . . . .8附录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9一、引言随着单片机的不断普及,其与传感器的结合也在相关领域应用得越来越广泛,尤其在自动控制领域更是得到了管广泛应用,本系统正是在这样的背景下应用单片机与传感器进行设计制作。二、系统方案2.1控制器模块的论证与选择根据设计要求,控制器主要用于计算平板调整角度、控制电机工作模式、显示摆杆与垂直面夹角及系统完成激光笔照射在中心线上时的声光提示。方案一:采用STC89C51作为系统控制器。它的技术成熟,本钱低,引脚较少,硬件布局较简单。STC89C51为八位单片机,数据转换速度慢,且实时性不好,复杂的控制算法难以实现,不利于高精度的控制。方案二:采用TI公司的MSP430f149单片机作为控制器。MSP430系列单片机是16位、RISC、超低功耗的处理器。其超低功耗的架构加上灵活的时钟系统可延长电池的使用寿命;处理能力强,运算速度快,其内部集成了12的AD,并采用了DMA模块,因此其数据传输速度快;且本钱低。综合考虑以上两种方案,采用方案二。2.2度检测模块的论证与选择角度检测模块检测平板与水平方向的夹角以及检测摆杆与垂直方向的夹角。方案一:采用mma7361检测。mma7361是一款低功耗、低本钱、低姿态微型电容式三轴加速度传感器,具有信号调理,温度补偿,自我测试,MMA7361L包括一个休眠模式,可使用电池供电。方案二:采用AS5040检测。AS5040是由AMSCO公司生产的一种非接触、高分辨力编码、在0º360º范围内进行角度测量的传感器芯片。但为了测量角度,需要使用两极磁铁,在芯片的中心旋转。这样使得系统更加复杂,且加大了电机负载。综合以上两种方案,考虑本钱及功耗等因素,选择方案一。2.3制电机的论证与选择方案一:采用减速电机。减速电机结构紧凑,体积小,承受过载能力强,且能耗低,性能优越,效率高,振动小。但由于机械效率影响,减速电机输出扭矩的增加和电机功率的增加不成正比,易出现死区现象,不利于控制。方案二:使用步进电机。步进电机的旋转角度正比于脉冲数,精度高且不累计误差,具有较好的位置精度和运动的重复性。另外步进电机的显著特点就是快速启停能力和转换精度高,正反转控制灵活。综合以上两种方案,摆杆在运动过程中需要进行实时检测平板和摆杆的位置,且需要系统启停反响快,应选择方案二。2.4显示模块的论证与选择方案一:使用数码管显示。数码管电压低、寿命长、对外界环境要求低,易于维护,同时它是采用BCD编码显示数字,亮度高。但是其耗能大,电路复杂,占用资源较多,且显示信息少,精度低。方案二:使用液晶屏显示。LCD具有轻薄短小、低耗电量、影像稳定不闪烁等优势,可视面积大,画面效果好,显示信息量大,分辨率高且抗干扰性强;外围电路少,使用方便。综合考虑以上两种方案,选择采用方案二。三、理论分析与设计3.1摆杆一个周期平板转一周根据摆杆摆动周期公式,可近似求出摆杆摆动一个周期所需的时间。利用所算出的时间控制电机在这一时间段内旋转360°,在允许误差范围内该方案可满足题目要求。3.2硬币不滑落的建模与计算图1 硬币不滑落时的物理模型如图1所示,设当摆杆倾角为时,平台与水平方向的夹角为。对硬币进行受力分析,其合力为自身重力与离心力这两个力的合力。假设硬币不掉,那么平台平面与合力方向垂直。由此可建立平面几何模型,求得与的关系。具体计算如下:在ABC中,利用余弦定理求得。其中,。再利用正弦定理得。由于平台转动角后水平,所以硬币不滑落的平台旋转角度为度。3.3使激光笔始终照射在中心线附近的建模与计算图2 激光照射系统模型如图2,理论上系统在没有对平板做任何处理时,平板垂直于摆杆,且与水平面成角,在根本要求局部中,只要调节平板始终与水平面夹角为0°;要使激光笔能照射中心线,那么平板的转动角即。在摆杆靠近靶子一侧表达式为:;在摆杆远离靶子一侧有表达式:通过该关系表达式可确定平板在不同时刻相对摆杆所需摆过的角度,经过msp430单片机计算控制可使平板上的激光笔始终照射在中心线附近。四、电路与程序设计4.1模块设计系统总体框图系统总体框图如图3:图3 系统总体框图4.角度检测模块设计电路如图4所示。我们选用三轴加速度传感器mma7361测量平板转动角度。通过使用MSP430内部12位ADC采样X、Y、Z输出的模拟量,并利用三轴建模可以计算出平板的倾角。图4 角度模块电路图4.1.3电机驱动模块设计图5 电机驱动模块程序设计程序功能描述与设计思路本系统主要通过430单片机来控制电路的键盘输入,平板状态控制的算法和显示操作等功能,通过三轴加速度传感器模块检测平板与水平面的夹角。细分驱动SM202-A驱动步进电机实现平板的旋转。通过键盘输入系统的工作模式,并通过LCD直观地显示相关参数。流程图图6 程序流程图五、测试方案与测试结果:硬件测试硬件测试时,可先用万用表检测印制板及焊接的质量是否符合要求,有无虚焊及线路间有无短路、断路,检查无误后,可通电检测电源局部是否正常工作。软件仿真测试软件编译和仿真调试是在IAR编译器下进行,源程序编译及仿真调试应分段或子程序为单位逐个进行,最后结合硬件实时调节。子程序测试包括:1显示程序;2声光提示程序;3键盘程序;4角度传感器模块。硬件软件联调根本要求的测试第一次,我们设置平板的摆动为模式1,要求平板能随着摆杆的摆动而旋转35周,平板旋转一周偏差不大于45°。第二次,设置平板的工作为模式2,在平板上粘贴一张画有一组间距为1cm平行线的打印纸,将摆杆从45°处放下,5周期后,控制摆杆缓慢停下,这时硬币滑离平板中心距离0cm。第三次,让摆杆从60°处放下,5周期后,控制摆杆缓缓停下,此时接触平板的硬币数为1。1、测试条件:检查电路板,保证电路无虚焊及线路间无短路、断路。2、测试仪器如表1:表1 测试仪器序号类型1直流稳压稳流电源2数字万用表3量角器4卷尺5秒表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位超低功耗单片机原理与实践. 北京航空航天大学出版社,2021.7.2滤波器篇.科学出版社,2004.05.3 罗杰.电子线路设计.电子工业出版社,2021.4.附:源程序主函数:#include <msp430x14x.h>#include <math.h>#include <stdlib.h>#include<stdio.h>#define uchar unsigned char#define uint unsigned int#include "mcu_init.h"#include "lcd12864.h"#include "xifen.c"unsigned 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;i>0;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在这里用屡次平均的 参 数:无 返回值 :无 */#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 < Num_of_Results; i+) sum0 += results0i; sum1 += results1i; sum2 += results2i; sum0>>= 4; /除以16 sum1>>= 4; sum2>>= 4; /if(m<=0) /具体每个不同传感器,需现场测量0°90°-90°电压后写入新值 / /degree1 = -(int)(m * 180/3.1413926)+180);/显示由弧度转化的角度 / /else if(m>0)/属于这个范围 / /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); VBufy*=100;/计算电压并扩大10000倍 3.3为内部参 VBufz*=100; x1=VBufx-16000; y1=VBufy-17200; /具体数值现场测量,有变化,角度误差 40°以内,误差<1° y2=abs(y1); /z1=VBufz-16500; m=atan2(y2,x1); /g由Yg和Zg合成,所以用反正切函数 degree = (int)(m * 180/3.141592); x=1;y=4; Trans_valjiaodu(degree); p.x0=x1; p.y0=y1; p.d=degree; p.n=m; double k; int zj; if(p.y0>0) /左上 if(p.x0<q.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_1(p.sj); x=4;y=1; Trans_valjiaodu(p.sj); q=p; delay_ms(100); else if(p.x0>q.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.x0<q.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.x0>q.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_1(p.sj); x=4;y=1; Trans_valjiaodu(p.sj); q=p; delay_ms(100); /if() /* if() double k,n; k=(100*(1-cos(m)/(150+100*sin(m);/wangbinjiang /k=(100*(1-cos(m)/(150-100*sin(m);/wangsushe n=atan(k); degree2=(int)(n*180/3.1415); degree=degree1-degree2; degree4=degree-degree3; dj_1(degree4); degree3=degree4; /degree=degree1+degree2;/wangsushe /dj_0(degree);/wangsushe delay_ms(10000);*/ /*void port1() P1DIR&=BIT3; /P1SEL|=BIT0; /中断功能 P1IES|=BIT3; /选择下降沿触发 P1IE|=BIT3; /翻开中断允许 P1IFG=0; /P1IES的切换可能使P1IFG置位,需去除*/#pragma vector=PORT1_VECTOR_interrupt void Port(void) int jd; jd=(int)degree; dj_1(jd); delay_ms(6000); P5DIR=0XFF; P5OUT|=BIT0; / delay_ms(); dj_0(jd); P1IE&=BIT3; P1IFG=0; #pragma vector=PORT2_VECTOR_interrupt void Port2(void) djz(); P2IE&=BIT3; P2IFG=0;

    注意事项

    本文(基于自由摆的平板控制系统—毕业设计论文.doc)为本站会员(e****s)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开