开放.docx

上传人:b****6 文档编号:8473880 上传时间:2023-01-31 格式:DOCX 页数:14 大小:175.66KB
下载 相关 举报
开放.docx_第1页
第1页 / 共14页
开放.docx_第2页
第2页 / 共14页
开放.docx_第3页
第3页 / 共14页
开放.docx_第4页
第4页 / 共14页
开放.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

开放.docx

《开放.docx》由会员分享,可在线阅读,更多相关《开放.docx(14页珍藏版)》请在冰豆网上搜索。

开放.docx

开放

2013年春季

开放性实验

题目名称:

跷跷板轮式机器人设计

院系名称:

电气自动化

专业班级:

自动化1106

学生姓名:

楚梦帅

学号:

201123910920

指导教师:

郑维

成绩:

评语:

 

指导老师签名:

日期:

目录

1系统概述………………………………………………………………………………1

2方案论证………………………………………………………………………………1

2.1核心控制模块选择……………………………………………………………………1

2.2.驱动电机选择…………………………………………………………………………1

2.3平衡检测方案………………………………………………………………………2

2.4倾角传感器选择……………………………………………………………………2

2.5小车引导方式选择…………………………………………………………………2

2.6光电探测模块…………………………………………………………………………2

2.7电源模块………………………………………………………………………………3

3硬件设计…………………………………………………………………………………3

3.1系统的原理方框图…………………………………………………………………3

3.2理论分析与计算…………………………………………………………………3

3.3电路图………………………………………………………………………………4

4软件设计……………………………………………………………………………7

4.1软件设计思想及主流程……………………………………………………………7

4.2流程框图及关键代码………………………………………………………………8

5系统调试………………………………………………………………………………11

设计心得………………………………………………………………………………12

参考文献………………………………………………………………………………13

1系统概述

设计制作一个电动车跷跷板,在跷跷板起始端A一侧装有可移动的配重。

电动车从起始端A出发,可以自动在跷跷板上行驶。

基本要求:

在不加配重的情况下,电动车完成以下运动:

(1)电动车从起始端A出发,在30秒钟内行驶到中心点C附近;

(2)60秒钟之内,电动车在中心点C附近使跷跷板处于平衡状态,保持平衡5秒钟,并给出明显的平衡指示;

(3)电动车从

(2)中的平衡点出发,30秒钟内行驶到跷跷板末端B处(车头距跷跷板末端B不大于50mm);

(4)电动车在B点停止5秒后,1分钟内倒退回起始端A,完成整个行程;

(5)在整个行驶过程中,电动车始终在跷跷板上,并分阶段实时显示电动车行驶所用的时间。

通过车载倾角传感器对跷跷板倾角的高精度测量,实时的向控制系统反馈倾斜状态,系统根据跷跷板状态做出前进或后退动作,使跷跷板保持平衡及实现所要求的其他功能。

为保证小车在板上平稳行使,以及从地面任意位置找到跷跷板起点,在小车的前后四角各安装了一对红外发射接收传感器,通过设定合适的光强和角度,可以探测板边界的位置,配合软件分析引导小车行驶。

2方案论证

2.1核心控制模块选择

方案一:

采用传统51单片机作为主控制器。

该单片机价格低廉,程序资源丰富,技术比较成熟。

但是运算速度较慢,很难担任复杂算法的计算工作;程序储存空间小,不能储存大规模程序代码。

方案二:

采用MSP430F169低功耗单片机主控芯片,该单片机IO接口数量多,内部资源丰富,如包涵12位AD转换、16位定时器、PWM控制、USART接口等,处理能力强大,能够轻松胜任此任务。

2.2驱动电机选择

方案一:

使用步进电机。

步进电机的一个显著特点就是具有快速启停能力,如果负荷过大超过步进电机所提供的动态转矩值,就能够立即使步进电机启动或反转。

另一个显著特点是转换精度高,正反转控制灵活。

方案二:

使用减速电机。

基于以上分析,小车在运行过程中需要进行实时检测位置并进行调整,所以采用方案一。

2.3平衡检测方案

方案一:

使用自制的传感器,如平衡杆、悬挂重锤、检测气泡位置等方案。

方案二:

