基于安芯一号SLH89F5162的蓝牙控制小车_第1页
基于安芯一号SLH89F5162的蓝牙控制小车_第2页
基于安芯一号SLH89F5162的蓝牙控制小车_第3页
基于安芯一号SLH89F5162的蓝牙控制小车_第4页
基于安芯一号SLH89F5162的蓝牙控制小车_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、设计设计背景及概述1.1 设计背景基于红外或射频的遥控车技术已经相当成熟,但蓝牙遥控车这一领域尚属新鲜,这款增强51核的“三防”8位单片机,以其高性能及易于开发让我很是欣喜,再加上能够磨练自己的嵌入式编程的能力,锻炼和队友共同完成项目的团队合作能力,我们便自然而然地产生了亲手制作一款蓝牙遥控车的想法。1.2 设计概述主控芯片为深联华SLH89F5162,开发环境为Keil 4;测距方式为超声波回声测距,使用模块HC-SR04完成;通讯方式为蓝牙2.0,车体使用HC-05蓝牙串口模块,PC使用自带蓝牙适配器;总电源使用2节3500mAh/3.7V的UltraFire锂离子充电电池串联供电;M

2、CU电源则由LM7805稳压芯片对7.4V总电源进行处理后供给;车体驱动电机使用2个减速比为1:48的69V直流有刷电机,驱动使用TOSHIBA-ULN2003APG芯片;测温模块使用单总线架构的DALLAS/18B20芯片;上位机操作系统为Windows 7,界面采用MFC编写,IDE为VC6。二、项目设计原理2.1原理概述上位机程序使用蓝牙与车体进行通信,发送指令,车体接收到指令后执行相应的操作。本设计中,小车可以实现直行、转弯、加速和减速等四个动作,同时会采集所在区域的温度信息返回上位机,配合以车体上的超声波模块,可对小车正前方进行测距,如发现距离过近,则会自动停止,并向上位机请求转弯指

3、令。上位机软件在发送指令的同时,还接收小车返回的移动信息,在软件绘图区域绘制小车行走的轨迹,并显示温度等信息。2.2硬件设计原理红色为电源线,黑色为地线,蓝色为MCU与外部设备的连接线。主要需要进一步说明的模块有DC/DC的7805芯片、测温模块18B20、驱动芯片ULN2003APG、超声波模块HC-SR04及蓝牙串口模块HC-052.3 各模块介绍2.3.1 稳压模块LM780578XX系列的后两位即是其可固定产生的7805 系列为 3 端正稳压电路,TO-220 封装,能提供固定的输出电压5V,应用范围广。内含过流、过热和过载保护电路。带散热片时,输出电流可达 1A。虽然是固定稳压电路,

4、但使用外接元件,可获得不同的电压和电流。电压。输入端IN为2节3.7V锂离子电池串联产生的78V的输入电压,输出端OUT接C1电解电容滤波稳压,并接绿色LED1和限流电阻R1显示供电状态。VCC端正接二极管D0防反接,同时并接C0电解电容稳压滤波。2.3.2 测温模块DS18B20DS18B20 数字温度计提供9 位温度读数,指示器件的温度信息经过单线接口送入DS18B20 或从DS18B20 送出。因此从中央处理器到DS18B20 仅需连接一条线(和地)读写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。DALLAS公司的18B20产品有多种封装,本设计采用的是上图左侧的TO

5、-92封装。由于DS18B20只有3条线,数据线选择了没有特殊功能的P4.1引脚。18B20采用了独特的单总线通信架构,所以其对于时序的要求非常高,下面主要讲一讲18B20的复位、写入一位和读取一位,写字节及读字节只是写一位及读一位的重复,本文就不再赘述。2.3.2.1 复位时序复位需要MCU将总线拉低,保持至少480 us后,再将总线拉高1560 us,随后等待最长240 us,检测总线上18B20是否将总线拉低(存在)。复位是18B20最重要的操作,每次通信之前必须进行复位。2.3.2.2 写一位时序在写数据时间隙的前 15 us总线需要是被MCU拉置低电平,而后则将是18B20对总线数据

6、的采样时间,采样时间在 1560 us,采样时间内如果MCU将总线拉高则表示写“1”,如果MCU将总线拉低则表示写“0”。每一位的发送都应该有一个至少 15 us 的低电平起始位,随后的数据“0”或“1”应该在45 us 内完成。整个位的发送时间应该保持在 60120 us,否则不能保证通信的正常。2.3.2.3 读一位时序读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也是必须先由MCU产生至少1 us的低电平,表示读时间的起始。随后在总线被释放后的15 us 中 18B20 会发送内部数据位,这时MCU如果发现总线为高电平表示读出“1”,如果总线为低电平则表示读出数据“0”。每一位

7、的读取之前都由控制器加一个起始信号。注意:如图8所示,必须在读间隙开始的 15 us 内读取数据位才可以保证通信的正确。2.3.2.4 字节读写说明从图9代码中的左右移可以看出,18B20在通信时,以 8 位“0”或“1”为一个字节,字节的读或写是从高位开始的,即 Bit7到 Bit0 图9 DS18B20 读写字节C代码实现。2.3.3 电机驱动模块ULN2003APGULN2003是高耐压、大电流七路达林顿驱动器阵列,是集电极开路(OC)输出的反向器。单个引脚最大驱动电流可以达到500mA。通常应用时是把负载的一端接到电源上,另一端接到输出引脚(1016)上,这样当输入端为高电平时,输出端

