基于单片机STC89C52控制的智能小车.docx
《基于单片机STC89C52控制的智能小车.docx》由会员分享,可在线阅读,更多相关《基于单片机STC89C52控制的智能小车.docx(19页珍藏版)》请在冰豆网上搜索。
![基于单片机STC89C52控制的智能小车.docx](https://file1.bdocx.com/fileroot1/2023-1/31/41873bc0-d33a-4d9c-8f7f-ae2b97ac525e/41873bc0-d33a-4d9c-8f7f-ae2b97ac525e1.gif)
基于单片机STC89C52控制的智能小车
基于单片机STC89C52控制的智能小车
摘要:
该毕业设计是采用无线遥控基于单片机的功能实现的,当无线遥控器的某个按键按下时,无线发射器将按键信号以编码的形式在315MHz的频率上发射出去,无线接收器接收并放大发射信号同时解调出TTL电平信号送至单片机进行处理,单片机通过比较和识别接收来的无线遥控编码便可执行相应的遥控功能,从而实现智能小车的前进、后退、左转和右转的基本功能和伴随音乐演奏而闪烁的LED的开启与关闭的功能。
此外,我加入了温度传感器与时钟芯片,让它们在液晶显示器上显示其室温和时间,并用按钮进行时间的调控。
由于无线遥控模块是四路单向锁存模块,只能单线实现四个功能,所以发射模块的控制按键不够,根据需要,我仅仅用无线模块控制小车的前进和后退,停止,其它的采用按键调试,用按键来实现小车的前进/后退/左转/右转/音乐/时间调控等功能。
关键词:
无线模块;液晶显示模块;电机驱动模块;音乐;智能小车
引言................................................................3
1整体方案设计....................................................4
1.1整体方案设计的思路..............................................4
1.2整体方案的流程图................................................4
2避障遥控小车系统概况............................................4
2.1SC2272无线遥控模块原理..........................................4
2.2驱动原理的简介..................................................6
2.3直流电机简介....................................................9
3模块方案比较与论证.............................................12
3.1车体设计.......................................................12
3.2电机模块的选择.................................................12
3.3电机驱动模块的选择.............................................12
3.4控制器模块的选择...............................................13
4系统硬件电路设计...............................................14
4.1无线模块的设计.................................................14
4.2直流电机的驱动模块.............................................15
5软件的简单介绍.................................................16
5.1KEIL的简介....................................................16
5.2PROTUES的简介.................................................16
5.3STC_ISP_V480的简介.............................................17
参考文献..........................................................18
附录一:
实物图....................................................19
附录三:
总程序.....................................................22
引言
随科学技术的进步,智能化和自动化技术越来越普及,也广泛应用于机器人玩具制造领域,使智能机器人越来越多样化。
智能机器人是一个多种高新技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,涉及到当今许多前沿领域的技术。
而随着社会的不断发展,智能设备的不断出现,红外传感器、无线遥控的运用也越来越广泛。
无线遥控器由于控制距离远,抗干扰性强,已越来越多的出现在生活的各个方面。
本文使用了一款通用的无线遥控电路以及四路红外传感器,基于STC89C51作为控制核心,采用专用编码解码电路,由于其体积小、功能强大,因此可非常方便的移植到遥控小车上,实现小车在前行中自动绕开障碍物,并用遥控器实现远距离控制小车的前进、后退、左转、右转等功能。
1整体方案设计
1.1整体方案设计的思路
利用红外线传感器发射和接收信号模块来控制单片机,让单片机翻译传输指令,从而实现相应的功能。
具体的过程如下:
四路红外传感器,每一路发射一个信号,检测接收到的信号,若出现高电平,则说明该方向前方有障碍物,则单片机控制电机正转和反转,从而实现绕开障碍物继续前行。
同时还增加一个无线发射和无线接收模块控制单片机,让单片机翻译传输指令,从而实现相应的功能。
无线发射模块发出指令,无线接收模块接收信号后,传递给单片机,单片机翻译接收到信号后,传输给驱动电路驱动电机旋转,从而实现让小车的前进、后退、左转和右转。
1.2整体方案的流程图
基于单片机STC89C52整体设计的智能小车,根据原来设计的思路上画出了相对应的流程路,由于是整体结构图,就只是画出了大致的结构流程,而细节将在后面做出介绍。
图1整体方案的流程图
2避障遥控小车系统概况
2.1SC2272无线遥控模块原理
2.1.1SC2272的简介
超再生带解码四路遥控接收模块可以和发射器组成四路无线发射接收电路。
该模块广泛适用于广大电子爱好者对家庭、工业遥控类电子产品的设计和开发,可很好的作为单片机的信号输入源,特别适合大中院校学生电子电路设计、毕业设计中的遥控电路部分。
接收模块有自锁、非锁、互锁三种型号,说明如下:
非锁型输出又称点动输出,数据脚输出的电平是瞬时的而且和发射端是否发射相对应,可以用于类似点动的控制,有遥控信号时数据脚是高电平,遥控信号消失时数据脚立即恢复为低电平,适用于如电动门、电动门锁、与单片机对接等只需要一个高电平的电路等电路等。
自锁型输出的数据脚能实现触发翻转工作逻辑,数据只要成功接收就能一直保持对应的电平状态,直到下次遥控数据发生变化时改变。
自锁型四路相互独立互不影响,可同时遥控四路,如灯具的控制等。
互锁型输出就是任意一路收到信号则该路就能一直保持对应的高电平状态,接收到任意其它路的数据则恢复到原始状态,四路互锁只能有一路接通,实际应用如电风扇档位开关电路等。
2.1.2本次设计采用的接收板主要参数
工作频率:
315M
工作电压:
DC5V
工作电流:
≤3mA(5.0VDC)
工作原理:
超再生
调制方式:
ASK
编码芯片:
SC2272(PT2272、PT2294),芯片兼容
灵敏度:
优于-105dBm(50Ω)
输出信号:
非锁(M)
遥控距离:
20~50米以上(开阔地)
接收模块的七根引脚分别为D3、D2、D1、D0、GND、VT、VCC,其中VCC为DC5V的供电端,GND为接地端,VT端为解码有效输出端,只要发射器的数据码有输出,VT都能同步输出高电平;D3、D2、D1、D0是2262解码芯片的四位数据输出端,有信号时能输出5V左右的高电平,驱动电流约2mA,与发射器的四位数据码输出一一对应。
接收模块不焊天线也能接收信号,为提高接收灵敏度,可以用一根长度约为23厘米的软导线直接焊接到天线孔处,图中RC所指的是振荡电阻,接收模块和发射器的震荡电阻需要匹配才能工作,接收模块用的是270K或者820K电阻,可以分别和1.5M或者4.7M振荡电阻的发射器配套使用。
发射器可以用固定码四键遥控器或者带编码四路发射模块。
2.1.3原理图
图2固定编码接收模块原理图
2.2驱动原理的简介
驱动模块的核心实际上是H桥驱动电路组成的L298芯片。
2.2.1H桥驱动电路的内部原理解析如下
图5中所示为一个典型的直流电机控制电路。
电路得名于“H桥驱动电路”是因为它的形状酷似字母H。
4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:
图5及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。
如图所示,H桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
图3H桥驱动电路
要使电机运转,必须使对角线上的一对三极管导通。
例如,如图6所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。
按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。
当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
图4H桥电路驱动电机顺时针转动
图7所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。
当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
图5H桥驱动电机逆时针转动
2.2.2使能控制和方向逻辑
驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。
如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。
此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。
基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。
图8所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了4个与门和2个非门。
4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。
而2个非门通过提供一种方向输人,可以保证任何时候在H桥的同侧腿上都只有一个三极管能导通。
(与本节前面的示意图一样,图8所示也不是一个完整的电路图,特别是图中与门和三极管直接连接是不能正常工作的。
)
图6具有使能控制和方向逻辑的H桥电路
采用以上方法,电机的运转就只需要用三个信号控制:
两个方向信号和一个使能信号。
如果DIR-L信号为0,DIR-R信号为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电机(如图4.16所示);如果DIR-L信号变为1,而DIR-R信号变为0,那么Q2和Q3将导通,电流则反向流过电机。
图7使能信号与方向信号的使用
实际使用的时候,用分立元件制作H桥是很麻烦的,好在现在市面上有很多封装好的H桥集成电路,接上电源、电机和控制信号就可以使用了,在额定的电压和电流内使用非常方便可靠。
比如常用的L293D、L298N、TA7257P、SN754410等。
2.2.3恒压恒流桥式2A驱动芯片L298N
L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。
可以方便的驱动两个直流电机,或一个两相步进电机。
L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。
L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。
4脚VS接电源电压,VS电压范围VIH为+2.5~46V。
输出电流可达2.5A,可驱动电感性负载。
1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。
5,7,10,12脚接输入控制电平,控制电机的正反转。
EnA,EnB连接控制使能端,控制电机的停转。
表1是L298N功能逻辑图。
In3,In4的逻辑图与表1相同。
由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。
同为低电平电机停止,同为高电平电机刹停。
等。
图8单片机利用L298控制电机的原理图
15脚是输出电流反馈引脚,其它与L298相同。
在通常使用中这两个引脚也可以直接接地。
上图是其与51单片机连接的电路图
2.3直流电机简介
2.3.1直流电机的应用
动机简称电机,是使机械能与电能相互转换的机械,直流电机把直流电能变为机械能。
作为机电执行元部件,直流电机内部有一个闭合的主磁路。
主磁通在主磁路中流动,同时与两个电路交联,其中一个电路是用以产生磁通的,称为激磁电路;另一个电路是用来传递功率的,称为功率回路或电驱回路。
现行的直流电机都是旋转电驱式,也就是说,激磁绕组及其所包围的铁芯组成的磁极为定子,带换向单元的电驱绕组和电驱铁芯结合构成直流电机的转子。
直流电机有以下4方面的优点:
1)调速范围广,且易于平滑调节。
2)过载、启动、制动转矩大。
3)易于控制,可靠性高。
4)调速时的能量损耗较小。
所以,在调速要求高的场所,如轧钢机、轮船推进器、电机、电气铁道牵引、高炉送料、造纸、纺织、拖动、吊车、挖掘机械、卷扬机拖动等方面,直流电机均得到广泛的应用。
2.3.2直流电机的基本工作原理
直流电机工作原理:
当电刷A,B接在电压为U的直流电源上时,若电刷A是正电位,B是负电位,在N极范围内的导体ab中的电流是从a流向b,在S极范围内的导体cd中的电流是从c流向d。
载流导体在磁场中要受到电磁力的作用,因此ab与cd两导体都受到电磁力的作用。
根据磁场方向和导体中的电流方向,利用电机左手定则判断,ab边受力的方向是向左的,而cd边则是向右的。
由于磁场是均匀的,导体中流过的又是相同的电流,所以ab边和cd边所受电磁力的大小相等。
这样,线圈上就受到了电磁力的作用而按逆时针转动。
当线圈转到磁极的中性面上时,线圈中的电流等于零,电磁力等于零,但是由于惯性的作用,线圈继续转动。
线圈转过半周之后,虽然ab与cd的位置调换了,ab边转到S极范围内,cd边转到N极范围内,但是由于换向片和电刷的作用,转到N极下的cd边中电流方向也变了,是从d流向c,在s极下的ab边中的电流则是从b流向a。
因此电磁力的方向仍然不变,线圈仍然受力按逆时针方向转动。
可见,分别处在N,S极范围内的导体中电流方向总是不变的,因此线圈两个边的受力方向也不变,这样线圈就可以按照受力方向不停地旋转,通过齿轮或皮带等机构的传动,便可以带动其他机械工作。
从以上分析可以看到,要使线圈按照一定的方向旋转,关键问题是当导体从一个磁极范围转到另一个异性磁极范围时(也就是导体经过中性面后),导体中电流的方向也要同时改变,换向器和电刷就是完成这一任务的装置。
在直流电机中,换向器和电刷把输入的直流电变为线圈中的交流电。
可见,换向器和电刷是直流电机中不可缺少的关键部件。
当然,在实际的直流电机中,不只有一个线圈,而是有许多线圈牢固地嵌在转子铁芯槽中,当导体中通过电流在磁场中因受力而转动时,就带动整个转子旋转,这就是直流电机的基本工作原理。
2.3.3直流电机的参数
转矩-电机得以旋转的力矩,单位为㎏•m或N•m。
转矩系数-电机所产生转矩的比例系数,一般表示每安培电驱电流所产生的转矩大小。
摩擦转矩-电刷、轴承、换向单元等因摩擦而引起的转矩损失。
启动转矩-电机启动时所产生的旋转力矩。
转速-电机旋转的速度,工程单位为r/min,即转每分。
在国际单位制中为rad/s,即弧度每秒。
电枢电阻-电枢内部的电阻,在有刷电机里一般包括电刷与换向器之间的接触电阻,由于电阻中流过电流时会发热,因此总希望电枢电阻尽量小。
电枢电感-因为电枢绕组由金属线圈构成,必然存在电感,从改善电机运行性能的角度来说,电枢电感越小越好。
电气时间常数-电枢电流从零开始达到稳定值的63.2%时所经历的时间。
测定电气时间常数时,电机应处于堵转的状态并施加阶跃性质的驱动电压。
工程上,常常利用电动机转子的转动惯量J、电枢电阻Ra、电机反电动势系数Ke和转矩系数Kt求出机械时间常数:
…1-1
转动惯量-具有质量的物体维持其固有运动状态的一种性质。
反电动势系数-电机旋转时,电枢绕组内部切割磁力线所感应的电动势相对于转速的比例系数,也称发电系数或感应电动势系数。
功率密度-电机每单位质量所能获得的输出功率值。
功率密度越大,电机的有效材料的利用率就越高。
转子-rotor;定子-stator;电枢-armature;励磁-excitation。
3模块方案比较与论证
3.1车体设计
方案1:
自己制作电动车。
一般的说来,自己制作的车体比较粗糙,平衡感不好,车身重量以及车体比例都要有精确的测量,而且也要控制好小车行驶的轮胎与齿轮的力矩及角度的结合,这些都比较难实现。
方案2:
购买玩具电动车。
购买的玩具电动车具有组装完整的车架车轮。
玩具电动车具有如下优点:
首先,这种玩具电动车由于装配紧凑,使得各种所需电路的安装十分方便,看起来也比较美观。
其次,玩具电动车是依靠电机与相关齿轮一起驱动,能适应题目中小车准确前进、后退、转弯的要求,但是这种电动车一般都价格较贵。
基于以上分析,我们综合了方案一和方案二,还是选择了方案一,因为购买现成的小车不但价格较昂贵,而且它的功能固定,于是我们购买了两个轴承和两个直流电机(带减速机构),再自己组装完成了智能小车的车底。
3.2电机模块的选择
方案1:
采用步进电机作为该系统的驱动电机。
由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。
虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降。
经综合比较考虑,我们放弃了此方案。
方案2:
直流电机:
直流电机的控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。
对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。
PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比实现对电机转速的调节。
但是我们在这里设计的小车只要实现避障和无线控制,对小车的速度没有太大的要求,所以我们购买的是带减速装置的直流电机。
基于以上分析,我们选择了方案二,使用直流电机作为电动车的驱动电机。
3.3电机驱动模块的选择
方案1:
采用SM6135W电机遥控驱动模块。
SM6135W是专为遥控车设计的大规模集成电路。
能实现前进、后退、向右、向左、加速五个功能,芯片自建3.6V稳压模块,但是其采用的是编码输入控制,而不是电平控制,这样在程序中实现比较麻烦,而且该电机模块价格比较高。
方案2:
采用电机驱动芯片L298N。
L298N为单块集成电路,高电压,高电流,四通道驱动,可直接的对电机进行控制,无须隔离电路。
通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,亦能满足直流减速电机的大电流要求。
调试时在依照上表,用程序输入对应的码值,能够实现对应的动作。
表1是其使能、输入引脚和输出引脚的逻辑关系。
表3.1L298N的引脚和输出引脚的逻辑关系
ENA(B)
IN1(IN3)
IN2(IN4)
电机运行情况
H
H
L
正转
H
L
H
反转
H
同IN2(IN4)
同IN2(IN4)
快速停止
L
X
X
停止
基于以上分析,我们选择了方案二,用L298N来作为电机的驱动芯片。
3.4控制器模块的选择
方案1:
采用凌阳的SPCE061A小板作为主控制芯片,而且可以采用凌阳的小车模块,可以很快的完成其基本功能,当是用该小板存在一定的局限性,较难扩展功能,而且各个模块的拼凑,没有比集成在一块板的稳定性高。
方案2:
采用STC89C52作为主控制芯片,该芯片有足够的存储空间,可以方便的在线ISP下载烧写程序,能够满足该系统软件的需要,该芯片提供了两个计数器中断,对于本作品系统已经足够,采用该芯片可以比较灵活的选择各个模块控制芯片,能够准确的计算出时间,有很好的实时性。
基于以上分析,我们选择了方案二,用STC89C52作为电机的主控制芯片。
4系统硬件电路设计20
4.1无线模块的设计
4.1.1无线模块的仿真图
图9无线模块的仿真图
4.1.2无线模块的流程图
无线模块可以进行远程的控制,但有效距离不能超过十米,不然效果很差。
由于买的是锁存的四线路,只能单程的实现四种状态的控制,根据需要已经分为以下的四种模式,如下图所示
图10无线模块的流程图
4.2直流电机的驱动模块
4.2.1直流电机驱动模块的仿真图
图11直流电机驱动模块的仿真图
4.2.2直流电机驱动模块的流程图
电机驱动模块的核心是电机的驱动芯片及电机,电机选择了直流电机,这样可以方便控制,而电机的驱动芯片L298可以同时控制两个直流电机,其中芯片中连接单片机的5引脚和7引脚用于控制直流电机1,而芯片中的10引脚和12引脚用于控制直流电机2.电机1接的是小车的左轮,电机2接的是小车的右轮,当两个电机一起正向转动时,小车前进;当两个电机一起反向转动时,小车后退;当电机1正转,电机2反转时,小车右转;当电机1反转,电机2正转时,小车左转。
图12直流电机驱动模块的流程图
5软件的简单介绍
在这次的设计中,主要用到了keil,protues和STC_ISP等软件
5.1keil的简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
5.2Proteus简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10