搜档网
当前位置:搜档网 › 基于蓝牙遥控的智能小车设计

基于蓝牙遥控的智能小车设计

基于蓝牙遥控的智能小车设计
基于蓝牙遥控的智能小车设计

《嵌入式系统设计》项目设计报告

题目:基于蓝牙技术的智能遥控小车的设计

专业:自动化

班级:

姓名:学号:

指导老师:

成绩:

( 2015.12)

摘要

随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。遥控小车起源于美国,由于政府对无线遥控小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在遥控小车技术上占据着明显优势。我国的无线

遥控小车研究工作始于20世纪中后期,在国家的863、973等技术发展计划的

重点支持下,国内已大范围地进行无线遥控小车的研究。全国电子大赛和省内

电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目

的研究,但是与国际先进还存在一定的差距。可见其研究意义很大。本设计就

是在这样的背景下提出的。设计的智能电动小车能够实现无线遥控,串口通讯,实时检测速度,避障碍等功能。无线遥控实现方法包括蓝牙、红外、射频几种,其中蓝牙技术具有一定优势,目前在信息家电方面应用正在铺设。各种家电共

用遥控,并可组网与公众互联网相接,共享有用信息。目前蓝牙技术实现无线

遥控的短板在于传输距离短和芯片价格高方面。但随着科技发展,这些问题正

在逐步得以解决。无线遥控机器人有着广阔的应用前景。

无线遥控的小车,可以在危险的环境作业,人员搜索,可以在各类领域中发

挥着它特殊的作用,本次设计是选择基于蓝牙遥控的多功能智能小车为对象。

控制系统以C51单片机为主控芯片,采用L298N为电机驱动芯片、HC-06蓝牙

无线模块、12864液晶显示模块、四路循迹模块等构成外围扩展电路。将自制

的控制电路、控制程序和四轮小车机械相结合,制作多功能智能小车。实验调

试实现了智能小车的蓝牙无线遥控、自动避障、自动测距及各种灯光的功能。

关键词:51单片机;蓝牙遥控;智能小车

目录

摘要 (1)

1. 绪论........................................... 错误!未定义书签。

1.1课题目的 (4)

1.2课题研究内容 (4)

2 .方案论证 (4)

2.1 总体方案设计 (4)

2.2设计系统的功能要求 (5)

2.3 系统硬件方案 (5)

3.系统硬件设计 (5)

3.1STC89C52芯片简介 (6)

3.2 STC89C52最小系统 (7)

3.3电机驱动设计 (7)

3.4显示电路设计 (8)

3.5 蓝牙模块设计 (8)

3.6 PCB图设计 (9)

3.7 智能车结构分析 (10)

3.7.1 底板设计 (10)

3.7.2电机与底板的连接支架设计 (10)

3..7.3整体装配图 (11)

4.系统软件设计 (11)

4.1系统的程序流程 (11)

4.2蓝牙模块参数设置程序 (12)

4.3蓝牙发送程序接收程序和中断程序 (12)

4.4自动避障及灯光声音控制程序设计 (13)

4.5液晶显示程序设计 (15)

5 . 调试结果分析 (18)

5.1蓝牙遥控调试及结果分析 (18)

5.2避障功能调试及结果分析 (18)

6.参考文献\ 附录程序 (18)

1.绪论

1.1课题目的

本次设计的小车是具有无线遥控功能的。小车可以无人驾驶和人为控制两种模式,可以随意控制小车的前进后退,转向时有方向灯闪烁,前方有障碍物时,有自动报警功能,实现了自动控制。

1.2课题研究内容

本次设计的蓝牙遥控小车要实现的功能有基于安卓手机的蓝牙遥控,可以让小车前进、后退、左转、右转,以及重力感应控制小车切换为无人驾驶模式时,可以让小车自动驾驶,同时小车具备自动避障,转弯灯,报警灯以及即时显示小车信息等功能。系统设计主要有两个部分,软件部分和硬件部分。软件部分:C语言编程和keil uVison4 软件。在硬件方面:采用STC89C52单片机。