8、就反转为低电平,导通负载。由于安芯一号自带的PWM0,PWM1为P4.6和P2.7,故ULN2003的2个输入口选择了P4.6和P2.7,输出端则分别连接到2个直流电机的一端。此处之所以使用2个输入端组成1组输入,是为了增加ULN2003的带负载能力,将2个达林顿管并联使用,从而实现了1A的最大驱动电流,驱动低压直流电机绰绰有余。2.3.4 超声波模块HC-SR04HC-SR04超声波测距模块可提供2400 cm的非接触式距离感测功能,测距精度达到3 mm;模块包括超声波发射器、接收器与控制电路。基本工作原理:1. 采用IO口TRIG触发测距,给至少10 us高电平信号;2. 模块自动发送8个

9、40khz的方波,同时检测有无信号返回;3. 若有信号返回,则IO口ECHO会输出一段持续时间和超声波来回时间相同的高电平。根据上述工作原理,可以得到测试距离D=(高电平时间×声速)/2。经过测试,回响电平一般会在触发信号发出后几十us内产生,此时建议使用定时器进行检测,如果使用while循环等待高电平,如果高电平不能正常产生,程序会卡死在while语句上。2.3.5 蓝牙串口模块HC-05HC-05是一款高性能的主从一体蓝牙串口模块,可以同各种带蓝牙功能的电脑、蓝牙主机、手机、PDA等智能终端匹配,该模块支持非常宽的波特率范围:48001382400,并兼容5V或3.3V单片机系统

10、,可以方便的与产品进行连接。由于该模块是串口转蓝牙模块,所以需要使用MCU的一个串口资源,本设计使用了5162的串口1。使用时,只需要将HC-05当作一条串口线即可,非常方便。2.4软件设计原理(MCU)系统上电后开启蓝牙配对模式,可供上位机进行连接(打开串口)。一旦上位机连接成功并发送开始信号,整机开始全速运行,根据上位机的指令进行移动,并发送温度信号给上位机,当车体前方出现障碍物时,车体会自动停止,并向上位机发送转弯提示,当上位机发出停止信号时,车体返回一开始的等待状态,直到下一次开始信号到来。图16 总体流程图2.5 软件设计原理(上位机)图17 上位机框图图18 上位机实际界面2.5.

11、1 MFC使用控件介绍2.5.1.1 串口连接:图19                                             

12、60;      图20图19所示为上位机中的串口连接部分,串口选择范围为COM1COM20下拉框如图20所示。:关联函数: 作用:选择串口,初始化串口,设置波特率:关联函数: 作用:关闭串口,将距离、温度、状态数据清除2.5.1.2 数据显示:图21图21所示为上位机的数据显示部分,“前”为小车距离前方最近障碍物的距离,最大显示为255cm;“温度”为小车所处位置的实际温度;“状态”为小车当前的行进状态,分为“向前”,“左转中”,“右转中”三种状态。共用体表示温度:在共用体中,不同的变量占用同一段内存。我们可以使用共用体的这个特质来表示温度。

13、在串口接收的数据中,表示温度的数据被分为4个字符型数据,此时我们定义一个共用体tem在处理函数中。将接收到的四个字符数据依次放入是s0至s3中,此时,共用体中的浮点数t表示的就是这四个字节所对应的温度数据。2.5.1.3 指令按钮:图22图22所示为上位机对小车发送指令和清除上位机上数据的按钮模块,共分为六个按钮,分别为“前进”、“加速”、“减速”、“左转”、“右转”和“清除”。“前进”:发送“GOAHEAD”指令;“加速”:发送“ACCEL”指令;“减速”:发送“SLOWD”指令;“左转”:发送“GOLEFT”指令;“右转”:发送“GORIGHT”指令;“清除”:清除当前显示的距离、温度、状

14、态数据以及小车行驶轨迹,将画图界面上的小车重新定位至起点。2.5.1.4 画图控件:图23图23所示为上位机界面中的画图模块。画图模块的基本框架是调用VC+中的画图控件,背景色为白色;方块表示小车;红色箭头所处位置表示车头,蓝色圆圈表示小车行驶轨迹。1.小车由最初位置开始前进,此时小车行驶轨迹如图24所示。图242.小车前方遇到障碍物,小车右转前进,此时小车行驶轨迹如图25所示。图25小车右转前进一段距离,前方探测到无障碍物,小车左转回到原先的前进方向,此时小车行驶轨迹如图26所示。图26从这几个状态看出,上位机界面可以很好的反映出小车在地面上所行驶的轨迹。画图同步问题:在绘制小车行驶轨迹时最大的问题,是上位机上小车行驶轨迹与小车在地面上的行驶轨迹同步变化,且不受界面窗口最小化的影响。要解决这一问题,就需要定义两个设备上下文。在此项目的MFC程序中,我们定义了两个设备上下文,CDC* pDC;/屏幕DC,CDC MemDC;/内存DC同时定义CBitmap bmp;/位图全局缓存,我们通过全局缓存bmp将屏幕DC和内存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论