版权信息
省级大型综合性科技类期刊
主管部门:自治区科技厅
主办单位:自治区科学技术信息研究院 
协办单位:自治区科学技术情报学会
编辑出版:科技期刊编译室
刊社地址:内蒙古呼和浩特新城西街149号本刊杂志社
邮政编码:100010
电      话:0471-2536371

E-mail  :

nmgkjzz@vip.163.com 

网站地址:www.nmgkjzz.com


往期杂志
当前位置: 首页>往期杂志>详细介绍

基于STC89C52的多功能蓝牙遥控小车设计

时间:2016-07-28来源: 作者: 点击: 138次



摘要:本文以STC89C52单片机为核心,设计出一款包含蓝牙通讯模块、电机驱动模块、红外循迹模块以及液晶显示模块的遥控小车,可实现小车的前进、后退、左转弯、右转弯、循迹、避障、调速等多种功能,通过连接手机或电脑终端蓝牙模块对小车进行智能化控制。

关键词:蓝牙;多功能;单片机;遥控小车

中图分类号:TN99    文献标志码:B

 

Design of Multi-functional Remote Control Car Using Bluetooth Based on STC89C52

Dai Yu-pei,Zhang Yu,Liu Yun-fei

( College of information science and technology in Nanjing Forestry University, Nanjing,210037)

AbstractBased on STC89C52 single-chip microcomputer, this paper designs a remote control car composed of Bluetooth communication module, motor drive module, the infrared tracking module and LCD module , which can realize multiple functions such as going forward and backward, turning left and right, tracking ,obstacle avoidance and speed regulation. Through the connection of Bluetooth module, the mobile phone or computer can control the car intelligently.

Key wordBluetooth communicationmulti-functionsingle chip microcontrollerremote control car

 

0 引言

遥控小车作为一种普遍的玩具,在不同年龄层的人群中都受到欢迎。传统的小车多采用遥控手柄进行控制,在手机非常流行的今天,我们是否可以通过手机蓝牙技术实现对小车的控制?

作为一种支持短距离通信的无线电技术,蓝牙支持点对点及点对多点通信,可以连接多个设备[1]。采用蓝牙技术后,手机蓝牙只要成功配对并连接小车的蓝牙模块,就可以实现对小车的智能化控制了,并且同一部手机可以控制所有装有蓝牙模块的小车,相当于一个万能遥控器[2]

同时,本文设计的小车还可以实现循迹、避障、调速多种功能,是玩具小车向赛车的一种升级,另外循迹、避障功能在实际生活中也可以应用在其他领域。

一、总体方案设计:

    如图1所示,系统的核心处理器采用了STC89C52RC单片机,STC89C52RCSTC公司生产的一种低功耗、高性能的CMOS 8位微控制器。其内部含有3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口[3-5]

本设计充分运用了STC89C52内部的三个定时器,其中定时器T0用于调速功能,定时器T1用于蓝牙控制,定时器T2用于超声波避障。

 

 

 

 

液晶显示模块

超声波避障模块

红外循迹模块

蓝牙模块

STC89C52单片机最小系统

电机驱动模块

 


 


     

 

 

 

 

 

1.系统框图

                                                                                 

二、主要模块设计

2.1蓝牙模块:

本设计采用的蓝牙模块,其核心模块使用HC-06从模块,可以与各种带蓝牙功能的电脑、手机、蓝牙主机等进行配对。配对以后,蓝牙模块可充当全双工串口使用,支持8位数据位、1位停止位、无奇偶校验的通信模式。在未建立蓝牙连接时,可通过AT指令设置波特率、名称、配对密码,波特率默认设置为9600bps。蓝牙连接以后自动切换到透传模式[6-7]

    蓝牙通信,实质就是串口通信的无线传输,通过虚拟串口进行数据的收发。使用之前,先进行蓝牙收发测试,让蓝牙模块自收自发。测试成功后,将蓝牙模块接单片机,与手机蓝牙配对连接,用手机进行控制,从中我们发现蓝牙模块必须自己先发一个字节或字符串,才能接受手机发送的指令。即蓝牙从机先发送一个试探信号,主机响应后,建立连接,从机再接收主机发出的信号。

以下是实现蓝牙通信的主要程序。

 void main()

