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

下载本文档

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

文档简介

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

2、论证与选择11.3 摆杆角度测量模块的论证与选择22系统理论分析与计算22.1 系统理论的分析22.1.1 摆杆旋转角度的获取22.1.2 平板旋转角度的控制32.1.3 步进电机转动控制42.2 摆杆斜角度的计算42.3步进电机的计算42.3.1 摆杆摆动三周电机的转动4摆动摆杆通过电机控制平板使硬币不从平板上掉落4摆杆固定时控制激光笔4摆杆摆动时电机控制激光笔43电路与程序设计53.1电路的设计5系统总体框图53.1.2 摆杆角度检测子系统框图与电路原理图5步进电机驱动子系统电路原理图6电源63.2程序的设计7程序功能描述与设计思路7程序流程图74测试方案与测试结果94.1测试方案94.2

3、 测试方式与仪器94.3 测试结果及分析9测试结果(数据)9测试分析与结论10附录1:电路原理图11附录2:完整测试数据12附录3:源程序13基于自由摆的平板控制系统(B题)【本科组】1系统方案本系统主要由中央处理器模块、电机驱动模块、摆杆角度测量模块、电源模块组成,下面分别论证这几个模块的选择。1.1 中央处理器的论证与选择方案一:目前应用很广泛的51系列单片机。该系列的单片机具有价格低廉、性能稳定、技术成熟等特点。但缺点也很明显,运行速度不是很快,而此次设计应需要较为复杂的运算,所以可能达不到要求。方案二:AVR系列的单片机。该系列单片机较于早期的51单片机,片内资源更丰富,接口也更强大,

4、同时采用的是RISC精简指令集,在运行速度上较与51有绝对的优势。而价格低廉的优势也同样存在。方案三:ARM处理器。ARM处理器主要应用于嵌入式系统的开发,支持Thumb(16位)/ARM(32位)双指令集,兼容性好,大量使用寄存器执行速度快。单从性能上讲,AMR绝对强与AVR与51,但其价格昂贵,并不是很适合本次设计。因此次设计需要设计加速度传感器对于角度的计算,需要较大的计算量,且系统对于精度的要求较高,故选择方案二。1.2 电机驱动模块的论证与选择方案一:L298H桥式驱动芯片。该芯片具有性能稳定、控制灵活、输出电流大等特点,可以很方便控制直流电机的转动方向。但其价格较高,外接电路较为复

5、杂。方案二:ULN2003达林顿阵列芯片。ULN2003 是高耐压、大电流复合晶体管阵列,工作电压高,工作电流大,灌电流可达500mA,并且能够在关闭状态承受50V 的电压,输出还可以在高负载电流并行运行。采用此方案不能控制直流电机的运动方向,但采用步进电机则完全可以控制,且电路极其简单,基本不需要其他外围元器件。相对于L298来说,价格上又有绝对的优势。方案三:步进电机细分仪。高精度的步进电机细分仪能将驱动电机的电流细分化,不仅能提高步进电机的精度,还能减噪和提高电机运行时的稳定性,驱动上也较普通驱动芯方便,只需给一定频率的脉冲信号即可控制速度。但出于条件限制,我们并有足够的设备,且价格很高

6、,最终还是没选择此种方案。综合以上三种方案,选择方案二。1.3 摆杆角度测量模块的论证与选择方案一:加速度传感器。采用HQ7455-mma7455数字三轴加速度模块。该模块使用和测试方便,可以实现基于运动的功能,也提供I2C和SPI接口,方便与MCU的通讯。将加速度传感器安装在摆杆的尾部,摆杆摆动时根据角速度传感器测量出来的x轴上重力加速度的分量计算出摆杆角度。此种方案经过实验后发现加速度传感器很不稳定,首先是在静止状态下震动幅度过大,其次是在运动状态中测量出来的角度不准确,还有严重的滞后问题。基于这些原因,放弃了此种方案。方案二:电位器。随着摆杆转动,利用电位器调制出的电压信号,使用AVR单

7、片机的片内ADC即可读取。具有稳定性好,读出的数值与摆杆角度的线性相关也较吻合。综合考虑采用方案二。2系统理论分析与计算2.1 系统理论的分析 2.1.1 摆杆旋转角度的获取 将高精度的电位器安装在摆杆的转轴位置,电位器连接在5V电源上,随着摆杆的摆动,电位器上能产生05V的电位差,利用单片机片内的10位ADC即可读取。采集多组读出的AD值和摆杆实际角度,然后建立线性回归方程,即可获取摆杆旋转角度。作出的线性回归图形如图一所示:图一 摆杆角度与模数转换线性拟合图2.1.2 平板旋转角度的控制 根据摆杆转动角度依据题目要求,驱动减速步进电机实时转动相应角度。如图二所示:图二 平板旋转控制流程图2

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

9、杆摆动后,当检测到摆杆摆到了平衡位置时电机转动半圈,以此类推直到走完三圈。摆动摆杆通过电机控制平板使硬币不从平板上掉落当检测到按键按下时延时一段时间以适宜操作者的反应时间,之后步进电机转动相应角度到平板到平板与摆杆垂直时电机停止转动,之后让硬币随摆杆摆动而摆动。摆杆固定时控制激光笔 把摆杆固定到一定角度(3060度)位置时,通过角度计算公式:计算出角,让电机转动度。2.3.4摆杆摆动时电机控制激光笔同2.3.3,摆杆摆动到下一位置与前一角度对应的角之差就是电机要转动的角度,通过检测摆动最高点和最低点来决定电机的转动方向3电路与程序设计3.1电路的设计3.1.1系统总体框图系统总体框图如图三所示

10、:图三 系统总体框图3.1.2 摆杆角度检测子系统框图与电路原理图1、摆杆角度检测子系统框图图四 摆杆角度检测子系统框图步进电机驱动子系统电路原理图1、步进电机驱动子系统电路图五 步进电机子系统电路3.1.4电源因本系统需为单片机的ADC提供参考电压,所以对电压稳定的要求较高,故采用现成的+5V电源模块,并焊接了一块有多个接口的板子,以便其他模块的供电连接。3.2程序的设计3.2.1程序功能描述与设计思路1、程序功能描述根据题目要求软件部分需实现电位器端的模数转换、步进电机驱动、键盘检测、LED灯显示、各种参数及数据的计算等。(1)模数转换实现功能:采用AVR单片机的片内十位ADC。 (2)步

11、进电机驱动:控制连接ULN2003驱动模块的IO口,输出制定频率的电位变化控制步进电机的转动速度与转动方向。(3)键盘检测:实时扫描连键盘的单片机IO的电位变化,读出按键。2、程序设计思路(1)模式选择:程序启动后进入模式选择状态。键盘检测输入,LED灯显示当前状态。(2)步进电机驱动:编写电机驱动接口函数,入口参数有电机转动方向、电机转动步数、每步延时。(3)电位器电压检测:利用AVR片内的10位ADC。需要检测点位时调用进行模数转换,检测寄存器状态判断装化完成。3.2.2程序流程图1、主程序结构图图图六 主程序结构图2、摆杆角度检测子程序流程图图七 摆杆角度检测子程序3、电机驱动子程序流程

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

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

14、45678非保持叠放状态数量02080000滑落硬币数00080000表五:发挥部分1光斑离开中心线的距离:测量次数12345678距离(cm)13251201表六:发挥部分2斑离开中心线的距离:测量次数12345678距离(cm)NNNNNNNN4.3.2测试分析与结论根据上述测试数据,由此可以得出以下结论:1、电路焊接正确。2、基本要求1符合设计需要3、基本要求2符合设计需要4、基本要求3,如果操作时手颤抖和操作不及时能使得误差较大,但大部分时候符合设计要求。5、发挥部分1基本能符合设计要求,误差在允许范围内6、发挥部分2因步进电机的转速以及电位器稳定性等问题,编写程序后光斑并不能落到靶子