2.方案论证

2.1 总体方案设计

本次设计的小车采用的是以51单片机为主控制器,开始由手机发送蓝牙无线信号来启动并复位小车,由四路循迹模块进行障碍检测,通过单片机控制小车行驶,显示,避障和转向,采用4wd驱动,以提高整车运动的平稳性;最后通过蓝牙无线传输功能将智能车的行驶信息实时地传给显示器,实现监控,也可以通过蓝牙无线来控制小车的行驶状态。这就是本次的总体设计思路。该方案如图2-2小车设计结构图所示。

图2-2-1 STC89C52芯片小车结构设计图1

2.2设计系统的功能要求

蓝牙控制的智能小车是基于STC89C52单片机实现的。STC89C52简单易学,有丰富的资源,让人们学习的效率大大提高。

该基于安卓系统的蓝牙小车的功能是蓝牙控制,重力感应驾驶,自动避障,即时显示小车状况,报警灯转向灯等。

2.3 系统硬件方案

如图2-3系统结构框图所示。

图2-3 系统结构框图

在图2-3系统结构图中,STC89C52输入部分:安卓系统手机,蓝牙,切换

为无人驾驶模式时为传感器;输出部分有:方向控制,驱动控制,液晶显示,

灯光,本次小车为四轮驱动,可以前进,后退,转弯,转弯灯,避障报警灯,

液晶显示小车即时状况

3系统硬件设计

3.1STC89C52芯片简介

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有

8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很

多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的

8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52性能:

1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051.

2. 工作电压:5.5V~

3.3V(5V单片机)/3.8V~2.0V(3V 单片机)

3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可达48MHz

4. 用户应用程序空间为8K字节

5. 片上集成512 字节RAM

6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。

7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完

成一片

8. 具有EEPROM 功能

9. 共3 个16 位定时器/计数器。即定时器T0、T1、T2

10.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外

部中断低电平触发中断方式唤醒

11. 通用异步串行口(UART),还可用定时器软件实现多个UART

3.2 STC89C52最小系统

最小系统包括电源复位电路和晶振电路。如图3-2 STC89C52最小系统所示。

图3-2 STC89C52最小系统

3.3电机驱动设计

本次设计采用L298N直流电机驱动芯片驱动模块最大工作电流为2A,且可同时驱动两个直流电机可满足如实验室两驱动和舵机转向小车使用,如为四驱小车,需使用两块。

3-3 电机驱动引脚图

3.4显示电路设计

本次设计采用12864液晶屏,液晶显示屏显示质量高,由于液晶显示器每个店在收到信号就一直保持那种色彩和亮度,恒定发光,因此,液晶显示器的画面质量高不会闪烁。由于液晶显示器都是数字式的,所以和单片机的接口更加简单可靠,操作方便。液晶显示器通过显示屏上的电机控制液晶分子状态来达到显示的目的,因此,液晶显示器也有体积小,重量轻的优点。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示,这样就可以显示出图形。液晶显示器目前已被广泛应用在便携式电脑,数字摄像机,PDA移动通信工具等众多领域。

3-4 12864液晶显示屏

3-5 12864电路图

3.5 蓝牙模块设计

蓝牙模块主要为了实现数据传输,本设计是通过蓝牙转串口模块,实现无线通讯功能,所以本质上使用的是单片机串口通信。

串行通讯的特点是:数据按位顺序传送,最少仅需一根传输线即可完成,

成本低但传送速度慢。串行通讯的距离可以从几米到几千米。根据信息的传送

方向,串行通讯可以进一步分为单工,半双工和全双工三种。信息智能单向传

送的为单工;能双向传递但不能同时双向传送的称为半双工;信息能够同时双

向传送则成为全双工。串行通讯又分为异步通讯和同步通讯两种方式。在单片

机中,主要使用异步通讯方式。

3-6 HC-06蓝牙模块电路图

3.6 PCB图设计

