基于自由摆的平板控制系统(最终),2011年全国大学生电子设计竞赛_第1页
基于自由摆的平板控制系统(最终),2011年全国大学生电子设计竞赛_第2页
基于自由摆的平板控制系统(最终),2011年全国大学生电子设计竞赛_第3页
基于自由摆的平板控制系统(最终),2011年全国大学生电子设计竞赛_第4页
基于自由摆的平板控制系统(最终),2011年全国大学生电子设计竞赛_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、2011 年全国大学生电子设计竞赛基于自由摆的平板控制系统(基于自由摆的平板控制系统(B B 题)题)【本科本科 组组】20112011 年年 9 9 月月 3 3 日日摘摘 要要 采用 ATmage16 avr 单片机作为主控芯片的基于自由摆的平板控制系统。利用高精度的电位器和单片机的片内模数转换器测量自由摆的摆动角度。ULN2003N 达林顿阵列驱动,1/16 倍速的减速步进电机控制平板的转动。能够实现根据摆杆角度平板转动相应角度、摆杆摆动一周期平板转动一圈、控制平板使得摆杆摆动时平板上的硬币不滑落、平板上的激光笔在摆杆摆动一定角度后照射到靶子中心线等要求。关键词:关键词: 自由摆 AVR

2、 单片机 电位器 减速步进电机I目录目录1 1 系统方案系统方案 .1 11.1 中央处理器的论证与选择 .11.2 电机驱动模块的论证与选择 .11.3 摆杆角度测量模块的论证与选择 .22 2 系统理论分析与计算系统理论分析与计算 .2 22.1 系统理论的分析 .22.1.1 摆杆旋转角度的获取 .22.1.2 平板旋转角度的控制 .32.1.3 步进电机转动控制 .42.2 摆杆斜角度的计算 .42.3 步进电机的计算 .42.3.1 摆杆摆动三周电机的转动 .42.3.2 摆动摆杆通过电机控制平板使硬币不从平板上掉落.42.3.3 摆杆固定时控制激光笔.42.3.4 摆杆摆动时电机控

3、制激光笔.43 3 电路与程序设计电路与程序设计 .5 53.1 电路的设计 .53.1.1 系统总体框图.53.1.2 摆杆角度检测子系统框图与电路原理图 .53.1.3 步进电机驱动子系统电路原理图.63.1.4 电源.63.2 程序的设计 .73.2.1 程序功能描述与设计思路.73.2.2 程序流程图.74 4 测试方案与测试结果测试方案与测试结果 .9 94.1 测试方案 .94.2 测试方式与仪器 .94.3 测试结果及分析 .94.3.1 测试结果(数据).94.3.2 测试分析与结论.10附录附录 1 1:电路原理图:电路原理图 .1111附录附录 2 2:完整测试数据:完整测

4、试数据 .1212附录附录 3 3:源程序:源程序 .13130基于自由摆的平板控制系统(基于自由摆的平板控制系统(B B 题)题)【本科组本科组】1 1 系统方案系统方案本系统主要由中央处理器模块、电机驱动模块、摆杆角度测量模块、电源模块组成,下面分别论证这几个模块的选择。1.11.1 中央处理器的论证与选择中央处理器的论证与选择方案一:方案一:目前应用很广泛的 51 系列单片机。该系列的单片机具有价格低廉、性能稳定、技术成熟等特点。但缺点也很明显,运行速度不是很快,而此次设计应需要较为复杂的运算,所以可能达不到要求。方案二:方案二:AVR 系列的单片机。该系列单片机较于早期的 51 单片机

5、,片内资源更丰富,接口也更强大,同时采用的是 RISC 精简指令集,在运行速度上较与 51 有绝对的优势。而价格低廉的优势也同样存在。方案三:方案三:ARM 处理器。ARM 处理器主要应用于嵌入式系统的开发,支持 Thumb(16位)/ARM(32 位)双指令集,兼容性好,大量使用寄存器执行速度快。单从性能上讲,AMR 绝对强与 AVR 与 51,但其价格昂贵,并不是很适合本次设计。因此次设计需要设计加速度传感器对于角度的计算,需要较大的计算量,且系统对于精度的要求较高,故选择方案二。1.21.2 电机驱动模块的论证与选择电机驱动模块的论证与选择方案一:方案一:L298H 桥式驱动芯片。该芯片

