蓝牙重力感应小车设计.docx
《蓝牙重力感应小车设计.docx》由会员分享,可在线阅读,更多相关《蓝牙重力感应小车设计.docx(38页珍藏版)》请在冰豆网上搜索。
蓝牙重力感应小车设计
成绩评定表
学生姓名
班级学号
专业
课程设计题目
蓝牙重力感应小车
评
语
组长签字:
成绩
日期
2015年1月9日
课程设计任务书
学院
专业
学生姓名
班级学号
课程设计题目
蓝牙重力感应小车
实践教学要求与任务:
1、熟悉所确定的题目,从问题需求、程序结构、难点及关键技术等方面进行分析,形成系统的设计方案;
2、根据方案设计硬件电路;
3、软件编程并调试;
4、完成课程设计报告,打印程序,给出运行结果。
工作计划与进度安排:
第20周(1月6日-1月12日):
布置设计任务,查资料,完成总体设计框架,完善设计内容,系统调试,验收答辩。
指导教师:
2015年1月5日
专业负责人:
2015年1月5日
学院教学副院长:
2015年1月5日
一.前言篇4
二.原理篇5
2.1STC12芯片及最小系统板原理介绍5
2.2L298驱动器工作原理8
2.3蓝牙模块工作原理8
三.电路设计篇10
四.机械设计篇22
4.1器件清单22
4.2小车组装步骤23
五.软件编写与调试篇25
5.1软件程序设计25
5.1.1程序设计思路25
5.1.2程序流程图28
5.1.3源程序29
5.2软件介绍33
5.2.1KEIL简介33
5.2.2KEIL与Proteus联调与仿真实现37
5.2.3STC烧录软件38
六.总结篇39
七.参考文献41
一前言篇
随着手机的普及,关于能用手机蓝牙控制的智能车的研究也就越来越受人关注。
蓝牙小车起源于美国,由于政府对蓝牙控制小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在此技术上占据着明显优势。
我国的蓝牙小车小车研究工作始于20世纪中后期,在国家的863、973等技术发展计划的重点支持下,国内已大范围地进行蓝牙车的研究。
全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,但是与国际先进还存在一定的差距。
可见其研究意义很大。
本设计就是在这样的背景下提出的。
设计的智能蓝牙小车能够实现手机遥控,串口通讯,实时重力感应等功能。
遥控实现方法包括蓝牙、红外、射频几种,其中蓝牙技术具有一定优势,目前在信息家电方面应用正在铺设。
各种家电共用遥控,并可组网与公众互联网相接,共享有用信息。
目前蓝牙技术实现无线遥控的短板在于传输距离短和芯片价格高方面。
但随着科技发展,这些问题正在逐步得以解决。
蓝牙机器人有着广阔的应用前景。
根据题目的要求绘制电路原理图和机械图,制作程序流程图;在KeilC编译环境下编写控制程序并调试,确定如下方案:
通过通过手机上位机让手机蓝牙与小车蓝牙模块进行配对,从而实现手机和小车通讯,进行控制的目的。
选择蓝牙连接,可通过选择上位机不同方向按钮进行控制小车的前进,后退,左拐,右拐;选择重力感应,可通过改变手机的重心进行控制小车的前进,后退,左拐,右拐方向。
本次设计可以对电动车的运动状态进行实时监控,可满足对系统的各项要求。
本设计采用STC系列中的STC12C5A60S2单片机。
以单片机为控制核心,利用蓝牙传感器检测手机上位机上通过串口通信传来的各种控制信息,进行控制小车前进方向。
二.原理篇
2.1STC12C5A60S2芯片及最小系统原理介绍
2.1.1STC12C5A60S2系列单片机原理介绍
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S即25万次每秒),针对电机控制,强干扰场合。
1.增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051。
2.工作电压:
STC12C5A60S2系列工作电压:
5.5V-3.5V(5V单片机)
STC12LE5A60S2系列工作电压:
3.6V-2.2V(3V单片机)。
3.工作频率范围:
0~35MHz,相当于普通8051的0~420MHz。
4.用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节......。
5.片上集成1280字节RAM。
6.通用I/O口(36/40/44个),复位后为:
准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:
准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片。
8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)。
9.看门狗。
10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)。
11.外部掉电检测电路:
在P4.6口有一个低压门槛比较器,5V单片机为1.33V,误差为±5%,3.3V单片机为1.31V,误差为±3%。
12.时钟源:
外部高精度晶体/时钟,内部R/C振荡器(温漂为±5%到±10%以内)用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟常温下内部R/C振荡器频率为:
5.0V,单片机为:
11MHz~17MHz。
3.3V单片机为:
8MHz~12MHz。
精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准。
13.共4个16位定时器。
两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器。
14.3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,独立波特率发生器可以在P1.0口输出时钟。
15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)。
16.PWM(2路)/PCA(可编程计数器阵列,2路)
---也可用来当2路D/A使用
---也可用来再实现2个定时器
---也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)。
17.A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)。
18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器和PCA软件实现多串口。
19.STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)。
20.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)。
21.封装:
LQFP-48,LQFP-44,PDIP-40,PLCC-44,QFN-40I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。
表1STC12C5A60S2硬件结构表
类型
参数
STC12C5A60S2
STC89C51RC
工作电压(V)
5.5-3.5
5.5-3.4
Flash程序存储器字节
60k
4k
RAM字节
1280
512
定时器T0、T1
有
有
PCA定时器
2
无
UART
1
1
独立波特率发生器
有
无
DPTR
2
无
EPPROM
有
有
PCA(16位)PWM(8位)
2路
无
A/D8路25万次每秒
10位
无
I/O
44
40
看门狗
有
有
内置复位
有
无
外部可调门槛电压
有
无
外部中断
4路
4路
由上表可见,STC12C5A60S2单片机的硬件结构具有功能部件种类全,功能强等特点。
特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集,计算速度比普通的8051快8~12倍。
2.1.2STC12C5A60S2最小系统板功能简介
图1STC12C5A60S2最小系统板功能简介
2.2L298驱动器工作原理
本设计采用L298芯片,L298是ST公司生产的一种高电压、小电流电机驱动芯片。
该芯片采用16脚封装,内部是由双极性管组成的H桥电路。
其输出电流为100mA,最高电流2A,最高工作电压36V,可以驱动感性负载,可以控制电机的正反转,且很容易被单片机控制。
用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术。
2.3蓝牙模块工作原理
蓝牙模块主要是为了实现上位机与下位机的数据传输,本设计是通过蓝牙转串口模块,实现上位机与下位机的无线通讯功能,所以本质上使用的是单片机串口通信。
串行通讯的特点是:
数据按位顺序传送,最少仅需一根传输线即可完成,成本低但传送速度慢。
串行通讯的距离可以从几米到几千米。
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。
串行通讯又分为异步通讯和同步通讯两种方式。
在单片机中,主要使用异步通讯方式。
蓝牙模块串口通讯特点:
1、核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机可通过该脚状态判断蓝牙是否已经连接,KEY引脚对从机无效。
2、led指示蓝牙连接状态,闪烁表示没有蓝牙连接,常亮表示蓝牙已连接并打开了端口
3、底板3.3VLDO,输入电压3.6~6V,未配对时电流约30mA,配对后约10mA,输入电压禁止超过7V!
4、接口电平3.3V,可以直接连接各种单片机(51,AVR,PIC,ARM,MSP430等),5V单片机也可直接连接,无需MAX232也不能经过MAX232!
5、空旷地有效距离10米,超过10米也是可能的,但不对此距离的连接质量做保证
6、配对以后当全双工串口使用,无需了解任何蓝牙协议,但仅支持8位数据位、1位停止位、无奇偶校验的通信格式,这也是最常用的通信格式,不支持其他格式。
7、在未建立蓝牙连接时支持通过AT指令设置波特率、名称、配对密码,设置的参数掉电保存。
蓝牙连接以后自动切换到透传模式
8、体积小巧(3.57cm*1.52cm),工厂贴片生产,保证贴片质量。
并套透明热缩管,防尘美观,且有一定的防静电能力。
9、该链接为从机,从机能与各种带蓝牙功能的电脑、蓝牙主机、大部分带蓝牙的手机、PDA、PSP等智能终端配对,从机之间不能配对。
三.电路设计篇
2.1STC12C5A60S2芯片及最小系统电路介绍
2.1.1STC12C5A60S2系列单片机I/O口介绍
图2
2.1.2STC12C5A60S2最小系统板电路组成元件简介
图3
图4STC12C5A60S2最小系统板各端口简介
2.2总体设计思路
(1)连接线路,使减速电机与L298驱动器的连接,并完成最小系统I/O口与驱动器,蓝牙模块的接线。
(2)编程实现,与最小系统相连的蓝牙模块与手机的通信。
(3)调试运行,打开手机上位机,实现手机对小车控制。
2.2.1系统板上硬件连线
1.让左右减速电机的红线分别接OUT1和OUT3,黑线分别接OUT2和OUT4。
2.将7.2V供电电池的正负极与L298驱动器VDD和GND相连。
3.将L298驱动器的+5V输出与最小系统板的+5V相连,GND与最小系统板的GND相连,进行供电。
4.将L298驱动器的控制管脚N1,N2,N3,N4分别于系统板的P1.0,P1.1,P1.2,P1.3相连。
5.外接蓝牙模块,与最小系统板相连,其中TXD与P3.0口相连接,GND与最小系统GND相连接,VCC与最小系统的VCC相连接。
2.2.2设计实物图
图5实物图
2.2.3单元电路设计:
分别为:
L298模块、最小系统板模块、蓝牙模块、手机上位机。
(1)L298模块:
图6L298驱动器模块图
图7L298驱动模块控制管脚图
图8L298驱动模块输入管脚图
电机驱动电路设计:
图9电机驱动电路图
本设计采用L298芯片,L298是ST公司生产的一种高电压、小电流电机驱动芯片。
该芯片采用16脚封装,内部是由双极性管组成的H桥电路。
其输出电流为100mA,最高电流2A,最高工作电压36V,可以驱动感性负载,可以控制电机的正反转,且很容易被单片机控制。
用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术。
图10L298内部结构图
1.图示为L298的内部结构图,L2938内置了与门、非门、三级管组成的两组电路,因为其排列形状像‘H’子母,所以称其为H桥路。
通过控制三极管的通断就可以是电机旋转起来,而通过控制不同三极管的导通,电流的流向就会发生改变,电机的转向也就会发生变化。
在图4.3中,使ENA与ENB两个使能端始终为1,通过控制IN1~IN4输入端的状态来改变电机的转向。
表2L298真值表
IN1IN2IN3IN4
右电机
左电机
1010
正
正
1001
正
反
0110
反
正
0101
反
反
0000
×
×
2.当IN1、IN2、IN3和IN4分别为1010时,T1、T4、T5和T8导通,左电机和右电机正转;
2.示例程序1:
voidForward(unsignedcharSpeed_Right,unsignedcharSpeed_Left)//前进
{
L293D_IN1=1;
L293D_IN2=0;
L293D_IN3=1;
L293D_IN4=0;
PWM_Set(255-Speed_Right,255-Speed_Left);
}
3.脉宽调制器本身是一个由运算放大器和几个输入信号组成的电压比较器。
运算放大器工作在开换状态,稍微有一点输入信号就可使其输出电压达到饱和值,当输入电压极性改变时,输出电压就在正、负饱和值之间变化,这样就完成了把连续电压变成脉冲电压的转换作用。
加在运算放大器反相输入端上的有三个输入信号。
一个输入信号是锯齿波调制信号,另一个是控制电压,其极性大小可随时改变,与锯齿波调制信号相减,从而在运算放大器的输出端得到周期不变、脉宽可变的调制输出电压。
只要改变控制电压的极性,也就改变了PWM变换器输出平均电压的极性,因而改变了电动机的转向.改变控制电压的大小,则调节了输出脉冲电压的宽度,从而调节电动机的转速.只要锯齿波的线性度足够好,输出脉冲的宽度是和控制电压的大小成正比的。
4.示例程序2为脉宽调制函数,其中PWM_Set为PWM调速函数。
本设计采用的是软件调速,Speed_Right、Speed_Left为用户给定的初值速度,速度值范围:
0~255,数值越大,速度越快。
在通常的程序中多是采用定时器为波特率发生器。
而本次设计中采用的是MCU自带的PWM脉冲发生器,stc12c5a60s2有内置的一个计数器和比较寄存器CCAPnL和CL,CCAPnL用来存放一个0-255之间的一个数据,CL是一个计数器,当CL的值小于CCAPnL时,PWM引脚输出低电平脉冲,当CL的值大于CCAPnL时,PWM引脚输出高电平脉冲
voidPWM_Set(unsignedcharPWM0_DATA,unsignedcharPWM1_DATA)
{CCAP0L=PWM0_DATA;//装入比较初值
CCAP0H=PWM0_DATA;
CCAP1L=PWM1_DATA;//装入比较初值
CCAP1H=PWM1_DATA;
}
(2)最小系统板模块:
图11STC12C5A60S2最小系统板管脚图
图12.STC12C5A60S2最小系统板与PL2303下载器
(3)蓝牙模块:
图13蓝牙模块管脚图
蓝牙模块主要是为了实现上位机与下位机的数据传输,本设计是通过蓝牙转串口模块,实现上位机与下位机的无线通讯功能,所以本质上使用的是单片机串口通信。
串行通讯的特点是:
数据按位顺序传送,最少仅需一根传输线即可完成,成本低但传送速度慢。
串行通讯的距离可以从几米到几千米。
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。
串行通讯又分为异步通讯和同步通讯两种方式。
在单片机中,主要使用异步通讯方式。
图14USB与蓝牙模块相连
在本设计中采用WE-40C(如图4.6)蓝牙模块,设置一个为主机,另一个为从机。
通过发送AT指令来控制智能车的前进、后退和转弯。
WE-40C使用方便,可支持一对多通讯,也可通过AT指令来切换模块的主从模式。
当蓝牙模块上电后红色指示灯闪烁,与另一蓝牙模快时,蓝色指示灯常亮。
该型号蓝牙模块特点:
1.使用方便,两模块通电后自动连接,非常方便。
2.具备5V和3.3V两种接口。
3.支持分时一对多通讯,可绑定模块地址指定通讯。
4.主从一体化,可通过简单的AT指令任意切换主从模式。
5.带有9个扩展IO口(两个预留),既可输入也可输出。
6.发射通讯距离远,开阔地40米。
7.模块采用双PCB复合式设计,采用加厚板材(1.6mm)。
WE-40C应用范围:
1.主要是用于代替串口线,包含TXD和RXD两组信号,可以直接接入单片机等带有串口的系统或设备,也可以通过MAX232芯片转换成RS232电平后使用。
2.单片机通过电脑蓝牙适配器和电脑连接,无线收发数据。
3.单片机和智能手机蓝牙连接,实现单片机和智能手机之间的无单片机的串口通讯是为了实现上位机与下位机的数据传输,单片机是通过管脚RXD和管脚TXD与外界通讯的,SUBF是串行口的缓冲寄存器,单片机与上位机的通信数据都是临时存放在SUBF寄存器中的,通过软件的读写操作就可以实现单片机与外设之间的数据通讯了。
串口通讯的初始化主要是对SCON、TCON、TMOD、IE几个寄存器的设置;
表3.SCON、TCON、TMOD、IE几个寄存器的设置
SCON
5.SM0SM1SM2SM3RENTB8RB8TIRI
6.串行口控制寄存器
TCON
7.TF1TR1TF0TR0IE1IT1IE0IT0
8.定时器/计数器控制寄存器
TMOD
9.GATEC/TM1M0GATEC/TM1M0
10.定时器/计数器工作方式设置寄存器
IE
11.EX0ET0EX1ET1ESET2--EA
12.中断允许控制寄存器
示例程序1:
voidSend_Char(unsignedcharDATA)
{
ES=0;//关闭串口中断
flag1=0;
SBUF=DATA;//将数据发送出去,可以在电脑串口工具的接收区观察
while(!
TI);//数据发送完毕之后,T1会置1
TI=0;
ES=1;//重新允许串口中断
}
(4)手机上位机
图15手机上位机操作界面
说明:
重力感应时将“重力感应”选中
四.机械设计篇
4.1器件清单
表4元器件清单
编号
元器件名称
元器件型号
元器件数量
1
螺丝(螺帽)
Ø3*8mmØ3*31mm
Ø3*13.5mmØ5*23mm
Ø5*23mm
若干
2
铜柱(单通,双通)
M3*10双通铜柱
M3*20双通铜柱
M3*(25+6)单通铜柱
若干
3
电机固定块
无
4个
4
电机支撑板
无
2个
5
中桥连接板
无
1个
6
舵机固定板
无
1个
7
车头
无
1个
8
减速电机
130减速电机
2个
9
最小系统板
STC12C5A60S2系统板
1个
10
驱动器
L298驱动器
1个
11
蓝牙模块
WE-40C
1个
12
供电电源
7.2V电池
1套
13
杜邦线
无
若干
14
轮胎(后轮)
有内胆轮胎
2个
15
万向轮(前轮)
无
1个
16
下载器
PL2303
1条
4.2小车组装步骤
1.先后用螺丝和铜柱连接,电机支撑板,中桥连接板,舵机固定板,车头,从而固定小车底盘板。
2.用螺丝和铜柱在小车底盘板上固定电机固定块,完成电机安装。
图16
3.给小车的两个电机上,安装轮胎,并在小车头部安装万向轮。
图17
4.用铜柱把STC12系统板固定在小车地盘上。
5.安装驱动模块L298,并分别用电机的红,黑线和驱动器的输入端口相连接。
图18
6.分别用螺丝和铜柱,安装小车的各功能模块。
7.在小车底盘下,安装电池包。
图19
8.连接STC12最小系统板与各模块的控制端口的连接。
图20
9.把PL2303下载器连接,与系统板的下载端口相连接,完成小车组装。
五.软件编写与调试篇
5.1软件程序设计
5.1.1程序设计思路
1、总体功能及原理
通过通过手机上位机让手机蓝牙与小车蓝牙模块进行配对,从而实现手机和小车通讯,进行控制的目的。
选择蓝牙连接,可通过选择上位机不同方向按钮进行控制小车的前进,后退,左拐,右拐;选择重力感应,可通过改变手机的重心进行控制小车的前