在电路原理图设计好之后,根据布线原则对元器件进行布局,布线,最后铺铜、滴泪。

焊接芯片的步骤:

1.将芯片平放在PCB板上,将芯片引脚对准焊盘然后用手指按住;

2.将芯片的两个对角焊牢;

3.在芯片的四周上适量焊锡;

4.将PCB板向着焊接引脚的方向下倾斜45度,用松香去掉烙铁头端多余的焊锡;

5.把粘有松香的焊铁头放在焊锡的部分;

6.来回拖动烙铁,将焊锡均匀的布在芯片的引脚上;

7.重复上述步骤焊接芯片的另外的引脚,如果发现引脚间有多余的焊锡就用吸锡丝将多余的焊锡吸掉。

3.7 智能车结构分析

在本次设计中,小车使用四轮驱动,四轮驱动式的结构中因为后轮的转动力矩的增大,所以在横向上的阻力要大于2轮驱动式的,因此四轮驱动式的车子不易发生方向偏移。而且四轮驱动的车子动力更大,爬坡能力更强。但存在一些不足,如:四轮驱动式的车子更加耗电,而且车体比一般的2轮驱动式的车体重。从整体的性能来看四轮驱动式结构的优势是很明显的。

3.7.1 底板设计

底板是用来支撑车体的主要部件。同时也是用来固定车子零部件的,底板上主要有传感器安装槽,传感器安装孔,电机定位槽和走位孔,其余的槽孔是用来留在日后扩展用的。底板采用的是高强度的亚克力板。安装方便,结构可靠稳定。

3-7 小车底盘示意图

3.7.2电机与底板的连接支架设计

电机支架主要是用来将电机固定在底板上的,每个电机用两块支架板绑定固定,通过槽孔和圆孔来绑定电机,支架的材料也是高强度的亚克力板。

3..7.3整体装配图

3-8 整体装配图

4.系统软件设计4.1系统的程序流程

图4-1 系统总体程序流程图

由打开电源,选择模式,开始驾驶模式,结束几部分组成的蓝牙遥控小车的主要程序。

