电子设计电动车跷跷板.docx

上传人:b****2 文档编号:2392822 上传时间:2023-05-03 格式:DOCX 页数:15 大小:124.86KB
下载 相关 举报
电子设计电动车跷跷板.docx_第1页
第1页 / 共15页
电子设计电动车跷跷板.docx_第2页
第2页 / 共15页
电子设计电动车跷跷板.docx_第3页
第3页 / 共15页
电子设计电动车跷跷板.docx_第4页
第4页 / 共15页
电子设计电动车跷跷板.docx_第5页
第5页 / 共15页
电子设计电动车跷跷板.docx_第6页
第6页 / 共15页
电子设计电动车跷跷板.docx_第7页
第7页 / 共15页
电子设计电动车跷跷板.docx_第8页
第8页 / 共15页
电子设计电动车跷跷板.docx_第9页
第9页 / 共15页
电子设计电动车跷跷板.docx_第10页
第10页 / 共15页
电子设计电动车跷跷板.docx_第11页
第11页 / 共15页
电子设计电动车跷跷板.docx_第12页
第12页 / 共15页
电子设计电动车跷跷板.docx_第13页
第13页 / 共15页
电子设计电动车跷跷板.docx_第14页
第14页 / 共15页
电子设计电动车跷跷板.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子设计电动车跷跷板.docx

《电子设计电动车跷跷板.docx》由会员分享,可在线阅读,更多相关《电子设计电动车跷跷板.docx(15页珍藏版)》请在冰点文库上搜索。

电子设计电动车跷跷板.docx

电子设计电动车跷跷板

大学生电子设计竞赛

电动车跷跷板

 

参赛学生:

学校:

赛前指导老师:

 

2012年9月

电动车跷跷板

摘要本设计采用两个凌阳SPCE061A16位单片机作为控制核心。

其中一个安装在小车上,另一个持在使用者手中连接键盘和LCD,通过无线模块进行双机通讯,实现远程对小车运行状态的实时监测。

为了对小车的行为进行精确控制,采用步进电机进行驱动。

系统通过倾角传感器采集跷跷板的倾角变化后传给单片机。

程序控制方法采用PID算法,使小车通过一个二阶欠阻尼脉冲响应过程最后趋于动态平衡。

根据设计需要,车体采用有机玻璃与铝合金自制而成。

关键词:

SPCE061A单片机,角度传感器,光电传感器,PID算法.

Abstract:

