基于单片机遥控小车控制系统设计

2015-06-23 13:56沈翠凤
关键词:三极管测距遥控

陈 中,沈翠凤

(盐城工学院 电气学院,江苏 盐城 224051)

基于单片机遥控小车控制系统设计

陈 中,沈翠凤

(盐城工学院 电气学院,江苏 盐城 224051)

对基于单片机遥控小车控制系统进行设计,充分运用微机丰富的逻辑判断和数值运算功能,不仅可以实现模拟控制器的数字化,而且可以使得控制方式简单可行。针对现有的单片机应用的理论,重点介绍了具体设计时各种问题的解决方法以及改进措施,最后通过实验证明了提出方法的正确性。

微处理器;逻辑判断;参数变化;无线模块

基于单片机控制的遥控小车系统有控制方案先进、设计合理等特点,目前已有文献[1]对单片机控制遥控小车进行介绍。本文是对基于单片机控制的遥控小车控制系统的完整设计, 需要通过无线模块实时传输超声波测距数据,按照已有的文献[2-4]难以完成。本设计有两个关键点:一是超声波测距电路充分利用单片机的外部中断和定时器功能来检测距离,二是通过单片机普通端口模拟SPI时序实现无线模块通信。

1 基于单片机控制遥控小车工作原理

图1为基于单片机摇控小车工作原理结构图。单片机STC89C52RC为控制小车运动的核心元件。图1中发射板上液晶显示屏12864显示小车与前方障碍物的距离,单片机根据液晶屏上的显示距离通过独立式键盘上的4个控制按键决定小车动作,并将其指令通过无线发射模块发送给小车上的接收板;接收板上的无线模块接收到发射板的信号后,控制小车运动,并将小车超声波测距模块测得与前方障碍物的距离实时传送给接收板,由接收板上的液晶屏12864显示出来。如果前方障碍物离小车的距离小于40 cm,小车将自动转向(本文仅设计小车右转)。

图1 基于单片机控制遥控小车工作原理结构图Fig.1 The structure chart of the remote control car action based on Microcontroller

2 基于单片机小车发送和接收模块的硬件电路设计

2.1 接收板主电路设计

小车运动采用小功率直流电动机驱动。接收板主电路中控制小车前进或后退的驱动电路由4个9012三极管与1个直流电机构成的H桥式电路组成,如图2a所示;控制小车转向(这里是右转)的驱动电路由1个9012三极管与1个直流电机组成,如图2b所示。理论上H桥式驱动电路的上桥臂一般都是NPN型三极管,下桥臂都是PNP型三极管,但在具体设计过程中,发现NPN型三极管导通不正常,主要原因是51单片机输出电流较小,不易驱动NPN型三极管,造成直流电机旋转不正常,所以本设计中H桥式驱动电路上、下桥臂都采用PNP型三极管。

图2 接收板主电路Fig.2 Main circuit of DC motor control

在设计小车转向电路时,并没有采用H桥式电路,这是因为控制小车转向的是舵机,2个9012三极管导通时,舵机的电压较低,小车转动的角度很小,转向不明显。为了减小直流电机的压降,只采用一个三极管控制,故本次设计只考虑小车向一个方向转动即右转。

2.2 控制电路设计

基于单片机控制电路主要是键盘电路、液晶显示电路、无线发射和接收电路、超声波测距电路等组成,其中键盘电路采用独立式键盘方法[5],下面重点介绍无线发射和接收电路、超声波测距电路、液晶显示电路的设计方法。

2.2.1 无线发射和接收电路的设计

摇控小车发射板和接收板之间的通信是通过无线模块RF24L01完成的。RF24L01是一款新型单片射频收发器件[6],采用SPI总线工作方式,而STC89C52单片机没有SPI总线端口,因此必须把单片机普通端口模拟SPI总线。另外RF24L01芯片对电源的稳定性要求较高,工作时需要3.3 V电压供电,本设计采用AMS1117芯片为RF24L01提供3.3 V电源,如图3所示。图3中AMS1117芯片并联了两个电容,一个是有极性电容,其值为47 μF,另一个是瓷片电容104。无线模块RF24L01芯片每个端口都串联了一个2 kΩ电阻,主要起到保护芯片的作用,这几个元件的参数均不能改变。

图3 无线模块连接电路图Fig.3 Circuit of Wireless Modules connection

2.2.2 超声波测距系统设计

超声波测距系统采用超声波测距模块HC-SR04[3],其工作原理是模块发出超声波,遇到障碍物时,超声波返回,然后根据返回的时间计算前方障碍物的距离。具体地说,模块采用I/O触发测距,控制口trig发出一个至少10 μs的高电平超声波信号,同时开定时器计时,此时模块自动发出8个40 kHz的方波,自动检测是否有信号返回;超声波遇到障碍物返回时,模块接收口Echo产生外部中断并输出低电平,同时读出定时器的值。超声波从高电平变为低电平的持续时间就是其发射到返回的时间,由此计算障碍物的距离=高电平持续时间×声速(340 m·s-1)/2。如此不断的周期测量,得到不同的测量值。

2.2.3 液晶显示电路设计

本设计选用液晶显示屏12864显示小车与前面障碍物的距离。12864有两种工作方式,即串行和并行,本设计采用并行工作方式,由单片机P2口作为控制端,P0口和液晶屏12864进行并行通信。

发射板电路如图4所示,接收板电路图如图5所示。

图4 基于单片机遥控小车发射板控制系统硬件电路图Fig.4 Hardware circuit of remote control car to emission circuit board system based on MUC