使用成品的倾角传感器,由单片机处理传感器输出的数据。

考虑自制传感器基本只能得出开关量结果,但倾角传感器能精确的反映出角度,便于应用算法使小车最快最稳的找到平衡点,故使用方案二。

2.4倾角传感器选择

方案一:

采用SCA60C倾角传感器,此芯片只有模拟输出,所以结合MSP430内部AD模块或者采用专用AD芯片采样如ADS7813来采集传感器信号,并转换为倾斜角度送给单片机处理。

价格低廉,易于连线。

方案二:

采用SCA100T高精度双轴倾角传感器,此传感器为数字SPI输出模式,测量分辨力可达0.003度,具有灵敏度极高,抗冲击,抗震动等诸多优点。

但采用该传感器所需要的硬件电路相对复杂。

从成本控制和硬件复杂度上综合考虑,采用方案一。

2.5小车引导方式选择

为了使小车不至于掉下跷跷板且能平稳的走直线,有两种引导方式。

方案一:

在跷跷板上采取不影响板面平整的引导措施,设计拟在板面上贴黑色引导胶带,在电动车上安装一系列ST188红外反射光电传感器,采用循迹的方式引导电动车在板上行驶。

方案二:

在小车边缘设置数个光电探测传感器对木板边沿定位,使小车沿中线前进保证不跌落板面。

考虑到题目要求中方案一技术成熟可靠,稳定性高。

2.6光电探测模块

方案一:

使用电探测器光成品,如微型红外传感器TCRT或ST系列,体积小且开关量输出,但有效距离一般不超过10mm;而工业上使用的光电开关距离较长但体积过大

方案二:

使用红外发光二极管和一体化接收器自制反射式或对射型的传感器。

小车到板边沿需要距离为100mm左右的探测,且为了避免环境光以及杂讯干扰故用方案二。

2.7电源模块

方案一:

单电源供电,由于小车体积和重量的限制,只使用单电池组。

方案二:

采用控制、驱动两部分分离供电,中间采用光耦隔离,最大限度降低信号干扰。

通过体积、重量、系统功耗、电压稳定性等多方面研究,一组电池供电已经可以满足设计需要,故采用方案一。

最终方案确定

控制芯片采用MSP430F169

ST188红外反射光电传感器作为循迹引导电动车

采用SCA60C作倾角传感器

电机模块采用两相步进电机

3硬件设计

3.1系统的原理方框图

根据上面的分析论证,我们设计的系统的总体结构框图如图1所示。

 

3.2理论分析与计算

根据题目说明,只要跷跷板两端与地面的距离差小于40mm即可认为平衡,本设计通过倾角传感器检测跷跷板水平倾角,所以只要水平倾角保持在0度附近的某个角度范围之内,即可认为跷跷板达到平衡状态。

其闭环结构框图如图2所示。

 

该系统的工作原理是:

小车驶上跷跷板后,通过倾角传感器不断的测量跷跷板的倾角(即实际倾角),该实际倾角与给定倾角作比较,形成倾角偏差,通过步进电机控制小车前后微移,不断修正该倾角偏差,最终使倾角保持在给定范围之内。

此时跷跷板便达到平衡状态。

设计中小车车轮的周长为240mm,电机最小步进角为0.9度,因此电机每步进一步小车移动距离x为:

x=240*0.9/360=0.6mm

可见,小车位移量是很小的。

因此我们能实现小车前后微位移的控制,从而使跷跷板较易达到平衡状态。

小车所走各段所需脉冲数的计算(以AC段为例):

(1)起点A至中点C的距离AC=800mm;

(2)测量小车车长L=270mm,小车重心约在车身靠后约4/5处;

(3)上面计算电机每步进一步小车移动距离为x=0.6mm;

因此AC段所需脉冲

n=(AC-L*1/5)/0.6=1243.3;

从而可计算出AB段所需脉冲数m=2n=2*1243.3=2486.7

3.3电路图

(1)驱动电路

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。

其基本原理作用如下:

(1)控制换相顺序

通电换相这一过程称为脉冲分配。

(2)控制步进电机的转向

如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。

(3)控制步进电机的速度

如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。

