无线遥控循迹小车设计方案.docx
- 文档编号:23411937
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:21
- 大小:148.23KB
无线遥控循迹小车设计方案.docx
《无线遥控循迹小车设计方案.docx》由会员分享,可在线阅读,更多相关《无线遥控循迹小车设计方案.docx(21页珍藏版)》请在冰豆网上搜索。
无线遥控循迹小车设计方案
无线遥控循迹小车设计方案
1方案设计与论证
本次竞赛要求制作的小车能够循黑线前进并且达到竞速的目的,而且要显示走过的时间和速度。
并且有按键起车与声光语言提示。
根据题目的要求,我们组设计了以下几种方案并对各方案进行了论证与分析。
1.1电机驱动部分论证与分析
方案1:
采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。
但是电阻络只能实现有级调速,而数字电阻的元器件价格昂贵。
更主要的问题在于一般电动机的电阻较小,但电流很大;分压不仅会降低效率,而且很难实现。
方案2:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。
方案的优点是电路较为简单,缺点是继电器的响应时间慢,机械结构易损坏,寿命较短,可靠性不高。
方案3:
采用达林顿管TIP4组成的PWM电路。
用单片机控制达林顿管使之工作在占空比可调的状态,精确调整电机转速。
方案4:
采用L298N来控制电机的正转和反转来实现小车的前进和后退,并且如果再利用上PWM,就可以实现整车的加速与减速,精确小车的速度。
基于上述理论分析,拟选择方案4。
1.2传感器探测部分论证与分析
方案1:
用光敏电阻组成光敏探测器。
光敏电阻的阻值可以跟随周围环境光线的变化而变化。
当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。
因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。
将阻值的变化值经过比较器就可以输出高低电平。
但是这种方案受光照影响很大,不能够稳定的工作。
因此我们考虑其他更加稳定的方案。
方案2:
用红外发射管和接收管自己制作光电对管寻迹传感器。
红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。
这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。
方案3:
用RPR220型光电对管。
RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。
简单实用,特别适合我们这次的制作。
基于上述理由我们选择了方案3。
1.3电机部分论证与分析
方案一:
采用直流电机
直流电机速度快,价格便宜,通过调节电流来改变速度,驱动电路简单,调速围广,调速特性平滑。
但其转距小,带有大负载时很容易堵转;而且由于其速度较快,不易控制,精确度低,不适合应用在本题。
方案二:
采用步进电机
步进电机是一种能将电脉冲转化为角位移的机构,通过控制脉冲个数来控制角位移量,通过控制脉冲频率来控制电机转动的速度和加速度,其精确度高,但控制相对较繁琐。
方案三:
采用减速电机
减速电机也是通过控制电流来改变速度的,而且其部有减速齿轮箱,转距大,而且易控制,速度较步进电机快。
通过分析题目要求,减速电机可以达到题目要求的精度,而且价格适中,控制简单。
综上所述,我们决定采用方案3——减速电机。
1.4显示部分论证与分析
方案1:
使用数码管显示。
数码管显示具有亮度高,色彩选择多的优点,但是数码管占用I/O资源多,控制复杂,功耗较大,显示信息量较少且单一。
方案2:
使用1602液晶屏显示。
液晶显示驱动简单,易于控制,功耗小,且显示信息量大,可以直观地观测到小车的位置及速度信息。
基于上述理论分析,我们决定选择方案2。
1.5电源部分论证与分析
方案1:
采用2节4.2V可充电式锂电池串联共8.6V给直流电机供电,经过7805的电压变换后给支流电机供电,给单片机系统和其他芯片供电。
但由于电压不太够,价格昂贵,因此,我们放弃了。
方案2:
采用:
9V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。
蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。
但蓄电池的体积过于庞大,使用极为不方便。
方案3:
采用3节3.7V锂电池供电,电压达到11v,经7805稳压后给支流电机供电,给单片机系统和其他芯片供电。
但价钱还是太贵。
基于上述理论,我们选择方案2。
1.6控制单元部分论证与分析
方案1:
采用纯数字电路
该方案外部检测采用光电转换,系统控制部分采用数字电路译码对小车电动机两端电压调整,来控制小车的运行。
时间和行程用加法器进行计数。
此系统的设计将会使电路过于复杂,调试时需要改变硬件电路,机动性差。
方案2:
用单片机控制
用光电检测不同的信号,并经单片机对其处理,传送给L298信号,使其控制电机的正转和反转。
通过单片机部定数器/计数器进行定时、计数,在用单片机串行输入/输出口进行显示控制。
此方案电路成熟、工作稳定、容易实现控制。
为能更好的实现题目的各种设计要求,所以我们选用第二种方案。
用单片机进行控制。
其工作框图如下:
单片机控制工作图
2原理分析与硬件电路图
2.1系统总体设计
基于上述各方案的论证与分析,我们确定了最终方案。
整个系统采用11V锂电池供电。
系统的总体结构框图如图1所示。
系统总体框
2.2单片机资源分配
STC89C52单片机是把那些作为控制应用所必需的基本容都集成在一个尺寸有限的集成电路芯片上。
它由如下功能部件组成,8位微处理器、128字节数据存储器、8k程序存储器、p1、p2、p3、p4四个8位并行I/O口、1个全双工的串行口,具有四种工作方式。
可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,、片有2个16位的定时器/计数器,具有四种工作方式。
具有5个中断源,2级中断优先权及特殊功能寄存器。
它们都是通过片单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。
但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。
为了合理调用单片机的资源,如图2-2是单片机资源分配图。
图2-2单片机资源分配图
2.3电机驱动模块
我们主要采用L298驱动两台直流电机电路如图-3所示,。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动两台直流减速电动机。
5,7,10,12脚接输入控制电平,控制电机的正反转。
2,3,13,14四个脚连接直流减速电机。
6,11脚接PWM信号〔即EnA,EnB接控制使能端控制电机的停转。
四组光耦对输入、输出电信号起隔离作用。
8脚接地。
表2-3是L298N功能逻辑真值表图。
Ven为6,11脚。
IN1=IN3,IN2=IN4.
IN1为5脚。
IN2为7脚。
IN3为10脚。
IN4为12脚。
表2-3L298驱动电路真值表
ENA=ENB=1
IN1=1
IN2=0
正转
IN1=0
IN2=1
反转
ENA=ENB=0
IN1=IN2=1<或0>
停止
IN1=1<或0>,IN1=IN2
停止
由表2-3可知同为低电平时,电机停止工作;ENA和ENB同为高电平时,电机正转或反转。
L298驱动两台直流电机电路图2-3
L298管脚排列如下:
2.4循迹探测模块
小车循迹原理是小车在贴有黑胶带的白色路面上行驶时,由于黑线和白线对光线的反射系数不同,可根据接受的反射光的强弱来判断黑线,我们采用了比较普遍的检测方法——红外检测法。
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射特点。
在小车行驶过程中不断的向地面发射红外光,当红外光遇到白色地面时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车的接收管接收不到信号,在通过LM339作比较器采集高低电平,从而实现信号的检测。
市场上有很多红外传感器,在这里我们选用了RPR220。
RPR220采用DIP4封装,其具有如下特点:
1.塑料透镜可以提高灵敏度。
2.置可见光过滤器能减小离散光的影响。
3.体积小,结构紧凑。
RPR220参数如下:
电路图如下:
2.5稳压电路的设计
为了给整个控制系统提供一个稳定的电压,在此选择了7805稳压管作为该电路的核心芯片。
该稳压电路的设计如图3.3.5所示。
图3.3.5稳压电源电路图
7805稳压管有一系列固定的电压输出,应用非常的广泛,每种类型由于部电流限制,以及过热保护和安全工作区的保护,使它基本上不会损坏,如果能够提供足够的散热片,他们就能够提供大于1.5A的输出电流,虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就能获得各种不同的电压和电流。
3软件设计与流程
3.1主程序框图
此部分是整个小车运行的核心部件,起着控制小车所有运行状态的作用。
控制方法有很多,大部分都采用单片机控制。
由于51单片机具有价格低廉是使用简单的特点,这里选择了STC89C52作为控制核心部件,其程序控制方框图如图所示。
图3.3.1系统的程序流程图
小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号变化,程序就进入判断程序,把相应的信号发送给电动机从而纠正小车的状态。
3.2源程序
#include
sbitIN1=P1^0;
sbitIN2=P1^1;
sbitIN3=P1^2;
sbitIN4=P1^5;
sbitENA=P1^6;
sbitENB=P1^7;
sbithong=P1^3;
sbitfeng=P1^4;
sbitce1=P2^0;
sbitce3=P2^2;
sbitce2=P2^1;
sbitce4=P2^3;
sbitce5=P2^4;
sbitlcden=P2^7;
sbitlcdrs=P2^5;
sbitwr=P2^6;
sbitce6=P3^2;
sbitce7=P3^3;
sbitp1=P3^3;
sbitp2=P3^4;
unsignedcharcodetable[]="Vmax:
cm/s";//显示最高速度
unsignedcharcodetable1[]="Va:
cm/sT:
s";//显示瞬时速度和行驶时间
unsignedcharnum,j,n,m=0;
unsignedintx=0,a=0,k=0,l=0,lu1=0,lu2,Va=0,t=0,Vm=0;
voiddelay
{
unsignedintx,y;
for
for
}
voidwrite_
{
lcdrs=0;
P0=;
delay<5>;
lcden=1;
delay<5>;
lcden=0;
}
voidwrite_data
{
lcdrs=1;
P0=date;
delay<5>;
lcden=1;
delay<5>;
lcden=0;
}
voidinit<>//液晶初始化
{
wr=0;
lcden=0;
write_<0x38>;
write_<0x0c>;
write_<0x06>;
write_<0x80+0x00>;
for
{
write_data