4.2蓝牙模块参数设置程序 void InitUART(void) {

TMOD=0x20; //定时器1 TH1=0xfd; //装入初值 TL1=0xfd;

TR1=1; //启动定时器1 SM0=0; //设置串口方式1 SM1=1;

REN=1; //接收使能 EA=1; //打开总中断开关 ES=1; //打开串口中断开关 }

4.3蓝牙发送程序接收程序和中断程序 void Print_Char(uchar dat) {

SBUF = dat; //

写数据到

UART数据寄存器

while(TI!=1); //等待发送完毕

TI=0; //软件清零

}

void Print_Str(uchar *s)//发送字符串(uchar *s)

{ ES=0;

while (*s) //检测字符串结束标志

{

Print_Char(*s++);

delay(2); //发送当前字符

}

ES=1;

}

void Uart() interrupt 4 using 1

{

if (RI)

{

RI = 0; //清除RI 位

aa= SBUF; //P0显示串口数据}

}

4.4自动避障及灯光声音控制程序设计

void avoid_thing()

{

if(d0==0||d1==0)

{

P1=right;

rightled=1;

leftled=0;

beep=0;

}

beep=1;

if(d3==0||d2==0)

{

P1=left;

rightled=0;

leftled=1;

beep=0;

}

beep=1;

if(d0==0&&d1==0&&d2==0&&d3==0) {

P1= stop;

rightled=1;

leftled=1;

}

if(d0==1&&d1==1&&d2==1&&d3==1) {

P1= up;

rightled=0;

leftled=0;

}

if(moshi==0)

{

flag=0;

}

}

4.5液晶显示程序设计

#include "reg52.h"

#include

typedef unsigned char uchar;

typedef unsigned int uint;

#define nop(); {_nop_();_nop_();_nop_();_nop_();}; #define DataPort P0

//定义P0口为LCD通讯端口

sbit RS=P2^7; //数据/命令端

sbit RW=P2^6; //读/写选择端

sbit E=P2^5;

sbit RST=P2^4;

sbit PSB=P2^2;

sbit Busy=DataPort^7;

void lcd_busy(void)

{

DataPort=0xff;

RS=0;

RW=1;

E=1;

while(Busy==1);

E=0;

}

void lcd_com(uchar com) {

lcd_busy();

E=0;

RS=0;

RW=0;

E=1;

DataPort=com;

nop();

E=0;

}

void lcd_dat(uchar dat) {

lcd_busy();

E=0;

RS=1;

RW=0;

E=1;

DataPort=dat;

nop();

E=0;

}

void lcd_init(void)

{

RST=1;

PSB=1;

lcd_com(0x30); /*30---基本指令动作*/

lcd_com(0x01); /*清屏,地址指针指向00H*/

lcd_com(0x06); /*光标的移动方向*/

lcd_com(0x0c); /*开显示,关游标*/

}

void lcd_disp(uchar y,uchar *str,uchar len) //向第y行写入字符串

{

uchar i;

lcd_com(0x30);

lcd_com(y);

for(i=0;i

{

lcd_dat(*str);

str++;

}

5 调试结果分析

5.1蓝牙遥控调试及结果分析

打开手机蓝牙连上小车的信号,然后点手机上的方向键,看小车是否有动作。结果分析:小车反应良好,动作灵敏。

5.2避障功能调试及结果分析

驱动小车行走,用手挡着小车前面的避障传感器,小车立即向另一方向做

出一定角度的转向,并且方向灯亮,报警灯响。

结果分析:避障功能良好。小车能正常避障。

5.3无人驾驶模式调试及结果分析

将线插进针里,小车启动无人驾驶模式,然后小车正常行驶,遇到郑爱武

立即避开。

6.总结

随着时间的流逝,我们的小车设计也接近尾声,这些天我开心过,每一次

的调试成功都会给我们带来莫大的鼓舞和动力。

当然这次设计不是完美的,还有许多地方可以改进,比如车子可以做大,模块可以用更强大的,还可以添加其他有趣的功能,当然没有任何事物可以做到

完美无缺,我相信只要我们不断去完善,做出来的产品才会更加出色。

参考文献

[1] 邱关源主编.电路[M].5版.北京:高等教育出版社,2006.

[2] 阎石主编.数字电子技术基础[M].5版.北京:高等教育出版社,2005.

[3] 童诗白,华成英主编.模拟电子技术基础[M].4版.北京:高等教育出版社,2006.

[4] 贾石峰主编.传感器原理与传感器技术[M].北京:机械工业出版社,2009.

[5] 李全利主编.单片机原理及接口技术[M].2版.北京:高等教育出版社,2009.

[6] 谭浩强编.C程序设计[M].3版.北京:清华大学出版社,2005.

[7] 胡寿松主编.自动控制原理基础教程[M].3版.北京:科学出版社,2013.

[8] 高西全,丁玉美编.数字信号处理[M].3版.西安:西安电子科技大学出版社,2008.

[9] 吴大正主编.信号与线性系统分析[M].4版.北京:高等教育出版社,2005.

[10] 张友德,赵志英,涂时亮,单片机微机原理,应用与实验[M].上海:复旦大学出版社,2003.

附录:程序

主程序设计

void main()

{ P2=0x01;

lcd_init();

InitUART(); //初始化串口

delay(10);

Print_Str("all is ok"); //发短信内容

lcd_disp( 0x81,"重力感应小车",12) ;

while(1)

{

lcd_disp( 0x88,"手动驾驶",8) ;

while(aa=='D')

{ if(moshi==1)

{

flag=2;

break;

}

P1=right;

rightled=1;

leftled=0;

beep=0;

lcd_disp( 0x90,"接收字母",9) ; lcd_disp( 0x94,&aa,1) ;

lcd_disp( 0x96,"右转",4) ;

}

beep=1;

while(aa=='C')

{ if(moshi==1)

{

flag=2;

break;

}

lcd_disp( 0x90,"接收字母",9) ; lcd_disp( 0x94,&aa,1) ;

lcd_disp( 0x96,"左转",4) ;

P1=left;

rightled=0;

leftled=1;

beep=0;

}

beep=1;

while(aa=='F')

{

lcd_disp( 0x90,"接收字母",9) ; lcd_disp( 0x94,&aa,1) ;

lcd_disp( 0x96,"停止",4) ;

P1= stop;

rightled=1;

leftled=1;

基于stm32f4的蓝牙控制小车

ARM-STM32校园创新大赛 项目报告 题目:基于stm32f4的蓝牙控制小车 学校:中南民族大学 指导教师: 视频观看地址:https://www.sodocs.net/doc/bb7301948.html,/v_show/id_XNjA3NTE4MzU2.html

题目:基于stm32f4的蓝牙控制小车 关键词:STM32F4 LM2940-5.0 L298N FBT06_LPDB 蓝牙串口通信android 摘要 “基于stm32f4的蓝牙控制小车”是一个基于意法半导体与ARM公司生产的STM32F4 DISCOVERY开发板的集电机驱动模块、电源管理模块、stm32f4主控模块、蓝牙串口通信模块、android控制端模块。电机驱动模块使用了两个L298N 芯片来驱动4路电机,使能端连接4路来自主控板的PWM波信号,8个输入端接主控板的8个输出端口;电源管理模块使用了LM2940-5.0芯片进行12V到5V 的转换,12V用于电机模块的供电,5V用于蓝牙模块、传感器等的供电;主控模块采用了MDK编辑程序,然后下载到主控板,实现硬件与软件的交互;蓝牙串口通信模块则是采用了FBT06_LPDB针插蓝牙模块,与主控板进行串口通信,同时与android手机进行通信;android控制端模块是一个集开启蓝牙、搜索蓝牙、控制小车等功能。用户可以通过android控制端进行控制小车的运动,实现一些用户需要的功能和服务。 1.引言 蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无限数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现数据共享成为常理,将手机变为遥控器为人们的生活带来无限方便。遥控小车在工业、国防、科研等领域应用越来越广泛,例如说:消防遥控小车、探测小车等。本文详细阐述了使用蓝牙通信的手机遥控小车前行、倒退、左转、右转和停止等功能的软硬件设计过程。 2.系统方案 该系统分为电机驱动模块、电源管理模块、主控板、蓝牙通信模块、android 控制端等5个模块,如图2.1所示:

基于单片机的红外遥控智能小车设计报告

基于单片机的红外遥控智能小车设计报告

毕业设计(论文)题目:基于单片机的红外遥控智能小车

西安邮电学院 毕业设计(论文)任务书 学生姓名指导教师职称工程师学院电子工程学院系部光电子技术 专业光电信息工程 题目基于单片机的红外遥控智能小车 任务与要求 任务:以51单片机为控制核心,实现具有自动避障、加速、减速等功能的红外遥控智能小车。 要求:1 搜集资料,熟悉单片机开发流程;熟悉红外传感器等相关器件; 掌握单片机接口和外围电路应用;具备一定的单片机开发经 验。 2 学会电路设计、仿真等相关软件的使用; 3 具备一定的硬件调试技能。 4 学会查阅资料; 5 学会撰写科技论文。 开始日期2010年3月22日完成日期2010年6月27日主管院长(签字) 年月日

西安邮电学院 毕业设计 (论文) 工作计划 学生姓名赵美英指导教师崔利平职称工程师学院电子工程学院系部光电子技术 专业光电信息工程 题目基于单片机的红外遥控智能小车 工作进程

主要参考书目(资料) 1、何立民,单片机应用系统设计,北京:航天航空大学出版社; 2、李广弟,单片机基础,北京:北京航空航天大学出版社,2001; 3、何立民,MCS-51系列单片机应用系统设计系统配置与接口技术,北 京航空航天大学出版社,1990.01; 4、赵负图,传感器集成电路手册,第一版,化学工业出版社,2004; 5、Atmel.AT89S51数据手册.https://www.sodocs.net/doc/bb7301948.html, 主要仪器设备及材料 1.普通计算机一台,单片机开发环境; 2.电路安装与调试用相关仪器和工具。 (如示波器、万用表、电烙铁、镊子、钳子等)。 论文(设计)过程中教师的指导安排 每周四进行交流与总结;其余时间灵活安排,及时解决学生问题。 对计划的说明 依学生实际情况,适当调整工作进度。

蓝牙串口通信遥控小车

蓝牙串口通信遥控小车

————————————————————————————————作者:————————————————————————————————日期:

蓝牙串口通信遥控小车 目录 1系统方案论证及方案选择 2本系统软硬件设计 2.1单元硬件电路设计 2.2软件部分设计 参考文献 附录1原器件清单 附录2电路原理图及印制板图 附录3程序 1. 系统方案论证及方案选择 1.总体设计方案 题目要求设计一个蓝牙串口遥控小车,通过对电机转速的控制,调节速度的大小,改变小车角度,并能实现转弯和旋转。设计主要由主控单片机STC 12C5A60S2驱动直流电机,使车轮工作,带动小车的转动。

2.基本工作原理

3.STC89C52RC有定时器T0 T1 T2,在自动控制领域经常把T1作为串口通信了T0作PWM调速用因此有必要把T2定时器拿出来作定时器作为声音频谱程序。下面介绍T2的用法 STC89C52RC有定时器T2 ?void main(void) ?{ ?/* T2定时器赋预装载值,溢出16次就是1秒。*/ ?RCAP2H=(65536-5000)/256; ?RCAP2L=(65536-5000)%256; ?ET2=1; //允许T2定时器中断 ?EA=1; //打开总中断 ?TR2=1; //启动T2定时器

?while(1); // 死循环,等待T2定时器的溢出中断 ?} ?void Timer2_Server(void) interrupt5 ?{ ?staticuint Timer2_Server_Count; ?// 定义静态变量,用来计数T2定时器的溢出次数(进入本函数的次数) ?TF2=0; ?// T2定时器发生溢出中断时,需要用户自己清除溢出标记,而51的其他定时器是自动清除的 ?Timer2_Server_Count++; ?if(Timer2_Server_Count==16)// T2定时器的预装载值为0x0BDC,溢出16次就是1秒钟。 ?{ ?Timer2_Server_Count=0; ?P1_7=~P1_7; // LED11反转显示。 ?} ?} ?voidTimer2_Server(void)interrupt5

成功实现手机蓝牙控制智能小车机器人!视频+程序源代码(Android)

上次成功实现了通过笔记本电脑蓝牙来控制智能小车机器人的运动,但是通过电脑控制毕竟不方便,于是乎~本人打算将控制程序移植到手机上。 目前主流的手机操作系统有塞班、安卓(Android)、Windows Mobile,对比了一下,首先,塞班是用C++写的,这么多门语言我唯独看到C++就头大···,放弃了···,Windows Moblie 其实和之前发的电脑端程序基本是一样的,也就没什么意思了,最后决定选择目前正火的Android手机作为控制平台。 Android是个开源的应用,使用Java语言对其编程。于是这次的开发我选用Eclipse作为开发工具,用Java语言开发手机端的控制程序,由于之前对Android的蓝牙通信这块涉及不多,一开始感觉有点小茫然,而网上也少有这方面的例程,有少数人做出了类似的东西,但是只传了个视频装X!雪特···· 经过几天的研究,最终确定了手机蓝牙通信其实就是Socket编程,再经过一番编写和调试,昨晚终于大功告成! 这是视频: 下面开始介绍Android手机端控制程序的编写: 首先打开Eclipse,当然之前的Java开发环境和安卓开发工具自己得先配置好,这里就不多说了,网上教程一大摞。 然后新建一个Android项目,修改布局文件main.xml,代码如下: