电磁控制运动装置电子比赛.docx
《电磁控制运动装置电子比赛.docx》由会员分享,可在线阅读,更多相关《电磁控制运动装置电子比赛.docx(20页珍藏版)》请在冰豆网上搜索。
![电磁控制运动装置电子比赛.docx](https://file1.bdocx.com/fileroot1/2023-2/2/f0bc9842-7e30-45d0-873c-031f79fef6a3/f0bc9842-7e30-45d0-873c-031f79fef6a31.gif)
电磁控制运动装置电子比赛
题目:
电子比赛电磁控制运动装置
参赛学校:
xxxxxxxxxxxxxx
参赛队员姓名:
x
x
x
指导教师姓名:
xxxxxxxxxxxxxxx
电磁控制运动装置
摘要:
随着我国社会经济的全面发展,电磁控制已经逐渐取代人工控制,为人们的生活提供了极大的便利。
电磁控制运动装置由单片机控制模块、角度测量模块、电磁驱动模块、显示模块、触摸屏输入模块、语音模块、声光报警模块组成。
设计受到钟摆原理启发,通过单片机STC12C5A60S2做主控模块,控制电磁铁电流强弱来实现摆杆的起摆和来回摆动,通过采集三角加速度传感器MMA8451的角度信号,以此作为反馈信号来改变电磁铁的电流大小及方向,从而实现摆杆在指定周期和指定幅度连续摆动。
同时可以实现键盘控制起停、SYN6288语音播报、数据显示、声光报警功能。
该系统的特色在于摆锤模拟自然摆,振幅控制准确,频率易调节,系统经济实用。
关键词:
STC12C5A60S2;电磁铁;角度传感器;语音播报;
一、系统设计
1.1总体方案论证与比较
电磁控制运动装置由单片机控制模块、角度测量模块、电磁驱动模块、显示模块、触摸屏输入模块、语音模块、声光报警模块组成。
系统总体设计框图如图1-1所示。
图1-1
1.2各模块方案论证与比较
1.2.1控制器模块才
方案一:
采用STC89C52单片机做控制模块。
此单片机具有指令简单,外围电路简单,硬件设计方便,但STC89C51处理速度慢,存储器空间有限。
方案二:
采用STC12C5A60S2单片机。
内部自带高达60KFLASHROM,这种工艺的存储器用户可以用电的方式瞬间擦除、改写是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,速度快8-12倍。
考虑使用彩色液晶显示,存储数据大,处理数度快等实际情况,我们选择了STC12C5A60S2作为主控芯片。
1.2.2电磁铁驱动模块
方案一:
使用L298N芯片驱动电机。
L298N芯片可以驱动两个电磁铁,并且驱动电流方向可以改变,输出电压最高可达50V,可以直接通过电源来调节输出电压;直接用单片机的I/O口提供信号;而且电路简单,使用比较方便。
方案二:
使用多个功率放大器驱动电磁铁,通过使用不同的放大电路和不同参数的器件,可以达到不同的放大要求,放大后能得到较大的功率。
但是,当点击的功率较大时运行起来会不稳定,而且电路的制作也比较复杂,电磁铁的电流方向也不能改变。
通过比较,我们采用方案一。
1.2.3显示模块
方案一:
采用LCD12864屏。
128*64点阵,可以显示数字、中英文字符和图案,但只能显示8*6个汉字,且单色,图案分辨率较低,不能进行触摸屏输入。
方案二:
采用TFT彩屏是薄膜晶体管型液晶显示屏,它的每一个象素点都是由集成在其后的薄膜晶体管来驱动的这样不仅提高了显示屏的响应速度,同时可以精确控制显示色阶,所以TFT液晶的色彩更逼真。
而且TFT触摸屏可以进行触摸屏输入,以此可以减少外围按键的设计,节约资源,界面清晰。
综合考虑,我们选择了TFTLCD彩屏显示。
1.2.4语音提示模块
方案一:
采用蜂鸣器。
优点:
直流供电,控制简单,但只能简单的发音报警。
方案二:
采用SYN6288语音芯片进行播报,为了对实时数据进行语音播报,我们选择了SYN6288语音合成芯片。
这种芯片具有清晰、自然、准确的中文语音合成效果;通过异步串口接收待合成的文本,实现文本到语音的转换。
文本识别智能、语音合成效果和智能识别效果非常优越。
还具有体积小、硬件接口简单、性价比高的优点。
内置DC-DC转换电路,无需外加负。
本设计使用SYN6288进行语音播报功能,使自动化更加贴切。
1.2.5角度测量模块
方案一:
使用电阻式角度传感器。
优点结构简单,缺点是如果没有起始脉冲专门信道,就要用自己外加初始定位传感器,同时模拟量输出,必须外接AD转换电路,会增加电路的复杂性。
方案二:
使用三角加速度传感器MMA8451。
MMA8452Q是一款具有14位分辨率的智能低功耗、三轴、电容式微机械加速度传感器。
具有丰富嵌入式功能,
可以节省整体功耗,解除主处理器不断轮询数据的负担。
该器件可被配置成利用任意组合可配置嵌入式的功能生成惯性唤醒中断信号,带有灵活的用户可编程选项,可以配置多达两个中断引脚,在静止状态保持低功耗模式。
可同时测量角度和加速度。
考虑到实际情况,我们选择方案二,用三角加速度传感器做角度测量。
1.2.6按键输入模块
方案一:
使用普通的按键做输入。
优点结构简单,缺点增加了系统的复杂性,使外设资源太多,造成系统的不稳定。
方案二:
使用TFT彩色触摸屏做触屏输入。
TFT彩色触摸屏可以实现触摸屏输入功能,使系统更加智能化,同时减少了外围电路的设计,进一步减少干扰。
触摸屏已经成为发展的趋势。
为了系统的智能化考虑,我们选择方案二,采用TFT触摸屏做触摸输入以进行电磁控制运动装置的启动、停止、幅度预置、周期预置。
1.2.7电源模块
方案一:
220V家用电压。
优点:
使电磁铁磁性更强,但安全性差。
方案二:
自制电源盒。
5~12V电源,基本满足本系统应用,安全,便利。
方案三:
采用线性电源,电磁铁的额定电压是12V,需要有保护电路。
考虑到安全方面,我们选择方案三,采用线性电源为本系统提供电源。
1.2.8系统模块的最终方案
(1)控制模块:
采用STC12C5A60S2作为CPU核心控制芯片;
(2)电磁铁驱动模块:
采用L298N芯片驱动电磁铁,实现电磁铁磁场的改变;
(3)显示模块:
采用TFTLCD彩屏显示;
(4)语音模块:
采用SYN6288语音芯片进行播报;
(5)角度测量模块:
采用三角加速度传感器MMA8451;
(6)按键输入模块:
采用TFT触摸屏同时进行显示和触摸屏按键输入。
二、理论分析与计算
2.1电磁控制运动装置理论分析与计算
2.1.1电磁控制装置支架的制作与分析
装置外形尺寸要求不能大于:
长300mm、宽300mm、高300mm,摆杆支撑轴中心点到摆杆底端的长度规定在100mm~150mm范围内。
方案一:
购买半成品再进行后期改造。
优点:
省时省力,方便快捷,做工优美。
缺点:
不利于赛事的公平公正,不利于完善个人的学习与动手能力,且造价不菲。
方案二:
手工制作。
优点:
耗时短,知道内部构造方便细微调节。
履行赛事的规章制度。
废品利用,低碳环保,物美价廉。
便于更改。
鉴于此,我们自己设计并手工制作了一套装置,采用废弃木板做整个装置的底座支架,用来安装单片机控制系统,语音播报模块,喇叭、电磁铁驱动电路、电磁铁,以及摆杆及摆杆支架。
摆杆支架采用轴承做旋转轴,以此减小转动的摩擦力,使摆杆更好控制。
同时角度传感器加装在摆杆轴上,可以更加准确的测量摆杆的偏角。
2.1.2摆杆摆动角度分析
将三角加速度MMA8451传感器,放置于摆杆轴上,跟随摆杆一起摆动,用于测量摆杆的摆动角度。
三角加速度的放置方法如图2-1所示:
a:
水平放置,±0~60°范围都有很好的分辨率
b:
一轴垂直,在0~360°都有很好的分辨率
图2-1加速度传感器放置示意图
水平放置时,在测量范围不超过±60o时,一个双轴加速度传感器可以用来测量两个方向的角度。
本系统测量只需要10~45度,所以完全够用,所以选择了水平放置三角加速度传感器。
单片机程序控制采集三角加速度传感器的偏角信号,判断摆杆摆动角度,然后控制电磁铁的电流大小,同时摆动时是加吸力还是斥力,循环判断,最终使摆杆在固定位置摆动,实现摆杆的幅度调节,实现了PID调节。
2.1.3摆杆摆动周期分析
摆杆周期要求设置为0.5s—2s,步进值为0.5s。
单片机通过PWM调制,控制电磁铁排斥的电流大小,同时采集三角加速度传感器的角度信号,通过PID调节控制从静止点开始运动,到第二次经过静止点的周期为0.5s、1s、1.5s、2s四种,周期可以预置。
精度准确。
如图2-2所示,设置摆杆摆动时的周期,然后电磁铁给摆杆的磁铁一定的排斥力,当摆杆稳定时,通过角度传感器判断最大摆角时,所用时间,如果所用时间比设置时间长,那就减小排斥力,使速度加快,如果所用时间比设置时间短,那就增大排斥力,使速度减小。
以此来实现周期的测量。
图2-2
2.1.3电磁铁驱动模块分析
电磁铁额定电压值为12V,可以采用普通的大功率三极管作为电磁铁的驱动电路,但是三极管的极性不能改变,只可以给电磁铁提供一个方向的电流,不满足电磁铁磁性必须改变的条件。
所以采用了用在电机上面的L298N作为电磁铁的驱动模块。
L298N实质就是H桥驱动电路,电路简单,驱动能力很强,经实验检测,可以实现电磁铁驱动电流方向的改变,同时单片机驱动电流的方向改变也可以改变电磁铁的吸力和排斥力的大小。
2.1.4彩色液晶和触摸屏模块分析
彩色液晶显示屏采用TFT,与普通的LCD12864液晶屏相比,不光可以实现彩色显示功能,同时可以作为触摸屏输入使用,减少了按键输入的麻烦。
使得此装置更加智能化,功能更优化。
三、系统电路与程序设计
3.1硬件电路部分
3.1.1整个装置
手工设计并自制电磁控制运动装置的硬件架构,省却了出去购买的资本,装置实物图如附图1所示。
。
3.1.2单片机最小系统
本设计是以单片机STC12C5A60S2为主控模块,控制电磁铁的电流方向和大小,使得摆杆上面的磁铁在电磁力的作用下左右摆动,同时软件检测三角加速度传感器反馈的角度信号,通过PWM调制实现电磁铁通过电流的大小,进而改变电磁铁的吸力和排斥力,从而改变摆杆摆动的幅度和周期。
程序采用PID算法,实现闭环控制。
实时性非常高。
单片机最小系统电路原理图如附图2所示。
3.1.3电磁铁驱动模块电路
我们采用L298N芯片对电磁铁进行驱动,用单片机的P1.0、P1.1口作为控制信号的输出端,通过输出脉冲信号控制电磁铁的电流的方向和大小。
其电路图如附图3所示。
3.1.4角度传感器模块电路
将角度传感器固定于轴上,使得角度传感器和摆杆一起摆动,单片机实时采集角度传感器的信号,以此作为检测摆杆摆动幅度和周期的标准三角加速度传感器MMA8451与单片机的连接电路图见附图4。
3.1.5TFT彩色液晶和触摸屏电路
本设计采用TFT彩色液晶和触摸屏电路,同时用于显示和触摸屏输入,改善了一般设计中同时使用LCD12864和按键作为输入的浪费资源的状况。
使得系统更加时尚和智能化。
TFT彩色液晶屏与单片机的连接电路如附图5所示。
3.2系统程序设计
根据设计要求,本设计软件部分实现了以STC12C5A60S2为主控单元,通过PWM输出脉宽调制信号,控制电磁铁的电流的大小,同时采集三角加速度传感器的角度信号,进而控制摆杆的摆动幅度和周期。
同时控制电磁铁驱动电路,实现电磁铁电流的流向,控制电磁铁磁力的方向,是吸力还是斥力。
单片机程序PID调节,实现了摆杆的幅度和周期的测量。
程序流程图如附图6。
3.2.2部分程序
如附件1。
四、系统测试方案与测试条件
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
测试包括摆杆的启动时间测试和停止时间测试、摆杆在设置固定角度30度角时摆杆实际摆角幅度测试、摆杆在设置固定周期1s时实际周期的测试和通过触摸屏设置摆角幅度后,摆角实际摆动幅度。
4.1使用的仪器仪表
量角器、秒表
4.2系统调试
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试。
4.3测试数据
(1)响应时间的数据分析
测试条件是:
按下启动键,摆杆从静止点开始,到摆杆固定摆动稳定四个周期的时间。
表4-1所示。
响应时间(s)
7s
9s
10s
8s
9s
7s
9s
10s
表4-1响应时间测试
由此计算得响应时间最大值10s,平均值为:
8.6s,完全满足系统要求。
(2)停止时间测试
测试条件:
按下停止键,摆杆响应停止命令,到完全停止,所用时间。
测试结果如表4-2所示。
停止时间(s)
7s
6s
5s
8s
4s
6s
7s
5s
表4-2停止时间测试
由此计算得停止时间最大值8s,平均值为:
6s,完全满足系统要求。
(3)绝对误差测试
测试条件:
摆杆在设定固定角度30度角时,测试结果如表4-3所示。
绝对误差(度)
1
2
-2
3
-3
2
1
-1
表4-3停止时间测试
由此计算得绝对误差最大3度,平均绝对误差为:
0.375度,完全满足系统要求。
(4)周期测试
测试条件:
摆杆在设定固定周期1s时,测试结果如表4-4所示。
周期(s)
1.1
1.2
0.9
0.8
1.3
0.9
1.0
0.7
表4-2停止时间测试
由此计算得周期平均值为:
0.9875s,完全满足系统要求。
(5)预置幅值和周期测试
测试条件:
通过触摸屏预置摆杆幅值和周期,测试结果如表4-5所示。
项目/次数
摆角绝对误差值
周期误差
响应时间
停止时间s
声、光提示
第一次
1.2°
0.06s
6s
4s
有
第二次
2.1°
0.07s
6s
5s
有
第三次
1.5°
0.03s
7s
3s
有
第三次
2.1°
0.07s
8s
3s
有
第四次
2.3°
0.08s
7s
4s
有
第五次
0.9°
0.05s
8s
5s
有
表4-5预置幅值和周期测试
由此可知,系统完全满足系统要求。
系统实现功能有:
(1)摆杆摆角幅度能在10°~45°范围内预置,预置步进值为5°,摆角幅度绝对误差值≤3°,响应时间≤10s。
(2)摆杆的周期能在0.5s~2s范围内预置,预置步进值0.5s,周期绝对误差值≤0.1s,响应时间≤10s。
(3)摆杆摆角幅度和周期在上述范围内可同时预置,由静止点开始摆动,摆角幅度值和周期相对误差要求均和发挥部分中的
(1)、
(2)相同。
当摆杆稳定运行20秒后发出声、光提示,并在5s内平稳停在静止点上。
4.4测试结果与分析
经过对系统的严格测试,本系统能够实现题目所要求的基本功能,达到了设计和制作要求。
五、体会总结
首先要感谢全国大学生电子设计大赛组委会为我们提供这次施展才华的机会,同时要深深感谢各位辅导老师在电子设计大赛期间给予我们小组的帮助。
通过各种方案的讨论和尝试,在经过多次的整体软硬件结合调试,不断地对系统进行优化,最终摆杆能按照题目的要求进行摆动、定位摆动、声、光提示。
比赛期间各位辅导老师给予我们极大的帮助和支持,在这里我们小组三个成员要向辅导老师致以我们深深的感激和感谢之情,同时对在比赛期间给予我们帮助的所有老师表示感谢!
最后再次感谢大学生电子设计大赛组委会和我们的辅导老师!
参考文献
[1]郭惠,吴迅.单片机C语言程序设计完全自学手册[M].电子工业出版社。
[2]王东锋,王会良,董冠强.单片机C语言应用100例[M].电子工业出版社。
[3]李英姿《电磁铁技术参数》机械工业出版社。
[4]王为青,邱文勋著.《51单片机应用开发案例精选》.北京:
人民邮电出版社。
[5]华成英童诗白模拟电子技术基础第四版高等教育出版社。
附图1:
实物图
附图2:
整体电路原理图
附图3:
电磁铁驱动电路
附图4:
角度传感器与单片机连接图
附图5:
TFT彩屏显示
附图6:
系统整体流程图
附件1:
部分程序如下:
//================================================================================================
//函数名称:
主函数
//实现功能:
控制TFT实现汉字,字符显示.
//参数:
无
//返回值:
无
//================================================================================================
voidinit_interface()
{
CLR_Screen(Blue);//用背景色清屏
LCD_PutString(20,16,"电磁控制运动装置为你展示",White,Blue);
LCD_PutString(20,36,"最大摆角:
",White,Blue);
LCD_PutString(20,56,"实际倾斜角:
",White,Blue);
LCD_PutString(20,76,"实时倾斜角:
",White,Blue);
LCD_PutChar(108,76,0x30+fuzhi/10,Yellow,Blue);
LCD_PutChar(116,76,0x30+fuzhi%10,Yellow,Blue);
Show_RGB(20,110,260,300,Yellow);//Enter
LCD_PutString(35,271,"立即启动",Black,Yellow);
Show_RGB(130,220,260,300,Red);//Enter
LCD_PutString(145,271,"立即停止",Black,Red);
Show_RGB(20,110,170,205,Magenta);//Enter
LCD_PutString(35,180,"周期值加",Black,Magenta);
Show_RGB(130,220,170,205,Magenta);//Enter
LCD_PutString(145,180,"周期值减",Black,Magenta);
Show_RGB(20,110,215,250,Magenta);//Enter
LCD_PutString(35,225,"幅度值加",Black,Magenta);
Show_RGB(130,220,215,250,Magenta);//Enter
LCD_PutString(145,225,"幅度值减",Black,Magenta);
/*Show_RGB(20,110,110,150,Magenta);//Enter
LCD_PutString(35,121,"幅度值加",Black,Magenta);
Show_RGB(130,220,110,150,Magenta);//Enter
LCD_PutString(145,121,"幅度值减",Black,Magenta);*/
}
voidjiaodu()
{
x=MMA845x_readbyte(OUT_X_MSB_REG);
LCD_PutChar(108,56,0x30+xv/10,Red,Blue);
LCD_PutChar(116,56,0x30+xv%10,Red,Blue);
}
voidjudement()
{
if(x>127)
{
xv=~x+1;
if(qidong==1)
{
qidong=2;
if(xv<=dian_qi)PWM_zhi_she(3);
}
if(jiyi[0]>xv)
{
LCD_PutChar(108,36,0x30+jiyi[0]/10,Red,Blue);
LCD_PutChar(116,36,0x30+jiyi[0]%10,Red,Blue);
}
else
{
jiyi[0]=xv;
}
}
else//you
{
jiyi[0]=0;
xv=x;
if(qidong==2)
{
qidong=1;
if(xv<=dian_qi)PWM_zhi_she(3);
}
}
if(xv>=dian_ting)PWM_zhi_she(0);
}
voidmain()
{
start_7843();//初始化触摸控制IC
TFT_Initial();//初始化LCD
init_interface();
/********************************************************************/
MMA845x_init();//初始化MMA845x
/********************************************************************/
UART_InitBaud();
Speech(init_yin,24);
delay_ms(500);
/*******************************************************************/
init_int();
dian_qi=6,dian_ting=15;
/******************************************************************/
while
(1)
{
jiaodu();
judement();
if(Getpix()==1)keyscan();
if(qidong==4)//动起来
{
flag_PWM=1;
if((xv>=0)&&(xv<=8))
{
PWM_zhi_she(10);
}
delay_ms(300);
qidong=1;
}
if(qidong==5)//吸住
{
flag_PWM=0;
PWM_zhi_she
(2);
}
}
}