蓝 牙 小 车 课 程 设 计 报 告 车 课 程
设
姓名:马坚文
班级:电子201201班 指导老师:程智 学号:[1**********]4 日期:2014年6月6日
手机蓝牙的遥控小车的设计
一 控制系统 .................................................................................................................... 3
1.1 控制系统总体框图 .............................................................................................. 3
1.2 单片机最小系统的实现 ....................................................................................... 3 1.3系统的仿真与调试 ............................................................................................... 5 1.4步进电机驱动电路的实现 ..................................................................................... 6 1.5 软件设计 ............................................................................................................ 7 1.6功能检测与调试 ................................................................................................... 8 二 蓝牙技术组成 ............................................................................................................. 9
2.1 蓝牙无线电技术 ................................................................................................. 9
2.2 蓝牙互操作性..................................................................................................... 9 2.3 初始化本地蓝牙 ................................................................................................. 9 }2.4 搜索蓝牙设备.................................................................................................. 10 2.5串口通信设计 ....................................................................................................11 2.6 单片机编程设计 ................................................................................................11 三 结语 ......................................................................................................................... 12 四 心得体会 .................................................................................................................. 12 五 参考文献 .................................................................................................................. 13
摘 要:遥控电动小车系统以89C52单片机为核心控制器,包含了主控制器模块、电机驱动模块、液晶
显示模块、键盘模块、测距模块、蓝牙通信模块、电源模块等。进而设计制作出一台具有自动运行的智能
小车控制系统。本系统以两个步进电机作为驱动,通过各类传感器件来采集各类信息,通过2.4GHz蓝牙通
信模块实现小车在手机遥控的控制下前进、转向、倒退、小车精确转弯、自动定位等功能。智能小
车系统具有很高的灵敏度和精确度,操控简单、便捷。
关键词:89C52单片机;电动小车;电机驱动;蓝牙软件;手机
The Design of Remote Control Electric Car Control System Based on Bluetooth and 89C52 MCU
Abstract: The remote control electric car system with 89C52 as the core controller, consists of main controller
module, motor drive module, LCD module, keyboard module, ranging module, Bluetooth communication module,
power module, etc. On this basis, an intelligent car control system is designed. This system adopts two stepper
motors as the drive, uses various kinds of sensor to collect all kinds of information, and utilizes the 2.4 GHz
Bluetooth communication module to achieve the forwarding, back-warding, returning, automatically turning and
positioning of the car under the control of handhold wireless remote controller. The intelligent car system has high
sensitivity and accuracy, and its manipulation is simple and convenient. Key words:89C52; electric car; motor drive; Bluetooth communication
一 控制系统
1.1 控制系统总体框图
本设计要求能够实现电动小车在手持无线遥控器的控制下前进、转向、倒退等功能,而且能够将其位置的坐标值实时传送至手持无线遥控器。考虑这些要求,我们决定用步进电机和单片机等组成核心电路[1-6]。系统总框图如图1所示。图1 控制系统总框图
1.2 单片机最小系统的实现
单片最小系统由复位电路、电源和时钟电路等组成。复位电路包括手动复位和自动上电复位,按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与VCC电源接通而实现的。而按键脉冲复位则是利用RC微分电路产生的正脉冲
来实现的。自动上电复位,是指计算机加电瞬间,要在RST引脚出现大于2个机器周期的正脉冲,使单片机进入复位状态。单片机最小系统原
L298N驱动电机电路,供给+5V和+12V电压
1.3系统的仿真与调试
用简单程序仿真测试电路连接情况 汇编程序代码:
org 0000h ajmp main org 0080h main: mov a,#0ffh mov p1,a ;不转 call delay ;延时 loop: mov a,#00ah ;正转 mov p1,a call delay mov a,#0ffh;停止 mov p1,a call delay mov a,#005h;反转 mov p1,a call delay
mov a,#0ffh;停止 mov p1,a call delay jmp loop
delay: mov r5,#50 ;延时。 d1: mov r6,#40 d2: mov r7,#248 djnz r7,$ djnz r6,d2 djnz r5,d1 ret end
仿真结果:电机正反转均正常
小车程序:
用单片机控制小车的四个状态,前进,后退,左转,右转。由四个函数实现,执行条件为中断。当蓝牙从机接收到数据传输到单片机时,单片机内部选择指令,调动while函数,判断指令数据,从而控制小车状态。
1.4步进电机驱动电路的实现
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准
确定位的目的。L298N是SGS公司的产品,内部包含4通道逻辑
电路,是一种二相和四相电机的专用驱动器,即内含两个H桥的高电压大电流双桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其电路原理图如图3所示
1.5 软件设计
软件设计是实现小车智能运转的关键所在,本系统软件包括主程序、定时中断处理程序、显示子程序等。主程序主要完成系统初始化、按键检测即子程序调用等功能,其流程图如图5所示。定时中断处理程序主要完成10ms的定时,以完成小车位置显示、遥控器和小车控制器的通信等功能,其流程图见图6。显示子程序主要完成遥控器LCD的界面显示,其流程图见图7。
1.6功能检测与调试
对小车的整体来说其测试按照模块来进行,分为以下几个步骤:
(1)首先测试电源的工作情况,各个模块能否得到良好供电。 (2)检查单片机能否正常地烧写程序和工作。
(3)测试后轮电机的工作情况,并试验电机的驱动能力。
(4)编写程序控制小车运行,完成前进、后退一定距离,转90°等功能。 (5)反复测试各参数变化对小车的影响,找出最有效的配置。
(6)对小车运行过程中各种可能出现的情况测试,发现问题,找出解决方法。 (7)整理数据,优化程序设计。经过多次调试,本系统能够基本满足设计要求,能
够较快、较平稳地沿路面按要求行驶。
二 蓝牙技术组成
蓝牙技术由三部分组成,包括蓝牙无线电技术、蓝牙协议栈和蓝牙互操作性(Profiles)。
2.1 蓝牙无线电技术
蓝牙无线电工作在全球通用的2.4GHz ISM (即工业、科学、医学) 频段, 支持全双工传输, 使用IEEE
802.15 协议。蓝牙设备即连即用,抗干扰能力强、使用方便。
2.2 蓝牙互操作性
蓝牙互操作性包括三方面内容:①通用访问Profile 定义了设备管理功能性;②服务发现应用Profiles
定义了服务发现方面的内容;③串口Profiles 定义了互操作设备和模拟串口电缆的能力。
2.3 初始化本地蓝牙
初始化本地蓝牙设备,建立LocalDevice 类,包括取得本地设备实例、蓝牙名称、设置
发现模式、获得发现代理。部分代码如下: public boolean initBT() { boolean success = false; try {
showInfomation("正在初始化本地蓝牙"); // 取得本地设备实例
localDevice= LocalDevice.getLocalDevice(); // 记录蓝牙地址
localBTAddress= localDevice.getBluetoothAddress(); // 记录蓝牙名称
localBTName = localDevice.getFriendlyName(); localDevice.setDiscoverable(DiscoveryAgent.GIAC); // 取得蓝牙代理
discoveryAgent = localDevice.getDiscoveryAgent(); success = true;}
catch (Exception e) {
System.err.println("初始化蓝牙设备失败:" + e);} return success;
}2.4 搜索蓝牙设备
初始化本地蓝牙设备成功, 开始搜索周围蓝牙设备。每发现一个设备就调用监控接口deviceDiscovered(),在这个接口中添加自己的代码,把搜索到的设备记录在List 列表中, 搜索设备完成调用接口inquiryCompleted()。完成搜索后,把搜索到的所有设备显示出来, 这样就可以手动选择小车上的蓝牙设备,在WTK 模拟器上的模拟效果如图2 所示。
2.5串口通信设计
蓝牙模块与单片机之间的通信使用虚拟串口实现的,串口为标准配置:波特率9600、检验位NONE、数据位8 位、停止位1 位。串口的初始化函数如下:
void uart_init()
{
TMOD = 0X20;
TH1 = 0XFD;//晶振11.0592,波特率9600
TL1 = 0XFD;
SCON = 0XD0;
PCON = 0X00;
IE = 0X90;
TR1 = 1;
TI=1;
}
中断接收函数只要是负责接受蓝牙发送过来的数据,函数原型如下:
void serial () interrupt 4 using 3
{ if (RI)// 接收中断标志位
{ RI = 0 ;
uart_char=SBUF;//读取}
}
2.6 单片机编程设计
由于无线接收器和单片机通信的方式是串口,为了是小车能迅速响应上位机发送来的信号, 单片机使用串口中断的方式,在main 函数里面主要就是处理中断接收到的数据,并控制电机的转动,处理函数如下:
While(1)
{switch(uart_char) {
case 's': motor_stop();break; //停止
case 'a' :motor_go();break; //前进
case 'l': motor_go_left();break; //左转
case 'r': motor_go_right();break; //右转
case 'b': motor_back();break; //后退
}
}
三 结语
小介绍了利用手机蓝牙遥控小车行走的软、硬件设计,以蓝牙手机作为客户端,小车上的蓝牙模块作为服务端,通过串口仿真协议进行通信。它具有编程灵活、自由、易于控制、稳定性能好、扩展容易等优点。实现了小车的前行、倒退、左转、右转和停止等功能,将手机变身为遥控器,为人们的生活带来无限方便。
四 心得体会
作为我们的第一款产品,这辆小车有以下几点不足:
1 车体设计不合理
2 电池电压较低,车速不够
3 控制效果单一,没有加速效果
4 手机端控制软件有待开发
后期我们计划为增加以下几点功能:
1 改进车架设计,如使用四驱车型外壳
2 使用电压更高的电源,并提高车速
3 改进控制程序,实现多种车速以及加速、制动等效果。
五 参考文献
[1]金纯,林金朝等. 蓝牙协议及其源代码分析[M]. 北京:国防工业出版社,2006-06
[2]赵全利, 肖兴达. 单片机原理及应用教程(第二版)[M]. 北京:机械工业出版社,2007
[33董涛,刘进英,蒋苏. 基于单片机的智能小车的设计与制作
[4]. 计算机测量与控制.2009.17(2):380~382
[5] 邢增平.Protell 99SE设计专家指导[M].北京:中国铁道出版社,2004.
[6] 康华光.电子技术基础数字电路部分[M].高等教育出版社,2005.
[7] 凌阳科技大学计划.电子竞赛文集.凌阳科技大学计划资料[C].
[8] 黄志伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社.
[9] 赵健领.51系列单片机开发宝典[M].北京:电子工业出版社,2007.
[10] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009.
蓝 牙 小 车 课 程 设 计 报 告 车 课 程
设
姓名:马坚文
班级:电子201201班 指导老师:程智 学号:[1**********]4 日期:2014年6月6日
手机蓝牙的遥控小车的设计
一 控制系统 .................................................................................................................... 3
1.1 控制系统总体框图 .............................................................................................. 3
1.2 单片机最小系统的实现 ....................................................................................... 3 1.3系统的仿真与调试 ............................................................................................... 5 1.4步进电机驱动电路的实现 ..................................................................................... 6 1.5 软件设计 ............................................................................................................ 7 1.6功能检测与调试 ................................................................................................... 8 二 蓝牙技术组成 ............................................................................................................. 9
2.1 蓝牙无线电技术 ................................................................................................. 9
2.2 蓝牙互操作性..................................................................................................... 9 2.3 初始化本地蓝牙 ................................................................................................. 9 }2.4 搜索蓝牙设备.................................................................................................. 10 2.5串口通信设计 ....................................................................................................11 2.6 单片机编程设计 ................................................................................................11 三 结语 ......................................................................................................................... 12 四 心得体会 .................................................................................................................. 12 五 参考文献 .................................................................................................................. 13
摘 要:遥控电动小车系统以89C52单片机为核心控制器,包含了主控制器模块、电机驱动模块、液晶
显示模块、键盘模块、测距模块、蓝牙通信模块、电源模块等。进而设计制作出一台具有自动运行的智能
小车控制系统。本系统以两个步进电机作为驱动,通过各类传感器件来采集各类信息,通过2.4GHz蓝牙通
信模块实现小车在手机遥控的控制下前进、转向、倒退、小车精确转弯、自动定位等功能。智能小
车系统具有很高的灵敏度和精确度,操控简单、便捷。
关键词:89C52单片机;电动小车;电机驱动;蓝牙软件;手机
The Design of Remote Control Electric Car Control System Based on Bluetooth and 89C52 MCU
Abstract: The remote control electric car system with 89C52 as the core controller, consists of main controller
module, motor drive module, LCD module, keyboard module, ranging module, Bluetooth communication module,
power module, etc. On this basis, an intelligent car control system is designed. This system adopts two stepper
motors as the drive, uses various kinds of sensor to collect all kinds of information, and utilizes the 2.4 GHz
Bluetooth communication module to achieve the forwarding, back-warding, returning, automatically turning and
positioning of the car under the control of handhold wireless remote controller. The intelligent car system has high
sensitivity and accuracy, and its manipulation is simple and convenient. Key words:89C52; electric car; motor drive; Bluetooth communication
一 控制系统
1.1 控制系统总体框图
本设计要求能够实现电动小车在手持无线遥控器的控制下前进、转向、倒退等功能,而且能够将其位置的坐标值实时传送至手持无线遥控器。考虑这些要求,我们决定用步进电机和单片机等组成核心电路[1-6]。系统总框图如图1所示。图1 控制系统总框图
1.2 单片机最小系统的实现
单片最小系统由复位电路、电源和时钟电路等组成。复位电路包括手动复位和自动上电复位,按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与VCC电源接通而实现的。而按键脉冲复位则是利用RC微分电路产生的正脉冲
来实现的。自动上电复位,是指计算机加电瞬间,要在RST引脚出现大于2个机器周期的正脉冲,使单片机进入复位状态。单片机最小系统原
L298N驱动电机电路,供给+5V和+12V电压
1.3系统的仿真与调试
用简单程序仿真测试电路连接情况 汇编程序代码:
org 0000h ajmp main org 0080h main: mov a,#0ffh mov p1,a ;不转 call delay ;延时 loop: mov a,#00ah ;正转 mov p1,a call delay mov a,#0ffh;停止 mov p1,a call delay mov a,#005h;反转 mov p1,a call delay
mov a,#0ffh;停止 mov p1,a call delay jmp loop
delay: mov r5,#50 ;延时。 d1: mov r6,#40 d2: mov r7,#248 djnz r7,$ djnz r6,d2 djnz r5,d1 ret end
仿真结果:电机正反转均正常
小车程序:
用单片机控制小车的四个状态,前进,后退,左转,右转。由四个函数实现,执行条件为中断。当蓝牙从机接收到数据传输到单片机时,单片机内部选择指令,调动while函数,判断指令数据,从而控制小车状态。
1.4步进电机驱动电路的实现
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准
确定位的目的。L298N是SGS公司的产品,内部包含4通道逻辑
电路,是一种二相和四相电机的专用驱动器,即内含两个H桥的高电压大电流双桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其电路原理图如图3所示
1.5 软件设计
软件设计是实现小车智能运转的关键所在,本系统软件包括主程序、定时中断处理程序、显示子程序等。主程序主要完成系统初始化、按键检测即子程序调用等功能,其流程图如图5所示。定时中断处理程序主要完成10ms的定时,以完成小车位置显示、遥控器和小车控制器的通信等功能,其流程图见图6。显示子程序主要完成遥控器LCD的界面显示,其流程图见图7。
1.6功能检测与调试
对小车的整体来说其测试按照模块来进行,分为以下几个步骤:
(1)首先测试电源的工作情况,各个模块能否得到良好供电。 (2)检查单片机能否正常地烧写程序和工作。
(3)测试后轮电机的工作情况,并试验电机的驱动能力。
(4)编写程序控制小车运行,完成前进、后退一定距离,转90°等功能。 (5)反复测试各参数变化对小车的影响,找出最有效的配置。
(6)对小车运行过程中各种可能出现的情况测试,发现问题,找出解决方法。 (7)整理数据,优化程序设计。经过多次调试,本系统能够基本满足设计要求,能
够较快、较平稳地沿路面按要求行驶。
二 蓝牙技术组成
蓝牙技术由三部分组成,包括蓝牙无线电技术、蓝牙协议栈和蓝牙互操作性(Profiles)。
2.1 蓝牙无线电技术
蓝牙无线电工作在全球通用的2.4GHz ISM (即工业、科学、医学) 频段, 支持全双工传输, 使用IEEE
802.15 协议。蓝牙设备即连即用,抗干扰能力强、使用方便。
2.2 蓝牙互操作性
蓝牙互操作性包括三方面内容:①通用访问Profile 定义了设备管理功能性;②服务发现应用Profiles
定义了服务发现方面的内容;③串口Profiles 定义了互操作设备和模拟串口电缆的能力。
2.3 初始化本地蓝牙
初始化本地蓝牙设备,建立LocalDevice 类,包括取得本地设备实例、蓝牙名称、设置
发现模式、获得发现代理。部分代码如下: public boolean initBT() { boolean success = false; try {
showInfomation("正在初始化本地蓝牙"); // 取得本地设备实例
localDevice= LocalDevice.getLocalDevice(); // 记录蓝牙地址
localBTAddress= localDevice.getBluetoothAddress(); // 记录蓝牙名称
localBTName = localDevice.getFriendlyName(); localDevice.setDiscoverable(DiscoveryAgent.GIAC); // 取得蓝牙代理
discoveryAgent = localDevice.getDiscoveryAgent(); success = true;}
catch (Exception e) {
System.err.println("初始化蓝牙设备失败:" + e);} return success;
}2.4 搜索蓝牙设备
初始化本地蓝牙设备成功, 开始搜索周围蓝牙设备。每发现一个设备就调用监控接口deviceDiscovered(),在这个接口中添加自己的代码,把搜索到的设备记录在List 列表中, 搜索设备完成调用接口inquiryCompleted()。完成搜索后,把搜索到的所有设备显示出来, 这样就可以手动选择小车上的蓝牙设备,在WTK 模拟器上的模拟效果如图2 所示。
2.5串口通信设计
蓝牙模块与单片机之间的通信使用虚拟串口实现的,串口为标准配置:波特率9600、检验位NONE、数据位8 位、停止位1 位。串口的初始化函数如下:
void uart_init()
{
TMOD = 0X20;
TH1 = 0XFD;//晶振11.0592,波特率9600
TL1 = 0XFD;
SCON = 0XD0;
PCON = 0X00;
IE = 0X90;
TR1 = 1;
TI=1;
}
中断接收函数只要是负责接受蓝牙发送过来的数据,函数原型如下:
void serial () interrupt 4 using 3
{ if (RI)// 接收中断标志位
{ RI = 0 ;
uart_char=SBUF;//读取}
}
2.6 单片机编程设计
由于无线接收器和单片机通信的方式是串口,为了是小车能迅速响应上位机发送来的信号, 单片机使用串口中断的方式,在main 函数里面主要就是处理中断接收到的数据,并控制电机的转动,处理函数如下:
While(1)
{switch(uart_char) {
case 's': motor_stop();break; //停止
case 'a' :motor_go();break; //前进
case 'l': motor_go_left();break; //左转
case 'r': motor_go_right();break; //右转
case 'b': motor_back();break; //后退
}
}
三 结语
小介绍了利用手机蓝牙遥控小车行走的软、硬件设计,以蓝牙手机作为客户端,小车上的蓝牙模块作为服务端,通过串口仿真协议进行通信。它具有编程灵活、自由、易于控制、稳定性能好、扩展容易等优点。实现了小车的前行、倒退、左转、右转和停止等功能,将手机变身为遥控器,为人们的生活带来无限方便。
四 心得体会
作为我们的第一款产品,这辆小车有以下几点不足:
1 车体设计不合理
2 电池电压较低,车速不够
3 控制效果单一,没有加速效果
4 手机端控制软件有待开发
后期我们计划为增加以下几点功能:
1 改进车架设计,如使用四驱车型外壳
2 使用电压更高的电源,并提高车速
3 改进控制程序,实现多种车速以及加速、制动等效果。
五 参考文献
[1]金纯,林金朝等. 蓝牙协议及其源代码分析[M]. 北京:国防工业出版社,2006-06
[2]赵全利, 肖兴达. 单片机原理及应用教程(第二版)[M]. 北京:机械工业出版社,2007
[33董涛,刘进英,蒋苏. 基于单片机的智能小车的设计与制作
[4]. 计算机测量与控制.2009.17(2):380~382
[5] 邢增平.Protell 99SE设计专家指导[M].北京:中国铁道出版社,2004.
[6] 康华光.电子技术基础数字电路部分[M].高等教育出版社,2005.
[7] 凌阳科技大学计划.电子竞赛文集.凌阳科技大学计划资料[C].
[8] 黄志伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社.
[9] 赵健领.51系列单片机开发宝典[M].北京:电子工业出版社,2007.
[10] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009.