基于51单片机多模式智能小车研究与制作.docx
- 文档编号:3666430
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:62
- 大小:2.30MB
基于51单片机多模式智能小车研究与制作.docx
《基于51单片机多模式智能小车研究与制作.docx》由会员分享,可在线阅读,更多相关《基于51单片机多模式智能小车研究与制作.docx(62页珍藏版)》请在冰豆网上搜索。
基于51单片机多模式智能小车研究与制作
毕业设计(论文)
课题名称基于51单片机多模式智能小车研究与制作
学生姓名
学号
系、年级专业
指导教师
职称学生
2012年5月13日
一、前文摘要………………………………….…………………….…3
二、作品介绍……………………….……………………………….…5
三、工作原理………………………………………………..................6
四、作品功能及特色…………………………………………….……8
五、作品结构…………………………………………………….……8
1、硬件部分…………………………………………………….…....8
(1):
STC12C5A60S2单片机最小系统………………………….8
(2):
整机供电电源电压模块……………………………………11
(3):
TC9012红外遥控模块..……………………………………12
(4):
安卓手机蓝牙模块….…………………………………..…16
(5):
电机驱动模块…..…………………………………….….…17
(6):
ST188红外循迹模块…..….………………………….……20
2、软件部分………………………………………………………...12
(1):
ST188红外循迹程控制序流程图…..…………………..….23
(2):
TC9012红外遥控程序控制流程图………….………….…34
(3):
安卓手机程序控制流程图……………………………….…48
(4):
整机工作程序流程图………………………………………57
六、参考文献………………………………………………………...80
七、实物展示…………………………………………………………82
摘要
当今社会,科学技术日新月异,时代前进的步伐越迈越宽,应用自动化设备,计算机处理,现代化通讯,数字化通讯,数字化信息,现代化显示设备等高新技术而建立的现代化智能,监控等系统已经得到充分的发展与应用,智能机器人也就应运而生。
智能作为现代的新发展,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。
智能小车就是其中的一个体现。
本次设计的多模式智能小车,支持红外循迹、红外遥控控制,安卓机蓝牙控制。
采用STC12C5A60S2单片机作为小车的检测和控制核心;采用ST188红外对管对路面进行道路检测,从而把反馈到的信号送单片机,使单片机按照预定的工作模式控制小车在道路上按照预定的速度行驶;此外可以使用TC9012红外遥控和安卓手机对小车进行控制,时时刻刻做到让小车前进、后退、左拐、右拐。
本设计结构简单,较容易实现,但具有高度的智能化、人性化,一定程度体现了智能。
关键词:
智能车、STC12C5A60S2、单片机、TC9012、蓝牙、安卓手机
ABSTRACT
Smartasanewdevelopmentofthemodern,isthedevelopmentdirectionoflater,hecanaccordingtothepresetmodeautomaticallyinanenvironmentofoperation,withouttheneedofhumanmanagement,canbeusedinscientificexplorationandsoon.Smartcarisoneoftheembodiment.Themulti-modeintelligentcardesign,supportinfraredtrackingandinfraredremotecontrol,bluetoothandroidmachinecontrol.USESSTC12C5A60S2singlechipmicrocomputerasthecardetectionandcontrolcore;UsingST188infraredtuberoadtestsofpavement,soastosendfeedbacktothesignalofsinglechipmicrocomputer,makeSCMaccordingtothescheduledworkmodetocontrolthecarontheroadinaccordancewithapredeterminedspeed;AlsocanuseTC9012infraredremotecontrolandandroidmobilephonetocontrolthecar,doforward,backward,turnleft,turnright.Thisdesignhassimplestructureandiseasytoimplement,butarehighlyintelligent,humane,toacertainextentreflectstheintelligence.
Keywords:
intelligentcar,STC12C5A60S2,microcontroller,TC9012,bluetooth,androidmobilephones
二、作品介绍
本次利用STC5A60S2单片机设计一款多模式的智能小车,该小车可以支持3种不同的工作模式:
1、智能循迹模式
2、红外遥控模式
3、蓝牙控制模式
为了让小车能够平稳的在路道上行驶,本次采用的是四驱的,其三驱和四驱的区别是很大的,我们可以从平稳角度和小车带负载能力都可以感觉的。
循迹部分主要是给定一条路线,让小车沿着该路线行驶,这时候就不需要人为的去对小车进行控制,也可以让小车沿着相反方向上行驶;红外遥控部分主要是采用红外线的编码和解码的原理去进行控制,利用TC9012红外一体化接收头进行对红外遥控板发送过来的信号进行采用,然后利用STC12C5A60S2单片机对红外接收头接收到的信号进行解码。
从而达到了小车的前进、后退、左拐、右拐;安卓手机控制利用手机上的蓝牙和小车上的蓝牙进行匹配,然后传送AT指令去控制小车的前进、后退、左拐、右拐。
以上的3种模式主要是控制部分,驱动部分我们采用的是2片L298N,通过STC12C5A60S2单片机产生PWM脉冲信号来控制小车的转速和方向,能够让小车在规定的路线上行驶,时刻的听从自己的控制。
三、工作原理
本次的多模式智能小车主要由稳压电源模块、电机驱动模块、智能循迹模块、红外遥控模块、蓝牙控制模块以及单片机最小系统模块组成。
系统框图如图一所示。
下面简要的描述一下给种模式工作原理:
首先我们是通过安卓手机对小车进行模式切换的,循迹模式、红外模式、蓝牙模式我们可以任意的切换,每当我们切换到相应的工作模式的时候相应的LED指示灯就会被点亮,这样更人性化,切换和手机控制面板如下图所示:
循迹模块:
主要采用的是ST188红外对管,对路面上的黑白线进行采集、比较,然后将采集到的信号送给单片机进行判断,最后由单片机产生PWM信号去控制4个电机的差速,从而完成了智能循迹功能。
红外模块:
主要采用的是TC9012红外一体化接收头,首先对遥控板上所有的按键进行解码,然后将所有的码元存入到单片机里面,通过编程将某某按键设置为什么功能,执行什么动作,来控制小车怎么行驶,这样就完成了红外遥控控制功能。
蓝牙模块:
主要采用的是HC-06蓝牙模块,与单片机的串口P3.0和P3.1相连接,安卓手机与小车上的蓝牙进行通讯时,我们就需要在我们自己的安卓手机上安装一个控制终端机,可以设置按什么键完成什么动作,什么小车的启动、左拐、右拐、前进、后退、停止等功能。
四、作品功能及特色
本作品的主要功能:
1、能实现智能循迹功能;
2、能支持红外遥控功能;
3、能支持安卓手机控制功能;
4、控制简单;
5、可靠性高;
特色:
1、成本低廉;
2、综合性比较强,芯片利用度高;
3、操作简单、经改造有实用价值;
五、作品结构
1、硬件部分
(1):
STC12C5A60S2单片机最小系统
STC12C5A60S2单片就是宏晶科技的典型性单片机产品,采用了增强型8051核,片集成了60KB程序Flash、1K数据Flash(EEPROM)、1280字节RAM、2个16定时器、44根I/O、2个全双工异步串行口(UART)、高速同步通讯端口(SPI)、8通道10位ADC、2通道PWM/可编程计数器阵列/捕获/比较单元(PWM/PCA/CCU)、MAX810专用复位电路和硬件看门狗资源。
STC12C5A60S2指令系统完全兼容8051单片机,并具有在系统可编程(ISP)功能和在系统调试(ISD)功能。
可以省去价格较高的专用编程器,开发环境的搭建非常容易。
接下来研究下STC12C5A60S2单片机的特点:
◆:
增强型8051核,先进的指令集结构,兼容普通8051单片机的指令集,有硬件乘法器/除法指令。
◆:
高速度,1个时钟/机器周期,速度比普通8051单片机块8~12倍,可用低频晶振,大幅度降低EMI.
◆:
片集成60KB的Flash程序存储器,擦写次数10万次以上,并且有较高的加密性,无法解密。
◆:
片集成1280字节数据存储器(RAM).
◆:
芯片EEPROM功能,擦写次数10万次以上。
◆:
最多可以有44个I/O。
可设置4种模式准双向口/弱上拉,推挽/强上拉,输入/高阻,开漏。
◆:
8通道10位高速ADC,速度可达25万次/秒。
◆:
2通道PWM/可编程计数器列/捕获/比较单元(PWM/PCA/CCU).
◆:
2个16位定时器,兼容普通8051单片机的定时器T0/T1,2路PCA也作为2个16位定时器使用。
◆:
部集成硬件看门狗(WDT)。
◆:
超强的抗干扰能力:
具有ESD保护功能,可以抵抗2万伏的静电干扰。
◆:
可编程时钟输出功能,T0在P3.4输出时钟,T1在P3.5输出时钟,BRT在P1.0输出时钟。
实物图如下所示:
最小系统如下所示:
(2):
整机供电电源电压模块
电源模块采用的是三端稳压集成芯片,输入电压为7.8V;由于系统的工作电压为5V,故采用LM7805。
接下来研究下LM7805稳压芯片的特点:
7805三端稳压集成电路,电子产品中,常见的三端稳压集成电路有正负电压输出的78x×系列和负电压输出的79××系列。
顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。
它的样子象是普通的三极管,TO-220的标准封装,也有9013样子的TO-92封装。
用78系列三端稳压IC来组成稳压电源所需的外围元件极少,电路部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
该系列集成稳压IC型号中的78后面的数字代表该三端集成稳压电路的输出电压,如7805表示输出电压为正5V,因为三端固定集成稳压电路的使用方便,电子制作中经常采用。
实物图如下所示:
电路原理图如下所示:
(3):
TC9012红外遥控模块
本次红外遥控控制采用的是TC9012,TC9012是一块用于东芝系列红外遥控系统中的专用发射集成电路,采用CMOS工艺制造。
它可外接32个按键,提供8种用户编码,另外还具有3种双重按键功能。
TC9012的管脚设置和外围应用线路都进行了高度优化,以配合PCB的布图和低成本的要求。
接下来研究下TC9012红外发射器的特点:
◆:
低压CMOS工艺制造
◆:
低功耗超小静态电流
◆:
低工作电压(VDD=2.0~5.0V)
◆:
32+3条指令码
◆:
8种用户编码可选择
◆:
TSOP-20、SOP20、COB可选的封装形式
下面看看TC9012编码方式:
TC9012的一帧数据中含有32位码,包括两个8位用户码,8位数据码和8位数据反码及最后位的同步位。
引导码由4.5ms的载波和4.5ms的载波关断波形所构成,以作为用户码、数据码以及他们的反码。
同步位(SY)是标志最后一位编码是“0”或“1”的标示位,它只有0.56ms的有载波信号构成。
TC9012的发射码的格式如下:
遥控器的输出波形如下所示:
长按键发码示意图:
发码数据参数示意图:
“1”和“0”的区分取决于脉冲之间的时间,称之为脉冲位置调制方式(PPM)。
发射端输出高电平下图的载波波形发送,频率:
38KHZ;占空比:
1/3.
红外发射实物图如下所示:
红外接收实物图如下所示:
电路原理图如下所示:
(4):
安卓手机蓝牙模块
蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无线数据与语音通信的开放性全球规,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。
手机之间通过蓝牙实现数据共享已成为常理,将手机变身为遥控器为人们的生活带来无限方便。
遥控小车在工业、国防、科研等领域应用越来越广泛,例如说:
消防遥控小车、探测小车等。
使用安卓手机蓝牙通信使小车启动、前行、倒退、左转、右转和停止等功能。
实物图如下所示:
手机终端控制图如下所示:
(5):
电机驱动模块
小车电机采用的专用芯片为L298N,通过单片机产生PWM脉冲信号是控制L298N的使能端,控制电机的转速;通过L298N的输出电平来控制电机的正反转。
接下来研究下L298N电机驱动芯片的特点:
L298专用电机驱动芯片,L298N部集成了H桥式驱动电路,通过单片机给予L298N电路PWM信号来控制小车的速度,控制运输车的前进(使电动机正转)与停止(使电动机反转)。
电机驱动芯片L298N部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。
L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。
5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。
也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节
实物图如下所示:
直流电机控制实例图如下所示:
电路原理图如下所示:
(6):
ST188红外循迹模块
本次设计的循迹模块主要是采用的是ST188。
市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电路自制探头,也可以使用结构简单、工作性能可靠的集成式红外探头。
ST系列集成红外探头价格便宜、体积小、使用方便、性能可靠、用途广泛,所以该系统中最终选择了ST188反射传感器作为红外光的发射和接收器件,其部结构和外接电路均较为简单ST188采用高发射功率红外光、电二极管和高灵敏光电晶体管组成,采用非接触式检测方式。
ST188的检测距离很小,一般为8~15毫米,因为8毫米以下是它的检测盲区,而大于15毫米则很容易受干扰。
笔者经过多次测试、比较,发现把传感器安装在距离检测物表面10毫米时,检测效果最好。
本部分采用了传统的对光控制,在运输车的底座的相应位置安装对光装置来控制小车在行驶过程中采集信号并经CPU进行信息处理判断处于停止、前进、拐弯等。
主要利用ST188检测循迹线,输出接收到的信号给LM324,接收电压与比较电压比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到循迹线。
我们采用红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。
单片机就是否收到反射回来的红外光为依据来确定小车的行走路线。
正确选择检测方法和传感器件是决定循迹效果的重要因素,而且正确的器件安装方法也是循迹电路好坏的一个重要因素。
从简单、方便、可靠等角度出发,同时在底盘装设4个红外探测头,进行两级方向纠正控制,将大大提高其循迹的可靠性,具体位置分布下图所示。
红外探头的分布图
图中循迹传感器全部在一条直线上。
其中X1与Y1为第一级方向控制传感器,X2与Y2为第二级方向控制传感器,并且黑线同一边的两个传感器之间的宽度不得大于黑线的宽度。
小车前进时,始终保持(如图3中所示的行走轨迹黑线)在X1和Y1这两个第一级传感器之间,当小车偏离黑线时,第一级传感器就能检测到黑线,把检测的信号送给小车的处理、控制系统,控制系统发出信号对小车轨迹予以纠正。
第二级方向探测器实际是第一级的后备保护,它的存在是考虑到小车由于惯性过大会依旧偏离轨道,再次对小车的运动进行纠正,从而提高了小车循迹的可靠性。
实物图如下所示:
电路原理图如下所示:
2、软件部分
(1):
ST188红外循迹程控制序流程图及程序代码
/***测试:
成功***/
/***智能循迹小车c语言代码***/
#include
/***宏定义***/
#defineuintunsignedint
#defineucharunsignedchar
/***全局变量定义***/
ucharRight_Pwm_Num;//右轮脉冲变量
ucharLeft_Pwm_Num;//左轮脉冲变量
ucharflag_Buzzer;
/***特殊功能寄存器定义***/
sfrp0=0x80;
sfrp1=0x90;
sfrp2=0xA0;
sfrp3=0xB0;
/***蜂鸣器定义***/
sbitBuzzer=p2^6;
/***电机引脚控制线定义***/
sbitMotor_Input_1=p2^0;
sbitMotor_Input_2=p2^1;
sbitMotor_Input_3=p2^2;
sbitMotor_Input_4=p2^3;
sbitMotor_ENA=p2^4;
sbitMotor_ENB=p2^5;
/***循迹输入引脚定义***/
//sbitTracking_Input_1=p0^0;
//sbitTracking_Input_2=p0^1;
//sbitTracking_Input_3=p0^2;
//sbitTracking_Input_4=p0^3;
/***操作按键定义***/
sbitMotor_start=p3^0;
sbitMotor_stop=p3^1;
/***分支函数的声明***/
voidinit();
voidkeyscan();
voidCar_line();
voidMotor_Stop();
voidMotor_Start();
voidBuzzer_sound();
voidCar_Left_bend();
voidCar_Right_bend();
voiddelay_1ms(uintz);
voidTracking_Collect();
/***主函数***/
voidmain()
{
init();
Motor_ENA=0;
Motor_ENB=0;
while
(1)
{
keyscan();
Tracking_Collect();
Buzzer_sound();
}
}
/***定时器0初始化***/
voidinit()
{
TMOD=0x10;
TH1=0xfc;//定时时间为1ms,初值为65536-921,时钟为11.0592mhz
TL1=0x67;
EA=1;
ET1=1;
}
/***循迹采集判断与速度处理***/
voidTracking_Collect()//循迹采集函数
{
ucharTracking_Collect;
Tracking_Collect=P0&0x0f;
switch(Tracking_Collect)
{
case0:
//0000
Right_Pwm_Num=70;//右轮(直线前进)
Left_Pwm_Num=70;//左轮
Car_line();
break;
case1:
//0001
Left_Pwm_Num=30;//左轮(大左转)
Right_Pwm_Num=70;//右轮
Car_Right_bend();
break;
case2:
//0010
Left_Pwm_Num=65;//左轮(小左转)
Right_Pwm_Num=70;//右轮
Car_line();
break;
case3:
//0011
Left_Pwm_Num=59;//左轮(中左转)
Right_Pwm_Num=60;//右轮
Car_Right_bend();
break;
case4:
//0100
Right_Pwm_Num=65;//右轮(小右转)
Left_Pwm_Num=70;//左轮
Car_line();
break;
case8:
//1000
Right_Pwm_Num=30;//右轮(大右转)
Left_Pwm_Num=70;//左轮
Car_Left_bend();
break;
case12:
//1100
Right_Pwm_Num=59;//右轮(中右转)
Left_Pwm_Num=60;//左轮
Car_Left_bend();
break;
case15:
//1111//停车
flag_Buzzer=1;
Motor_Stop();
break;
default:
break;
}
}
/***电机开始***/
voidMotor_Start()
{
Motor_ENA=1;
Motor_ENB=1;
TR1=1;
}
/***电机停止***/
voidMotor_Stop()
{
Motor_ENA=0;
Motor_ENB=0;
TR1=0;
}
/***功能按键扫描函数***/
voidkeyscan()
{
if(Motor_start==0)
{
delay_1ms(5);
if(Motor_start==0)
{
Motor_Start();
}
}
if(Motor_stop==0)
{
delay_1ms(5);
if(Motor_stop==0)
{
Motor_Stop();
}
}
}
/***********以下就是小车循迹算法*************/
/***小车直线前进***/
voidCar
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 模式 智能 小车 研究 制作