6、具有性能稳定、控制灵活、输出电流大等特点,可以很方便控制直流电机的转动方向。但其价格较高,外接电路较为复杂。方案二:方案二:ULN2003 达林顿阵列芯片。ULN2003 是高耐压、大电流复合晶体管阵列,工作电压高,工作电流大,灌电流可达 500mA,并且能够在关闭状态承受 50V 的电压,输出还可以在高负载电流并行运行。采用此方案不能控制直流电机的运动方向,但采用步进电机则完全可以控制,且电路极其简单,基本不需要其他外围元器件。相对于L298 来说,价格上又有绝对的优势。1方案三:方案三:步进电机细分仪。高精度的步进电机细分仪能将驱动电机的电流细分化,不仅能提高步进电机的精度,还能减噪和提高

7、电机运行时的稳定性,驱动上也较普通驱动芯方便,只需给一定频率的脉冲信号即可控制速度。但出于条件限制,我们并有足够的设备,且价格很高,最终还是没选择此种方案。综合以上三种方案,选择方案二。1.31.3 摆杆角度测量模块的论证与选择摆杆角度测量模块的论证与选择方案一:方案一:加速度传感器。采用 HQ7455-mma7455 数字三轴加速度模块。该模块使用和测试方便,可以实现基于运动的功能,也提供 I2C 和 SPI 接口,方便与 MCU 的通讯。将加速度传感器安装在摆杆的尾部,摆杆摆动时根据角速度传感器测量出来的 x 轴上重力加速度的分量计算出摆杆角度。此种方案经过实验后发现加速度传感器很不稳定,

8、首先是在静止状态下震动幅度过大,其次是在运动状态中测量出来的角度不准确,还有严重的滞后问题。基于这些原因,放弃了此种方案。方案二:方案二:电位器。随着摆杆转动,利用电位器调制出的电压信号,使用 AVR 单片机的片内 ADC 即可读取。具有稳定性好,读出的数值与摆杆角度的线性相关也较吻合。综合考虑采用方案二。2 2 系统理论分析与计算系统理论分析与计算2.12.1 系统理论的分析系统理论的分析 2.1.12.1.1 摆杆旋转角度的获取摆杆旋转角度的获取 将高精度的电位器安装在摆杆的转轴位置,电位器连接在 5V 电源上,随着摆杆的摆动,电位器上能产生 05V 的电位差,利用单片机片内的 10 位

9、ADC 即可读取。采集多组读出的 AD 值和摆杆实际角度,然后建立线性回归方程,即可获取摆杆旋转角度。作出的线性回归图形如图一所示:2y = 3.685x + 261.301002003004005006007008009001000050100150200系列1线性 (系列1)图一 摆杆角度与模数转换线性拟合图2.1.22.1.2 平板旋转角度的控制平板旋转角度的控制 根据摆杆转动角度依据题目要求,驱动减速步进电机实时转动相应角度。如图二所示:图二 平板旋转控制流程图32.1.32.1.3 步进电机转动控制步进电机转动控制此次使用的减速步进电机在速度、方向上都能精确控制。所以可根据对摆臂旋转

10、角度、平板旋转角度等数据计算后更改步进电机脉冲信号的走向控制步进电机的方向,更改步进延时控制电机的速度。2.22.2 摆杆斜角度的计算摆杆斜角度的计算 在电位器上加上 5V 的电压并把电位器固定到摆轴的定点,电位器本身固定不动、调节轴与摆杆相连,当摆杆静止在某个角度(-6060 度)时,电位器输出对应的电压值不变,采样出足够的点并分析其线性关系,利用闲心回归方程得到相应线性关系,通过不断测试数据来改进电位器输出电压与角度的关系2.32.3 步进电机的计算步进电机的计算 2.3.12.3.1 摆杆摆动三周电机的转动摆杆摆动三周电机的转动单片机首先检测摆杆是否开始摆动(松手检测) ,摆杆摆动后,当

