自平衡循迹小车设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题图:自平衡小车系统
摘要:本自平衡小车由单片机芯片STC80C52为主控制器。
通过电机驱动和寻迹电路完成三轮(两轮为驱动,一轮为万向轮)寻迹来按照竞赛要求来完成基本部分;在运用MMA7455数字加速度传感器和角速度传感器(ENC03陀螺仪)以及运用电磁线性偏差来完成两驱动轮的直立寻迹。
关键词 STC80C52、小车寻迹、自平衡小车。
Abstract:The self balancing car by single-chip microcomputer chip STC80C52 primarily controller. Through the motor drive and tracing circuit complete three (two wheel for drive, round for universal wheel) tracing to according to the competition requirements to complete basic parts; Using MMA7455 digital acceleration sensor and angular velocity sensor (ENC03 gyroscope) and the use of electromagnetic linear deviation to complete two driving wheel of upright tracing.
Keywords STC80C52, car tracing, self balancing car
1系统方案 (3)
1.1模块方案比较与论证 (3)
1.2车体设计 (3)
1.3控制器模块 (3)
1.4寻迹模块 (4)
1.5直流电机驱动模块 (4)
1.6小车直立 (5)
1.7小车速度控制 (5)
1.8小车方向控制 (6)
1.9最终方案 (6)
2 理论分析和计算 (6)
2.1直流电机的转速如何控制?(建立数学模型) (6)
2.2电磁线性偏差检测数学模型建立 (8)
3电路设计1(两轮为驱动轮,一轮为万向轮) (9)
3.1电路总设计框图 (9)
3.2介绍单片机最小系统原理图及其功能 (9)
3.3介绍驱动模块原理图及其功能 (10)
3.4介绍寻迹模块原理图及其功能 (11)
3.5怎样来控制车模直立?(建立数学模型) (12)
3.6车模的方向控制 (14)
3.7车模倾角测量 (14)
4 电路设计2(两驱动轮直立行走) (17)
4.1整个电路的框架接结构 (17)
4.2介绍数字三轴加速度传感器模块与陀螺仪原理图及其功能 (18)
4.3介绍电磁线偏差检测系统电路及其原理 (20)
4.4 整个过程的注意事项 (21)
5 测试方案与结果分析 (22)
5.1寻迹测试方案(7个红外对管用TCR5000) (22)
5.2电机驱动测试方案(主芯片L298N) (22)
6.结论 (23)
*参考文献 (23)
*附录 (24)
附录1主要元器件芯片 (24)
附录2仪器设备清单 (24)
附录3主要程序清单 (24)
1系统方案
1.1模块方案比较与论证
根据设计要求,本系统主要有控制器模块、寻迹模块,直流电机模块、电压比较器模块等构成。
为了更好地实现各模块的功能,我们分别设计了几种方案分别进行了论证。
1.2车体设计
方案一:购买一辆具有电力驱动模块、寻迹模块和传感器模块、电压比较器模块等的完整小车进行研究设计。
但是考虑到价格和本身想在设计中学到更多的知识出发,这种方案不是很合适。
方案二:买一个小车底盘和电力驱动模块(本身做了两个,但不理想),两轮作为驱动,一轮为万向轮。
车体重心设计在驱动轮轴和万向轮之间,当小车前进时,左右驱动轮与前万向轮形成三点结构。
这种结构使得小车在前进时比较平稳。
而循迹模块和传感器模块等通过制作PCB板,不仅从中更充分的了解其中的原理,还能够省去一些费用。
通过对这两种方案的比较,觉得方案二可以更好地丰富合我们的学识,又比较经济。
综上所述,我们选择方案二。
1.3控制器模块
方案一:控制器模块,主控芯片用单片机(STC80C52),具有体积小、集成度高、容易扩展、可靠性高、低功耗、结构简单、中断处理能力强等特点。
STC80C52具有以下特点:5个中断源、2个16位可编程定时计数器、2个全双工串行通信I/O口、40个引脚(其中P3口还有第二功能定义)、看门口电路,片内时钟振荡器等特点。
这些特点可以达到本系统的要求,而且也比较经济,我们也比较熟悉该芯片的原理,使用起来又方便。
方案二:通过上网查质料采用可变成逻辑器件CPLD作为控制器。
CPLD可以实现各种复杂的逻辑功能、规模大、密度高、稳定性高、体积小、I/0资源丰富、容易进行功能扩展。
采用并行的输入输出方式,提高了系统的处理速度,合适作为大规模控制系统的控制核心。
但基于本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是很高。
且从经济的角度考虑,用这种方案有点大材小用的感觉。
所以,综上所述,我们选择方案一。
1.4寻迹模块
方案一:用光敏电阻组成光明探测器。
由于光敏电阻的阻值可以随周围环境的变化而变化。
当光线照在白线上面时,光线发射强烈,当光线照射到黑线上时,光线发射较弱。
因此光敏电阻在白线和黑线上方时,阻值会发生变化。
将阻值的变化经过比较器就可以输出高低电平。
但是这种方式受光的影响很大,不能够稳定的工作。
这样就会给实验带来不稳定的因素。
使得实验不稳定。
方案二:用红外对管(TCR5000)。
TCR5000光电传感器模块是基于TCR5000红外光电传感器设计的一款红外反射式光电开关。
传感器采用高发射功率红外光电二极管和高灵敏度光电晶体管组成。
输出信号经过施密特电路整形,稳定可靠。
而且它应用也比较广阔,比如:障碍检测、黑白线检测等。
(TCR5000)传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮。
本实验正好可用其黑白线检测的功能进行寻迹。
综上所述,我们采用方案二。
1.5直流电机驱动模块
方案一:自行设计一块驱动模块。
驱动芯片用L298N。
比较器用LM7805。
L298N
内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
LM7805芯片里含有两个比较器。
通过脉调制(PWM)来控制电动机的电压,从而实现电动机转速的控制。
基于制作过L298N,对这块芯片有所了解,用起该制作模块来比较顺手,还可以更方便的理解其工作原理。
方案二:买一块完整的直流电机驱动模块。
主芯片也是L298N。
在对直流电动机电压的控制和驱动中,半导体功率器件(L298N)在使用上可以分为两种方式:线性放大驱动方式和开关驱动方式在线性放大驱动方式,半导体功率器件工作在线性区,选用开关驱动方式。
开关驱动方式是使半导体功率器件工作在开关状态,通过脉调制(PWM)来控制电动机的电压,从而实现电动机转速的控制。
由于考虑到经济和学习方面,我们舍弃这种方案。
综上所述,我们选择方案一。
1.6小车直立
通过控制两个电机正反向运动保持小车直立状态。
要想保持车模直立必须
要满足连个条件:(1)、能够精确测量车模倾角的大小和角速度的大小(2)、可以控制车轮的加速度。
如何让车模稳定在垂直位置呢?
方案一:改变重力的方向;
方案二:增加额外的受力,使得恢复力与位移方向相反才行;
方案一显然不行。
所以我们选择方案二。
1.7小车速度控制
小车运行速度是通过控制车轮速度实现的,车轮通过车模两个后轮电机经由减速齿轮箱驱动,因此通过控制电机转速可以实现对车轮的运动控制。
电机的运动控制有多种方案。
方案一:电机运动控制通过改变施加在其上的驱动电压实现;
方案二:通过电机速度控制,实现小车恒速运行和静止;
由于本实验没有要求实现小车恒速运行和静止,所以我们选择方案一。
1.8小车方向控制
实现小车方向控制是保证小车沿着比赛道路行走的关键。
通过道路电磁中心线偏差检测与电机差动控制实现方向控制。
下面给出两种小车方向控制方案方案一:通过道路电磁中心线的偏差检测;
方案二:通过电机差动控制;
由于在全面有用到电机,所以考虑到经济和难易方面,我们选择方案二。
1.9最终方案
经过我们小组成员谈论最终确定方案如下:
(1)、买一个小车底盘和电力驱动模块,两轮作为驱动,一轮为万向轮;
(2)、采用STC80C52单片机作为主控制器;
(3)、用红外对管(TCR5000)进行寻迹;
(4)、自行制作直流电机驱动模块(主芯片为L298N;
(5)、电源使用的是用两个3.7V的充电电池串联在一起组成电源模块;(6)、小车直立通过增加额外的受力,使得恢复力与位移方向相反才行;(7)、小车速度控制通过电机运动控制通过改变施加在其上的驱动电压实现;(8)、小车方向控制通过电机差动控制。
2 理论分析和计算
2.1直流电机的转速如何控制?(建立数学模型)
电机通过PWM(脉冲宽度调制)。
开关驱动方式是使半导体功率器件工作在开关状态,通过脉调制(PWM)来控制电动机的电压,从而实现电动机转速的控制。
当开关管的驱动信号为高电平时,开关管导通,直流电动机电枢绕组两端有
电压U。
t1秒后,驱动信号变为低电平,开关管截止,电动机电枢两端电压为0。
t2秒后,驱动信号重新变为高电平,开关管的动作重复前面的过程
PWM输出波形和计算如下:
电动机的电枢绕组两端的电压平均值U为:U =(t1×U)/(t1+t2)=( t1×U)/T=D*U 式中D为占空比,D= t/T
占空比D表示了在一个周期T里开关管导通的时间与周期的比值。
D的变化范围为0≤D≤1。
当电源电压U不变的情况下,输出电压的平均值U取决于占空比D的大小,改变D值也就改变了输出电压的平均值,从而达到控制电动机转速的目的,即实现PWM调速。
但是在用PWM调速时,也有分单极性PWM和双极性PWM。
为了提高电源的应用效率,驱动电机的PWM 波形采用了单极性的驱动方式。
也就
是在一个PWM 周期内,施加在电机上的电压为一种电压。
如下图所示:
在PWM调速时,占空比D是一个重要参数。
改变占空比的方法有定宽调频法、调宽调频法和定频调宽法等。
常用的定频调宽法,同时改变t1和t2,但周期T
(或频率)保持不变。
2.2电磁线性偏差检测数学模型建立
通过双水平检测方案:在车模前上方水平方向固定两个相距L的线圈,两个线圈的轴线为水平,高度为,如下图所示:
双水平线圈检测
为了讨论方便,我们在跑道上建立如下的坐标系,假设沿着跑道前进的方向为z 轴,垂直跑道往上为y轴,在跑道平面内垂直于跑到中心线为x轴。
xyz轴满足右手方向。
假设在车模前方安装两个水平的线圈。
这两个线圈的间隔为L,线圈的高度为h,参见上图所示。
左边的线圈的坐标为(x,h,z),右边的线圈的位置(x-L,h,z)。
由于磁场分布是以z轴为中心的同心圆,所以在计算磁场强度的时候我们仅仅考虑坐标(x,y)。
由于线圈的轴线是水平的,所以感应电动势反映了磁场的水平分量。
可以知道感应电动势大小与成正比。
假设,计算感应电动势
随着线圈水平位置x的变化取值。
怎样来控制三轮(两轮驱动、一轮为万向轮)车按照路线要求寻迹?
可通过这些模块现实:(1)最小系统:用于连接各个子模块的输入输出和控制等功能;电机驱动:用来驱动和控制两轮的行走;寻迹模块:用于控制整个路线过程中的行走方式和按要求寻迹。
一下进行各个模块进行分析。
3电路设计1(两轮为驱动轮,一轮为万向轮)
3.1电路总设计框图
两轮为驱动,一轮为万向轮的三轮寻迹总体框图
3.2介绍单片机最小系统原理图及其功能
最小系统主芯片用STC80S52: 5个中断源、2个16位可编程定时计数器、2个全双工串行通信I/O口、40个引脚(其中P3口还有第二功能定义)、看门口电路,片内时钟振荡器等特点。
以下是设计好的小系统子模块电路电路图:
器件作用:12M晶振和普通电容(470UF)用于下载时所用;电阻(10K) 与电解电
容(1UF)接在VCC组成上电复位电路;使能端E/A接高电平为了使STC80C52处于工作状态。
所使用的单片机资源包括:1、电机转速脉冲接口:左右电机脉冲接口;2、电机PWM接口:电机驱动;3、模拟检测接口:左侧电感检波电压;4、串口监控接口:RXD,TXD;5程序下载调试接口;
其它没有使用的I/O和模拟量口可以用作状态显示、运行设置以及辅助调试作。
3.3介绍驱动模块原理图及其功能
驱动模块主芯片为L298N:L298N内部包含4通道逻辑驱动电路。
是一种二相
和四相电机的专用驱动器。
以下是设计好的电机驱动模块电块如下:
L298N驱动原理图
器件主用:L298N芯片作为驱动有四个输入端分别接在单片机P?上;四个输出端口分别接在小车的两个电机的电极上用来驱动小车。
LM7805里面含有两个比较器芯片,它有一系列的固定电压输出,且应用广泛,每种类型由于内部电流的限制,以及过热保护期和安全区工作期的保护,其他基本上不会损坏。
如果能够提供足够的散热片,它就能输出大于1.5A的电流。
在这当比较器用。
3.4介绍寻迹模块原理图及其功能
寻迹模块主要用到TCRT5000(红外对管)如下寻迹模块原理图:
上图中只是其中一个红外对管的电路原理图,本方案中,为了更精确的进行实验设置,我们打算用7个红外对管进行寻迹控制。
在图中TCR5000是光电传感器,其工作原理为:传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮。
3.5怎样来控制车模直立?(建立数学模型)
通过控制两个电机正反向运动保持车模直立状态。
由于车模有两个轮子着地,因此车体只会在轮子滚动的方向上发生倾斜,所以控制轮子转动,抵消倾斜的趋势就可以保持车体直立了。
但是怎样控制轮子的转动才能使车模直立呢?这就要运用力学的知识:通过对比单摆模型来说明保持车模稳定的控制规律。
重力场中使用细线悬挂着重物经过简化便形成理想化的单摆模型而直立着的车模可以看成放置在可以左右移动平台上的倒立着的单摆如下图:
当物体离开平衡位置后,便会受到重力和悬线的作用合力,驱动重物回到平衡
位置,这个力称为回复力其大小为: 在此回复力作用下,单摆便进行周期运动。
而在空气中运动的单摆,由于受到空气阻尼力,单摆最终会停止在垂直平衡位置。
空气阻尼力与单摆运行速度成正比,而方向相反。
阻尼力越大,单摆越会尽快在垂直位置稳定下来。
通过单摆中的回复力和阻尼力影响,所以要想单摆在平衡位置,就要使物体受到与位移(角度)相反的回复力和受到与运动速度相反的阻尼力。
但是对于倒立摆在垂直的位置时,在受到外部干扰的情况下,是无法保持稳定的,我们分析倒立摆的受力分析如上图。
倒立摆之所以不能象单摆一样可以稳定在垂直位置,就是因为在它偏离平衡位置的时候,所受到的回复力与位移方向相同,而不是相反!因此,倒立摆便会加速偏离垂直位置,直到倒下。
要让控制使得倒立摆能够像单摆一样,稳定在垂直位置必须:一个是改变重力的方向;另一个是增加额外的受力,使得恢复力与位移方向相反才行。
显然只能用第二种方式。
控制倒立摆底部车轮,使得它作加速运动。
这样站在小车上(非惯性系)看倒立摆,它就会受到额外的力(惯性力),该力与车轮的加速度方向相反,大小成正比。
这样倒立摆所受到的回复力为
(2-1)式中,假设控制轮
加速度与偏角成正比,比例为。
显然,如果,(g是重力加速度)那么回复力的方向便于位移方向相反了。
此外,为了使得倒立摆能够尽快地在垂直位置稳定下来,还需要增加阻尼力,与偏角的速度成正比,方向相反。
因此式
(2-1)可变为(2-2)按照上面的控制方法,可把倒立摆模型变为单摆模型,能够稳定在垂直位置。
因此,可得控制车轮加速
度的控制算法(2-3)式中,为车模倾角; 为角速
度;均为比例系数;两项相加后作为车轮加速度的控制量。
只要保证在条件下,可以维持车模直立状态。
其中,决定了车
模是否能够稳定到垂直位置,它必须大于重力加速度;决定了车模回到垂直位置的阻尼系数,选取合适的阻尼系数可以保证车模尽快稳定在垂直位置。
因此
控制车模稳定,需要下列两个条件:(1)能够精确测量车模倾角的大小和角
速度 的大小;(2)可以控制车轮的加速度。
3.6车模的方向控制
要想实现车模方向的控制必须要靠电动机差动控制。
所谓电机差动控制就是利用电磁线偏差检测信号分别与车模速度控制信号进行加和减,形成左右轮差动控制电压,使得车模左右轮运行角速度不一致进而控制车模方向。
通过左右电机速度差驱动车模转向消除车模偏差,这个过程是一个积分过程。
因此车模差动控制一般只需要进行简单的比例控制就可以完成车模方向控制。
电机差动控制:利用电磁线偏差检测信号分别与车模速度控制信号进行加和减,形成左右轮差动控制电压,使得车模左右轮运行角速度不一致进而控制车模方向。
如下图:
通过差动控制左右电机驱动电压控制车模方向
3.7车模倾角测量
(1)、数字加速度传感器
要想使车模在直立而保持动态平衡,还必须要用到数字加速度传感器模块。
因为一旦动态中的直立状态是不可能保持平衡的,车模会与地面产生倾角,称为车模倾角,通过测量车模的倾角和倾角加速度控制车模车轮的加速度来消除车模的倾角。
其主芯片用MMA7455。
MMA7455是一款数字输出I2C/SPI)、低功耗、紧凑型电容式微机械加速度计,具有信号调理、低通滤波器、温度补偿、自测、
可配置通过中断引脚(INT1或INT2)检测0g、以及脉冲检测(用于快速运动检测)等功能0g偏置和灵敏度是出厂配置,无需外部器件。
客户可使用指定的0g寄存器和g_select量程选择对0g偏置进行校准,量程可通过命令选择 3 个加速度范围(2g/4g/8g)。
通过设置可以使得MMA7260 最大输出灵敏度为800mV/g。
只需要测量其中一个方向上的加速度值,就可以计算出车模倾角,比如使用Z 轴方向上的加速度信号。
车模直立时,固定加速度器在Z 轴水平方向,此时输出信号为零偏电压信号。
当车模发生倾斜时,重力加速度g 便会在Z 轴方向形成加速度分量,从而引起该轴输出电压变化。
变化的规律为
式中,g为重力加速度;为车模倾角;k为比例系数。
当
倾角比较小的时候,输出电压的变化可以近似与倾角成正比。
似乎只需要加
速度就可以获得车模的倾角,再对此信号进行微分便可以获得倾角加速度。
但在实际车模运行过程中,由于车模本身的运动所产生的加速度会产生很大的干扰信号叠加在上述测量信号上,使得输出信号无法准确反映车模的倾角。
车模运动产生的振动加速度使得输出电压在实际倾角电压附近波动,可以通过数据平滑滤波将其滤除。
但是平滑滤波也会使得信号无法实时反映车模倾角的变化,从而减缓对于车模车轮控制,使得车模无法保持平衡。
因此对于车模直立控制所需要的倾角信息需要通过另外一种器件获得,那就是角速度传感器-陀螺仪。
(2)、角速度传感器—陀螺仪
陀螺仪可以用来测量物体的旋转角速度。
当旋转器件时会改变振动频率从而反映出物体旋转的角速度。
陀螺仪所使用的主芯片为ENC03角速度传感器,它输出一个和角速度成正比的模拟电压信号。
在车模上安装陀螺仪,可以测量车模倾斜的角速度,将角速度信号进行积分便可以得到车模的倾角。
由于陀螺仪输出的是车模的角速度,不会受到车体振动影响。
因此该信号中噪声很小。
车模的角度又是通过对角速度积分而得,这可进一步平滑信号,从而使得角度信号更加稳定。
因此车模控制所需要的角度和角速度可以
使用陀螺仪所得到的信号。
又因为从陀螺仪的角速度获得角度信息,需要经过积分运算。
如果角速度信号存在微小的偏差,经过积分运算之后,变化形成积累误差。
这个误差会随着时间延长逐步增加,最终导致电路饱和,无法形成正确的角度信号,这就要通过上面的加速度传感器获得的角度信息对此进行校正。
如下图
利用加速度计所获得的角度信息与陀螺仪积分后的角度 进行比
较,将比较的误差信号经过比例放大之后与陀螺仪输出的角速度信号叠加之后再进行积分。
从上图中的框图可以看出,对于加速度计给定的角度,经过比例、积分环节之后产生的角度必然最终等于。
由于加速度计获得的角度信息不会存在积累误差,所以最终将输出角度中的积累误差消除了。
加速度计所产生的角度信息中会叠加很强的有车模运动加速度噪声信号。
为
了避免该信号对于角度的影响,因此比例系数应该非常小。
这样,加速度的噪声信号经过比例、积分后,在输出角度信息中就会非常小了。
由于存在积分环节,所以无论比例g T 多么小,最终输出角度必然与加速度计测量的角度相等,只是这个调节过程会随着的减小而延长。
为了避免输出角度跟
着过长,可以通过在控制电路和程序运行的开始,尽量保持车模处于直立状态,这样一开始就使得输出角度与相等。
此后,加速度计的输出只是消除积分的偏移,输出角度不会出现很大的偏差。
综上所述,要使小车在直立状态行走必须采集如下信号:
a、车模电机转速脉冲信号;
b、车模加速度计信号(z 轴信号);
c、车模陀螺仪信号;
d、车模电磁偏差信号;
4 电路设计2(两驱动轮直立行走)
4.1整个电路的框架接结构
在进行设计小车控制系统的电路时,首先需要分析并明白整个系统的输入、输出信号,然后在选择合适的主控芯片(单片机),逐步设计各个电路子模块,最后形成完整的控制电路。
其中系统的输入输出有:(1)、定时器接口(定时器0方式1):用来测量两个电机转速。
(2)、PWM接口(4端输入4端输出):用来控制左右两个电极双方向运行,需要四路PWM 接口。
(3)、通讯接口:SCI
用于程序下载和调试接口。
(4)I/O接口:用于小车运行状态显示,功能设置等。
整个电路的框架结构如下:
直立车模控制整体框图。