手机蓝牙遥控小车设计

南阳理工学院

本科生毕业设计(论文)

学院:电子与电气工程学院 专业:电气工程及其自动化

学生:

指导教师:

完成日期年月

南阳理工学院本科生毕业设计(论文)

手机蓝牙遥控小车设计

Design of Bluetooth Mobile Phone Remote Control of Smart Car

总计: 29页

表格: 6 个

插图: 16 幅

南阳理工学院本科毕业设计(论文)

手机蓝牙遥控小车设计

Design of Bluetooth Mobile Phone Remote Control of Smart Car

学院:电子与电气工程学院 专业:电气工程及其自动化

学生姓名:

学号:

指导教师(职称):

评阅教师:

完成日期:

南阳理工学院

Nanyang Institute of Technology

手机蓝牙遥控小车设计

电气工程及其自动化专业

[摘 要]本课题选用单片机STC89C52RC 作为整个控制系统的核心和数据处理中心,利用Keil 编程软件进行单片机程序的编写,通过安装于手机上的蓝牙通讯客户端对单片机进行相关指令的发送。小车硬件采用模块化设计,整个系统由单片机最小系统模块、蓝牙模块、电动机模块、电机驱动模块、电源模块等组成,各个模块之间通过相互配合,实现手机客户端对小车运动状态的遥控。在对系统软、硬件进行相关调试后,小车能够接收手机发送的遥控信号,并实现前进、倒退、左转、右转、加速、减速和停止的功能。

[关键词]蓝牙模块;遥控;电源模块;客户端

Design of Bluetooth Mobile Phone Remote Control of Smart Car

Electrical Engineering and Automation Specialty ZHANG Fan

Abstract:Design of Bluetooth mobile phone remote control of smart car was completed using STC89C52RC as control core and data processing center. It was programmed by Keil programming software and through the installation of the client on the phone to send the relevant instructions to achieve the remote control of the car.The car designed by modular and consists of the microcontroller unit minimum system module, Bluetooth module, motor module, motor drive module, power module and other components. Through mutual cooperation between the various modules, the mobile phone client to achieve the status of the remote control of the car.In the system software, hardware for the relevant debugging, the car can receive the remote control signal form phone, and to achieve forward, backward, left, right, right, acceleration, deceleration and stop function.

Key words:Bluetooth module ; remote control ;power module ; client

目录

1 引言 . ....................................................................................................................................... 1

1.1 国外研究现状 ................................................................................................................. 1

1.2 国内研究现状 ................................................................................................................. 1

2 设计方案分析 . ....................................................................................................................... 1

2.1 设计要求 ......................................................................................................................... 1

2.2 设计构思 ......................................................................................................................... 2

3 系统硬件设计 . ....................................................................................................................... 2

3.1 单片机最小系统 ............................................................................................................. 2

3.1.1 单片机芯片的选择 . ................................................................................................. 2

3.1.2 单片机芯片的简介 . ................................................................................................. 3

3.1.3 单片机最小系统的组成 . ......................................................................................... 3

3.2 蓝牙模块 ......................................................................................................................... 4

3.2.1 蓝牙模块的选择 . ..................................................................................................... 4

3.2.1 蓝牙模块的简介 . ..................................................................................................... 5

3.2.3 蓝牙模块参数的设置 . ............................................................................................. 6

3.3 电动机模块 ..................................................................................................................... 7

3.3.1 电动机的选择 . ......................................................................................................... 7

3.3.2 直流电机的简介 . ..................................................................................................... 7

3.4 电机驱动模块 ................................................................................................................. 8

3.4.1 电机驱动模块的选择 . ............................................................................................. 8

3.4.2 电机驱动模块的简介 . ............................................................................................. 8

3.4.3 电机驱动模块的连接 . ............................................................................................. 9

3.5 电源模块 ....................................................................................................................... 10

3.5.1 电源的选择 . ........................................................................................................... 10

3.5.2 稳压模块的简介 . ................................................................................................... 11

3.6 系统框图 ....................................................................................................................... 11

3.7 遥控小车结构分析 ....................................................................................................... 12

3.7.1 底板结构 . ............................................................................................................... 12

3.7. 2 底板配件 . .............................................................................................................. 13

3.7. 3 整体装配 . .............................................................................................................. 14

4 系统软件设计 . ..................................................................................................................... 14

4.1 单片机程序设计 ........................................................................................................... 14

4.1.1 程序设计内容 . ....................................................................................................... 14

4.1.2I/0端口的设置 ........................................................................................................ 15

4.1.3 初始化程序设计 . ................................................................................................... 16

4.1.4 串口通讯程序的设计 . ........................................................................................... 17

4.1.5 指令处理程序的设计 . ........................................................................................... 17

4.1.6 方向控制程序的设计 . ........................................................................................... 17

4.1.7PWM 调速程序的设计 ........................................................................................... 18

4.2 手机客户端参数设置 ................................................................................................... 19

5 系统整体调试 . ..................................................................................................................... 20

5.1 调试方案 ....................................................................................................................... 20

5.2 硬件调试 ....................................................................................................................... 20

5.3 软件调试 ....................................................................................................................... 20

结束语 . ..................................................................................................................................... 21

参考文献 . ................................................................................................................................. 22

附录一 . ..................................................................................................................................... 23

附录二 . ..................................................................................................................................... 24

致谢 . ......................................................................................................................................... 29

1 引言

1.1 国外研究现状

现代的无线遥控小车技术起源于美国,其实是第二次世界大战的产物。由于战事的需求,尤其是需要各种不同于人类直接操作的机器,用于排雷、布雷、收集情报等。在此基础上需要智能遥控机器,随着技术的发展,出现了各种功能的小型遥控小车。利用遥控小车排雷和布雷,执行各种危险的任务[1]。随着技术的沉淀,现代遥控技术到达了相当的高度。尤其是西方发达国家的遥控小车技术一直处于世界的前列。这些国家一直都在大力发展这项技术。由此衍生出其他更高级的控制方式。

军用技术转化为民用技术,用于造福人们。在国外,由于政府的支持下,民间研究机构和各个实验室的不断探索和研究之下,智能汽车技术已经相当成熟。因为物联网在当今的快速发展,智能交通系统在国外已经得到了广泛的推广。美国是发展较好的国家之一,美国在上世纪六七十年代就开始了智能交通系统的研究。随后美国就开始了智能化车辆方面的研究,逐步走向智能交通体系的发展。日本是世界上应用智能交通系统最为广泛的国家。美国、德国、日本等科技大国在智能汽车技术方面一直处于世界的前列。在汽车的性能及智能化水平上,西方发达国家一直处于先进水平。

1.2 国内研究现状

由于我国的智能交通系统研究与起步较晚,所以一直都是在向发达国家学习,在引进、改善和吸收的基础上逐渐发展起来。随着国家政府和企业对智能系统方面的重视,国内已大范围地进行无线遥控汽车的研究,一些实验室及研究所对智能交通领域都有研究。我国智能交通系统的研究开始于九十年代,到了21世纪我国的智能交通系统协调指导小组及办公室成立。经过二十多年的发展,我国的技术跟发达国家的差距正在逐步减小,在一些大中型城市已经开始应用智能交通系统。由于中国的智能交通领域起步比较晚,虽然在研发应用方面取得了重要发展,但是与国际上的发达国家还存在一定的差距。我国的技术跟发达国家的差距正在逐步减小,虽然现在的发展还不完善,但是目前我国科技能力不断进步和经济实力的不断强大,为智能交通系统的研发和完善提供了技术支撑和资金保证,有助于推动科学技术的发展。

2 设计方案分析

2.1 设计要求

设计手机蓝牙遥控小车需要在设计过程中熟悉各个元器件的功能,对单片机和安卓系统有一定的了解, 知道单片机及其它模块各个引脚的功能和电路结构,掌握单片机定时

器和串口通信的使用方法。熟悉电焊和电机驱动,能够熟练使用万用表对小车的硬件电路进行检测。有一定的软件开发能力,能够运用C 语言进行单片机的基本编程,具有熟练使用Keil 软件的能力,对手机蓝牙遥控小车的设计方案了如指掌。要求小车可以实现在手机蓝牙的遥控下左右转、前后运动、和调速的功能。

2.2 设计构思

查阅其他同学之前的制造经验和方案,根据2.1设计要求,通过查阅资料进行方案论证和选择,可以确定出该系统的整体构成。本设计是以单片机为核心,通过小车蓝牙模块和手机蓝牙的通讯来实现数据指令的传递,单片机对数据处理,最后给电机驱动模块输出高低电平,从而来控制电机驱动模块的输出端。智能小车使用四轮驱动,以提高整车运动的平稳性。利用单片机进行PWM 脉宽调制,以实现小车的加速和减速。手机蓝牙遥控小车通过蓝牙接收模块,手机客户端,单片机芯片,在驱动电机的拖动下,使小车实现各个功能。

整个系统的小车硬件可以分为七个部分,分别为单片机最小系统、手机、蓝牙模块、电机驱动模块、小车底板、电动机模块、电源模块。蓝牙模块为小车进行通讯,接收手机蓝牙传递过来的数据,单片机最小系统接收信号之后,分析信号并在输出引脚产生高低电平,给电机驱动模块发出指令,电机驱动模块根据输入引脚的状态控制电机的旋转,用电源模块为各个模块供电。小车底板作为整个设备的载体。手机则是在整个系统中起到遥控小车的作用。各个硬件共同组成蓝牙遥控小车。

设计构思结构如图1所示。

图1 设计构思结构图

3 系统硬件设计

3.1 单片机最小系统

3.1.1 单片机芯片的选择

单片机芯片选择时的原则:

(1)单片机选购时需要实际功能和数量比设计构想中的多一些,在保证所需要的功能外,尽可能有足够的引脚供给本次设计分配,方便在设计的时候更换和填补更重要

的功能。

(2) 单片机在选择上要方便耐用,保证单片机的使用寿命尽可能的长,程序可以多次的写入。

(3)单片机在可开发性上要有可靠的保证,以便于开发不同功能。

结合单片机芯片选择时的原则,本次设计的单片机芯片采用STC89C52RC 。该芯片是实验室使用比较广泛的一种单片机芯片,多用于直流电机、步进电机的控制中,可以用C 语言和汇编语言进行程序编写。具有写入程序简单方便、可以多次写入的特点,试验过程中便于反复调试。STC89C52RC 芯片的价格也比较便宜,是本这次设计比较合适的选择。

3.1.2 单片机芯片的简介

STC89C52RC 从功能的角度看,主要包括以下部分[2]:

(1)一个8位的微处理器CPU 。

(2)8KB 的Flash 存储器。

(3)512B 的RAM 。

(4)片内振荡电路和时钟发生器,只需外面连接晶振或输入振荡信号。

(5)4个8位I/O端口。

(6)有一中断控制器。

(7)3个16位的定时器/计数器。

(8)有一个可寻址64KB 外部数据存储器。

3.1.3 单片机最小系统的组成

单片机最小系统, 它由一系列元件组成,也是单片机正常工作的最低配置。在最小系统的基础上可以增设其它模块,扩展其它功能。通过单片机最小系统板方便单片机的放置和拆除,便于各个模块之间的连接。

单片机最小系统由STC89C52RC 芯片、电阻、电容、晶振、按钮和其他电子元器件共同够成的。

单片机的最小系统包括:复位系统、时钟系统、和电源系统[3]。三个系统的介绍如下:

(1)复位系统: 单片机第9引脚RST ,高电平有效,在时钟电路工作后,当外部电路使RST 端口出现2个机器周期以上的高电平,系统内部复位,程序从头开始运行。

(2)时钟系统:本次设计采用内部方式为单片机提供时钟信号。18引脚XTAL1和19引脚XTAL2两端接晶振的两端。

(3)电源系统:电源系统的引脚为40引脚VCC 和20引脚GND ,供电电压为直流5.5V~3.3V。

单片机最小系统原理如图2所示。

图2 单片机最小系统原理图

此次STC89C52RC 单片机使用的晶振选用11.0592MHz 。它与STC89C52RC 的反相放大器构成振荡器。电容C2,C3,选择30pF 。C1选择10uF 。其它各处所用到的电阻均采用阻值为10K 的电阻,D1为一个发光二极管。

3.2 蓝牙模块

3.2.1 蓝牙模块的选择

蓝牙模块主要是为了实现上位机与下位机的数据传输,通信方法有两种,一种方法是并行通信,另一种方法是串行通信。

单位信息的各位数据同时传递的通讯方法称为并行通信。STC89C52RC 单片机的并行通信依靠并行I/O连接实现。并行通信的最大优点是信息传输速度快,缺点是单位信息有多少位就需要多少根传送信号线。因此,并行通信使用起来比较浪费材料。

单位信息的各位数据被分时一位一位依次顺序传送的通信方式称为串行通信[4]。串行通信可以通过串行连接口实现。串行通信的突出优点是仅需要一对传输线传输信息。串行通信的缺点是,由于是一位一位的数据传输,所以没有并行通信传输速度快。

本次设计的数据传输仅仅为指令的传输,数据量并不大,综合上述两次通讯方式,决定使用串行通信的方式实现上位机与下位机的无线通讯功能,本质上使用的是单片机串口通信。

蓝牙模块是手机蓝牙遥控小车中至关重要的一环,肩负着接收手机遥控指令的功能。选择蓝牙模块要以设计方案来选材,考虑到选材上,有以下几个硬指标,反应要灵敏,应用要方便,性价比高,通讯稳定可靠。经过上网查阅资料,发现HC-06蓝牙模块比较适合本次设计的要求,且购买比较方便,具有使用范围比较广的特点。

HC-06蓝牙模块的外部结构如图3所示。

图3 HC-06蓝牙模块的外部结构图

3.2.1 蓝牙模块的简介

HC-06蓝牙模块有以下优点:

(1)HC-06可以用于各种带蓝牙功能的终端装置。

(2)输入电压:3.6V~6V, 可以和单片机使用同一电源电压。

(3)波特率范围比较宽4800-1382400。

(4)带连接状态指示灯,LED 快闪表示没有蓝牙连接,LED 慢闪表示进入AT 命令模式,LED 常亮表示蓝牙已连接[5]。

(5)使用手机很容易与HC-06模块连接。

(6)通讯质量好,不易受到干扰或者中断。

蓝牙模块HC-06模块参数:

(1)输入电压:3.6V~6V, 禁止超过7V 。

(2)电源防反接,接反模块不工作。

(3)支持8位数据位、1位停止位、无奇偶校验的通信格式。

(4)板载3.3V 稳压芯片。

(5)通讯端接口电平为3.3V , 可以直接与各种单片机连接。

(6)在空旷地带有效传输距离为10米。

HC-06蓝牙模块的接线方法为VCC 端口接3.6V~6V直流电源正极,GND

端口接电

源负极,RXD 端口接单片机的TXD 端口,TXD 端口接单片机的RXD 端口[6]。

蓝牙模块连接如图4所示。

图4 蓝牙模块连接图

3.2.3 蓝牙模块参数的设置

蓝牙模块的参数设置需要用到USB 转串模块,该模块可以实现蓝牙模块和电脑的有线连接,也可以为单片机进行程序的下载。通过USB 转串模块,计算机可以和蓝牙模块进行数据交换,用计算机实现对蓝牙模块进行基本参数的设置。

蓝牙模块参数设置界面如图5所示。

图5HC-06蓝牙模块参数设置界面图

HC-06蓝牙模块的参数设置指令:

(1)通信的测试,在串口调试助手主界面的发送区发送“AT ”之后,会在发送区上方的窗口返回“OK ”。

(2)修改波特率。在串口调试助手主界面的发送区发送“AT+BAUD4”之后,会在发送区上方的窗口返回“OK9600”。

(3)修改设备连接名称。以设置蓝牙设备的名称为name 为例进行举例,在发送区编辑“AT+NAMEname”,返回“OKname ”,即表示设置成功。

(4)修改蓝牙配对密码。在串口调试助手主界面的发送区发送“AT+PINxxxx”之后,会在发送区上方的窗口返回“OKsetpin ”,xxxx 为设置的蓝牙配对密码。

本次设计所设置的蓝牙名称为HC-06,串口通讯波特率设置为9600,蓝牙模块的配对密码为原始密码1234,下次上电使用不用重新设置,可以掉电保护设置的各个参数[7]。

3.3电动机模块

3.3.1 电动机的选择

由于本次设计使用到的元器件均使用直流,所以电动机模块采用直流电动机。直流电动机可以把直流电能转换为机械能。直流电机的启动性能比较好,它被广泛地应用于起重设备以及调速范围广泛的切削机床中。直流电机还具有良好的调速性能,通过调整直流电机的输入电压可以实现对直流电动机的调速。直流电动机按励磁方式可以分为永磁式、他励式和自励式3类[8]。本次设计使用的是在玩具小车上使用较多的永磁式直流电动机。直流电机的型号为FF-130玩具小马达,该直流电机为有刷直流电动机。

3.3.2 直流电机的简介

直流电机的电压范围为1.5V~12V,转数为5000~20000rpm,具有变速范围大,扭力大的特点,可以通过改变直流电机电源接口端的极性来改变旋转方向。

直流电动机的模型如图6所示。

图6 直流电动机的模型图

直流电动机的结构:图6是一个最简单的直流电动机模型。它在空间有一对位置固定的磁极(主磁极),两磁极间有一个用导磁材料制成的圆柱体(称为电枢铁心),在电枢铁心上放置了由abcd

导线连成的一个电枢线圈,线圈的首段和末端分别连到圆弧形

的铜片(换向片)上。换向片固定在转轴上,与电枢一起旋转。换向片之间以及转轴之间都互相绝缘。这种由换向片构成的整体称为换向器。在换向片上放置着一对固定不动的电刷A 和B ,它与换向片之间保持滑动接触。电枢线圈通过换向片和电刷而与外电路想接通[9]。

3.4 电机驱动模块

3.4.1 电机驱动模块的选择

小车想要运动,单片机端口的输出电压是无法驱动电机旋转的,需要使用到电机驱动模块。通过驱动模块可以实现单片机输出不同指令,电机以不同的旋转状态进行响应。目前市面上,用于小车设计的直流电机驱动模块比较多,在控制直流电机方面,L298N 电机驱动模块使用比较普遍,性能也比较好,所以本次设计也使用该电机驱动模块,L298N 模块的控制端接收到外部传来的高低电平,可以实现不同状态的输出。

3.4.2 电机驱动模块的简介

L298N 电机驱动模块原理图如图7所示。

图7L298N 电机驱动模块原理图

L298N 电机驱动模块性能特点:

(1)本模块驱动发热量低,,具有散热片,散热性能好。

(2)本模块的驱动电压范围为5V~35V。

(3)能够实现电机正反转及调速。

(4)启动性能好,启动转矩大。

(5)可以同时驱动两个直流电机,可以实现PWM 调速。

L298N 电机驱动模块的输入为标准逻辑电平,通过控制控制端口INT1、INT2、INT3、INT4的电平,可以同时控制两台直流电动机的正反转与启停。当驱动两个直流电动机时,通过控制L298N 的使能端也可以实现直流电动机的制动和调速。

L298N 电机驱动模块输入引脚与输出的逻辑关系如表1所示。

3.4.3 电机驱动模块的连接

电机驱动模块的驱动电压为5V~35V,VCC 接直流电源的正极。由于一个电机驱动模块可以驱动两个直流电机,而小车采用四轮驱动的驱动方式,有四个直流电机,所以需要两个电机驱动模块,分别用前轮驱动模块和后轮驱动模块表示。

电机驱动模块控制引脚与单片机I/O口连接如表2所示。

3.5 电源模块

3.5.1 电源的选择

本次设计需要用到5V 的直流电,提供5V 直流电给单片机供电,电机驱动模块使用5V~35V直流电,供电机驱动模块正常工作。

方案一:使用交流设备当做电源供电。此种方案直接否决,因为小车体积很小,且功能单一,不会用到多么复杂的供电装置,小车又不需要多么大的动力,况且交流装置价格比较贵,用在这种控制小车上属于浪费,且活动范围受到导线的限制。

方案二:使用普通的干电池,干电池常见,用起来比较方便,也容易供电,如果只是短时间用的话,确实比较方便,买起来又不贵,简易方便。但是本次设计需要对小车半个月的制造和测试,干电池虽然常见但不耐用。

方案三:用直流蓄电池供电。直流蓄电池的容量比较大,方便反复的试验,蓄电池的价格也比较便宜,试验成本低。

对上述三种方案进行比较,考虑到本次设计的为移动性小车,保证小车机动性的前提下,尽可能保障电源的续航能力,决定采用方案三,用直流蓄电池作为此次毕业设计的电源。本次设计采用的蓄电池容量为12V5AH ,电机驱动模块的电压范围为5V~35V,而蓄电池的额定电压为12V ,可以满足电机驱动模块的要求。蓄电池如图8所示。

图8蓄电池图

本次设计所采用的电源为直流蓄电池,蓄电池的输出电压为12V ,可以直接为L298N 电机驱动模块供电,但是电压过高不能为单片机及蓝牙模块供电。为了给单片机及蓝牙模块供电,可以把蓄电池的电压通过稳压电源模块进行电压降低,以达到单片机及蓝牙模块的工作电压范围。本次设计采用LM7805稳压模块把电压降低为5V 。

3.5.2 稳压模块的简介

稳压模块的作用主要是把蓄电池的输出电压降低之后为蓝牙模块和最小系统模块供电。稳压模块主要有三部分组成,分别为二极管、滤波电容和LM7805稳压芯片。由于稳压芯片在工作中会产生大量的热,为稳压芯片提供了散热片,加速芯片散热。