11、检测到摆杆摆到了平衡位置时电机转动半圈,以此类推直到走完三圈。2.3.22.3.2 摆动摆杆通过电机控制平板使硬币不从平板上掉落摆动摆杆通过电机控制平板使硬币不从平板上掉落当检测到按键按下时延时一段时间以适宜操作者的反应时间,之后步进电机转动相应角度到平板到平板与摆杆垂直时电机停止转动,之后让硬币随摆杆摆动而摆动。2.3.32.3.3摆杆固定时控制激光笔摆杆固定时控制激光笔 把摆杆固定到一定角度(3060 度)位置时,通过角度计算公式:计算出 角,让电机转动 度。2.3.42.3.4 摆杆摆动时电机控制激光笔摆杆摆动时电机控制激光笔同 2.3.3,摆杆摆动到下一位置与前一角度对应的 角之差就是

12、电机要转动的角度,通过检测摆动最高点和最低点来决定电机的转动方向43 3 电路与程序设计电路与程序设计3.13.1 电路的设计电路的设计3.1.13.1.1 系统总体框图系统总体框图系统总体框图如图三所示:Atmage16单片机最小系统摆杆角度检测模块步进电机驱动模块键盘输入模块LED显示模块图三 系统总体框图3.1.23.1.2 摆杆角度检测子系统框图与电路原理图摆杆角度检测子系统框图与电路原理图1、摆杆角度检测子系统框图5摆杆转动电位器两端电位变化模数转化器转化图四 摆杆角度检测子系统框图3.1.33.1.3 步进电机驱动子系统电路原理图步进电机驱动子系统电路原理图1、步进电机驱动子系统电

13、路In11In22In33In44In55In66In77GND8COM9OUT110OUT211OUT312OUT413OUT514OUT615OUT716U?ULN200312H?Head21234H?Head412345P?Header 5VCCGNDVCC步进电机驱动模块GND100pFC?Cap图五 步进电机子系统电路3.1.43.1.4 电源电源因本系统需为单片机的 ADC 提供参考电压,所以对电压稳定的要求较高,故采用现成的+5V 电源模块,并焊接了一块有多个接口的板子,以便其他模块的供电连接。63.23.2 程序的设计程序的设计3.2.13.2.1 程序功能描述与设计思路程序功

14、能描述与设计思路1、程序功能描述根据题目要求软件部分需实现电位器端的模数转换、步进电机驱动、键盘检测、LED 灯显示、各种参数及数据的计算等。(1)模数转换实现功能:采用 AVR 单片机的片内十位 ADC。 (2)步进电机驱动:控制连接 ULN2003 驱动模块的 IO 口,输出制定频率的电位变化控制步进电机的转动速度与转动方向。(3)键盘检测:实时扫描连键盘的单片机 IO 的电位变化,读出按键。2、程序设计思路(1)模式选择:程序启动后进入模式选择状态。键盘检测输入,LED 灯显示当前状态。(2)步进电机驱动:编写电机驱动接口函数,入口参数有电机转动方向、电机转动步数、每步延时。(3)电位器

15、电压检测:利用 AVR 片内的 10 位 ADC。需要检测点位时调用进行模数转换,检测寄存器状态判断装化完成。3.2.23.2.2 程序流程图程序流程图1、主程序结构图图模式选择模式一模式二模式三模式四模式五随杆摆动平板旋转子程序一块硬币子程序8块硬币子程序定点调整激光方向子程序动态调整激光旋转子程序图六 主程序结构图72、摆杆角度检测子程序流程图ADC转化调用ADC值与摆杆角度的计算函数开始返回角度值结束图七 摆杆角度检测子程序3、电机驱动子程序流程图开始入口参数:电机方向、电机步数、每步延时判断方向调用步进电机编码1调用步进电机编码2方向1方向2根据电机步数参数送IO口编码延时结束图八 电

