论文aaaWord下载.docx
《论文aaaWord下载.docx》由会员分享,可在线阅读,更多相关《论文aaaWord下载.docx(20页珍藏版)》请在冰点文库上搜索。
![论文aaaWord下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/3/2a1d62f3-8abe-40b9-bb85-c5d6fa5ee6b7/2a1d62f3-8abe-40b9-bb85-c5d6fa5ee6b71.gif)
根据题意,可以选择步进电机和直流电动机。
直流电动机
直流电动机启动、制动速度快,由其构成的随动系统也比较容易达到控制目标。
但是,对于本题目,如果采用直流电机,就需要设计制动电路以控制其相应过程,并且为了实现平板状态控制,还需增加光电编码器等传感器,作为直流电动机的位置、速度反馈。
步进电机
步进电机通过步距控制,可以实现旋转角度和旋转速度的控制。
其开环控制,就可以达到比较高的控制精度。
同时,采用合适的接口电路,可以方便的与微处理器连接。
其缺点是启动、制动的相应速度不及直流电动机。
综上,本设计采用步进电机。
由于采用步进电机,平板状态与步进电机步距角相关。
故本设计没有设计平板状态环节。
二、系统结构
根据题目要求和上述方案论证,本设计的系统结构如图1所示。
图1系统结构图
根据题目的设计要求以及系统结构图,我们把设计分为几个相对独立的部分,这样降低了设计的复杂度,使得整体条理更为清晰。
这几个部分是:
摆架框架的结构、主控单元、数据采集部分、按键控制单元和软件单元等。
2.1摆架框架的结构
摆架框架包括起支撑作用的摆架座、可以自由摆动的摆杆、轴承及弹性元件等。
在设计框架的过程中,为了保证框架的稳定,要选择适当的支撑方式并确定框架的结构形式。
选择的材料要保证摆架有足够的刚度,同时,为保证控制方便并且有较高的灵敏度,要求摆杆重量适当。
摆杆的一端通过转轴固定在支架上,并将编码器固定,用来完成数据采集。
另一端固定安装一台步进电机,平板固定在电机轴上。
2.2主控单元
本次电子设计大赛用的是一种基于LPC1114为核心的自由摆的平衡控制系统的设计。
主控芯片采用主频为50MHZ的LPC1114。
它具有以下主要特性:
32KBFLASHMemory(片内);
8KBSRAM(片内);
供电直接由外部5V稳压电源来或USB提供;
I2C接口(AT24C16及LM75);
AD(热敏电阻测温);
1个三线RS232串行口;
2个按键,8个LED灯.2个功能按键-Reset和BOOT按键;
42个GPIO,带有可配置的上拉/下拉变阻器和可配置的开漏极操作模式;
4个通用的计数/定时器,共有四个可捕获的输入端和13个与输入端相匹配的输出端;
18针LCD接口,液晶显示(LCD12232,TFTLCD320X240彩屏接口);
20PinJTAG调试接口(仅支持SWD)(10针SWD接口)
2.3数据采集部分
传感器是能够感受规定的被测量并按一定规律转换成可用输出信号的器件或装置。
它包括3层含义:
①传感器是一个测量装置;
②能完成检测任务在规定的条件下感受被测量;
③按一定的规律转换成易于传输与处理的电信号。
传感器一般由敏感元件、转换元件、转换电路3部分组成,其中敏感元件感受被测量,并将被测非电信号按一定对应关系转换为易于转换为电信号的另一种非电量;
转换元件将敏感元件输出的非电信号转换成电信号(包括电参量和电能量转换);
转换电路将转换元件输出的电量信号转换为便于显示、处理、传输的电信号。
本设计用到的是光电编码器,光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,是目前应用最多的传感器。
一般的光电编码器主要由光栅盘和光电检测装置组成。
在伺服系统中,由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转.经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。
此外,为判断旋转方向,码盘还可提供相位相差90°
的2个通道的光码输出,根据双通道光码的状态变化确定电机的转向。
主控板用CorteX.M0内核处理器为控制核心。
用倍频电路来提高精度。
2.4驱动单元
扫描机中步进电机的控制与驱动是利用单片机集成电路UCN5804来实现的。
UCN5804内部兼有脉冲分配器、功率驱动、电流保护的功能,是步进电机控制驱动专用集成电路,适合四相步进电机的单极性驱动。
UCN5804的主要特点有:
1、最大输出电流为1.5A,连续电流为1.25A;
2、最大输出电压为50V,连续输出电压为35V;
3、单相、两相或半步激励方式;
4、内设续流二极管;
5、输出使能和方向控制;
6、逻辑电源接通自动复位;
7、内部设有过热保护电路
而所用到的步进电机为四相八拍,它的原理图和时序图如图四、图五所示。
图2四相步进电机步进示意图
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
a.单四拍
b.双四拍
c八拍
图3时序图
综合以上所述我们选择了四相八拍。
2.5按键控制单元
设置几个按键用来优化硬件系统的功能,对不同的要求通过按键能够进行选择,使操作方便简洁。
2.6软件单元
汇编语言作为传统的编程语言,具有执行效率高的优点,但其本身是低级语言,编程效率较低,可移植性和可读性差,维护极不方便。
而C语言以其结构化,容易维护,容易移植的优势满足开发的需要。
PLC1114,其片内有32KBFLASH和,8KBSRAM,使得片内可储存量增加,控制能力增强。
且有易于上手的特点,使我们能顺利的用C语言来实现软件单元的设计。
三、系统硬件
3.1步进电机驱动电路
如图4所示,为步进电机驱动电路
图4步进电机驱动电路
3.2微处理器及其接口电路
如图5所示,为微处理器及其接口电路
图5微处理器及其接口电路
四、系统软件
4.1角度计算
在本次设计中,我们还需要求一下电机相对水平旋转角,图九为激光笔照射示意图
图九激光笔照射示意图
图十为示意简图,其中
图十
示意简图
由于摆长不变,摆杆旋转
角后,电机距离水平面高度为
,距离靶子为
,当远离靶子时距离为
时,所以
,
;
当远离靶子时距离为
时,
4.2系统功能框图
五、系统测试
5.1测试方案
(1)当平板上只放一枚硬币时,在单摆摆过后,看硬币偏离中心线的刻度。
(2)当平板上放八枚硬币时,在单摆摆过后,看最下边一枚硬币偏离中心线的刻度。
(3)在单摆摆动过程中,记录平板上的激光笔偏离中心线的程度。
5.2测试仪器
(1)编程器:
LPC1114。
(2)电源:
直流型稳压电源,为各个模块提供工作电源。
(3)量具:
直尺
本次设计对精度的要求很高,因此任何一个环节的不精确都可能会对总体的输出有很大的影响,所以,模块化的检测在调试过程中成为了首选的调试方案。
5.3测试结果与分析
(1)测试一枚硬币
零点
偏移量
0.0
0.5cm
0.1cm
0.2cm
0.7cm
0.0cm
0.4cm
(2)测试八枚硬币
2.7cm
1.5cm
3.5cm
2.4cm
0.8cm
3.9cm
4.4cm
7.8cm
2.9cm
2.0cm
(3)测试激光笔
0.3cm
0.9cm
0.6cm
通过上述计算,可以看出本设计方案准确度。
绝对误差是测量值对真值偏离的绝对大小,在此测试中,偏移量就相当于绝对误差。
经分析,可看出具有一定的准确度。
六、参考文献:
Protel99se电路设计教程作者:
李东生张勇许四毛等
——电子工业出版社
ARM系统开发从实践到提高作者:
罗亚非
——中国电力出版社
模拟电子技术基础作者:
华成英童诗白
——高等教育出版社
数字电子技术基础作者:
余孟尝
C语言设计作者:
谭浩强
——清华大学出版社
附录一:
附录二:
主程序清单:
intmain(void)
{
floatmjiao=0;
unsignedintgeshu=0,shan=5;
targetInit();
pinInit();
/*引脚初始化*/
SYSAHBCLKCTRL|=(1ul<
<
6);
//GPIO0DIR|=0x0004;
GPIO2DIR=0x0FdF;
GPIO3DIR=0x0FfF;
GPIO1DIR&
=0x0F3F;
GPIO0DIR|=0x004c;
timer16B1Init();
timer32B0Init();
//InitSysTick(20);
//timer16B0Init();
//timer16Init();
//ci=10038;
for(;
shan!
=0;
shan--)
{
BEEPOFF();
deng1liang;
deng2liang;
deng3liang;
deng4liang;
myDelay(5000);
BEEPON();
deng1mie;
deng2mie;
deng3mie;
deng4mie;
}
while
(1)
aj1=GPIO0DATA&
0x200;
if(aj1==0x000)
{
aj2++;
deng1liang;
myDelay(5000);
deng1mie;
}
if(aj2>
4)
aj2=0;
if(aj2==0)
deng2mie;
deng3mie;
deng4mie;
if(aj2==1)
deng4liang;
if(aj2==2)
deng3liang;
if(aj2==3)
if(aj2==4)
deng2liang;
aj1=GPIO2DATA&
0x020;
if(aj2==1)
{
zhengflag=2;
gongneng1();
aj2=0;
deng2mie;
deng3mie;
deng4mie;
}
if(aj2==2)
gn2bz=0;
gn2bz1=0;
gn2bz2=0;
while(aj2==2)
{
aj1=GPIO0DATA&
if(aj1==0x000)
{
aj2=0;
deng1liang;
myDelay(5000);
deng1mie;
}
gongneng2();
}
if(aj2==3)
//gongneng1();
if(aj2==4)
while(aj2==4)
gongneng3();
/*for(geshu=0;
geshu<
360;
geshu++)
jiao=sin(geshu*hu);
jiao=atan
(1)*fan;
}*/
}