{

Uart_byte(0xCA); //11001010蓝牙发送一个字节的试探信号

   Uart_Init(9600);   //波特率设置

       while(1)

   {

         Uart_recv();

         if (Recv_Flag)

         {

                Recv_Flag=0;

                if (Uart_string("***"))

                {           

                    执行相应操作;

                }

          }

          Uart_Buff_Clear();

  }

 

2.2超声波避障模块:

    采用HC-SR04超声波测距模块,它可提供2cm~4m 的非接触式距离感测功能,测量角度为15度,测距精度高达3mm[8]。模块包括超声波发射器、超声波接收器与控制电路。

如图2所示,超声波模块采用IO口触发测距, IO口给发射端至少10us的高电平信号,模块内部自动发送840KHz的方波信号,检测是否有信号返回;如果有信号返回,接收端通过单片机IO口输出一个高电平,回波信号的脉冲宽度与所测的距离成正比[9-10]。高电平持续的时间t就是超声波从发射到返回的时间,可以推出测试距离HCSR04_Measure=(t*340m/s)/2


软件编程中,首先定义距离变量,进行系统初始化,而后进入避障循环。循环中,如果反射波的距离小于20cm,说明20cm内有障碍物,此时执行后退指令,小车后退到30cm处执行左转指令,避开障碍物后再执行前进指令。避障程序与调速函数相配合,快遇到障碍物时小车减速,避开障碍物后小车加速,避免速度过快造成小车反应不及时引起的翻车和不能避障。

以下是实现超声波避障的主要程序。

void main()

{

       unsigned int hc_result;

       Sys_Init();

       while(1)

       {

              hc_result=HCSR04_Measure(); //测距

              if (hc_result<20)            //单位cm

              {    

Moto_Speed_R=6;         //速度

                     Moto_Speed_L=6;

                     Car_Run(2);          //后退

              }

              else if (hc_result<30)

              {

                     Moto_Speed_R=6;         //速度

                     Moto_Speed_L=6;

            Car_Run(3);         //左转

              }

              else

              {

                     Moto_Speed_R=8;    //速度

                     Moto_Speed_L=8;

            Car_Run(1);         //前进

               }

                           

        }

}

2.3循迹模块

这里运用两个循迹传感器,分别装在小车前方的左右两端,通过模块上电位器旋钮可调节检测距离,有效距离范围为230cm[11]。传感器模块输出端口OUT直接与单片机IO口连接,电压比较器采用LM393

循迹传感器对环境光线适应能力强,其具有一对红外线发射管与接收管。发射管发射出一定频率的红外线,当检测方向遇到反射面时,则红外线反射回来被接收管接收,接收端导通,通过电压比较电路,信号输出接口OUT端输出低电平信号0。反之,当检测方向遇到非反射面(黑色)时,信号输出接口OUT端输出高电平信号1[12]

对模块的测试过程中,将白色物体和黑色物体分别遮挡传感器发射管和接收管,检测循迹模块的灵敏度,并通过调节电位器旋钮到白色物体遮挡时模块上指示灯刚好亮起,黑色物体遮挡时立即熄灭。

根据循迹模块的原理,结合调速函数,编写程序如下。      

void main()

         {

             while(1)

             {

if((Tracking_R==0)&&(Tracking_L==1)//右白左黑

                   {                   

                          Moto_Speed_R=3;       //减速

                       Moto_Speed_L=3;

                          Car_Run(3);         //左转

                          strat=1;

                   }

                  else if((Tracking_R==1)&&(Tracking_L==0))//右黑左白

                   {

                         Moto_Speed_R=3;     //减速

                         Moto_Speed_L=3;

                             Car_Run(4);          //右转

                         strat=2;  

                    }

                  else if(Tracking_R==1)&&(Tracking_L==1)  //全黑

                    {

                          Car_Run(0);       //停止

                       strat=3;

                    }

                 else                              //全白           

{

                  Moto_Speed_R=3;         //减速

                         Moto_Speed_L=3;

                         Car_Run(1);            //前进

                          strat=4;

                 }

                   if (strat!=tstart)     //状态判别

                  {

                      tstart=strat;

                         Moto_Speed_R=8;  //加速

                        Moto_Speed_L=8;

                         delay ();

                         delay ();

                   }

           }

         }

装有循迹模块的小车可实现正常路面1.5cm宽黑色引导线的较准确循迹,包括S弯,直角弯等,并在偏离黑色引导线时能够自动纠正。

 

2.4电机驱动模块和液晶显示模块

电机驱动模块采用L298NH桥直流电机驱动芯片,可驱动2路直流电机,使能端高电平有效。模块输入端IN1IN2IN3IN4分别连接单片机的IO口,通过输入高低电平可实现对小车行进方向的控制。

使能端ENAENB同样接单片机的IO口,对使能端输出PWM脉冲,即可实现调速。

液晶显示模块,采用LCD1602液晶显示屏,将显示模块各引脚分别对应与单片机IO口进行连接,液晶模块显示小车当前所处的状态以及行进速度级别0~100为停止,10位最快。程序较简单,这里不再赘述。

三、系统软件设计

分别测试各个模块,各个模块均正常工作后,统一通过手机蓝牙客户端进行控制,此时蓝牙客户端相当于小车的遥控器,用来实现小车的多功能运转。总体软件流程图如图3所示。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

开始

系统初始化

手机发送指令

蓝牙串口收到指令

指令识别

N

液晶显示并执行相应操作

清除串口缓存等待接收下一条指令

速度8

速度10

退

速度6

超声波

控制电机驱动

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


3.系统软件流程图

 

四、实现

如图4所示,制作完成的小车可以实现前进、后退、左转、右转、停止、调速、超声波避障、循迹多种功能。通过手机蓝牙APP发送相应命令,发送后即能迅速跳入该命令程序并执行操作,蓝牙控制的优先级最高,各命令间切换灵活方便[13-14]

 Screenshot_2016-05-16-15-52-28_com.yuesheng.bluetooth.keyboard Screenshot_2016-05-16-15-52-53_com.yuesheng.bluetooth.keyboard

   图4.手机蓝牙控制界面

 

五、结论

基于STC89C52单片机,利用蓝牙技术制作的遥控小车,结构简单,操作方便,任何一个带蓝牙功能的设备都能对小车进行控制。

同时,多功能的设计为传统小车的改良提供了思路,并且可以在此基础上拓展提高,实现更多更强大的功能[15-16]。比如,在循迹功能的基础上,给小车安装摄像头,实现特定轨迹的拍摄。在避障功能的基础上,用小车进行探测,如探测隧道长度,前方是否有障碍物等,给小车装上GPS定位器,让小车将物品带到指定地点等。如果进一步提高小车循迹避障的精度,以及在蓝牙技术的基础上寻找可以实现更远距离控制的无线通信技术,小车的应用范围将更广泛。

由此可见,本文设计的小车不只限于作为一种玩具,它完全可以应用在实际生活中,具有一定的实用价值,这对小型智能机器人的发展有极大的意义。

 

参考文献 (References)

[1] 曹鸣鹏,翟增晖.蓝牙核心技术[J].无线通信技术, 2001 (4):29-33.

[2] 魏雅. 基于蓝牙控制的循迹智能小车的设计与研究[J]. 自动化与仪器仪表,2016,04:88-89.

[3] 杨维祎,郭颖,栾哲江,付玉祥,刘浩文. 基于STC98C52的智能玩具小车设计[J]. 电子设计工程,2016,10:97-99.

[4] 陈中,朱代忠. 基于STC89C52单片机的控制系统设计[M]. 北京:清华大学出版社,2015.11:57-62.

[5] 魏立峰,王宝兴.单片机原理与应用技术[M]. 北京:北京大学出版社,2006:21-24.

[6] 马建仓,罗亚军,赵玉亭.蓝牙核心技术及应用[M]. 北京:科学出版社, 2003:17-20.

[7] 刘锋,陈军.基于蓝牙的果园机器人遥控系统研究[J]. 农机化研究,2011(12):139-142.

[8] 陈骏. 基于超声波测距与控制的运动实验平台研发[D]. 南京邮电大学, 2014.

[9] 梁子剑.浅析超声波传感器及其应用[J].商情, 2013(35):238-239.

[10]李广球,陈昌雄,李广灏,张旭. 基于无线超再生通信模块的超声波测距系统[J]. 机械工程与自动化,2016,03:126-128.

[11]陈广祥,张治斌. 基于红外反射式传感器的循迹车系统设计[J].单片机与嵌入式系统应用,2010(09) :67-69.

[12]李晓娟,王雅慧,秦国庆. 基于蓝牙的智能小车循迹避障设计与实现[J]. 河南科技学院学报(自然科学版),2016,02:63-67.

[13]金纯,林金朝等. 蓝牙协议及其源代码分析[M]. 北京:国防工业出版社,2006.06:13-17.

[14]林长青,成海量.基于Android系统和蓝牙通信的手机遥控车设计[J]. 山西电子技术,2012.03:56-58.

[15]王志敏,宋欣,杨磊,迟志康,张仲雄. 智能型家庭服务机器人的设计与实现[J]. 科技创新与应用,2016,15:1-3.

[16]王新海,李首富,张宴,周仙明,李超. 水下探测机器人的研发与测试[J]. 兵工自动化,2016,05:88-91+96.

作者简介: 戴宇培:(1992-),女,江苏省南通市人,南京林业大学信息科学技术学院硕士在读,从事传感器与控制研究,794106072@qq.com

张钰:(1994-),男,安徽省天长市人,南京林业大学信息科学技术学院本科在读,从事计算机与通信研究,564837971@qq.com

刘云飞: (1963-), 男,江苏省南通市人,南京航空航天大学测试计量技术及仪器专业博士毕业,南京林业大学电子信息工程系教授,从事信号处理方向的研究工作,981942817@qq.com

本刊创刊于1982年,是由自治区科技厅主管、自治区科技信息研究院主办,由自治区科技情报学会协办、国内外公开发行的省级综合性科技刊物,是反映内蒙古自治区科技与经济发展的窗口。杂志入选《中国期刊全文数据(CJFD)》全文收录期刊和《中国学术期刊综合评价数据(CAJCED)统计刊源期刊,《中国核心期刊(遴选)数据库》收录。本刊是公开发行的综合性科技期刊,为月刊,大16开本。本刊坚持以科技创新为目标,融科技、经济、信息、产业、市场为一体,是促进科技成果转化、推动科技进步、加强技术创新,促进经济发展的专业性期刊。