基于安卓手机遥控的智能车设计
2019-01-08郜东贤袁丽丽袁胜富卢颖王欣宇
郜东贤 袁丽丽 袁胜富 卢颖 王欣宇
摘要:本文采用STC89C52为主控芯片,分别通过WIFI和蓝牙将手机PC端与单片机的通讯,进行远程操控,实现前进、后退、坦克式转弯、普通左转右转等功能。WIFI控制主要指通过配置esp8266 AT指令模块,连接手机端APP,即可在一定范围内进行精准操作。蓝牙控制是通过蓝牙地址配对、密码校验、预置指令和手机APP的设置,远程遥控智能车。
关键词:STC89C52单片机;手机APP;ESP8266 WIFI;HC-05蓝牙
中图分类号:TP23 文献标识码:A 文章编号:1007-9416(2019)10-0167-02
0 引言
智能小车是一个复杂而又庞大的系统,其控制核心是内部的控制芯片。用多种传感器来采集外部环境信息并将接收到的信息传给主控制器,然后由控制器来控制其各个模块执行相应的动作。智能小车的制造成本相对来说比较低廉,在我们的日常生活中有着十分广泛的运用。
蓝牙和WIFI在智能设备的控制领域普及型较高,应用广泛。在一定距离范围内,蓝牙可实现点对点的遥控,其成本低廉,产量大;WIFI可实现远距离控制,速度快,且WIFI可实现多人连线控制,手机只需下载APP,即可实现对小车的遥控,在智能遥控小车的玩具市场有着广阔的前景,对智能车的开发有着及其重要的研究意义。
1 电路设计
系统结构设计见图1,STC89C52RC是STC公司生产的一种低功耗、高性能CMOS 8位微控制器,有灵巧的8位CPU和系统可编程Flash。其中电源模块采用AMS1117-3.3V,两节3.7V锂电池,为单片机和WIFI模块提供5V和3.3V,另外外扩4节3.7V的锂电池,产生12V的直流电源。
为保证信息的匹配,可通过HC-05 AT指令修改BLUTOOTH设备的波特率,保持与STC89C52RC一致。
ESP8266 WIFI模块是嵌入式WIFI模块、体积小、功耗低,采用IEEE802.11協议,通过INTERNET网络传输数据,实现用户串口、以太网、WIFI之间的灵活转换,如图2所示。
STC89C52RC控制电机驱动模块L298N,通过修改输入端的逻辑电平,实现电机正转与反转,从而控制小车的转向。
2 软件设计
本文采用KEIL C语言软件开发系统,实现模拟串口初始化、串口中断通信、模拟串口通信、模拟串口中断溢出、智能车驱动等。具体流程图如图3所示。
定时计数器采用T0、T1,8位自动填充的方式2,波特率4800BPS,TH0=28-211
串口中断通信:
void Send_Uart(u8 value)
{ ES=0; //关闭串口中断
TI=0; //清发送完毕中断请求标志位
SBUF=value; //发送
while(TI==0); //等待发送完毕
TI=0; //清发送完毕中断请求标志位
ES=1; //允许串口中断
}
模拟串口通信:
void SendByte(unsigned char b)
{ unsigned char i=8;
TXD1=0;
TIMER_ENABLE();
TIMER_WAIT();
while(i--)
{if(b&1)TXD1=1; else TXD1=0; TIMER_WAIT(); b>>=1; }
TXD1=1; TIMER_WAIT();TIMER_DISABLE();
}
智能车驱动:
if(i=='1')//停止
{stop();}
if(i=='2')//前进
{go();}
if(i=='3')//左转
{right();}
if(i=='4')//右转
{left();}
if(i=='5')//坦克左转
{tank_right();}
if(i=='6')//坦克右转
{tank_left();}
智能车直行时,四个电机方向相同,同时为正向;后退时,四个电机方向相同,同时为反相;45°左转时,左边一个轮子停止运动,右边两个轮子正向运动;45°右转时,右边一个轮子停止运动,左边两个轮子正向运动;90°左转时,左边两个轮子停止运动,右边两个轮子正向运动;90°右转时,右边两个轮子停止运动,左边两个轮子正向运动;360°左转时,左边两个轮子反相运动,右边两个轮子正向运动;360°右转时,右边两个轮子反相运动,左边两个轮子正向运动。
3 测试与结果分析
用于实现小车控制的客户端APP是微软公司研发的SPP软件,画面简洁,操作易于上手,如图4、图5所示。只需要普通的网络调试助手APP进行连接即可。
经测试蓝牙距离为50~100米,距离的长短随障碍物的厚度递减WIFI距离为400米以内,当具有障碍物如墙时,距离缩减,详见表1。
模拟串口采用中断1,正常串口采用中断4,当WIFI控制智能车时,蓝牙可以进行阻断和操作;当蓝牙操作时,WIFI无法改变小车运行的一系列操作。其次,小车的速度由L298N的电压控制调节,测得14.8伏、速度为2米/秒;10.8伏、速度为1米/秒;6.8伏、速度为0.5米/秒。
实际操作中,找到热点esp8266,输入密码***********,连接成功;在手机端APP与ESP8266选择的模式2相连接,IP设置为初始:192.168.4.1端口为预设值8080(可通过AT指令更改)。在手机客户端操作一系列指令,可控前进,后退,停止,坦克左,坦克右等一系列功能。打开蓝牙,进行匹配,连接,发送预置指令同时遥控智能车。