基于安芯一号SLH89F5162的蓝牙控制小车
是高耐压、大电流七路达林顿驱动器阵列,是集电极开路(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++中的画图控件,背景色为白色;方块表示小车;红色箭头所处位置表示车头,蓝色圆圈表示小车行驶轨
蓝牙小车 SLH89F5162 相关文章:
- 基于SLH89F5162的信号发生器设计(02-24)
- 基于SLH89F5162单片机的游戏手柄设计(02-19)
- 智能语音楼宇对讲系统(02-19)
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)
- 浪涌抑制器IC简化了危险环境中电子设备的本质安全势垒设计(08-19)