两个脉冲的间隔越短,步进电机就转得越快。

调整单片机发出的脉冲频率,就可以对步进电机进行调速。

为了保证步进电机能够平稳高效运转,本设计采用L298N芯片驱动电机,并用光电耦合器进行隔离防止烧坏单片机。

  图3驱动电路

(2)红外传感电路

ST188采用高反射功率红外光电二极管和高灵敏度光电晶体管组成。

检测距离:

4--13mm。

图4红外传感电路

(3)角度传感电路

角度检测模块采用单轴倾角传感器SCA60C,SCA60C利用感应重力加速度在某一方向的分量来完成角度的测量,其输出电压与角度变化成一定的线性关系。

通过AD采样判断角度的大小。

小车处于平衡状态时,SCA60C的输出电压是2.44V。

小车在上坡过程中,输出电压逐渐增大至2.44V。

小车通过平衡点,下坡时,输出电压由2.44V增大至限幅电压3V。

图5角传感器电路

4软件设计

4.1软件设计思想及主流程

开发语言:

C/C++

开发环境:

IAR4.20

系统主程序流程图

系统主程序流程图如图6所示。

图6系统主流程图

4.2流程框图及关键代码

平衡检测

此函数是整个设计的核心。

程序首先通过对平衡传感器SCA60C的返回值的采样来判断小车是否处于平衡状态,如果返回值为2.44±0.03V,则小车处于平衡的状态,如果传感器返回值小于2.41,则小车处于向上爬行阶段,否则,小车处于下坡阶段。

当小车越过平衡点出现超调时,PID调节起作用。

/*小车平衡控制*/

unsignedcharLevel_Ctrl(floatDeviation_ADC12_Level)//参数:

Deviation_ADC_12()

{

floatDeviation_Angle_Deviation=Deviation_ADC12_Level;

if(Mode_Flag==2)

{

if((Deviation_Angle_Deviation<0.03)&&(Deviation_Angle_Deviation>-0.03))//平衡

{

if(Level_Flag==0)

{

Level_Flag=1;

Delay_ms(100);

}

elseif(Level_Flag==1)

{

ADC12CTL0&=~ENC;

Mode_Flag=3;//进入模式3

Motor_Stop();

return1;

}

}

elseif(Deviation_Angle_Deviation>0.0)//下行

{

Motor_Run_Distance(IncPID_Calc(Deviation_Angle_Deviation),400);

//Motor_Run_Distance(-10,200);

Level_Flag=0;

}

else//上行

{

//Motor_Run_Distance(10,200);//(mode0+->up/0->down,speed)

Motor_Run_Distance(IncPID_Calc(Deviation_Angle_Deviation),400);//(mode0+->up/0->down,speed)

Level_Flag=0;

}

return0;

}

return0;

}

/*

增量式PID计算

*/

intIncPID_Calc(floatNextPoint)

{

floatIError;//偏差

floatIIncpid;//增量

intRet_IIncpid=0;

IError=SPID->SetPoint-NextPoint;//E[k]

SPID->SumError+=IError;//误差累计

//增量PID计算

IIncpid=SPID->Proportion*IError//E[k]

-SPID->Integral*SPID->LastError//E[k-1]

+SPID->Derivative*SPID->PrevError;//E[k-2]

//存储误差,用于下次计算

SPID->PrevError=SPID->LastError;//E[k-2]

SPID->LastError=IError;//E[k-1]

Ret_IIncpid=((int)IIncpid);

return(Ret_IIncpid);//返回增量值

}

在完成基本功能时,主程序流程图如图7所示。

软件编程实现小车的运动过程可分为四个部分:

(1)从A点出发,驶向中心点C。

(2)在一段时间内维持小车平衡。

平衡判断子程序流程图如图8所示。

(3)行驶到末端,与控制器进行通信。

通信过程子程序流程图如图9所示。

(4)倒退回起始端。

如图所示,假设跷跷板平衡状态与大地水平处于同一水平面。

小车由A点走上木板,迅速前进。

当接近中点C时开始缓慢前进,寻找平衡点。

未到达平衡点时,由于跷跷板两侧力矩不等,导致跷跷板一侧翘起,此时板与水平面形成一定倾角,此倾角将会引起加速度计的动作,即输出电压值的改变。