图5 基于单片机遥控小车接收板控制系统硬件电路图Fig.5 Hardware circuit of remote control car to receive circuit board system based on MUC

3 软件系统设计

软件系统主要有键盘扫描程序及处理程序、显示程序、无线发射和接收程序等组成。发射板的程序流程图如图6所示,接收板的程序流程图如图7所示。

图6 基于单片机遥控小车发射板控制系统流程图Fig.6 The flowchart of remote control car to emission circuit board based on MCU

图7 基于单片机遥控小车接收板控制系统流程图Fig.7 The flowchart of remote control car to receive circuit board based on MCU

3.1 液晶12864显示程序的编制

由于液晶显示屏采用的是并行工作方式,在编程中采用了函数表达[4],其关键部分程序如下:

void display(unsigned long int shu)

{

uchar dis_flag;

uchar table[]={" "};

uchar code dis2[]={"当前距离:"};

if(shu<=9)

{

dis_flag=1;

table[0]=shu%10+' 0';

}

else if(shu<=99 & shu>9)

{

dis_flag=2;

table[0]=shu/10+' 0';

table[1]=shu/1%10+' 0';

}

......

3.2 无线模块通信发射和接收程序

无线模块通信程序是设计的难点。设计时先编制个头文件,在头文件里定义无线模块的各个端口、寄存器及寄存器中发射(接收)数据的地址等,并在主程序中用单片机普通I/O口模拟SPI总线。具体方法是在主程序中写个uchar SPI_RW(uchar byte)函数,并根据SPI协议,将接收到的数据或指令按字节传输到到模块RF24L01,再从另一个模块RF24L01读出。具体地说,就是在主程序中定义一个静态发送地址、发送和接收数据的宽度(二者一致),将单片机中数据value传送到reg寄存器,然后将reg寄存器中数据读到pBuf缓存,最后写入到RF24L01寄存器中。数据传输时将使能接收通道定义为0通道,自动应答使能接收通道也定义为0,射频通道定义为0x40,数据传输率为1 Mbps,发射功率为0 dB/m,采用低噪声放大器增益。需要注意的是:数据发送时需将主程序中TX_Mode()函数设置为发送模式,接收数据时则将RX_Mode()函数设置为接收模式,同时将无线模块RF24L01变为接收模,进行16位CRC校验。另外,在发射板等待接收板传送数据过程中,为避免等待小车发送信号而出现的“死机”现象,需要在发射板接收函数中编制个段延时语句,超过这个延时,程序就不再等待,继续往下运行。

4 实验结果

为了验证以上分析结果,根据硬件和软件系统设计,做成实物,如图8所示。

a 接收板实物

b 发射板实物

当设计小车前进的按键按下时,小车前进,并把前方障碍物通过超声波测距模块实时检测出来,经无线模块传输到接收板,运行状态如图8a所示。按下不同的按键,小车执行不同的动作。如果按下转向按键,小车就会转向;当小车离前方障碍物小于40 cm时,小车自动转向。

当接收板数据经无线模块传送到发射板后,将在液晶屏12864显示,然后根据显示数据决定小车动作,或前进或转向。接收板状态如图8b所示。

小车运动试验表明小车硬件和软件系统设计完全正确。

5 结论

在单片机控制遥控小车调速系统的基础上,采用硬件和软件系统相结合的设计方法,将单片机普通端口模拟SPI时序,并对小车无线接收、电机驱动以及超声波测距电路等进行了分析和设计。试验结果表明设计的正确性, 为基于单片机遥控小车控制系统分析和设计提供了新的方法。

[1] 陈中,沈翠凤.基于单片机直流调速控制系统设计[J].盐城工学院学报,2012,25(3):76-78.

[2] 周冠军,毕祥丽.LMD18200T的直流伺服电动机驱动器的设计[J].电子工业专用设备 2006,11(4):56-58.

[3] 杭和平,杨芳.单片机原理和应用[M].北京:机械工业出版社,2003.

[4] 陈伯时.电力拖动自动控制系统——运动控制系统[M].3版.北京:机械工业出版社,2003.

[5] 李兰友.单片机开发应用十例[M].北京:电子工业出版社,1994.

[6] 谭运光.单片机开发手册[M].北京:电子工业出版社,1994.

[7] 丁元杰.单片机原理及应用[M].北京:机械工业出版社,2005.

(责任编辑:李华云)

The Design of Control System of Remote Control Car Based on Single Chip Microcontroller

CHEN Zhong, SHEN Cuifeng

(School of Electrical Engineering, Yancheng Institute of Technology, Yancheng Jiangsu 224051, China)

The control of remote control car based on single chip microcontroller is designed. Making full use of computer feature of logical judgment and numerical calculation operations, which not only achieving the digit to analog controller, but also make it possible to simple and feasible of the control way. For the existing MCU application of theory,the paper emphasis explain the solve method and improvement measure to various actual. design. The experiment presented correctness of the proposed method.

microprocessor; logical judgment; parameters change; wireless modules

10.16018/j.cnki.cn32-1650/n.201504008

2015-07-01

陈中(1968-),男,安徽六安人,讲师,硕士,主要研究方向为电机控制。

TM341

A

1671-5322(2015)04-0032-05

猜你喜欢
三极管测距遥控
“遥控”老师
类星体的精准测距
他是如何遥控引爆的
浅谈超声波测距
三极管放大电路的研究
基于PSOC超声测距系统设计
巧用三极管内部结构图分析三极管电路
相对差分单项测距△DOR
遥控赛车
遥控提琴