LM7805稳压模块的原理如图9所示。

图9LM7805稳压模块的原理图

图9为稳压模块的原理图,图中LM7805为5V 稳压芯片,P2为蓄电池接口,D1、D2、D3、D4四个二极管使P2口在直流电源的连接上没有正负极的要求,方便电源模块的连接,C1、C2为4700uf 的滤波电容,对直流电进行滤波,然后经过LM7805稳压芯片的稳压之后,从模块的输出接口P1输出5V 直流电[10]。通过输出接口为单片机最小系统和蓝牙通讯模块供电。经过万用表测试P1口输出的电压,确定为直流5V ,可以为蓝牙通讯模块和单片机最小系统工作供电。

3.6系统框图

系统框图如图10所示。

图10系统框图

在系统框图中手机客户端和蓝牙模块实现指令的传输,蓝牙模块把接收到的指令经过串口通信给单片机,单片机处理完指令进输出控制电机驱动模块,电机驱动模块驱动电机模块使小车运动。在整个框图中,蓄电池可以直接给电机驱动模块供电,经过5V 稳压模块之后可以为蓝牙模块、单片机进行供电。

3.7 遥控小车结构分析

在本次设计中,使用的蓄电池在整个小车结构中占据比较多的重量,如果采用两轮驱动的小车底板,车子的驱动轮会因为受力不均出现打滑的现象,为了提高车子的稳定性及机动性,小车使用四轮驱动。四轮驱动式的结构中因为后轮的转动力矩的增大,四轮驱动式的小车在横向上的轮胎阻力要大于两轮驱动式的小车,因此四轮驱动式的车子不易发生方向偏移,爬坡能力更强。四轮驱动式小车也存在一些不足,如:四轮驱动式的车子使用的电机增多,更加耗电,而且车体比一般的两轮驱动式的小车结构复杂。对于本次设计来说,由于此次试验用的蓄电池容量比较大,足以满足四个电机的正常工作要求,总体来看四轮驱动式的小车底板还是比较符合这次设计的。从整体的性能来看四轮驱动式小车在结构上具有很明显的优势,所以选择四轮驱动的底板也是这次设计的首选。

3.7.1 底板结构

底板是用来支撑整个车体的主要部件,同时也可以用来固定车子的各个零部件。底板上主要有蓝牙模块安装槽、单片机最小系统安装孔、电机定位槽和走线孔,其余的槽孔可以用来扩展其它模块。

底板结构如图11所示。

图11底板结构图

小车的底板不但在结构上要满足要求,而且要具有一定的机械强度,本次设计小车底板采用的是亚克力板材,具有足够的机械强度,足以承受本次设计所有模块的重量。本次设计采用的小车底盘机械结构简单,安装方便,可以装四个轮子,实现四轮驱动,

底盘大非常容易扩展,为各个模块提供了足够的安装空间,方便各个设备的安装。为了

提高小车底板的结构可靠性和稳定性,采用双层底板的结构。

3.7.2 底板配件

小车底板的配件有电机支架、电机齿轮箱、螺丝螺母、螺柱以及车轮。它们共同构成了小车的基本构架。

电机与底板连接支架如图12所示。

图12电机与底板连接支架图

电机支架主要是用来将电机固定在底板上的,每个电机用两块支架绑定固定,图示12电机支架的工程图中,支架中间的两个孔为支架的定位孔。它通过槽孔和圆孔来固定电机,靠小车底板左右两侧的肩台与底板卡在一起。支架的材料也是亚克力板。

小车的零部件如下表3所示。

支架和螺丝螺母配合使用可以固定小车的电机箱,螺丝与螺柱起到固定和支撑底板的作用,共同构成了底板的两层结构,电机的齿轮箱可以固定直流电动机,也起到了降低直流电机输出机械转速、增大转矩的效果,车轮与电机齿轮箱相连接,齿轮箱中齿轮的转动,带动车轮的转动,使小车实现运动。各个零部件和底板的相互配合使用,使小车具有了设计所需要的机械强度和结构。

3.7.3 整体装配

小车的整体装配如图13所示。

图13小车的整体装配图

整体车体由底盘、橡胶轮、直流电机、电机支架、以及各个模块组成。

在以往的智能小车设计中,大都会采用三轮式结构,前轮一般采用万向轮牵引,左右分别为驱动轮。虽然三轮式的小车地盘结构简单,可以节省出来两个电机,但是在小车行驶过程中的稳定性不足,且由于万向轮的径向阻力非常小,所以很容易偏向。因此在这次的设计中我采用了四轮驱动,虽然四轮驱动式结构相对于三轮式的结构更加复杂,但其稳定性得到明显加强,并且因为四个轮子都为驱动轮,其偏差更为离散,不一定是同侧的偏差方向一致,所以在小车前进过程中很难偏向。

4 系统软件设计

4.1 单片机程序设计

4.1.1 程序设计内容

在本次程序设计中,参照在直流单片机的I/O口和直流电机的逻辑控制表,要对单片机的I/O口进行设置,紧接着是对单片机进行程序初始化,由于需要处理蓝牙收到的数据,所以要编写串口通讯程序,接收到的数据送到单片机后小车要实现不同的运动状态,需要有指令处理程序、方向控制程序、PWM 调速程序。

蓝牙遥控小车的程序流程如图14所示。

图14程序流程图

4.1.2I/0端口的设置

I/O端口在程序中的代码设置如下表4所示。

4.1.3 初始化程序设计

本次设计的手机蓝牙遥控小车,需要使用到两个定时器,分别为定时器0和定时器1。定时器1用于串口通讯,为串口通讯设置波特率,定时器1用于小车调速系统,进行PWM 调速。

初始化主要是对SCON 、TCON 、TMOD 、IE 几个寄存器的设置。串口初始化设置的内容如表5所示。

9600,即TH1等于0xfd 、TL1等于0xfd [11]。定时器0工作在模式1,定时为100us, 即TH0等于0xff 、TL0等于0xa4。初始化程序设计为:

voidinit() {

TMOD=0x21; TH0=0xff; TL0=0xa4; TH1=0xfd ; TL1=0xfd ; TR0=1; TR1=1; SM0=0; SM1=1; REN=1; ET0=1; ET1=0; EA=1; ES=1; }

4.1.4 串口通讯程序的设计

串口通讯程序是单片机对数据的接收,是为了实现上位机与下位机的数据传输, SUBF 是串行口的缓冲寄存器,单片机与上位机的通信数据都是临时存放在SUBF 寄存器中的,通过软件的读写操作就可以实现单片机与外设之间的数据通讯了。

串口通讯中断程序设计为: voidser() interrupt 4 { RI=0; a=SBUF; }

4.1.5 指令处理程序的设计

指令及对应功能指令如表6所示。

switch(a) {

case '5': tingche(); break; case '2': qianjin(); break; case '8': houtui(); break; case '4': zuozhuan(); break; case '6': youzhuan(); break; case '1': jiasu();break; case '3': jiansu();break; default:break; }

4.1.6 方向控制程序的设计

本设计采用L298N 电机驱动模块。由L298N 模块各个端口的逻辑关系可知,当ENA 与ENB 为1时,通过控制IN1、IN2、IN3、IN4端口电平的高低来改变电机的转向。下面以电机的前进为例,对方向程序的设计。

前进的程序设计为: voidqianjin() {

IN1=1;

IN2=0; IN3=1; IN4=0; IN5=1; IN6=0; IN7=1; IN8=0; }

4.1.7PWM 调速程序的设计

本设计采用的是软件调速,通过软件设计控制电机驱动模块的使能端进行调速,P0口为调速端口。timer0()为PWM 调速函数,在单片机上电后count 初始值为0,speed 初始值为30。count 的计数范围为0~100。speed 为用户给定的速度值,范围为20~90,speed数值越大,速度越快。通过控制speed 的值进行调速。当count 的值大于等于speed 时,P0口引脚输出低电平,直流电动机处于自由停止状态,当count 的值小于speed 时,P0口引脚输出高电平,允许电动机运动,这样通过控制高低电平的脉冲宽度来进行调压,从而调速。

本次设计的PWM 调速程序为: void timer0()interrupt 1 {

TH0=0xff; TL0=0xa4;

if(count==speed) {

EN1A=0; EN1B=0; EN2A=0; EN2B=0; }

count++;

if(count==100) {

count=0; EN1A=1; EN1B=1; EN2A=1; EN2B=1;

}

4.2 手机客户端参数设置

本次设计使用的手机客户端为蓝牙串口助手,该客户端使用简单、方便,可以实现与蓝牙模块的通讯,是电子工程师的开发利器。

软件功能:

(1)可以搜索连接蓝牙设备,并显示蓝牙设备的class 与RSSI(信号强度) 。 (2)接收与发送数据。

(3)可设置ASCII 与HEX 的输入输出模式。 (4)可将数据结果保存到SD 卡。

图15前进按钮的设置图图16主控制界面图

本软件的三个模式:

(1)普通模式:基本的输入输出模式。

(2)键盘控制模式:可自定义12个按钮的输出值。 (3)命令行模式:可设定命令的结束符,用于通信调试。

本次设计使用键盘控制模式,设置的是发送ASCII 码的输入输出模式。根据指令与对应功能表设计对应的按键及按键按下后所发送的内容,以前进按钮为例进行设置,前进按钮的设置如图15所示。各个按钮设置完毕主控制界面如图16所示。

5系统整体调试

5.1 调试方案

在小车的调试过程中,先对硬件调试,后对软件调试。先局部后整体,一部分一部分的测试检查,掌握小车的每一个部件,对小车的整体构造要熟记于心。本次设计的小车总共有这几个部分,一是单片机最小系统,二是蓝牙HC-O6模块,三是L298N 步进电机,四是电源供电装置。这几个部分先要调整好各自的功能,先要找故障,查看设备有无短路、断路现象,看各个模块是否可以正常工作,接着再看单片机最小系统,测试单片机芯片是否可以正常烧录程序,而后是蓝牙模块和电源装置。接着是软件调试,先看流程图是否合理,然后再调试程序,最后调试整体,用手机控制小车,看小车的整体功能。

5.2 硬件调试

在给小车上电之前应该先用万用表对各个元器件进行检查,在排除了虚焊、漏焊、断路、短路等情况下进行电路功能的调试,对独立元器件的检测一般注意的问题有防止元器件短路,断路,虚焊,漏焊。给系统上电后看是否短路,或者断路。写一个程序对STC89C52RC 进行调试,如果正确实现功能则说明没有错误。对蓝牙模块的测试的主要是用手机和蓝牙进行连接,看是否可以配对,用手机发出信号,测试其是否能接受信号,如果接受信号无误,则说明HC-06蓝牙模块没有损坏。对电源电路的调试,主要是检测其是否能通电,用万用表测试各个输入输出端口的电压,检查是否正常。

5.3 软件调试

软件调试是对C 语言的调试。纯粹的语言调试不同的是,单片机编程要考虑到硬件的设计[12]。在编程过程中,为了得到满足要求的程序,一般都需要有一个对程序的调试过程,甚至需要经过多次反复的调试才能完成。一个程序的组成是有很多子程序互相拼凑修改得到的,调试过程中,可以对这些子程序逐个进行调试,保证子程序内部没有出错,然后再对整个程序进行调试。编写好的程序用Keil 软件进行编译,编译成功后输出信息窗口会提示0错误,0警告,说明所编写的程序没有语法错误[13]。对蓝牙通讯及单片机输出端口的测试,主要是在单片机的输出端口接二极管,通过二极管的点亮情况确定蓝牙通讯和单片机部分是否能够按照设计要求执行成功。最后的软件调试就是把程序写入单片机,组装好小车,进行遥控测试。由于小车的车轮和齿轮箱具有较大的摩擦力,所以要调试多次修改speed 的在各个子函数中的初始值,找到合适的初始值,以便小车有足够的初始动能。

结束语

本次毕业设计完成的是手机蓝牙遥控小车的研究,对未来的智能交通有一定的先驱作用。STC89C52RC 的单片机最小系统是此种类型中最简单的设计。首先对设计整体布局,接着依次选材料,STC89C52RC 芯片简易方便,易于设计,把以其为主要的单片机最小系统设计出来,接着选用电源模块,电源模块要实现其驱动方便,不易断电,蓝牙模块HC-06要抗干扰能力强,容易控制,连接稳定,数据的传送快,接着是控制界面的选择,界面要方便耐用,清晰合理,紧接着对单片机进行程序编写,设置手机的客户端,最后进行硬件和软件部分的调试。在设计的过程中,遇到了很多问题,对所遇到的问题进行推敲,多次试验,最终还是解决了各方面的问题。此次设计有了很深刻的体会,让我对所学习的知识有了系统的认识,对各个单元有了很深的了解。从总体上看,虽然方案不是太完善,但是小车所要实现的功能均已实现。本方案仍有待改善,以后会越做越好。

参考文献

[1] 刘汪,董晓庆.基于单片机的无线遥控小车[J].韩山师范学院,2013(4).

[2] 周霁.兼容MCS-51微处理器的逻辑设计[J].中国电子科技集团公司第四十七研究所,2013(6). [3] 孙育才.单片微型计算机及其应用[M].东南大学出版社,2010.

[4] 茅卫娟.电梯远程监控系统的设计与实现[D].上海:上海交通大学,2012.

[5] 王建勋.基于虚拟仪器和蓝牙技术的控制系统设计[J].实验室研究与探索,2015(3):P86~P89. [6] 鲍程红,戴珊.停车计时收费系统的研发[N].浙江万里学院学报,2012(4):P81~P85. [7] 蒋俊,简雨沛.蓝牙智能小车系统设计[D].北京:西南交通大学,2015:P166~P167. [8] 杨勇.他励直流电动机的启动方法[J].东方企业文化,2014(1): P229~P229. [9] 劳卫东.谈直流发电机的基本工作原理[J].企业科技与发展,2011(22): P27~P30. [10] 聂思敏.小功率光伏电池控制器的研制[N].安顺学院学报,2011(3): P115~P117. [11] 游晓容.单片机串行通信中的几个问题讨论[N].河南教育学院学报,2011(2).

[12] 许超,张丹.基于Keil 的单片机课程教学改革[J].辽宁大学学报(自然科学版) ,2011(1). [13] 鲁杰爽.单片机Keil 软件仿真与调试技巧[J].电子制作,2010(3).

[14] Wang G W, Shao Q. Electronic structure of P-doped diamond thin film and it’s hole influence. Sci

China Phys MechAstron, 2010. 40(7): 869–875. [15] Godfrey Nolan .Decompiling Android.2012: 158.

附录一

元件连接图:

手机蓝牙遥控小车设计

手机蓝牙遥控小车设计

附录二

单片机程序:

#include #include

#define uchar unsigned char #define uint unsigned int uint speed; uint count; uint a; sbit IN1=P2^0; sbit IN2=P2^1; sbit IN3=P2^2; sbit IN4=P2^3; sbit IN5=P2^4; sbit IN6=P2^5; sbit IN7=P2^6; sbit IN8=P2^7; sbit EN1A=P0^0;

//使能控制端口P0口

sbit EN1B=P0^1; sbit EN2A=P0^2; sbit EN2B=P0^3;

/*************************************************************************** *名称:init()

*功能:串口和定时器0初始化,晶振11.0592,波特率9600,使定时器和串口中断 ****************************************************************************/ voidinit() {

TMOD=0x21; 波

TH0=0xff; TL0=0xa4; TH1=0xfd ; TL1=0xfd ; TR0=1; TR1=1; SM0=0; SM1=1;

//设置串口工作方式为1,即SCON=0x50,允许串口接收发送

REN=1; //使能接收 ET0=1; //开定时器0中断 ET1=0; //开定时器1中断 EA=1;

//转向控制端口P2口

//设置定时器1为模式2,串口提供波特率;定时器0工作在模式1,产生PWM

//定时100us

//装初值,波特率为9600 //启动定时器0 //启动定时器1

//打开总总段开关

ES=1; //打开串口中断开关

}

/***************************************************************************

*名称:timer0()

*功能:定时器0中断子程序

****************************************************************************/ void timer0()interrupt 1 //PWM频率为1/(100us*100)=10KHz

{

TH0=0xff;

TL0=0xa4;

{

EN1A=0;

EN1B=0;

EN2A=0;

EN2B=0;

}

count++;

{

count=0; //count的范围在0-100, 当count=100时进行数据重装

EN1A=1;

EN1B=1;

EN2A=1;

EN2B=1;

}

}

/***************************************************************************

*名称:tingche()

*功能:左前、左后、右前、右后车轮均制动,整车表现为停车状态

****************************************************************************/ voidtingche()

{

IN1=0;

IN2=0;

IN3=0;

IN4=0;

IN5=0;

IN6=0;

IN7=0;

IN8=0;

}

//对定时器进行数据重装 if(count==speed) //当count=speed时,各个使能端置0,禁止转动 if(count==100) //当count=speed时,各个使能端置1,允许转动

/***************************************************************************

*名称:qianjin()

*功能:左前、左后、右前、右后车轮均正转,整车表现为前进

****************************************************************************/ voidqianjin()

{

IN1=1;

IN2=0;

IN3=1;

IN4=0;

IN5=1;

IN6=0;

IN7=1;

IN8=0;

speed=30;

}

/***************************************************************************

*名称:houtui()

*功能:左前、左后、右前、右后车轮均反转,整车表现为后退

****************************************************************************/ voidhoutui()

{

IN1=0;

IN2=1;

IN3=0;

IN4=1;

IN5=0;

IN6=1;

IN7=0;

IN8=1;

speed=30;

}

/***************************************************************************

*名称:左转()

*功能:左前、左后车轮反转,右前、右后车轮均正转,整车表现为左转

****************************************************************************/ voidzuozhuan()

{

IN1=1;

IN2=0;

IN3=0;

IN4=1;

IN5=0;

IN6=1;

IN7=1;

IN8=0;

speed=25;

}

/***************************************************************************

*名称:youzhuan()

*功能:左前、左后车轮正转,右前、右后车轮均反转,整车表现为右转

****************************************************************************/ voidyouzhuan()

{

IN1=0;

IN2=1;

IN3=1;

IN4=0;

IN5=1;

IN6=0;

IN7=0;

IN8=1;

speed=25;

}

/***************************************************************************

*名称:jiasu()

*功能:使小车的运动速度加快

****************************************************************************/ voidjiasu()

{ speed=speed+5;

if(speed>90)

{speed=90;}

}

/***************************************************************************

*名称:jiansu()

*功能:使小车的运动速度减慢

****************************************************************************/ voidjiansu()

{speed=speed-5;

if(speed

{speed=20;}

}

/***************************************************************************

*名称:main()

*功能:程序的循环执行,使小车实现应有的功能

****************************************************************************/ void main()

{

init();

speed=30;

count=0;

EN1A=1;

EN1B=1;

EN2A=1;

EN2B=1;

while(1)

{

switch(a) //分析串口传送过来的指令,做出相应的相应

{

case '5': tingche(); break;

case '2': qianjin(); break;

case '8': houtui(); break;

case '4': zuozhuan(); break;

case '6': youzhuan(); break;

case '1': jiasu();break;

case '3': jiansu(); break;

default:break;

}

a=0;

}

}

/***************************************************************************

*名称:ser()

*功能:串口中断子函数,接收传送过来的数据

****************************************************************************/ voidser() interrupt 4

{

RI=0; //接收中断请求标志位清0

a=SBUF;

}

致谢

本次毕业设计和论文在紧张和忙碌中完成了,在这期间,我学到了很多东西。理论和实践得到了充分的发挥。在我的设计过程中,我首先要感谢胡老师。本毕业设计是在胡老师悉心的关怀与指导下完成,在此对胡老师献上最衷心地感谢。胡老师从一开始就对我们严格要求,每星期都会询问我们的毕设进度并了解我们遇到的困难,积极协助我们解决设计过程中的各种难题,并要求我们记录在毕业设计中所作的工作进度及遇到的问题,让我们去发现问题,解决问题。对于一些技术层面的东西加以指导,比如STC89C52RC 的工作原理和结构构成,蓝牙模块HC-06的接收方式和安装技巧,供电设备用什么比较合理,是干电池合理,还是蓄电池合理,等等一些列问题。在设计的过程中,由于能力不足和各方面因素所致,设计比较普通,缺乏创意,没有新意,在以后的设计中会慢慢在这方面加以改进,使不足尽量缩小,这就是设计中所面临的问题,不过只是在跨出学校大门的前夕,经历了第一次预考,让我们在走出的学校大门的一刻经受住了最后一次考验。最后,我要再次感谢在毕业设计过程中对我提供过制作电路板等工具的同学和老师,以及在毕业设计中对我进行过指导的所有人。

南阳理工学院

本科生毕业设计(论文)

学院:电子与电气工程学院 专业:电气工程及其自动化

学生:

指导教师:

完成日期年月

南阳理工学院本科生毕业设计(论文)

手机蓝牙遥控小车设计

Design of Bluetooth Mobile Phone Remote Control of Smart Car

总计: 29页

表格: 6 个

插图: 16 幅

南阳理工学院本科毕业设计(论文)

手机蓝牙遥控小车设计

Design of Bluetooth Mobile Phone Remote Control of Smart Car

学院:电子与电气工程学院 专业:电气工程及其自动化

学生姓名:

学号:

指导教师(职称):

评阅教师:

完成日期:

南阳理工学院

Nanyang Institute of Technology

手机蓝牙遥控小车设计

电气工程及其自动化专业

[摘 要]本课题选用单片机STC89C52RC 作为整个控制系统的核心和数据处理中心,利用Keil 编程软件进行单片机程序的编写,通过安装于手机上的蓝牙通讯客户端对单片机进行相关指令的发送。小车硬件采用模块化设计,整个系统由单片机最小系统模块、蓝牙模块、电动机模块、电机驱动模块、电源模块等组成,各个模块之间通过相互配合,实现手机客户端对小车运动状态的遥控。在对系统软、硬件进行相关调试后,小车能够接收手机发送的遥控信号,并实现前进、倒退、左转、右转、加速、减速和停止的功能。

[关键词]蓝牙模块;遥控;电源模块;客户端

Design of Bluetooth Mobile Phone Remote Control of Smart Car

Electrical Engineering and Automation Specialty ZHANG Fan

Abstract:Design of Bluetooth mobile phone remote control of smart car was completed using STC89C52RC as control core and data processing center. It was programmed by Keil programming software and through the installation of the client on the phone to send the relevant instructions to achieve the remote control of the car.The car designed by modular and consists of the microcontroller unit minimum system module, Bluetooth module, motor module, motor drive module, power module and other components. Through mutual cooperation between the various modules, the mobile phone client to achieve the status of the remote control of the car.In the system software, hardware for the relevant debugging, the car can receive the remote control signal form phone, and to achieve forward, backward, left, right, right, acceleration, deceleration and stop function.

Key words:Bluetooth module ; remote control ;power module ; client

目录

1 引言 . ....................................................................................................................................... 1

1.1 国外研究现状 ................................................................................................................. 1

1.2 国内研究现状 ................................................................................................................. 1

2 设计方案分析 . ....................................................................................................................... 1

2.1 设计要求 ......................................................................................................................... 1

2.2 设计构思 ......................................................................................................................... 2

3 系统硬件设计 . ....................................................................................................................... 2

3.1 单片机最小系统 ............................................................................................................. 2

3.1.1 单片机芯片的选择 . ................................................................................................. 2

3.1.2 单片机芯片的简介 . ................................................................................................. 3

3.1.3 单片机最小系统的组成 . ......................................................................................... 3

3.2 蓝牙模块 ......................................................................................................................... 4

3.2.1 蓝牙模块的选择 . ..................................................................................................... 4

3.2.1 蓝牙模块的简介 . ..................................................................................................... 5

3.2.3 蓝牙模块参数的设置 . ............................................................................................. 6

3.3 电动机模块 ..................................................................................................................... 7

3.3.1 电动机的选择 . ......................................................................................................... 7

3.3.2 直流电机的简介 . ..................................................................................................... 7

3.4 电机驱动模块 ................................................................................................................. 8

3.4.1 电机驱动模块的选择 . ............................................................................................. 8

3.4.2 电机驱动模块的简介 . ............................................................................................. 8

3.4.3 电机驱动模块的连接 . ............................................................................................. 9

3.5 电源模块 ....................................................................................................................... 10

3.5.1 电源的选择 . ........................................................................................................... 10

3.5.2 稳压模块的简介 . ................................................................................................... 11

3.6 系统框图 ....................................................................................................................... 11

3.7 遥控小车结构分析 ....................................................................................................... 12

3.7.1 底板结构 . ............................................................................................................... 12

3.7. 2 底板配件 . .............................................................................................................. 13

3.7. 3 整体装配 . .............................................................................................................. 14

4 系统软件设计 . ..................................................................................................................... 14

4.1 单片机程序设计 ........................................................................................................... 14

4.1.1 程序设计内容 . ....................................................................................................... 14

4.1.2I/0端口的设置 ........................................................................................................ 15

4.1.3 初始化程序设计 . ................................................................................................... 16

4.1.4 串口通讯程序的设计 . ........................................................................................... 17

4.1.5 指令处理程序的设计 . ........................................................................................... 17

4.1.6 方向控制程序的设计 . ........................................................................................... 17

4.1.7PWM 调速程序的设计 ........................................................................................... 18

4.2 手机客户端参数设置 ................................................................................................... 19

5 系统整体调试 . ..................................................................................................................... 20

5.1 调试方案 ....................................................................................................................... 20

5.2 硬件调试 ....................................................................................................................... 20

5.3 软件调试 ....................................................................................................................... 20

结束语 . ..................................................................................................................................... 21

参考文献 . ................................................................................................................................. 22

附录一 . ..................................................................................................................................... 23

附录二 . ..................................................................................................................................... 24

致谢 . ......................................................................................................................................... 29

1 引言

1.1 国外研究现状

现代的无线遥控小车技术起源于美国,其实是第二次世界大战的产物。由于战事的需求,尤其是需要各种不同于人类直接操作的机器,用于排雷、布雷、收集情报等。在此基础上需要智能遥控机器,随着技术的发展,出现了各种功能的小型遥控小车。利用遥控小车排雷和布雷,执行各种危险的任务[1]。随着技术的沉淀,现代遥控技术到达了相当的高度。尤其是西方发达国家的遥控小车技术一直处于世界的前列。这些国家一直都在大力发展这项技术。由此衍生出其他更高级的控制方式。

军用技术转化为民用技术,用于造福人们。在国外,由于政府的支持下,民间研究机构和各个实验室的不断探索和研究之下,智能汽车技术已经相当成熟。因为物联网在当今的快速发展,智能交通系统在国外已经得到了广泛的推广。美国是发展较好的国家之一,美国在上世纪六七十年代就开始了智能交通系统的研究。随后美国就开始了智能化车辆方面的研究,逐步走向智能交通体系的发展。日本是世界上应用智能交通系统最为广泛的国家。美国、德国、日本等科技大国在智能汽车技术方面一直处于世界的前列。在汽车的性能及智能化水平上,西方发达国家一直处于先进水平。

1.2 国内研究现状

由于我国的智能交通系统研究与起步较晚,所以一直都是在向发达国家学习,在引进、改善和吸收的基础上逐渐发展起来。随着国家政府和企业对智能系统方面的重视,国内已大范围地进行无线遥控汽车的研究,一些实验室及研究所对智能交通领域都有研究。我国智能交通系统的研究开始于九十年代,到了21世纪我国的智能交通系统协调指导小组及办公室成立。经过二十多年的发展,我国的技术跟发达国家的差距正在逐步减小,在一些大中型城市已经开始应用智能交通系统。由于中国的智能交通领域起步比较晚,虽然在研发应用方面取得了重要发展,但是与国际上的发达国家还存在一定的差距。我国的技术跟发达国家的差距正在逐步减小,虽然现在的发展还不完善,但是目前我国科技能力不断进步和经济实力的不断强大,为智能交通系统的研发和完善提供了技术支撑和资金保证,有助于推动科学技术的发展。

2 设计方案分析

2.1 设计要求

设计手机蓝牙遥控小车需要在设计过程中熟悉各个元器件的功能,对单片机和安卓系统有一定的了解, 知道单片机及其它模块各个引脚的功能和电路结构,掌握单片机定时

器和串口通信的使用方法。熟悉电焊和电机驱动,能够熟练使用万用表对小车的硬件电路进行检测。有一定的软件开发能力,能够运用C 语言进行单片机的基本编程,具有熟练使用Keil 软件的能力,对手机蓝牙遥控小车的设计方案了如指掌。要求小车可以实现在手机蓝牙的遥控下左右转、前后运动、和调速的功能。

2.2 设计构思

查阅其他同学之前的制造经验和方案,根据2.1设计要求,通过查阅资料进行方案论证和选择,可以确定出该系统的整体构成。本设计是以单片机为核心,通过小车蓝牙模块和手机蓝牙的通讯来实现数据指令的传递,单片机对数据处理,最后给电机驱动模块输出高低电平,从而来控制电机驱动模块的输出端。智能小车使用四轮驱动,以提高整车运动的平稳性。利用单片机进行PWM 脉宽调制,以实现小车的加速和减速。手机蓝牙遥控小车通过蓝牙接收模块,手机客户端,单片机芯片,在驱动电机的拖动下,使小车实现各个功能。

整个系统的小车硬件可以分为七个部分,分别为单片机最小系统、手机、蓝牙模块、电机驱动模块、小车底板、电动机模块、电源模块。蓝牙模块为小车进行通讯,接收手机蓝牙传递过来的数据,单片机最小系统接收信号之后,分析信号并在输出引脚产生高低电平,给电机驱动模块发出指令,电机驱动模块根据输入引脚的状态控制电机的旋转,用电源模块为各个模块供电。小车底板作为整个设备的载体。手机则是在整个系统中起到遥控小车的作用。各个硬件共同组成蓝牙遥控小车。

设计构思结构如图1所示。

图1 设计构思结构图

3 系统硬件设计

3.1 单片机最小系统

3.1.1 单片机芯片的选择

单片机芯片选择时的原则:

(1)单片机选购时需要实际功能和数量比设计构想中的多一些,在保证所需要的功能外,尽可能有足够的引脚供给本次设计分配,方便在设计的时候更换和填补更重要

的功能。

(2) 单片机在选择上要方便耐用,保证单片机的使用寿命尽可能的长,程序可以多次的写入。

(3)单片机在可开发性上要有可靠的保证,以便于开发不同功能。

结合单片机芯片选择时的原则,本次设计的单片机芯片采用STC89C52RC 。该芯片是实验室使用比较广泛的一种单片机芯片,多用于直流电机、步进电机的控制中,可以用C 语言和汇编语言进行程序编写。具有写入程序简单方便、可以多次写入的特点,试验过程中便于反复调试。STC89C52RC 芯片的价格也比较便宜,是本这次设计比较合适的选择。

3.1.2 单片机芯片的简介

STC89C52RC 从功能的角度看,主要包括以下部分[2]:

(1)一个8位的微处理器CPU 。

(2)8KB 的Flash 存储器。

(3)512B 的RAM 。

(4)片内振荡电路和时钟发生器,只需外面连接晶振或输入振荡信号。

(5)4个8位I/O端口。

(6)有一中断控制器。

(7)3个16位的定时器/计数器。

(8)有一个可寻址64KB 外部数据存储器。

3.1.3 单片机最小系统的组成

单片机最小系统, 它由一系列元件组成,也是单片机正常工作的最低配置。在最小系统的基础上可以增设其它模块,扩展其它功能。通过单片机最小系统板方便单片机的放置和拆除,便于各个模块之间的连接。

单片机最小系统由STC89C52RC 芯片、电阻、电容、晶振、按钮和其他电子元器件共同够成的。

单片机的最小系统包括:复位系统、时钟系统、和电源系统[3]。三个系统的介绍如下:

(1)复位系统: 单片机第9引脚RST ,高电平有效,在时钟电路工作后,当外部电路使RST 端口出现2个机器周期以上的高电平,系统内部复位,程序从头开始运行。

(2)时钟系统:本次设计采用内部方式为单片机提供时钟信号。18引脚XTAL1和19引脚XTAL2两端接晶振的两端。

(3)电源系统:电源系统的引脚为40引脚VCC 和20引脚GND ,供电电压为直流5.5V~3.3V。

单片机最小系统原理如图2所示。

图2 单片机最小系统原理图

此次STC89C52RC 单片机使用的晶振选用11.0592MHz 。它与STC89C52RC 的反相放大器构成振荡器。电容C2,C3,选择30pF 。C1选择10uF 。其它各处所用到的电阻均采用阻值为10K 的电阻,D1为一个发光二极管。

3.2 蓝牙模块

3.2.1 蓝牙模块的选择

蓝牙模块主要是为了实现上位机与下位机的数据传输,通信方法有两种,一种方法是并行通信,另一种方法是串行通信。

单位信息的各位数据同时传递的通讯方法称为并行通信。STC89C52RC 单片机的并行通信依靠并行I/O连接实现。并行通信的最大优点是信息传输速度快,缺点是单位信息有多少位就需要多少根传送信号线。因此,并行通信使用起来比较浪费材料。

单位信息的各位数据被分时一位一位依次顺序传送的通信方式称为串行通信[4]。串行通信可以通过串行连接口实现。串行通信的突出优点是仅需要一对传输线传输信息。串行通信的缺点是,由于是一位一位的数据传输,所以没有并行通信传输速度快。

本次设计的数据传输仅仅为指令的传输,数据量并不大,综合上述两次通讯方式,决定使用串行通信的方式实现上位机与下位机的无线通讯功能,本质上使用的是单片机串口通信。

蓝牙模块是手机蓝牙遥控小车中至关重要的一环,肩负着接收手机遥控指令的功能。选择蓝牙模块要以设计方案来选材,考虑到选材上,有以下几个硬指标,反应要灵敏,应用要方便,性价比高,通讯稳定可靠。经过上网查阅资料,发现HC-06蓝牙模块比较适合本次设计的要求,且购买比较方便,具有使用范围比较广的特点。

HC-06蓝牙模块的外部结构如图3所示。

图3 HC-06蓝牙模块的外部结构图

3.2.1 蓝牙模块的简介

HC-06蓝牙模块有以下优点:

(1)HC-06可以用于各种带蓝牙功能的终端装置。

(2)输入电压:3.6V~6V, 可以和单片机使用同一电源电压。

(3)波特率范围比较宽4800-1382400。

(4)带连接状态指示灯,LED 快闪表示没有蓝牙连接,LED 慢闪表示进入AT 命令模式,LED 常亮表示蓝牙已连接[5]。

(5)使用手机很容易与HC-06模块连接。

(6)通讯质量好,不易受到干扰或者中断。

蓝牙模块HC-06模块参数:

(1)输入电压:3.6V~6V, 禁止超过7V 。

(2)电源防反接,接反模块不工作。

(3)支持8位数据位、1位停止位、无奇偶校验的通信格式。

(4)板载3.3V 稳压芯片。

(5)通讯端接口电平为3.3V , 可以直接与各种单片机连接。

(6)在空旷地带有效传输距离为10米。

HC-06蓝牙模块的接线方法为VCC 端口接3.6V~6V直流电源正极,GND

端口接电

源负极,RXD 端口接单片机的TXD 端口,TXD 端口接单片机的RXD 端口[6]。

蓝牙模块连接如图4所示。

图4 蓝牙模块连接图

3.2.3 蓝牙模块参数的设置

蓝牙模块的参数设置需要用到USB 转串模块,该模块可以实现蓝牙模块和电脑的有线连接,也可以为单片机进行程序的下载。通过USB 转串模块,计算机可以和蓝牙模块进行数据交换,用计算机实现对蓝牙模块进行基本参数的设置。

蓝牙模块参数设置界面如图5所示。

图5HC-06蓝牙模块参数设置界面图

HC-06蓝牙模块的参数设置指令:

(1)通信的测试,在串口调试助手主界面的发送区发送“AT ”之后,会在发送区上方的窗口返回“OK ”。

(2)修改波特率。在串口调试助手主界面的发送区发送“AT+BAUD4”之后,会在发送区上方的窗口返回“OK9600”。

(3)修改设备连接名称。以设置蓝牙设备的名称为name 为例进行举例,在发送区编辑“AT+NAMEname”,返回“OKname ”,即表示设置成功。

(4)修改蓝牙配对密码。在串口调试助手主界面的发送区发送“AT+PINxxxx”之后,会在发送区上方的窗口返回“OKsetpin ”,xxxx 为设置的蓝牙配对密码。

本次设计所设置的蓝牙名称为HC-06,串口通讯波特率设置为9600,蓝牙模块的配对密码为原始密码1234,下次上电使用不用重新设置,可以掉电保护设置的各个参数[7]。

3.3电动机模块

3.3.1 电动机的选择

由于本次设计使用到的元器件均使用直流,所以电动机模块采用直流电动机。直流电动机可以把直流电能转换为机械能。直流电机的启动性能比较好,它被广泛地应用于起重设备以及调速范围广泛的切削机床中。直流电机还具有良好的调速性能,通过调整直流电机的输入电压可以实现对直流电动机的调速。直流电动机按励磁方式可以分为永磁式、他励式和自励式3类[8]。本次设计使用的是在玩具小车上使用较多的永磁式直流电动机。直流电机的型号为FF-130玩具小马达,该直流电机为有刷直流电动机。

3.3.2 直流电机的简介

直流电机的电压范围为1.5V~12V,转数为5000~20000rpm,具有变速范围大,扭力大的特点,可以通过改变直流电机电源接口端的极性来改变旋转方向。

直流电动机的模型如图6所示。

图6 直流电动机的模型图

直流电动机的结构:图6是一个最简单的直流电动机模型。它在空间有一对位置固定的磁极(主磁极),两磁极间有一个用导磁材料制成的圆柱体(称为电枢铁心),在电枢铁心上放置了由abcd

导线连成的一个电枢线圈,线圈的首段和末端分别连到圆弧形

的铜片(换向片)上。换向片固定在转轴上,与电枢一起旋转。换向片之间以及转轴之间都互相绝缘。这种由换向片构成的整体称为换向器。在换向片上放置着一对固定不动的电刷A 和B ,它与换向片之间保持滑动接触。电枢线圈通过换向片和电刷而与外电路想接通[9]。

3.4 电机驱动模块

3.4.1 电机驱动模块的选择

小车想要运动,单片机端口的输出电压是无法驱动电机旋转的,需要使用到电机驱动模块。通过驱动模块可以实现单片机输出不同指令,电机以不同的旋转状态进行响应。目前市面上,用于小车设计的直流电机驱动模块比较多,在控制直流电机方面,L298N 电机驱动模块使用比较普遍,性能也比较好,所以本次设计也使用该电机驱动模块,L298N 模块的控制端接收到外部传来的高低电平,可以实现不同状态的输出。

3.4.2 电机驱动模块的简介

L298N 电机驱动模块原理图如图7所示。

图7L298N 电机驱动模块原理图

L298N 电机驱动模块性能特点:

(1)本模块驱动发热量低,,具有散热片,散热性能好。

(2)本模块的驱动电压范围为5V~35V。

(3)能够实现电机正反转及调速。

(4)启动性能好,启动转矩大。

(5)可以同时驱动两个直流电机,可以实现PWM 调速。

L298N 电机驱动模块的输入为标准逻辑电平,通过控制控制端口INT1、INT2、INT3、INT4的电平,可以同时控制两台直流电动机的正反转与启停。当驱动两个直流电动机时,通过控制L298N 的使能端也可以实现直流电动机的制动和调速。

L298N 电机驱动模块输入引脚与输出的逻辑关系如表1所示。

3.4.3 电机驱动模块的连接

电机驱动模块的驱动电压为5V~35V,VCC 接直流电源的正极。由于一个电机驱动模块可以驱动两个直流电机,而小车采用四轮驱动的驱动方式,有四个直流电机,所以需要两个电机驱动模块,分别用前轮驱动模块和后轮驱动模块表示。

电机驱动模块控制引脚与单片机I/O口连接如表2所示。

3.5 电源模块

3.5.1 电源的选择

本次设计需要用到5V 的直流电,提供5V 直流电给单片机供电,电机驱动模块使用5V~35V直流电,供电机驱动模块正常工作。

方案一:使用交流设备当做电源供电。此种方案直接否决,因为小车体积很小,且功能单一,不会用到多么复杂的供电装置,小车又不需要多么大的动力,况且交流装置价格比较贵,用在这种控制小车上属于浪费,且活动范围受到导线的限制。

方案二:使用普通的干电池,干电池常见,用起来比较方便,也容易供电,如果只是短时间用的话,确实比较方便,买起来又不贵,简易方便。但是本次设计需要对小车半个月的制造和测试,干电池虽然常见但不耐用。

方案三:用直流蓄电池供电。直流蓄电池的容量比较大,方便反复的试验,蓄电池的价格也比较便宜,试验成本低。

对上述三种方案进行比较,考虑到本次设计的为移动性小车,保证小车机动性的前提下,尽可能保障电源的续航能力,决定采用方案三,用直流蓄电池作为此次毕业设计的电源。本次设计采用的蓄电池容量为12V5AH ,电机驱动模块的电压范围为5V~35V,而蓄电池的额定电压为12V ,可以满足电机驱动模块的要求。蓄电池如图8所示。

图8蓄电池图

本次设计所采用的电源为直流蓄电池,蓄电池的输出电压为12V ,可以直接为L298N 电机驱动模块供电,但是电压过高不能为单片机及蓝牙模块供电。为了给单片机及蓝牙模块供电,可以把蓄电池的电压通过稳压电源模块进行电压降低,以达到单片机及蓝牙模块的工作电压范围。本次设计采用LM7805稳压模块把电压降低为5V 。

3.5.2 稳压模块的简介

稳压模块的作用主要是把蓄电池的输出电压降低之后为蓝牙模块和最小系统模块供电。稳压模块主要有三部分组成,分别为二极管、滤波电容和LM7805稳压芯片。由于稳压芯片在工作中会产生大量的热,为稳压芯片提供了散热片,加速芯片散热。

LM7805稳压模块的原理如图9所示。

图9LM7805稳压模块的原理图

图9为稳压模块的原理图,图中LM7805为5V 稳压芯片,P2为蓄电池接口,D1、D2、D3、D4四个二极管使P2口在直流电源的连接上没有正负极的要求,方便电源模块的连接,C1、C2为4700uf 的滤波电容,对直流电进行滤波,然后经过LM7805稳压芯片的稳压之后,从模块的输出接口P1输出5V 直流电[10]。通过输出接口为单片机最小系统和蓝牙通讯模块供电。经过万用表测试P1口输出的电压,确定为直流5V ,可以为蓝牙通讯模块和单片机最小系统工作供电。

3.6系统框图

系统框图如图10所示。

图10系统框图

在系统框图中手机客户端和蓝牙模块实现指令的传输,蓝牙模块把接收到的指令经过串口通信给单片机,单片机处理完指令进输出控制电机驱动模块,电机驱动模块驱动电机模块使小车运动。在整个框图中,蓄电池可以直接给电机驱动模块供电,经过5V 稳压模块之后可以为蓝牙模块、单片机进行供电。

3.7 遥控小车结构分析

在本次设计中,使用的蓄电池在整个小车结构中占据比较多的重量,如果采用两轮驱动的小车底板,车子的驱动轮会因为受力不均出现打滑的现象,为了提高车子的稳定性及机动性,小车使用四轮驱动。四轮驱动式的结构中因为后轮的转动力矩的增大,四轮驱动式的小车在横向上的轮胎阻力要大于两轮驱动式的小车,因此四轮驱动式的车子不易发生方向偏移,爬坡能力更强。四轮驱动式小车也存在一些不足,如:四轮驱动式的车子使用的电机增多,更加耗电,而且车体比一般的两轮驱动式的小车结构复杂。对于本次设计来说,由于此次试验用的蓄电池容量比较大,足以满足四个电机的正常工作要求,总体来看四轮驱动式的小车底板还是比较符合这次设计的。从整体的性能来看四轮驱动式小车在结构上具有很明显的优势,所以选择四轮驱动的底板也是这次设计的首选。

3.7.1 底板结构

底板是用来支撑整个车体的主要部件,同时也可以用来固定车子的各个零部件。底板上主要有蓝牙模块安装槽、单片机最小系统安装孔、电机定位槽和走线孔,其余的槽孔可以用来扩展其它模块。

底板结构如图11所示。

图11底板结构图

小车的底板不但在结构上要满足要求,而且要具有一定的机械强度,本次设计小车底板采用的是亚克力板材,具有足够的机械强度,足以承受本次设计所有模块的重量。本次设计采用的小车底盘机械结构简单,安装方便,可以装四个轮子,实现四轮驱动,

底盘大非常容易扩展,为各个模块提供了足够的安装空间,方便各个设备的安装。为了

提高小车底板的结构可靠性和稳定性,采用双层底板的结构。

3.7.2 底板配件

小车底板的配件有电机支架、电机齿轮箱、螺丝螺母、螺柱以及车轮。它们共同构成了小车的基本构架。

电机与底板连接支架如图12所示。

图12电机与底板连接支架图

电机支架主要是用来将电机固定在底板上的,每个电机用两块支架绑定固定,图示12电机支架的工程图中,支架中间的两个孔为支架的定位孔。它通过槽孔和圆孔来固定电机,靠小车底板左右两侧的肩台与底板卡在一起。支架的材料也是亚克力板。

小车的零部件如下表3所示。

支架和螺丝螺母配合使用可以固定小车的电机箱,螺丝与螺柱起到固定和支撑底板的作用,共同构成了底板的两层结构,电机的齿轮箱可以固定直流电动机,也起到了降低直流电机输出机械转速、增大转矩的效果,车轮与电机齿轮箱相连接,齿轮箱中齿轮的转动,带动车轮的转动,使小车实现运动。各个零部件和底板的相互配合使用,使小车具有了设计所需要的机械强度和结构。

3.7.3 整体装配

小车的整体装配如图13所示。

图13小车的整体装配图

整体车体由底盘、橡胶轮、直流电机、电机支架、以及各个模块组成。

在以往的智能小车设计中,大都会采用三轮式结构,前轮一般采用万向轮牵引,左右分别为驱动轮。虽然三轮式的小车地盘结构简单,可以节省出来两个电机,但是在小车行驶过程中的稳定性不足,且由于万向轮的径向阻力非常小,所以很容易偏向。因此在这次的设计中我采用了四轮驱动,虽然四轮驱动式结构相对于三轮式的结构更加复杂,但其稳定性得到明显加强,并且因为四个轮子都为驱动轮,其偏差更为离散,不一定是同侧的偏差方向一致,所以在小车前进过程中很难偏向。

4 系统软件设计

4.1 单片机程序设计

4.1.1 程序设计内容

在本次程序设计中,参照在直流单片机的I/O口和直流电机的逻辑控制表,要对单片机的I/O口进行设置,紧接着是对单片机进行程序初始化,由于需要处理蓝牙收到的数据,所以要编写串口通讯程序,接收到的数据送到单片机后小车要实现不同的运动状态,需要有指令处理程序、方向控制程序、PWM 调速程序。

蓝牙遥控小车的程序流程如图14所示。

图14程序流程图

4.1.2I/0端口的设置

I/O端口在程序中的代码设置如下表4所示。

4.1.3 初始化程序设计

本次设计的手机蓝牙遥控小车,需要使用到两个定时器,分别为定时器0和定时器1。定时器1用于串口通讯,为串口通讯设置波特率,定时器1用于小车调速系统,进行PWM 调速。

初始化主要是对SCON 、TCON 、TMOD 、IE 几个寄存器的设置。串口初始化设置的内容如表5所示。

9600,即TH1等于0xfd 、TL1等于0xfd [11]。定时器0工作在模式1,定时为100us, 即TH0等于0xff 、TL0等于0xa4。初始化程序设计为:

voidinit() {

TMOD=0x21; TH0=0xff; TL0=0xa4; TH1=0xfd ; TL1=0xfd ; TR0=1; TR1=1; SM0=0; SM1=1; REN=1; ET0=1; ET1=0; EA=1; ES=1; }

4.1.4 串口通讯程序的设计

串口通讯程序是单片机对数据的接收,是为了实现上位机与下位机的数据传输, SUBF 是串行口的缓冲寄存器,单片机与上位机的通信数据都是临时存放在SUBF 寄存器中的,通过软件的读写操作就可以实现单片机与外设之间的数据通讯了。

串口通讯中断程序设计为: voidser() interrupt 4 { RI=0; a=SBUF; }

4.1.5 指令处理程序的设计

指令及对应功能指令如表6所示。

switch(a) {

case '5': tingche(); break; case '2': qianjin(); break; case '8': houtui(); break; case '4': zuozhuan(); break; case '6': youzhuan(); break; case '1': jiasu();break; case '3': jiansu();break; default:break; }

4.1.6 方向控制程序的设计

本设计采用L298N 电机驱动模块。由L298N 模块各个端口的逻辑关系可知,当ENA 与ENB 为1时,通过控制IN1、IN2、IN3、IN4端口电平的高低来改变电机的转向。下面以电机的前进为例,对方向程序的设计。

前进的程序设计为: voidqianjin() {

IN1=1;

IN2=0; IN3=1; IN4=0; IN5=1; IN6=0; IN7=1; IN8=0; }

4.1.7PWM 调速程序的设计

本设计采用的是软件调速,通过软件设计控制电机驱动模块的使能端进行调速,P0口为调速端口。timer0()为PWM 调速函数,在单片机上电后count 初始值为0,speed 初始值为30。count 的计数范围为0~100。speed 为用户给定的速度值,范围为20~90,speed数值越大,速度越快。通过控制speed 的值进行调速。当count 的值大于等于speed 时,P0口引脚输出低电平,直流电动机处于自由停止状态,当count 的值小于speed 时,P0口引脚输出高电平,允许电动机运动,这样通过控制高低电平的脉冲宽度来进行调压,从而调速。

本次设计的PWM 调速程序为: void timer0()interrupt 1 {

TH0=0xff; TL0=0xa4;

if(count==speed) {

EN1A=0; EN1B=0; EN2A=0; EN2B=0; }

count++;

if(count==100) {

count=0; EN1A=1; EN1B=1; EN2A=1; EN2B=1;

}

4.2 手机客户端参数设置

本次设计使用的手机客户端为蓝牙串口助手,该客户端使用简单、方便,可以实现与蓝牙模块的通讯,是电子工程师的开发利器。

软件功能:

(1)可以搜索连接蓝牙设备,并显示蓝牙设备的class 与RSSI(信号强度) 。 (2)接收与发送数据。

(3)可设置ASCII 与HEX 的输入输出模式。 (4)可将数据结果保存到SD 卡。

图15前进按钮的设置图图16主控制界面图

本软件的三个模式:

(1)普通模式:基本的输入输出模式。

(2)键盘控制模式:可自定义12个按钮的输出值。 (3)命令行模式:可设定命令的结束符,用于通信调试。

本次设计使用键盘控制模式,设置的是发送ASCII 码的输入输出模式。根据指令与对应功能表设计对应的按键及按键按下后所发送的内容,以前进按钮为例进行设置,前进按钮的设置如图15所示。各个按钮设置完毕主控制界面如图16所示。

5系统整体调试

5.1 调试方案

在小车的调试过程中,先对硬件调试,后对软件调试。先局部后整体,一部分一部分的测试检查,掌握小车的每一个部件,对小车的整体构造要熟记于心。本次设计的小车总共有这几个部分,一是单片机最小系统,二是蓝牙HC-O6模块,三是L298N 步进电机,四是电源供电装置。这几个部分先要调整好各自的功能,先要找故障,查看设备有无短路、断路现象,看各个模块是否可以正常工作,接着再看单片机最小系统,测试单片机芯片是否可以正常烧录程序,而后是蓝牙模块和电源装置。接着是软件调试,先看流程图是否合理,然后再调试程序,最后调试整体,用手机控制小车,看小车的整体功能。

5.2 硬件调试

在给小车上电之前应该先用万用表对各个元器件进行检查,在排除了虚焊、漏焊、断路、短路等情况下进行电路功能的调试,对独立元器件的检测一般注意的问题有防止元器件短路,断路,虚焊,漏焊。给系统上电后看是否短路,或者断路。写一个程序对STC89C52RC 进行调试,如果正确实现功能则说明没有错误。对蓝牙模块的测试的主要是用手机和蓝牙进行连接,看是否可以配对,用手机发出信号,测试其是否能接受信号,如果接受信号无误,则说明HC-06蓝牙模块没有损坏。对电源电路的调试,主要是检测其是否能通电,用万用表测试各个输入输出端口的电压,检查是否正常。

5.3 软件调试

软件调试是对C 语言的调试。纯粹的语言调试不同的是,单片机编程要考虑到硬件的设计[12]。在编程过程中,为了得到满足要求的程序,一般都需要有一个对程序的调试过程,甚至需要经过多次反复的调试才能完成。一个程序的组成是有很多子程序互相拼凑修改得到的,调试过程中,可以对这些子程序逐个进行调试,保证子程序内部没有出错,然后再对整个程序进行调试。编写好的程序用Keil 软件进行编译,编译成功后输出信息窗口会提示0错误,0警告,说明所编写的程序没有语法错误[13]。对蓝牙通讯及单片机输出端口的测试,主要是在单片机的输出端口接二极管,通过二极管的点亮情况确定蓝牙通讯和单片机部分是否能够按照设计要求执行成功。最后的软件调试就是把程序写入单片机,组装好小车,进行遥控测试。由于小车的车轮和齿轮箱具有较大的摩擦力,所以要调试多次修改speed 的在各个子函数中的初始值,找到合适的初始值,以便小车有足够的初始动能。

结束语

本次毕业设计完成的是手机蓝牙遥控小车的研究,对未来的智能交通有一定的先驱作用。STC89C52RC 的单片机最小系统是此种类型中最简单的设计。首先对设计整体布局,接着依次选材料,STC89C52RC 芯片简易方便,易于设计,把以其为主要的单片机最小系统设计出来,接着选用电源模块,电源模块要实现其驱动方便,不易断电,蓝牙模块HC-06要抗干扰能力强,容易控制,连接稳定,数据的传送快,接着是控制界面的选择,界面要方便耐用,清晰合理,紧接着对单片机进行程序编写,设置手机的客户端,最后进行硬件和软件部分的调试。在设计的过程中,遇到了很多问题,对所遇到的问题进行推敲,多次试验,最终还是解决了各方面的问题。此次设计有了很深刻的体会,让我对所学习的知识有了系统的认识,对各个单元有了很深的了解。从总体上看,虽然方案不是太完善,但是小车所要实现的功能均已实现。本方案仍有待改善,以后会越做越好。

参考文献

[1] 刘汪,董晓庆.基于单片机的无线遥控小车[J].韩山师范学院,2013(4).

[2] 周霁.兼容MCS-51微处理器的逻辑设计[J].中国电子科技集团公司第四十七研究所,2013(6). [3] 孙育才.单片微型计算机及其应用[M].东南大学出版社,2010.

[4] 茅卫娟.电梯远程监控系统的设计与实现[D].上海:上海交通大学,2012.

[5] 王建勋.基于虚拟仪器和蓝牙技术的控制系统设计[J].实验室研究与探索,2015(3):P86~P89. [6] 鲍程红,戴珊.停车计时收费系统的研发[N].浙江万里学院学报,2012(4):P81~P85. [7] 蒋俊,简雨沛.蓝牙智能小车系统设计[D].北京:西南交通大学,2015:P166~P167. [8] 杨勇.他励直流电动机的启动方法[J].东方企业文化,2014(1): P229~P229. [9] 劳卫东.谈直流发电机的基本工作原理[J].企业科技与发展,2011(22): P27~P30. [10] 聂思敏.小功率光伏电池控制器的研制[N].安顺学院学报,2011(3): P115~P117. [11] 游晓容.单片机串行通信中的几个问题讨论[N].河南教育学院学报,2011(2).

[12] 许超,张丹.基于Keil 的单片机课程教学改革[J].辽宁大学学报(自然科学版) ,2011(1). [13] 鲁杰爽.单片机Keil 软件仿真与调试技巧[J].电子制作,2010(3).

[14] Wang G W, Shao Q. Electronic structure of P-doped diamond thin film and it’s hole influence. Sci

China Phys MechAstron, 2010. 40(7): 869–875. [15] Godfrey Nolan .Decompiling Android.2012: 158.

附录一

元件连接图:

手机蓝牙遥控小车设计

手机蓝牙遥控小车设计

附录二

单片机程序:

#include #include

#define uchar unsigned char #define uint unsigned int uint speed; uint count; uint a; sbit IN1=P2^0; sbit IN2=P2^1; sbit IN3=P2^2; sbit IN4=P2^3; sbit IN5=P2^4; sbit IN6=P2^5; sbit IN7=P2^6; sbit IN8=P2^7; sbit EN1A=P0^0;

//使能控制端口P0口

sbit EN1B=P0^1; sbit EN2A=P0^2; sbit EN2B=P0^3;

/*************************************************************************** *名称:init()

*功能:串口和定时器0初始化,晶振11.0592,波特率9600,使定时器和串口中断 ****************************************************************************/ voidinit() {

TMOD=0x21; 波

TH0=0xff; TL0=0xa4; TH1=0xfd ; TL1=0xfd ; TR0=1; TR1=1; SM0=0; SM1=1;

//设置串口工作方式为1,即SCON=0x50,允许串口接收发送

REN=1; //使能接收 ET0=1; //开定时器0中断 ET1=0; //开定时器1中断 EA=1;

//转向控制端口P2口

//设置定时器1为模式2,串口提供波特率;定时器0工作在模式1,产生PWM

//定时100us

//装初值,波特率为9600 //启动定时器0 //启动定时器1

//打开总总段开关

ES=1; //打开串口中断开关

}

/***************************************************************************

*名称:timer0()

*功能:定时器0中断子程序

****************************************************************************/ void timer0()interrupt 1 //PWM频率为1/(100us*100)=10KHz

{

TH0=0xff;

TL0=0xa4;

{

EN1A=0;

EN1B=0;

EN2A=0;

EN2B=0;

}

count++;

{

count=0; //count的范围在0-100, 当count=100时进行数据重装

EN1A=1;

EN1B=1;

EN2A=1;

EN2B=1;

}

}

/***************************************************************************

*名称:tingche()

*功能:左前、左后、右前、右后车轮均制动,整车表现为停车状态

****************************************************************************/ voidtingche()

{

IN1=0;

IN2=0;

IN3=0;

IN4=0;

IN5=0;

IN6=0;

IN7=0;

IN8=0;

}

//对定时器进行数据重装 if(count==speed) //当count=speed时,各个使能端置0,禁止转动 if(count==100) //当count=speed时,各个使能端置1,允许转动

/***************************************************************************

*名称:qianjin()

*功能:左前、左后、右前、右后车轮均正转,整车表现为前进

****************************************************************************/ voidqianjin()

{

IN1=1;

IN2=0;

IN3=1;

IN4=0;

IN5=1;

IN6=0;

IN7=1;

IN8=0;

speed=30;

}

/***************************************************************************

*名称:houtui()

*功能:左前、左后、右前、右后车轮均反转,整车表现为后退

****************************************************************************/ voidhoutui()

{

IN1=0;

IN2=1;

IN3=0;

IN4=1;

IN5=0;

IN6=1;

IN7=0;

IN8=1;

speed=30;

}

/***************************************************************************

*名称:左转()

*功能:左前、左后车轮反转,右前、右后车轮均正转,整车表现为左转

****************************************************************************/ voidzuozhuan()

{

IN1=1;

IN2=0;

IN3=0;

IN4=1;

IN5=0;

IN6=1;

IN7=1;

IN8=0;

speed=25;

}

/***************************************************************************

*名称:youzhuan()

*功能:左前、左后车轮正转,右前、右后车轮均反转,整车表现为右转

****************************************************************************/ voidyouzhuan()

{

IN1=0;

IN2=1;

IN3=1;

IN4=0;

IN5=1;

IN6=0;

IN7=0;

IN8=1;

speed=25;

}

/***************************************************************************

*名称:jiasu()

*功能:使小车的运动速度加快

****************************************************************************/ voidjiasu()

{ speed=speed+5;

if(speed>90)

{speed=90;}

}

/***************************************************************************

*名称:jiansu()

*功能:使小车的运动速度减慢

****************************************************************************/ voidjiansu()

{speed=speed-5;

if(speed

{speed=20;}

}

/***************************************************************************

*名称:main()

*功能:程序的循环执行,使小车实现应有的功能

****************************************************************************/ void main()

{

init();

speed=30;

count=0;

EN1A=1;

EN1B=1;

EN2A=1;

EN2B=1;

while(1)

{

switch(a) //分析串口传送过来的指令,做出相应的相应

{

case '5': tingche(); break;

case '2': qianjin(); break;

case '8': houtui(); break;

case '4': zuozhuan(); break;

case '6': youzhuan(); break;

case '1': jiasu();break;

case '3': jiansu(); break;

default:break;

}

a=0;

}

}

/***************************************************************************

*名称:ser()

*功能:串口中断子函数,接收传送过来的数据

****************************************************************************/ voidser() interrupt 4

{

RI=0; //接收中断请求标志位清0

a=SBUF;

}

致谢

本次毕业设计和论文在紧张和忙碌中完成了,在这期间,我学到了很多东西。理论和实践得到了充分的发挥。在我的设计过程中,我首先要感谢胡老师。本毕业设计是在胡老师悉心的关怀与指导下完成,在此对胡老师献上最衷心地感谢。胡老师从一开始就对我们严格要求,每星期都会询问我们的毕设进度并了解我们遇到的困难,积极协助我们解决设计过程中的各种难题,并要求我们记录在毕业设计中所作的工作进度及遇到的问题,让我们去发现问题,解决问题。对于一些技术层面的东西加以指导,比如STC89C52RC 的工作原理和结构构成,蓝牙模块HC-06的接收方式和安装技巧,供电设备用什么比较合理,是干电池合理,还是蓄电池合理,等等一些列问题。在设计的过程中,由于能力不足和各方面因素所致,设计比较普通,缺乏创意,没有新意,在以后的设计中会慢慢在这方面加以改进,使不足尽量缩小,这就是设计中所面临的问题,不过只是在跨出学校大门的前夕,经历了第一次预考,让我们在走出的学校大门的一刻经受住了最后一次考验。最后,我要再次感谢在毕业设计过程中对我提供过制作电路板等工具的同学和老师,以及在毕业设计中对我进行过指导的所有人。


    相关文章

    手机蓝牙的遥控小车的设计

    蓝 牙 小 车 课 程 设 计 报 告 车 课 程 设 姓名:马坚文 班级:电子201201班 指导老师:程智 学号:[1**********]4 日期:2014年6月6日 手机蓝牙的遥控小车的设计 一 控制系统 ............. ...

    蓝牙遥控小车程序

    int Motor1=8; int Motor2=9; int Motor3=10; int Motor4=11; int in=3; int out=2; int pin1=5; int pin2=6; int pwm=160; void ...

    电气专业的一些毕业设计题目

    电气专业的一些毕业设计题目 电子类: 1.红外遥控照明灯(电路+程序+论文) 2.基于单片机的多功能智能小车设计论文(电路+程序+论文) 3.基于数字信号处理器(DSP)的异步电机直接转矩控制研究(硕士)(论文+上位机下位机软件+程序) 4 ...

    无线通信先锋--蓝牙阅读答案

    阅读说明文<无线通信先锋--蓝牙>,完成后面的练习. 无线通信先锋--蓝牙 蓝牙技术是一种新兴的技术,尚未投入广泛应用,目前许多蓝牙设备还处于实验室试验阶段.但可以肯定的是现在多数具有红外无线数据通讯功能的设备,在将来一样可以使 ...

    单片机毕业设计题目

    1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. ...

    自动化毕业设计论文题目

    自 动 化 毕 业 设 计 论 文 题 目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. ...

    6自由度机械手控制手册 V1

    6自由度机械手 控制手册 版本:V1 YFROBOT 2015年10月23日 1.了解机械手.......................................................................... ...

    电气自动化设计论文题目大全

    机电一体化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入 ...

    电气自动化毕业设计论文题目

    电 气 自 动 化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6 ...