加速度计被竖直向下连接在小车上,设置板水平时的输出电压值为“平衡点”,所以存在倾角时加速度计输出的电压值相对于“平衡点”有个偏差值,此偏差值经放大后被送给单片机进行处理即将其反馈给小车的运动,用以减小偏差。

即A低B高小车向B运动;A高B低小车向A运动,形成跷跷板状态。

加速度计输出的偏差值在一定范围内被判定为平衡态,维持平衡态一定时间后,小车则快速驶向B点。

由杠杆平衡原理可得,当系统处于动态平衡时,两边力矩相等。

即mgl=MgL,由此可计算出l,l=ML/m。

图7主控制程序框图图8平衡判断子程序图9B点判断子程序

图10工作流程图

5系统调试

5.1硬件主要模块调试与故障排除

硬件调试的主要工作是排除设计错误和工艺故障。

基本调试方法是:

在将各元件焊接到万用板版上之后,首先用万用表检测各个引脚是否已经正常连接,确保没有虚焊漏焊,然后用示波器观察各模块的输出波形。

5.2调试所用仪器:

数字示波器DS1063C

万用表

直流稳压电源

秒表

三角板

5.3角度传感器模块

红外传感器通过加入先富电路后测试发现一切正常。

电压波动在1.7-2.9之间,符合我们输入端电压小于3.3V的要求。

5.4红外检测路径模块

该模块在焊接上没有发现虚焊漏焊现象,但是通电后,发现在遇到黑线和白线时,指示发光二极管并没有正常指示当前状态。

用示波器观察ST188的输出端,发现在不同地面上时示波器有反应,电压发生变化,说明ST188连接正常。

用示波器对LM311P的输出端进行观察,发现变化范围很小,于是调节电位器,使输出在较大范围内变化,当输出大于基准电压时,发光二极管熄灭。

调试完成。

设计心得

从最初掌握的专业知识贫乏,到如今可以熟练使用AltiumDesigner、Multisim、Diaportable、SmartDraw、Tina这几个软件进行电路原理图,流程图,结构图的绘制,以及用这些软件实现系统仿真,我学到了很多课本以外的知识。

整个课程设计过程,我收获很大。

一方面加强了自我学习的能力。

另一方面,因为和组员一起工作,大大培养了团队合作能力,加强了团队意识。

最后,非常感谢老师的大力帮助和指导。

老师们用它们丰富的经验为我们解决了很多问题,也使得我们在整个项目过程中少走了很多的弯路。

他们有许多值得我们学习的地方。

参考文献

[1]阎石.数字电子技术基础(第五版).高等教育出版社2006.5

[2]潭浩强.C语言程序设计(第二版).清华大学出版社,1991:

54-118

[3]余家春.Protel99SE电路设计实用教程.中国铁道出版社,2003

[4]胡乾斌.单片微型计算机原理与应用.华中理工大学出版社,2000:

120-142

[5]朱定华.微型计算机接口技术及应.华中理工大学出版社,2002:

133-185

[6]康华光.电子技术基础(模拟部分).高等教育出版社,2000:

289-317

[7]谢自美.电子线路设计(第二版.华中理工大学出版社,2003:

84-92

[8]陈大钦.电子技术基础实验(第二版).高等教育出版社,2000:

231-269

[9]何立民.MSC-51系列单片机实用接口技术.北京航空航天大学出版社.1999

[10]胡伟.季晓蘅.单片机C语言程序设计及应用实例.人民邮电出版社,2003

[11]陈平.楮华.软件设计师教程.清华大学出版社,2004

[12]鲍可进.C8051F单片机原理及应用.中国电力出版社,2006

[13]万光毅.SoC单片机实验、实践与应用设计:

基于C8051F系列.北京航天航空大学出版社,2006

[14]赵建领.51系列单片机开发宝典.电子工业出版社,2007

[15]黄根春.电子设计教程.电子工业出版社,2007

[16]刘畅生.新型集成电路简明手册及典型应用.西安电子科技大学出版社,2005

[17]刘畅生.新型集成放大器工程应用手册.人民邮电出版社,2007

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

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1