微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于安芯一号SLH89F5162的蓝牙控制小车

基于安芯一号SLH89F5162的蓝牙控制小车

时间:02-14 来源:电子发烧友网 点击:

是高耐压、大电流七路达林顿驱动器阵列,是集电极开路(OC)输出的反向器。单个引脚最大驱动电流可以达到500mA。通常应用时是把负载的一端接到电源上,另一端接到输出引脚(10~16)上,这样当输入端为高电平时,输出端就反转为低电平,导通负载。

  由于安芯一号自带的PWM0,PWM1为P4.6和P2.7,故ULN2003的2个输入口选择了P4.6和P2.7,输出端则分别连接到2个直流电机的一端。此处之所以使用2个输入端组成1组输入,是为了增加ULN2003的带负载能力,将2个达林顿管并联使用,从而实现了1A的最大驱动电流,驱动低压直流电机绰绰有余。

  2.3.4 超声波模块HC-SR04

  HC-SR04超声波测距模块可提供2~400 cm的非接触式距离感测功能,测距精度达到3 mm;模块包括超声波发射器、接收器与控制电路。

  基本工作原理:

  1. 采用IO口TRIG触发测距,给至少10 us高电平信号;

  2. 模块自动发送8个40khz的方波,同时检测有无信号返回;

  3. 若有信号返回,则IO口ECHO会输出一段持续时间和超声波来回时间相同的高电平。

  根据上述工作原理,可以得到测试距离D=(高电平时间×声速)/2。

  经过测试,回响电平一般会在触发信号发出后几十us内产生,此时建议使用定时器进行检测,如果使用while循环等待高电平,如果高电平不能正常产生,程序会卡死在while语句上。

  2.3.5 蓝牙串口模块HC-05

  HC-05是一款高性能的主从一体蓝牙串口模块,可以同各种带蓝牙功能的电脑、蓝牙主机、手机、PDA等智能终端匹配,该模块支持非常宽的波特率范围:4800~1382400,并兼容5V或3.3V单片机系统,可以方便的与产品进行连接。

  由于该模块是串口转蓝牙模块,所以需要使用MCU的一个串口资源,本设计使用了5162的串口1。使用时,只需要将HC-05当作一条串口线即可,非常方便。

  2.4软件设计原理(MCU)

  系统上电后开启蓝牙配对模式,可供上位机进行连接(打开串口)。一旦上位机连接成功并发送开始信号,整机开始全速运行,根据上位机的指令进行移动,并发送温度信号给上位机,当车体前方出现障碍物时,车体会自动停止,并向上位机发送转弯提示,当上位机发出停止信号时,车体返回一开始的等待状态,直到下一次开始信号到来。

  图16 总体流程图

  2.5 软件设计原理(上位机)

  图17 上位机框图

 

  图18 上位机实际界面

  2.5.1 MFC使用控件介绍

  2.5.1.1 串口连接:

 图19                                                    图20

  图19所示为上位机中的串口连接部分,串口选择范围为COM1~~~COM20下拉框如图20所示。

  

  关联函数: 作用:选择串口,初始化串口,设置波特率

  

  关联函数: 作用:关闭串口,将距离、温度、状态数据清除

  2.5.1.2 数据显示:

  图21

  图21所示为上位机的数据显示部分,"前"为小车距离前方最近障碍物的距离,最大显示为255cm;"温度"为小车所处位置的实际温度;"状态"为小车当前的行进状态,分为"向前","左转中","右转中"三种状态。

  共用体表示温度:在共用体中,不同的变量占用同一段内存。我们可以使用共用体的这个特质来表示温度。在串口接收的数据中,表示温度的数据被分为4个字符型数据,此时我们定义一个共用体tem在处理函数中。

  将接收到的四个字符数据依次放入是s[0]至s[3]中,此时,共用体中的浮点数t表示的就是这四个字节所对应的温度数据。

  2.5.1.3 指令按钮:

 图22

  图22所示为上位机对小车发送指令和清除上位机上数据的按钮模块,共分为六个按钮,分别为"前进"、"加速"、"减速"、"左转"、"右转"和"清除"。

  "前进":发送"GOAHEAD"指令;

  "加速":发送"ACCEL"指令;

  "减速":发送"SLOWD"指令;

  "左转":发送"GOLEFT"指令;

  "右转":发送"GORIGHT"指令;

  "清除":清除当前显示的距离、温度、状态数据以及小车行驶轨迹,将画图界面上的小车重新定位至起点。

  2.5.1.4 画图控件:

  图23

  图23所示为上位机界面中的画图模块。

画图模块的基本框架是调用VC++中的画图控件,背景色为白色;方块表示小车;红色箭头所处位置表示车头,蓝色圆圈表示小车行驶轨

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top