杨敏
一、引言
隨着科技的发展进步和人民生活水平的不断提高,智能手机正在飞速发展。手机已成为人民生活中的依赖品,它集通信、生活、娱乐于一体,给生活带来极大的方便,一机在手,万物尽在掌握之中。为结合科技与教学,激发学生课堂上的兴趣,本文就手机APP蓝牙控制智能小车实例介绍,通过借助手机APP平台,运用蓝牙技术,实现用手机对小车实时遥控完成前进、后退、左转、右转、停止等动作,生动形象,有利于促使学生对科技与生活结合的理解,同时也为生活上的遥控玩具和智能家居的制作提供新的路径。
二、系统设计
(一)设计总思路
本设计的小车系统以STC89C52单片机为核心,以手机APP屏幕界面的按钮遥控小车的转动,中间采用蓝牙技术作为客服端发送接收数据,单片机根据HC-05为蓝牙接收模块接收到的数据信号指令进行分析处理,输出对应的指令信号,再由L298驱动电路相应的小车电机正、反转,实现控制小车的前进、后退、左转、右转和停止等动作,同时显示电路显示对应用的动作码。电源提供给单片机5V直流电,L298需要从外部接两个电压,分给电机和L298芯片。设计总电路结构框架图如图1所示。
(二)设计功能
本系统能自行设计手机APP,并能借助蓝牙技术传输命令,通过手机APP的控件控制小车的前进、后退、左转、右转、停止等动作,实现了手机APP与单片机通过蓝牙技术实现了有机结合,操作简便有趣。
三、硬件设计
(一)单片机及电机主电路
本系统以STC89C52单片机为主控单元,STC89C52单片机是一种8K字节可编程可擦除只读存储器的微处理器,具有高速、电压低、功耗低、抗干扰能力强等特点的单片机,简单、廉价、实用。整个小车系统采用了4轮驱动,使用L298N芯片电机驱动模块实现对左右两组电机的实时驱动控制;L298N驱动模块采用ST公司原装全新的L298N芯片,具有工艺、稳定性高的特点,其控制端口共有六个,通过与单片机的I/O连接,将接收单片机I/O口的高低电平信号即可驱动控制电机的正、反转以及停止的操作。外围电路还采用了两组由4个二极管组成的桥式整流电路,保证输出稳定的控制电机的电压。主电路如图2所示。
(二)蓝牙模块
本小车系统的蓝牙模块采用是HC-05芯片集成模块,如图3所示左图蓝牙接口和右图HC-05蓝牙模块。HC-05芯片里已经封装带有蓝牙协议,我们在使用时只需通过串口连接就能实现手机与51单片机的无线通信。该蓝牙模块有6个引脚,包括VCC、GND、TXD、RXD,蓝牙模块的引脚TXD与RXD分别与单片机的RXD与TXD引脚相连接, VCC和GND分别接电源和地给模块进行供电,控制信号通过RXD与TXD数据无线传输,手机与蓝牙模块配对连接就可以实现对小车的无线控制。该模块供电电压范围宽为3.3V~5.5V,宽波特率范围4800~1382400,并且模块兼容5V/3.3V单片机系统,具有成本低,兼容性好,功耗低等优点。
(三)显示电路
为能较好地判断出小车工作的状态,本电路加入显示电路,采用七段数码管显示。该电路主要用来显示电机控制的显示码,根据显示码就能对应知道小车正在运行的状态。显示电路如图4所示。小车运行状态与显示代码对应表如表2所示。
四、软件设计
(一)手机蓝牙APP开发软件
本设计采用的手机APP开发软件为广州市教育信息中心开发的APP INVENTOR 公共平台。该系统平台属免费开放平台,只要打开网址http://app.gzjkw.net/login/进行注册申请帐号或使用QQ帐号即可登陆使用,该平台编程采用的是积木式程序开发编程,可任意开发各种手机APP程序,简单易用。平台上APP的操作主要分组件设计和逻辑设计二部分,组件设计主要是对用户界面的控件(如按钮等)的布局设计,而逻辑设计是对控件添加上逻辑功能,然后通过客户端(如蓝牙)进行传送控制信息数据,以实现对小车的控制操作。最后组件设计和逻辑设计完成后,再点击打包APK生成手机APP二维码。生成的二维码就可以下载保存到电脑,或手机直接安装。手机安装好后,就可以进入控制界面,系统用户登陆界面如图5所示。
(1)该系统的客户端开发主要涉及到客户端界面的设计和逻辑功能代码的设计,本小车系统的设计组件如图6所示。
(2)逻辑设计如图7所示。
(二)单片机程序
本小车系统设计的主程序主要是由单片机的控制实现的,由手机蓝牙向蓝牙模块发送控制指令信息,单片机通过读取蓝牙模块输入的控制信息进行存储和分析,分析完毕后,向驱动电机模块发出控制指令,来实现控制电机驱动,控制小车的前进、后退、左转、右转和停止等动作。这个过程,先由单片机进行初始化,单片机不断对HC-05蓝牙模块的串口读取数据信息,如果串口 图8有数据指令发送,那就单片机将串口的数据读出,并对读出的数据信息进行分析判断,再向驱动模块输出对应的小车动作指令,以驱动小车运行。如果读得的数据信息为0x31、0x32、0x33、0x34、0x35,那么对应的小车的运行状态分别为前进、后退、左转、右转、停止。
(1)流程图如图8所示。
(2)小车控制系统单片机程序如下:
#include
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
void delays(unsigned int k)
{
unsigned int i,j;
for(i=0;i
for(j=0;j<120;j++); //1ms@sTc 11.0592
}
void UartInit(void) //9600bps@11.0592MHz
{
EA=1;
ES=1;
PCON |= 0x80;//使能波特率倍速位SMOD
SCON = 0x50;//8位数据,可变波特率
TMOD &= 0x0F;//清除定时器1模式位
TMOD |= 0x20;//设定定时器1为8位自动重装方式
TL1 = 0xFA;//设定定时初值
TH1 = 0xFA;//设定定时器重装值
ET1 = 0;//禁止定时器1中断
TR1 = 1;//启动定时器1
}
unsigned char ch;
void serilas() interrupt 4
{
if(RI==1)
{
RI=0;
ch=SBUF;
SBUF=ch;
while(TI==0);
TI=0;
}
}
void main()
{
UartInit();
while(1)
{
if(ch==0x31)
{P0=0x9f;P12=1;P13=0;P14=1;P15=0;} //前進
if(ch==0x32)
{P0=0x25;P12=0;P13=1;P14=0;P15=1;} //后退
if(ch==0x33)
{P0=0x0d; P12=0;P13=1;P14=1;P15=0;delays(500);P13=0;P14=0;} //左转
if(ch==0x34)
{P0=0x99;P12=1;P13=0;P14=0;P15=1;delays(500);P12=0;P15=0;} //右转
if(ch==0x35)
{P0=0x49;P12=0;P13=0;P14=0;P15=0;} //停止
}
}
五、系统调试
(一)手机APP控件安装
通过手机扫描APP二维码,下载控制模块App并安装安装完毕后,手机的控制界面图如图9所示:
(二)下载单片机程序并调试
采用Keil编写输入C程序,编译运行通过后,生成HEX文件,再通过USB下载口把HEX文件下载到单片机中,上电后即可以进行调试。调试程序如下:首先打开手机APP的小车系统控制界面,点击蓝牙选择按钮,选择与小车HC-05的蓝牙进行配对,配对成功后,就可以按手机上的控制小车的动作按钮,手机通过蓝牙将动作按钮对应用的控制信息数据发送到小车蓝牙上,单片机读取数据信息并根据信息发出控制小车的信号,由驱动电路驱动控制小车电机的转动,实现小车前进、后退、左转、右转和停止等功能动作;同时数码管也显示出小车对应的动作代码。例如:按下手机上的前进按钮,小车四轮正转进行前进动作,数码管上显示数字“1”。
(1)蓝牙配对
打开手机蓝牙,再打开手机控制小车APP,点击蓝牙选择按扭,选择HC-05蓝牙,选择成功如图10所示:
(2)实物调试如图11所示左图为小车前进图,右图为小车停止图,此实物图是建立在整个小车成品系统上调试的,单独也可以调试。
六、结束语
本设计系统主要是实现了目前流行的手机对小车的无线控制,虽然整个系统功能还不够完美,还可以增加路障检测等功能来完善。但是无线控制的功能已经是实现的,实用性较强,可以为广大教师单片机课程趣味性提供一个实例,也可以为智能化和无线控制技术的研发提供一个新方法和思路。同时在撰写论文及调试的过程中,大大地扩宽了笔者的知识面,反复的调试过程中,也锻炼提高了笔者的分析问题和解决问题的能力。endprint