16、机驱动子程序流程图84 4 测试方案与测试结果测试方案与测试结果4.14.1 测试方案测试方案1、软件仿真测试2、硬件设计测试4、设计要求测试4.24.2 测试方式与仪器测试方式与仪器1、软件仿真:用 PROTEUS 软件画出系统要求的电路,测试程序是否编写正确。这一测试主要是对模式选择子系统的测试;2、硬件电路检测:使用万用表测量电路是否连接正确,米尺和三角板测量摆杆的长度和水平是否符合要求。3、设计要求测试(1)基本要求 1:调整平板至水平位置,启动程序后松手,平板旋转结束用量角器测量平板偏离初始位置角度。(2)基本要求 2:按要求操作后用三角板测量硬币偏离平板距离(3)基本要求 3:按要

17、求操作后计算硬币非保持叠放状态数量和滑落硬币数。(4)发挥部分 1:按要求操作后计算光斑离开中心线的距离。(5)发挥部分 2:按要求操作后计算光斑偏离中心线最远距离。4.34.3 测试结果及分析测试结果及分析4.3.14.3.1 测试结果测试结果( (数据数据) )表一:ADC 值与实际测量的摆杆角度(中心线为为 90):ADC5060708090100110120130140角度()463496519560575615639671704739表二:基本要求 1 平板旋转角度误差:测量次数12345678误差()00200030表三:基本要求 2 硬币偏离平板中心线距离:测量次数1234567

18、89偏移(cm)01000200表四:基本要求 3 硬币非保持叠放状态数量和滑落硬币数测量次数12345678非保持叠放状态数量02080000滑落硬币数00080000表五:发挥部分 1 光斑离开中心线的距离:测量次数12345678距离(cm)13251201表六:发挥部分 2 斑离开中心线的距离:测量次数12345678距离(cm)NNNNNNNN4.3.24.3.2 测试分析与结论测试分析与结论根据上述测试数据,由此可以得出以下结论:1、电路焊接正确。2、基本要求 1 符合设计需要3、基本要求 2 符合设计需要4、基本要求 3,如果操作时手颤抖和操作不及时能使得误差较大,但大部分时候符

19、合设计要求。5、发挥部分 1 基本能符合设计要求,误差在允许范围内6、发挥部分 2 因步进电机的转速以及电位器稳定性等问题,编写程序后光斑并不能落到靶子上。参考文献:参考文献:1 闫爱军 范海明.基于 AVR 单片机的四相步进电机驱动设计J.舰船防化-2011 年 2期2 陆广平 张美琪.基于 AVR 单片机的步进电机运动控制系统设计J.微电机-2010年 3 期10附录附录 1 1:电路原理图:电路原理图PB0 (XCK/T0)1PB1 (T1)2PB2 (AIN0/INT2)3PB3 (AIN1/OC0)4PB4 (SS)5PB5 (M OSI)6PB6 (M ISO)7PB7 (SCK)

20、8RESET9PD0 (RXD)14PD1 (TXD)15PD2 (INT0)16PD3 (INT1)17PD4 (OC1B)18PD5 (OC1A)19PD6 (ICP)20PD7 (OC2)21XTAL212XTAL113GND11PC0 (SCL)22PC1 (SDA)23PC2 (TCK)24PC3 (TM S)25PC4 (TDO)26PC5 (TDI)27PC6 (TOSC1)28PC7 (TOSC2)29AREF32AVCC30GND31PA7 (ADC7)33PA6 (ADC6)34PA5 (ADC5)35PA4 (ADC4)36PA3 (ADC3)37PA2 (ADC2)38

21、PA1 (ADC1)39PA0 (ADC0)40VCC10U2ATm ega16-16PCPA0PA1PA2PA3PA4PA5PA6PA7PC0PC1PC2PC3PC4PC5PC6PC7PB0PB1PB2PB3PB4PB5PB6PB7PD0PD1PD2PD3PD4PD5PD6PD7VCCGNDGND1243S2位位位位GNDRSTRSTPB5PB6PB7GNDVCCM OSI1VCC2NC3GND4RST5GND6SCK7GND8M ISO9GND10P2ISP100pFC1CapIn11In22In33In44In55In66In77GND8COM9OUT110OUT211OUT312OUT