ThissystemtakestwoSPCE061A16bitmicroprocessorasthecontrolcenter,onefixedonthecarandanotherconnectedwithkeyboardandLCDhandedbythecontroller.Inthissystem,wirelessisusedtocompletethetwoprocessors`communicationtoacquireaperfectinterfacebetweenthecontrollerandthewholecontrolsystem.Thecarwithfourwheelsisdrivenbytwosteppermotors,andthroughtheanglesensitivegatheringtheinformationabouttheteeterboard’sequinityconditionandthensendtothemicroprocessor.ThesystemtakesthePIDasmaincontrolmethod,throughaprogressoftwopulsedampingresponse,thecarandtheteeterboardfinallyreachanequinitycondition.

Keywords:

SPCE061Amicroprocessor,anglesensor,lightsensor,PID.

1.系统方案设计

1.1实现方法

采用倾角传感器检测跷跷板与水平面的夹角,通过PID算法控制小车寻找平衡位置。

当跷跷板在允许范围内满足达到平衡状态时,暂停5秒后行驶到跷跷板B端;当小车的上的四个光电开关同时检测到预先粘贴在跷跷板B端上的黑线时记数1,并倒车回到跷跷板A端,当四个光电开关第二次同时检测另一端的黑线时记数2,小车停止,此时基本部分完成。

在发挥部分中,我们采用黑线引导小车走上跷跷板,小车启动时在水平位置,以此为标志来选择调用发挥部分所需要的程序,使小车在找到平衡之后停在原位并在收到扰动之后自动寻找新的平衡。

在完成题目要求的同时,我们也做出了自己的特色。

我们利用一个从单片机制作了一个手持观测系统,进行小车状态的实时播报和显示,另外还制作了电池低电压报警电路。

1.2方案比较与论证

1.2.1控制器模块

由于题目要求的小车功能较多,如果采用一个单片机会使各模块之间的程序嵌套复杂,而且难以实现总体系统的稳定性要求。

此外该控制系统程序庞大,包括角度传感器、光电传感器,LCD,语音模块,时钟等模块,一个单片机难以存储。

所以我们采用两个SPCE061A16位单片机,一个为主控制器安装在小车上来控制小车的行驶,另一个为从单片机持在控制者手中,用来连接LCD,键盘以及语音模块。

主从单片机之间采用无线通讯,实现两机之间的信息交流。

这样不仅可以很好的解决上述问题,而且使人机交互界面变得更加方便完美,也更加人性化和智能化。

1.2.2电机驱动模块

方案一:

采用H桥式电路驱动的直流电机作为小车驱动。

直流减速电机输出力矩大,功耗相对较低,且运行平稳,但本题目需要对小车的位置进行精确步进控制,而直流电机输出轴之间存在一定间隙,而且不能精确定位控制,所以我们放弃此方案。

方案二:

采用输出力矩相对较大的步进电机,这样能够保证两个轮子的速度基本相同,实现了小车的精确控制。

为了使步进电机低速时转动更平滑,采用专门的电机细分驱动芯片TA8435驱动电机,利用两个定时器控制电机速度,实现小车的速度与方向调整。

实践证明该方案电路简单、控制方便且工作稳定。

电路见附图一。

所以我们选择方案二。

1.2.3角度测量模块

采用市场购买的低成本双轴倾角传感器ZCT245AL-485。

ZCT245AL-485输出采用半双工通信方式RS485与单片机UART互通信息。

它具有零角度设定,波特率可选等功能。

ZCT245AL-485的精度高达0.1度,侧角范围正负45度,每秒送给单片机15次倾角值。

完全可以满足本题目要求。

测量方向见图1。

程序见附录

图1倾角传感器测量方向图2

1.2.4行进路线准直方案论证与选择

在跷跷板上贴宽度为2cm的黑线,采用发射接收一体化的单光束反射取样式光电传感器RPR220作为敏感元件,利用红外线对不同颜色的反射系数不同而产生强弱电流信号,该方案受外界环境的影响比较小,抗干扰性比较强。

如寻迹原理图所示,当1,2检测到黑线,3,4白色时,小车会通过差速左转直至1,2检测通时到黑线为止。

电路图见附图2。

程序见附录

1.2.5显示及语音模块

由于本设计采用的是凌阳SPCE061A单片机,其芯片内部具有专门的语音功能。

本控制系统对于语音没有很高的要求,而且从单片机所承担的任务较少完全能够利用SPCE061A单片机自身资源实现语音功能。

时间,角度以及路程的实时显示采用LCD模块OCMJ128x64,自带字库,编程简单,而且功能齐全。

1.2.6电源模块

为了减轻小车重量,方便小车自由行驶,我们采用可充电的大容量锂电池作为小车电源,输出电压12V。

中间加装一个开关电源稳压至5伏,给单片机等控制电路供电,电源效率高,比7805等三端稳压器节省能源。

1.3系统设计

1.3.1系统总体方案

经过上述的分析和论证,决定了系统各模块采用的最终方案如下:

车体:

由有机玻璃和铝合金片加工而成;

主控单元:

两个凌阳16位单片机SPCE061A;

循迹模块:

接收一体化红外传感器RPR220;

倾角检测模块:

数字式双轴倾角传感器(ZCT245AL-485)

驱动模块:

两相混合式步进电机42BYG021+TA8435细分驱动芯片

语音播报模块:

单片机自带D/A+基于SPY0030的功率放大电路+扬声器

计时模块:

DS1302和凌阳单片机内部时钟

显示模块:

OCMJ128x64LCD

单片机无线通讯:

半双工无线通讯模块nRF2401

1.4结构框图(见图3)

图3系统结构框图

2.理论分析与计算

2.1测量与控制方法

1).小车平衡的PID算法

经过分析可得小车在翘翘板上寻找平衡点的是一个二阶欠阻尼震荡过程如图4:

图4二阶欠阻尼震荡

算法公式:

,其中

是比例环节,

是积分环节,

是微分环节。

比例环节:

及时成比例地反映控制系统的角度偏差信号

,偏差一旦产生,通过角度传感器传给单片机,单片机立即产生调整控制信号,

其中常数

使用来控制翘翘板达到平衡位置时与水平面的夹角。

在题目要求中

=0即跷跷板要在水平位置平衡。

积分环节:

主要用于消除跷跷板趋于平衡时的稳态误差,提高系统的无差度。

可是积分环节动态反映时间较长,这样虽然是系统更加稳定,但是却延长了系统的动态相应时间,而且算法复杂,考虑到该题目中的平衡的控制并不是很复杂,而且有允许在要求范围内存在些许误差,所以我们放弃积分环节。

微分环节:

微分环节能反映角度偏差信号的变化趋势(变化速率),并能在角度偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。

在该微分控制中,控制器系统的输出速度

与输入误差信号的微分(即角速度)

成正比关系。

微分环节使抑制误差的作用变化“超前”,即在误差接近0时,抑制误差的作用就应该是0。

综合考虑我们决定采用PD算法来实现整个系统的平衡控制。

公式为:

2.2理论计算确定参数

小车启动时,

=5度,

=0度/秒,所以

小车由点A到点C大约需要10~20秒的时间,/AC/=80cm。

,推出

可得出

的取值范围在(0.8,1.6)区间之内。

根据多次测试结果参数

在区间(1,1.3)范围内时小车寻找的平衡的效果最好。

2.3误差分析

由于系统存在很多外在因素引起的误差,比如步进电机低速转动时的震动使角度传感器的制在一定范围内波动,因而对小车寻找平衡产生很大的干扰;即使小车处于平衡点时,跷跷板仍然存在微小的扰动,这些扰动会使小车不停的移动,从而大大延迟了小车调节平衡的时间,消除这些影响,我们设定当-2度<

<2度时,比例环节作用关闭,当-1.4度<

<1.4度时积分环节关闭,由此来消除外界环境因素及小车子身设计所带来的误差影响。

3.电路与程序设计

3.1检测与驱动电路

电机驱动电路:

电路见附图一:

细分电机驱动芯片TA8435电路图

直线寻迹模块:

电路见附图二:

光电对管寻迹电路图

3.2总体电路图

见附图三:

系统总线图

3.3软件设计与工作流程图

该小车控制系统根据题目要求主要包括角度检测程序,时间显示,语音播报和寻迹程序等,以及我们在创新发挥部分自加的无线通讯模块。

为了节省篇幅,在这我们只附上我们的程序流程图,(即图五)。

图5程序流程图

程序代码见附录:

部分程序代码

4.结果分析

4.1创新发挥

我们采用自制车体,题目要求实时显示小车各阶段所用的时间等信息,若将LCD安装在不断运动的小车上,观察极为不便,为此我们为了方便控制者实时观察小车的行驶状态,我们用一个从单片机制作了一个手持人机交换系统,与主单片机之间采用nRF2401相互交换信息。

4.2结果分析

1).测试仪器:

PC机、秒表、卷尺;SPCE061单片机系统

2).将系统的电机模块、直线行进模块、角度测量模块、液晶显示模块和语音模块分开测试,通调后在进行整机调试,以提高测试效率。

3).测试结果及分析

基础部分测试结果见表1:

表1:

基础部分测试结果

测试次数

A-C时间

C点找平衡时间

平衡时AB偏差

C-B时间

B-A时间

显示时间

实际时间

时间误差

14s

45s

33mm

16s

33s

112s

108s

4s

16s

50s

20mm

14s

40s

125s

120s

5s

17s

55s

45mm

19s

55s

146s

151s

5s

平均

15.3s

50s

36mm

17s

42.3s

128s

126s

4s

发挥部分测试结果见表2:

表2:

基础部分测试结果

测试次数

寻找平衡时间

AB偏差

显示时间

时间误差

配重一

40s

20mm

43s

3s

配重二

38s

32mm

39s

1s

配重三

50s

48mm

53s

3s

 

5.总结

经过半年的期待,两个月的精心准备,和四天三夜的奋战我们三人齐心协力闯过了层层难关完成了我们的跷跷板电动小车的题目。

我们首先要感谢那些陪我们奋战的老师们,同时也要感谢大赛组委会成员老师能给我们提供这么难得的机会。

6.参考文献

[1]黄智伟等,全国大学生电子设计竞赛训练教程.电子工业出版社,2005

[2]谭浩强,C程序设计(第二版).清华大学出版社,2000

[3]刘海成,秦进平等,MCU-DSP型单片机原理与应用北京航空航天大学出版社,2005

[4]戴佳,戴卫恒,51单片机C语言应用程序设计实例精讲电子工业出版社,2007

[5]谢自美,电子线路设计.实验.测试(第二版)华中科技大学出版社,2000

附:

图一:

细分电机驱动芯片TA8435电路图

图二:

光电对管寻迹电路图

图三:

系统总线图

 

部分程序代码

1.调整平衡程序

/*************************************************************

实验小车找平衡的过程,目的测试平衡函数的精准.

*************************************************************/

voidbalance3(){

forty++;}

else

forty=0;

//开始接收倾角传感器发出的前三个角度,并储存在数组a[]中

if(key1==0){

a[key1]=t;

}

if(key1==1){

a[key1]=t;

}

if(key1==2){

a[key1]=t;

}

//通过PD算法和微调寻找平衡点

key1++;

if(key1>2){

a[2]=t;

if((t>0)&&(a[1]<0)){

Speed(100,1);

stop

(1);}

if((t>1)&&(a[1]>1)){

if((a[1]-a[2])>0.2){

Speed(30,1);

stop

(1);}

if((a[1]-a[2])<0.2){

if(bflag==0){

Speed(400,1);

stop

(1);}

if(bflag==1){

Speed(10,1);

stop

(1);}

}

}

if((t<-1)&&(a[1]<-1)){

bflag=1;

if((a[1]-a[2])<0){

Speed(10,1);

stop

(1);}

if((a[1]-a[2])>0.5){

Speed(30,0);

stop

(1);}

if(((a[1]-a[2])<0.5)&&((a[1]-a[2])>0)){

Speed(50,0);

stop

(1);}

}

if((t<0)&&(a[1]>0)){

Speed(100,0);

stop

(1);}

if((t<=2)&&(t>=-2)){

//if(forty>=10){

if((a[1]-a[2])<=1.6)

stop(20);

//}

}

a[0]=a[1];

a[1]=a[2];

}

}

2.寻迹程序

//************************寻迹函数****************************

//检测到白为高电平,黑为低电平。

voidTrace()

{

if((one==1)&&(two==0)&&(three==0)&&(four==1))//1,4白线直走

Speed(1600,1);

if((one==1)&&(two==0)&&(three==0)&&(four==0))//1白线,2,3,4黑线,右转

Turn(2000,1600,1);

if((one==1)&&(two==1)&&(three==0)&&(four==1))

Turn(2000,1600,1);

if((one==1)&&(two==1)&&(three==0)&&(four==0))

Turn(2600,1600,1);

if((one==1)&&(two==1)&&(three==1)&&(four==0))

Turn(3200,1600,1);

if((one==1)&&(two==0)&&(three==1)&&(four==1))

Turn(1600,2000,1);

if((one==0)&&(two==0)&&(three==1)&&(four==1))

Turn(1600,2600,1);

if((one==0)&&(two==1)&&(three==1)&&(four==1))

Turn(1600,3200,1);

if((one==1)&&(two==1)&&(three==1)&&(four==1))

Speed(1600,1);

if((one==0)&&(two==0)&&(three==0)&&(four==0))

Speed(1,1);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2