15、上。参考文献:1 闫爱军 范海明.基于AVR单片机的四相步进电机驱动设计J.舰船防化-2011年2期2 陆广平 张美琪.基于AVR单片机的步进电机运动控制系统设计J.微电机-2010年3期附录1:电路原理图附录2:完整测试数据表一:ADC值与实际测量的摆杆角度(中心线为为90°):ADC5060708090100110120130140角度(°)463496519560575615639671704739表二:基本要求1平板旋转角度误差:测量次数12345678误差(°)00200030表三:基本要求2硬币偏离平板中心线距离:测量次数12345678偏移(cm)0

16、1000200表四:基本要求3硬币非保持叠放状态数量和滑落硬币数测量次数12345678非保持叠放状态数量02080000滑落硬币数00080000表五:发挥部分1光斑离开中心线的距离:测量次数12345678距离(cm)13251201表六:发挥部分2斑离开中心线的距离:测量次数12345678距离(cm)NNNNNNNN附录3:源程序/*文件名:process.c*函数功能:设计要求的五种操作模式*/#include <avr/io.h>#include <stdlib.h>#include <math.h>#include <avr/pgmspa

17、ce.h>#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(jd>570&&jd<590)break;return;void basic_q

18、1()unsigned char i;/*/for(i=0;i<3;i+)check_valley();/moto_run(0,512,1000);/半圈check_valley();/检测低谷moto_run(0,512,1000);/*以上旋转三周*/moto_run(0,20,1000);while(1);/*/*=基本要求二=*/角度计算unsigned char jd_cal(unsigned int ad_z)return (0.2698*ad_z-69.962)+5;void moto_cal(unsigned char *fx,unsigned char *jd)unsi

19、gned char temp;temp=adc_read();unsigned char get_moto_jd()unsigned char temp;unsigned int moto_jd;temp=adc_read();moto_jd=(temp-100)*5;return moto_jd;void basic_q2()unsigned char b_jd;/单摆角度unsigned char fx;unsigned int bs;/电机转动步数unsigned int ad_top;/在顶端的adc值unsigned int temp;unsigned char i;/松手即启动_d

20、elay_ms(100);/反应延时ad_top=adc_read();b_jd=jd_cal(ad_top);if(b_jd>90)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值unsign

21、ed int temp;unsigned char i;unsigned int bs_ext;/附加角度/松手即启动_delay_ms(100);/反应延时ad_top=adc_read();b_jd=jd_cal(ad_top);if(b_jd>90)fx=0;bs=(b_jd-90)/0.3516;/步进电机 每步角度else fx=1;bs=(90-b_jd)/0.3516;bs_ext=bs*0.1;moto_run(fx,bs,900);moto_run(fx,bs_ext,2000);check_valley();if(fx=0)fx=1;else fx=0;moto_ru

22、n(fx,bs_ext,2000);moto_close();while(1);/=发挥部分一=/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;i

23、f(key=key_last)if(ld<50)ld+;if(ld>=50)return key;else return 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=0x00;SetBit(LED_PORT,2);SetBit(LED_PORT,LED_RUN);/*lcd1602_init();lcd1602_location(0,0);lcd1602_print_string(

24、"<Adjust>");*/校正while(1)/*lcd1602_location(1,0);lcd1602_print_string("ADC:");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()unsigned int

25、 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_now>760)jd=(int)(double)adc_now*1.1797-720.34)+8;elsejd=(int)(double)adc_now*1.1797-720.34)+5;for(i=0;i<DATA_NUM;i+)if(adc_now=test_adci)jd=test_jdi;moto_r

26、un(1,jd,2000);SetBit(LED_PORT,LED_OVER);/while(1);moto_close();read_key();goto start;/=发挥部分2=/unsigned int a_moto_x; void a_moto_init()a_moto_x=(int)(double)adc_read()*1.1797);void a_moto_move_to_x(unsigned int x)unsigned int a_moto_d;unsigned char fx;if(a_moto_x>x)fx=1;a_moto_d=a_moto_x-x;else if(a_moto_x<x)fx=0;a_moto_d=x-a_moto_x;else if(a_moto_x=x)a_moto_d=0;moto_run(fx,a_moto_d,10

温馨提示

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

评论

0/150

提交评论