22、413OUT514OUT615OUT716U1ULN200312345P1Header 5VCCGNDD1D2D3D4D5D6D7S3S4S5GNDGND12345678P312345678P4VCCGNDPD0PD1PD2PD3PD5PD6PD7S1SW-DPST1KR11KR21KR31KR41KR51KR61KR711附录附录 2 2:完整测试数据:完整测试数据表一:ADC 值与实际测量的摆杆角度(中心线为为 90):ADC5060708090100110120130140角度()463496519560575615639671704739表二:基本要求 1 平板旋转角度误差:测量次数1

23、2345678误差()00200030表三:基本要求 2 硬币偏离平板中心线距离:测量次数12345678偏移(cm)01000200表四:基本要求 3 硬币非保持叠放状态数量和滑落硬币数测量次数12345678非保持叠放状态数量02080000滑落硬币数00080000表五:发挥部分 1 光斑离开中心线的距离:测量次数12345678距离(cm)13251201表六:发挥部分 2 斑离开中心线的距离:测量次数12345678距离(cm)NNNNNNNN12附录附录 3 3:源程序:源程序/*文件名:process.c*函数功能:设计要求的五种操作模式*/#include #include #

24、include #include #define DATA_NUM10unsigned char test_adcDATA_NUM=704,707,719,768,728,736,775,783,792,799;unsigned char test_jdDATA_NUM =110,119,132,174,130,149,194,206,214,224;/*基本要求一*/检测松手/检测低谷void check_valley()unsigned int jd;while(1)jd=adc_read();if(jd570&jd590)break;return;void basic_q1()unsig

25、ned char i;/*/for(i=0;i90)fx=0;bs=(b_jd-90)/0.3516;/步进电机 每步角度else fx=1;bs=(90-b_jd)/0.3516;moto_run(fx,bs,900);moto_close();while(1);/=基本要求3=/void basic_q3()unsigned char b_jd;/单摆角度unsigned char fx;unsigned int bs;/电机转动步数unsigned int ad_top;/在顶端的 adc 值unsigned int temp;unsigned char i;unsigned int b

26、s_ext;/附加角度/松手即启动_delay_ms(100);/反应延时ad_top=adc_read();b_jd=jd_cal(ad_top);if(b_jd90)fx=0;bs=(b_jd-90)/0.3516;/步进电机 每步角度else fx=1;bs=(90-b_jd)/0.3516;bs_ext=bs*0.1;14moto_run(fx,bs,900);moto_run(fx,bs_ext,2000);check_valley();if(fx=0)fx=1;else fx=0;moto_run(fx,bs_ext,2000);moto_close();while(1);/=发挥

27、部分一=/unsigned char read_key()static unsigned char key_last=0;static unsigned char ld=0;/连带unsigned char key=0;PIND|=0b11100000;PORTD|=0b11100000;_delay_ms(10);while(PIND=0b11100000);_delay_ms(10);if(KEY_START=0)key=3;if(KEY_UP=0)key=1;if(KEY_DOWN=0)key=2;if(key=key_last)if(ld=50)return key;else retu

28、rn 0;key_last=key;ld=0;return key;void moto_adjust()unsigned int moto_b=0;unsigned char key;unsigned char adjust_ok=0;LED_PORT=0 x00;SetBit(LED_PORT,2);SetBit(LED_PORT,LED_RUN);/*lcd1602_init();lcd1602_location(0,0);lcd1602_print_string();*/校正while(1)/*lcd1602_location(1,0);lcd1602_print_string(ADC:

29、);lcd1602_print_num(adc_read(),5);*/key=read_key();switch(key)case 1:moto_run(1,1,1000);break;case 2:moto_run(0,1,1000);break;case 3:adjust_ok=1;break;if(adjust_ok)break;void advance_q1()15unsigned int adc_now,adc_1,adc_2;unsigned int jd,jd_1,jd_2;unsigned int i;unsigned int temp1,temp2,temp3;start:moto_adjust();adc_now=adc_read();if(adc_now760)jd=(int)(double)adc_now*1.1797-720.34)+8;elsejd=(int)(double)adc_now*1.1797-720

温馨提示

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

评论

0/150

提交评论