当前位置:文档之家› 声控小车程序

声控小车程序

声控小车程序
声控小车程序

#include"LE52.h"

#include "config.h"

sbit ENA=P2^3;

sbit ENB=P2^4;

sbit IN1=P1^0;

sbit IN2=P1^1;

sbit IN3=P1^2;

sbit IN4=P1^3;

** 工程名称:YS-语音识别模块底层驱动程序

** CPU: STC89LE52

** 晶振:22.1184MHZ

** 波特率:9600 bit/S

** 配套产品信息:YS-V0.7语音识别开发板

** https://www.doczj.com/doc/e218757819.html,

** 作者:zdings

** 联系:751956552@https://www.doczj.com/doc/e218757819.html,

** 修改日期:2012.4.1

** 说明:根据不同的单片机需要配置不同的延时。

extern void delay(unsigned long uldata);

uint8 idata ucRegVal;

extern uint8 idata nAsrStatus;

void ProcessInt0(void);

#define LD_INDEX_PORT (*((volatile unsigned char xdata*)(0x8100)))

#define LD_DATA_PORT (*((volatile unsigned char xdata*)(0x8000)))

//评估板上MCU的A8 连接到LD芯片的AD

// MCU的A14 连接到LD芯片的CSB

// MCU的RD、WR 连接LD芯片的RD、WR (xdata 读写时自动产生低信号)

//

//0x8100的二进制是10000001 00000000 CSB=0 AD=1

// ^ ^

//0x8000的二进制是10000000 00000000 CSB=0 AD=0

// ^ ^

void LD_WriteReg( unsigned char address, unsigned char dataout )

{

LD_INDEX_PORT = address;

LD_DATA_PORT = dataout;

}

unsigned char LD_ReadReg( unsigned char address )

{

LD_INDEX_PORT = address;

return (unsigned char)LD_DATA_PORT;

}

/************************************************************************ 功能描述:复位LD模块

入口参数:none

返回值:none

其他说明:none

**************************************************************************/ void LD_Reset()

{

RSTB=1;

delay(1);

RSTB=0;

delay(1);

RSTB=1;

delay(1);

CSB=0;

delay(1);

CSB=1;

delay(1);

}

/************************************************************************ 功能描述:LD模块命令初始化

入口参数:none

返回值:none

其他说明:该函数为出厂配置,一般不需要修改;

有兴趣的客户可对照开发手册根据需要自行修改。

**************************************************************************/ void LD_Init_Common()

{

LD_ReadReg(0x06);

LD_WriteReg(0x17, 0x35);

delay(10);

LD_ReadReg(0x06);

LD_WriteReg(0x89, 0x03);

delay(5);

LD_WriteReg(0xCF, 0x43);

delay(5);

LD_WriteReg(0xCB, 0x02);

/*PLL setting*/

LD_WriteReg(0x11, LD_PLL_11);

LD_WriteReg(0x1E,0x00);

LD_WriteReg(0x19, LD_PLL_ASR_19);

LD_WriteReg(0x1B, LD_PLL_ASR_1B);

LD_WriteReg(0x1D, LD_PLL_ASR_1D);

delay(10);

LD_WriteReg(0xCD, 0x04);

LD_WriteReg(0x17, 0x4c);

delay(5);

LD_WriteReg(0xB9, 0x00);

LD_WriteReg(0xCF, 0x4F);

LD_WriteReg(0x6F, 0xFF);

}

/************************************************************************ 功能描述:LD模块ASR功能初始化

入口参数:none

返回值:none

其他说明:该函数为出厂配置,一般不需要修改;

有兴趣的客户可对照开发手册根据需要自行修改。

**************************************************************************/ void LD_Init_ASR()

{

LD_Init_Common();

LD_WriteReg(0xBD, 0x00);

LD_WriteReg(0x17, 0x48);

delay( 10 );

LD_WriteReg(0x3C, 0x80);

LD_WriteReg(0x3E, 0x07);

LD_WriteReg(0x38, 0xff);

LD_WriteReg(0x3A, 0x07);

LD_WriteReg(0x40, 0);

LD_WriteReg(0x42, 8);

LD_WriteReg(0x44, 0);

delay( 1 );

}

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

功能描述:中断处理函数

入口参数:none

返回值:none

其他说明:当LD模块接收到音频信号时,将进入该函数,

判断识别是否有结果,如果没有从新配置寄

存器准备下一次的识别。

**************************************************************************/ void ProcessInt0(void)

{

uint8 nAsrResCount=0;

EX0=0;

ucRegVal = LD_ReadReg(0x2B);

LD_WriteReg(0x29,0) ;

LD_WriteReg(0x02,0) ;

if((ucRegVal & 0x10) &&

LD_ReadReg(0xb2)==0x21 &&

LD_ReadReg(0xbf)==0x35) /*识别成功*/

{

nAsrResCount = LD_ReadReg(0xba);

if(nAsrResCount>0 && nAsrResCount<=4)

{

nAsrStatus=LD_ASR_FOUNDOK;

}

else

{

nAsrStatus=LD_ASR_FOUNDZERO;

}

} /*没有识别结果*/

else

{

nAsrStatus=LD_ASR_FOUNDZERO;

}

LD_WriteReg(0x2b, 0);

LD_WriteReg(0x1C,0);/*写0:ADC不可用*/

LD_WriteReg(0x29,0) ;

LD_WriteReg(0x2B, 0);

LD_WriteReg(0xBA, 0);

LD_WriteReg(0xBC,0);

LD_WriteReg(0x08,1); /*清除FIFO_DATA*/

LD_WriteReg(0x08,0); /*清除FIFO_DATA后再次写0*/

EX0=1;

}

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

功能描述:运行ASR识别流程

入口参数:none

返回值:asrflag:1->启动成功,0—>启动失败

其他说明:识别顺序如下:

1、RunASR()函数实现了一次完整的ASR语音识别流程

2、LD_AsrStart() 函数实现了ASR初始化

3、LD_AsrAddFixed() 函数实现了添加关键词语到LD3320芯片中

4、LD_AsrRun() 函数启动了一次ASR语音识别流程

任何一次ASR识别流程,都需要按照这个顺序,从初始化开始

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

uint8 RunASR(void)

{

uint8 i=0;

uint8 asrflag=0;

for (i=0; i<5; i++) // 防止由于硬件原因导致LD3320芯片工作不正常,所以一共尝试5次启动ASR识别流程

{

LD_AsrStart();

delay(50);

if (LD_AsrAddFixed()==0)

{

LD_Reset(); // LD3320芯片内部出现不正常,立即重启LD3320芯片

delay(50); // 并从初始化开始重新ASR识别流程

continue;

}

delay(10);

if (LD_AsrRun() == 0)

{

LD_Reset(); // LD3320芯片内部出现不正常,立即重启LD3320芯片

delay(50); // 并从初始化开始重新ASR识别流程

continue;

}

asrflag=1;

break; // ASR流程启动成功,退出当前for循环。开始等待LD3320送出的中断信号

}

return asrflag;

}

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

功能描述:检测LD模块是否空闲

入口参数:none

返回值:flag:1-> 空闲

其他说明:none

**************************************************************************/ uint8 LD_Check_ASRBusyFlag_b2()

{

uint8 j;

uint8 flag = 0;

for (j=0; j<10; j++)

{

if (LD_ReadReg(0xb2) == 0x21)

{

flag = 1;

break;

}

delay(10);

}

return flag;

}

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

功能描述:启动ASR

入口参数:none

返回值:none

其他说明:none

**************************************************************************/ void LD_AsrStart()

{

LD_Init_ASR();

}

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

功能描述:运行ASR

入口参数:none

返回值:1:启动成功

其他说明:none

**************************************************************************/ uint8 LD_AsrRun()

{

EX0=0;

LD_WriteReg(0x35, MIC_VOL);

LD_WriteReg(0x1C, 0x09);

LD_WriteReg(0xBD, 0x20);

LD_WriteReg(0x08, 0x01);

delay( 1 );

LD_WriteReg(0x08, 0x00);

delay( 1 );

if(LD_Check_ASRBusyFlag_b2() == 0)

{

return 0;

}

LD_WriteReg(0xB6, 0xa); //识别时间1S

LD_WriteReg(0xB5, 0x1E); //背景音段时间300ms

LD_WriteReg(0xB8, 10); //结束时间

LD_WriteReg(0x1C, 0x07); //配置双通道音频信号做为输入信号

LD_WriteReg(0x1C, 0x0b); //配置麦克风做为输入信号

LD_WriteReg(0xB2, 0xff);

delay( 1);

LD_WriteReg(0x37, 0x06);

delay( 1 );

LD_WriteReg(0x37, 0x06);

delay( 5 );

LD_WriteReg(0x29, 0x10);

LD_WriteReg(0xBD, 0x00);

EX0=1;

return 1;

}

/************************************************************************ 功能描述:向LD模块添加关键词

入口参数:none

返回值:flag:1->添加成功

其他说明:用户修改.

1、根据如下格式添加拼音关键词,同时注意修改sRecog 和pCode 数组的长度

和对应变了k的循环置。拼音串和识别码是一一对应的。

2、开发者可以学习"语音识别芯片LD3320高阶秘籍.pdf"中

关于垃圾词语吸收错误的用法,来提供识别效果。

3、”xiao jie “为口令,故在每次识别时,必须先发一级口令“小捷”

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

uint8 LD_AsrAddFixed()

{

uint8 k, flag;

uint8 nAsrAddLength;

#define DATE_A 6 /*数组二维数值*/

#define DATE_B 20 /*数组一维数值*/

uint8 code sRecog[DATE_A][DA TE_B] = {

"xiao jie",\

"zuo zhaun",\

"you zhuan",\

"qian jin",\

"hou tui",\

"ting"

};

uint8 code pCode[DATE_A] = {

CODE_CMD,\

CODE_ZZ,\

CODE_YZ,\

CODE_QJ,\

CODE_HT,\

CODE_T

};

flag = 1;

for (k=0; k

{

if(LD_Check_ASRBusyFlag_b2() == 0)

{

flag = 0;

break;

}

LD_WriteReg(0xc1, pCode[k] );

LD_WriteReg(0xc3, 0 );

LD_WriteReg(0x08, 0x04);

delay(1);

LD_WriteReg(0x08, 0x00);

delay(1);

for (nAsrAddLength=0; nAsrAddLength

{

if (sRecog[k][nAsrAddLength] == 0)

break;

LD_WriteReg(0x5, sRecog[k][nAsrAddLength]);

}

LD_WriteReg(0xb9, nAsrAddLength);

LD_WriteReg(0xb2, 0xff);

LD_WriteReg(0x37, 0x04);

}

return flag;

}

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

功能描述:获取识别结果

入口参数:none

返回值:LD_ReadReg(0xc5 );读取内部寄存器返回识别码。

其他说明:none

**************************************************************************/ uint8 LD_GetResult()

{

return LD_ReadReg(0xc5 );

}

/***************************乐声电子科技有限公司**************************** ** 工程名称:YS-V0.7语音识别开发板程序

** CPU: STC89LE52

** 晶振:22.1184MHZ

** 波特率:9600 bit/S

** 配套产品信息:YS-V0.7语音识别开发板

** https://www.doczj.com/doc/e218757819.html,

** 作者:zdings

** 联系:751956552@https://www.doczj.com/doc/e218757819.html,

** 修改日期:2012.11.21

** 说明:本程序具备语音口令识别、串口通信。。

/***************************乐声电子科技有限公司******************************/ /****************************************************************************** ******/

// nAsrStatus 用来在main主程序中表示程序运行的状态,不是LD3320芯片内部的状态寄存器

// LD_ASR_NONE: 表示没有在作ASR识别

// LD_ASR_RUNING:表示LD3320正在作ASR识别中

// LD_ASR_FOUNDOK: 表示一次识别流程结束后,有一个识别结果

// LD_ASR_FOUNDZERO: 表示一次识别流程结束后,没有识别结果

// LD_ASR_ERROR: 表示一次识别流程中LD3320芯片内部出现不正确的状态

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

uint8 idata nAsrStatus=0;

void MCU_init();

void ProcessInt0(); //识别处理函数

void delay(unsigned long uldata);

void User_handle(uint8 dat);//用户执行操作函数

void Led_test(void);//单片机工作指示

uint8_t G0_flag=DISABLE;//运行标志,ENABLE:运行。DISABLE:禁止运行

sbit LED=P4^2;//信号指示灯

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

小车左转

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

void Turn_left()

{ ENA=1;

ENB=0;

IN1=1;

IN2=0;

IN3=0;

IN4=0;

}

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

小车右转

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

void Turn_right()

{ ENA=0;

ENB=1;

IN1=0;

IN2=0;

IN3=1;

IN4=0;

}

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

小车前进

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

void Go()

{

ENA=1;

ENB=1;

IN1=1;

IN2=0;

IN3=1;

IN4=0;

}

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

小车后退

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

void Back()

{ ENA=1;

ENB=1;

IN1=0;

IN2=1;

IN3=0;

IN4=1;

}

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

*

小车停

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

void Stop()

{ ENA=1;

ENB=1;

IN1=0;

IN2=0;

IN3=0;

IN4=0;

}

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

函数名:串口初始化

功能描述:STC10L08XE 单片机串口初始化函数

返回函数:none

其他说明:none

**************************************************************************/ void UartIni(void)

{

SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr

TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload

PCON |= 0x80 ; //SMOD=1;

TH1 = 0xF4 ; //Baud:9600 fosc=22.1148MHz

IE |= 0x90 ; //Enable Serial Interrupt

TR1 = 1 ; // timer 1 run

ES=1;

EA=1;

}

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

功能描述:串口发送一字节数据

入口参数:DAT:带发送的数据

返回值:none

其他说明:none

**************************************************************************/ void UARTSendByte(uint8_t DA T)

{

ES = 0;

TI=0;

SBUF = DAT;

while(TI==0);

TI=0;

ES = 1;

}

/************************************************************************ 功能描述:串口发送字符串数据

入口参数:*DAT:字符串指针

返回值:none

其他说明:API 供外部使用,直观!

**************************************************************************/ void PrintCom(uint8_t *DA T)

{

while(*DAT)

{

UARTSendByte(*DAT++);

}

}

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

* 名称:void MCU_init()

* 功能:单片机初始化

* 入口参数:

* 出口参数:

* 说明:

* 调用方法:

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

void MCU_init()

{

P0 = 0xff;

P1 = 0xff;

P2 = 0xff;

P3 = 0xff;

LD_MODE = 0; // 设置MD管脚为低,并行模式读写

IE0=1;

EX0=1;

EA=1;

}

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

* 名称:延时函数

* 功能:

* 入口参数:

* 出口参数:

* 说明:

* 调用方法:

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

void delay(unsigned long uldata)

{

unsigned int j = 0;

unsigned int g = 0;

for (j=0;j<5;j++)

{

for (g=0;g

{

_nop_();

_nop_();

_nop_();

}

}

}

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

* 名称:中断处理函数

* 功能:

* 入口参数:

* 出口参数:

* 说明:

* 调用方法:

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

void ExtInt0Handler(void) interrupt 0

{

ProcessInt0(); /* LD3320 送出中断信号,包括ASR和播放MP3的中断,需要在中断处理函数中分别处理*/

}

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

* 名称:用户执行函数

* 功能:识别成功后,执行动作可在此进行修改

* 入口参数:无

* 出口参数:无

* 说明:

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

void User_handle(uint8 dat)

{

UARTSendByte(dat);//串口识别码(十六进制)

switch(dat)

{

case CODE_ZZ: /*命令“左转”*/

PrintCom("“左转”命令识别成功\r\n");

Turn_left();

break;

case CODE_YZ: /*命令“右转”*/

PrintCom("“右转”命令识别成功\r\n");

Turn_right();

break;

case CODE_QJ: /*命令“前进”*/

PrintCom("“前进”命令识别成功\r\n");

Go();

break;

case CODE_HT: /*命令“后退”*/

PrintCom("“后退”命令识别成功\r\n");

Back();

break;

case CODE_T: /*命令“停”*/

PrintCom("“停”命令识别成功\r\n");

Stop();

break;

default: break;

}

}

/*********************************************************** * 名称:void main(void)

* 功能:主函数程序入口

* 入口参数:

* 出口参数:

* 说明:

* 调用方法:

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

void main(void)

{

uint8 idata nAsrRes;

uint8 i=0;

MCU_init();

LD_Reset();

UartIni(); /*串口初始化*/

nAsrStatus = LD_ASR_NONE; // 初始状态:没有在作ASR

while(1)

{

switch(nAsrStatus)

{

case LD_ASR_RUNING:

case LD_ASR_ERROR:

break;

case LD_ASR_NONE:

{

nAsrStatus=LD_ASR_RUNING;

if (RunASR()==0) /* 启动一次ASR识别流程:ASR初始化,ASR添加关键词语,启动ASR运算*/

{

nAsrStatus = LD_ASR_ERROR;

}

break;

}

case LD_ASR_FOUNDOK: /* 一次ASR识别流程结束,去取ASR识别结果*/

{

nAsrRes = LD_GetResult(); /*获取结果*/

User_handle(nAsrRes);//用户执行函数

nAsrStatus = LD_ASR_NONE;

break;

}

case LD_ASR_FOUNDZERO:

default:

{

nAsrStatus = LD_ASR_NONE;

break;

}

}// switch

}// while

智能循迹小车___设计报告

智能循迹小车___设计报告

智能循迹小车设计 专业:自动化 班级:自动化132 姓名:罗植升莫柏源梁 桂宾 指导老师: 2014年4月——2010年6月

本课题是基于STC89C52单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。小车系统以 STC89C52单片机为系统控制处理 器; 采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。

当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。 作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。 无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。 为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。 此项设计是在以杨老师提供的小车为基础上,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

智能循迹小车详细制作过程

(穿山乙工作室)三天三十元做出智能车 基本设计思路: 1.基本车架(两个电机一体轮子+一 个万向轮) 2.单片机主控模块 3.电机驱动模块(内置5V电源输出) 4.黑白线循迹模块 0.准备所需基本元器件 1).基本二驱车体一台。(本课以穿山乙推出的基本车体为 例讲解) 2).5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红 色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40 个。 3).5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一 个;双孔接线柱三个、10u电解电容2个、排针12个、9110 驱动芯片2个。 4).5x7cm洞洞板、LM324比较器芯片各一个;红外对管三 对、4.7K电阻3个、330电阻三个、红色3mmLED三个。 一、组装车体

(图中显示的很清晰吧,照着上螺丝就行了) 二、制作单片机控制模块 材料:5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。 电路图如下,主要目的是把单片机的各个引脚用排针引出来,便于使用。我们也有焊接好的实物图供你参考。(如果你选用的是STC98系列的单片机在这里可以省掉复位电路不焊,仍能正常工作。我实物图中就没焊复位)

三、制作电机驱动模块 材料:5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。 电路图如下,这里我们把电源模块与驱动模块含在了同一个电路板上。因为电机驱动模块所需的电压是+9V左右(6—15V 均可),而单片机主控和循迹模块所需电压均为+5V。 这里用了一个7805稳压芯片将+9V电压稳出+5V电压。

基于STC89C52单片机-红外智能循迹小车 (1)

基于STC89C52单片机红外智能循迹小车 实验报告册 学院:电气工程学院 协会:电子科技协会 班级:电气1206 班 姓名:蔡申申 学号:201223910625 联系方式:151 **** ****

摘要 本报告论述了自己参加第八届河南工业大学科技创新大赛——基于STC89C52RC单片机红外智能循迹小车的方案论证、制作过程、调试过程。设计采用STC89C52RC单片机为核心控制器件,采用TCRT5000红外反射式开关传感器作为小车的循迹模块来识别白色路面中央的黑色引导线,采集信号并将信号转换为能被单片机识别的数字信号,单片机获取路面信息后,进行分析、处理,最后控制减速电机转动实现转向。实验表明:该系统抗干扰能力强、电路结构简单、制作成本低,运行平稳、可靠性好。 关键词:STC89C52单片机、反射式光电对管、PWM调速 减速电机

目录 摘要 (2) 1 绪论 (4) 1.1 智能循迹小车概述 (4) 1.1.1 循迹小车的发展历程回顾 (4) 1.1.2 智能循迹分类 (4) 1.1.3 智能循迹小车的应用 (5) 2 智能循迹小车总体设计方案 (5) 2.1 整体设计方案 (5) 2.1.1 系统设计步骤 (5) 2.1.2 系统基本组成 (5) 2.2 整体控制方案确定 (6) 3 系统的硬件设计 (6) 3.1 单片机电路的设计 (6) 3.1.1 单片机的功能特性描述 (6) 3.1.2 晶振电路 (7) 3.1.3 复位电路 (7) 3.2 光电传感器模块 (8) 3.2.1 传感器分布 (8) 3.3 电机驱动电路 (9) 3.3.1 L298N引脚结构 (9) 3.3.2 电机驱动原理 (9) 4 系统的软件设计 (10) 4.1 软件设计的流程 (10) 4.2 本系统的编译器 (10) 5 系统的总体调试 (11) 5.1 硬件的测试 (11) 5.2 系统的软件调试 (11) 结论 (11) 致谢 (11) 参考文献 (12) 附录A 原理图与模块电路图 (12) 附录B 程序代码 (13) 附录C 硬件实物图 (15)

智能小车完整材料

莱芜职业技术学院鲁战磊吴丛善魏玉良 目录 摘要: (2) 关键词: (3) 一、设计任务概述 (3) 1.1设计任务概述 (3) 1.2基本任务 (3) 1.3发挥部分 (3) 二、系统方案论证与选择 (4) 2.1车体方案论证与选择 (5) 2.2控制模块论证与选择 (5) 2.3电源模块论证与选择 (6) 2.4电机模块选择与论证 (6) 2.5电机驱动模块选择与论证 (6) 2.6避障模块的选择与论证 (7) 2.7循迹模块选择与论证 (7) 2.8金属传感器模块论证与选择 (7) 2.9铁片转移模块论证与选择 (8) 2.10报警和语音提示模块选择与论证 (8) 2.11显示模块论证与选择 (8) 2.12智能救援小车最终方案 (8) 三、硬件系统的设计与功能实现 (9) 3.1救援小车主线路板制作 (9) 3.2微控制器电路的设计与原理 (9) 3.3电源电路原理与设计 (10) 3.4电机驱动电路的原理与设计 (10) 3.5避障电路的原理与设计 (10) 3.6光电开关的安装 (11) 3.7循迹电路的原理与设计 (11) 3.8金属检测电路的原理与设计 (11) 3.9铁片转移电路原理与设计, (12) 3.10语音提示电路的原理与设计 (12) 3.11系统其它功能的扩展 (12) 四、软件设计的实现与说明 (13) 4.1主程序流程图 (13) 4.2路面循迹子程序流程图 (14)

4.3智能救援小车系统的部分程序清单 (15) 五、系统功能测试 (17) 5.1使用仪器及设备清单的说明 (17) 5.2系统功能测试 (17) 5.2.1基本要求部分的功能测试 (17) 5.2.2发挥部分的功能测试 (17) 六、结论 (19) 七、结束语 (19) 八、参考文献: (19) 摘要 本小组设计制作的一款智能救援小车,能够实现2008年山东省电子设计竞赛G题的基本部分和发挥部分的所有功能要求。另外具有以下扩展功能功能:测温、无线遥控、测速及里程、测量路面坡度。 本作品以两个直流减速电机为驱动,通过各类传感器件来采集信息,送入主控单元STC 89C52单片机,处理数据后完成相应的操作,以实现相应的功能。直流减速电机采用电机专用驱动芯片L293D进行驱动,其中避障采光电开关来完成;用RPR220型光电对管完成系统循迹功能;铁片检测部分通过电感式接近开关铁片进行信号的采集,接近开关反馈的信号送入单片机处理,由控制单元处理信号并控制相应的线圈,利用线圈用电产生磁场的效应捡起铁片并转移到题目中所指定的区域,由语音提示电路提示小车操作完成。实现了智能救援小车在

智能循迹小车程序

#include #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示 uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器P3^2 sbit L=P3^3; //左边传感器P3^3 //电机驱动口定义 sbit E NB=P1^0; //前轮电机停止控制使能 sbit E NA=P1^1; //后轮控制调速控制端口 sbit I N1=P1^2; //前轮 sbit I N2=P1^3; //前轮 sbit I N3=P1^4; //后轮 sbit I N4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例 { ENA = 1; } else if(speed < 100) { ENA = 0; }

智能循迹小车___设计报告

智能循迹小车设计 专业:自动化 班级:自动化132 姓名:罗植升莫柏源梁桂宾 指导老师: 2014年4月——2010年6月 摘要:

本课题是基于STC89C52单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。小车系统以 STC89C52单片机为系统控制处理器;采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。 引言

当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。 作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。 无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为机电一体化学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。 为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。 此项设计是在以杨老师提供的小车为基础上,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

智能小车寻迹模块设计方案

智能小车寻迹模块设计方案 本文设计方案以MSP430单片机为系统的控制核心,采用反射式光电传感器模块寻迹,实现智能小车的自动寻迹行驶。在实验中采用与白色相差很大的黑色引导线作为智能小车的既定路线,系统驱动采用控制方式为PWM 的直流电机。 详细介绍了反射式光电传感器寻迹模块的工作原理,寻迹模块的电路图以及在以MSP430单片机为控制核心的基础上如何实现智能寻迹小车的自动寻迹行驶。并简要介绍了系统的电路图。该技术可用于无人生产线、服务机器人、仓库等领域。 0 引言 智能小车又称轮式移动机器人,能够按预设模式在特定环境中自动移动,无需人工干预,可用于科学勘测、现代物流等方面。针对路面采用黑色标记线条作为路径引导线的应用场合,反射式光电传感器是常用的路径识别传感器。反射式光电传感器因信号处理方式和物理结构简单的特点而被广泛应用于结构化环境 和低成本产品中,虽然存在检测距离近、预测性差的弱点,但通过合理设计和选择反射式光电传感器并结合合适的信息处理软件能够满足上述简单环境场合应用。随着汽车ECU 电子控制的发展,在汽车上配备远程信息处理器,传感器和 接收器,通过这些器件的协调控制可以实现汽车的无人驾驶。本文提出基于 MSP430单片机的控制装置,通过反射式光电传感器寻迹,MSP430单片机处理反射式光电传感器检测到的信号,从而控制智能车的转向,实现智能小车的自动寻迹。 1 系统总体设计方案 在小车车体的前端贴近地面的地方安装有4 组寻迹模块,如图1所示,单 片机通过判断4个寻迹模块发送来的信号进行自动循迹。寻迹模块在遇到黑线时发送低电平信号,遇到空白的地方发送高电平信号,单片机通过判断高低电平即可作出相应的操作。通过4组寻迹模块发送的信号组合,可将小车行驶状态分成如表1所示7种状态。

简易智能小车设计方案

简易智能小车设计方案 一、设计总览 本设计以单片机小车的控制核心,设计分为 5 个模块:前轮PWM 驱动电路、显示及声光指示模块、轨迹探测模块、障碍物探测模块、光源探测模块。前轮PWM 驱动电路用于转向控制;后轮PWM 驱动电路用于方向和速度控制;探测模块利用三个光感元件,对黑色轨道进行寻迹;障碍物探测模块用于对两个障碍物进行探测;光源探测模块利用三个光敏电阻制成,用于寻光并确定光源角度,以期获得较为精确的转向值。绕障方案利用障碍物较低这个重要条件,在C 点出发后,利用光敏电阻获得光源的方向 1.轨迹探测模块设计 ●用三只光电开关。 一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。现场实测表明,虽然小车在寻迹过程中有一定的左右摇摆(因为所购小车的内部结构决定了光电开光之间的距离到达不了精确计算值 1 厘米),但只要控制行驶速度就可保证车身基本上接近于沿靠轨道行驶。 2.数据存储 ●直接用单片机内部的 RAM 进行存储。 虽然不能在断电后保存数据,但可以在实验结束后根据按键显示相应值。而且本实验的数据存储不大,采用 RAM 可以减少 IO 接口的使用,便利 IO 接口分配,故此方案具有成本低、易实现的优点,更符合实际需求。 3.障碍探测模块方案 考虑到在测障过程中小车车速及反应调向速度的限制,小车应在距障碍物40CM 的范围内做出反应,这样在顺利绕过障碍物的同时还为下一步驶入车库寻找到最佳的位置和方向。否则,如果范围太大,则可能产生障碍物的判断失误;范围过小又很容易造成车身撞上障碍物或虽绕过障碍物却无法实现理想定向方案。 ●采用一只红外传感器置于小车右侧并与小车前进方向呈一固定角度。 基于对C 点后行车地图中光源及障碍物尺寸、位置的分析,我们采用了从 C 点出发即获得光源对行车方向的控制,在向光源行驶的过程之中检查障碍物并做

简易智能小车设计报告

简易智能小车设计 报告

嵌入式系统课程设计题目:简易智能小车 学院:机电工程学院 专业:自动化 班级: 学生: 学号: 指导教师: 目录

摘要 (1) 第1章绪论 (2) 1.1 简易智能小车的概述 (2) 1.1 主要研究工作 (3) 第2章硬件电路设计 (3) 2.1 总体方案的设计 (3) 2.2 LPC2103的简介 (3) 2.3 单元电路的设计 (5) 2.3.1控制系统模块 (5) 2.3.2 键盘显示板模块 (6) 2.3.3稳压电源模块 (7) 2.3.4 驱动电路模块 (8) 第3章软件设计 (10) 3.1 EasyJTAG-H 仿真器的使用 (10) 3.2 软件程序编写 (10) 第4章调试 (18) 4.1 电路焊接与检查 (18) 4.2 键盘显示板的调试 (18)

4.2 执行电路的调试 (18) 第5章结论 (19) 致谢...................................................................................................19参考文献 (20) 附录 (21) 附录1实物图 (21) 附录2 元器件清单表 (22)

摘要:本次课程设计采用ARM7系列LPC2103作为智能小车的检测和控制核心。利用PWM技术动态控制电动机的转速,来实 现直流调速的功能模块。经过键盘显示板上的八个按键,实现 小车不同方向的行驶,实现ARM与键盘显示板的人机对 话。 关键词:LPC2103、键盘显示板、L298整流电路、直流电机、稳压电源。 。

智能循迹小车

目录 1.第一章绪论 1.1循迹小车的发展现状 1.2 选题意义 1.3本设计的工作 1.3.1设计要求 1.3.2设计思路 2.第二章硬件部分简介 2.1 具体方案论证与设计 2.2 主控芯片的简介 2.2.1 光电反射式传感器(ST178) 2.2.2低功率低失调双比较器LM393 3.第三章光电循迹小车的原理 3.1原理 3.2 传感器电路 3.2.1红外反射式光电传感器原理 3.2.2黑线检测电路

3.3核心控制电路 3.3.1模数转换电路(比较器电路) 3.3.2数字逻辑电路 3.4驱动电路 3.5 拓展功能“防撞” 3.6PCB制板 3.7作品展示 3.8原件清单 4.第四章结论 5.参考文献 6.课程设计心得

绪论 1.1循迹小车发展现状与趋势 智能汽车作为一种智能化的交通工具,体现了车辆工程、人工智能、自动控制、计算机等多个学科领域理论技术的交叉和综合,是未来汽车发展的趋势。寻迹小车可以看作是缩小化的智能汽车,它实现的基本功能是沿着指定轨道自动寻迹行驶。就目前智能小车发展趋势而言:相比价格昂贵、体积大、数据处理复杂

的传感器CCD反射式光电传感器以其价格适中、体积小、数据处理方便等更具有发展优势。 1.2 选题意义 汽车电子迅猛发展,智能车产生和不断探索并服务于人类的趋势将不可阻挡。智能车的研究将会给汽车这个产生了一百多年的交通工具带来巨大的科技变革。人们在行驶汽车时,不再只在乎它的速度和效率,更多是注重驾驶时的安全性,舒适性,环保节能性和智能性等。各国科学家和汽车工作人员以及汽车爱好者都在致力于智能车的研究,研究的成果有很多都已应用于人们的日常生活生产之中,例如在2005年1月美国发射的“勇气”号和“机遇”号火星探测器实质上都是装备先进的智能车辆。因此,研究智能车的实际意义和取得的价值都非常重大。本课题利用传感器识别路径,将赛道信息进行识别处理,利用主控芯片控制小车的行进进而完成循迹。 1.3本设计的工作 1.3.1设计要求 要求:设计并制作一个简易光电智能循迹电动车,其行驶路线示意图如图1-1:(其中粗黑些为光电寻迹线)要求智能循迹小车从起点出发,沿粗黑色引导线到达终点后立即停车但行驶全程行驶时间不能大于90s。

基于单片机的智能循迹小车设计

本科毕业设计(论文) 基于单片机的智能循迹小车设计 学生学院信息工程学院 专业测控技术与仪器 (光机电一体化方向)年级班别20 级(1)班 学号 学生姓名 指导教师 20 年6月

摘要 自循迹智能小车也是智能行走机器人的一种,智能小车可以适应不同的环境,不受外界温度、湿度、空间以及重力等各种恶劣条件的影响,在人类无法进入或者生存的环境中完成人类无法完成的任务。本课题是智能循迹小车系统的设计,智能小车的设计涉及传感器技术、电路涉及、程序设计、控制设计等多个方面的知识,是一项综合设计。设计目标是小车能沿着规划好的黑线行走,不偏离道路。。 智能循迹小车以木板车架为承载,包括单片机模块:STC89C52芯片;驱动模块:L298N驱动模块和两个直流电机;循迹模块:红外光电传感器和LM324运算放大器。红外光电传感器判断是否寻找到黑线,并将产生的电平信号发送至LM324运算放大器,再返回到单片机,单片机根据程序设计的要求做出相应的判断送给电机驱动模块控制小车在黑线上实现前进后退左转右转。 关键词:智能小车,自动循迹,单片机,红外传感器

Abstract Self-tracing smart car is also a kind of intelligent walking robot, intelligent car can adapt to different environments, from outside temperature, humidity, space and gravity and other adverse conditions, in the human can not enter or survive the environment to complete the human Unable to complete the task. This topic is the design of intelligent tracking car system, intelligent car design involves sensor technology, circuit involved, programming, control design and other aspects of knowledge, is a comprehensive design. The design goal is that the car can walk along the planned black line without departing from the road. The The following steps: STC89C52 chip; drive module: L298N drive module and two DC motors; tracking module: infrared photoelectric sensor and LM324 operational amplifier. Infrared photoelectric sensor to determine whether to find the black line, and the resulting level signal sent to the LM324 operational amplifier, and then return to the microcontroller, the microcontroller according to the requirements of the program to make the appropriate judgment to the motor drive module control car on the black line Turn forward and turn right. Key words: intelligent car, automatic tracking, single chip, infrared sensor

智能小车开题报告

华侨大学厦门工学院毕业设计(论文)开题报告 系:电气工程系专业班级:电气工程及其自动化4班

二、文献综述(国内外研究情况及其发展): 国外智能车辆的研究历史较长,始于上世纪50年代。它的发展历程大体可以分成三个阶段: 第一阶段 20世纪50年代是智能车辆研究的初始阶段。1954年美国Barrett Electronics 公司研究开发了世界上第一台自主引导车系统AGVS(Automated Guided Vehicle System)。 第二阶段从80年代中后期开始,世界主要发达国家对智能车辆开展了卓有成效的研究。在欧洲,普罗米修斯项目开始在这个领域的探索。在美洲,美国成立了国家自动高速公路系统联盟(NAHSC)。在亚洲,日本成立了高速公路先进巡航/辅助驾驶研究会。 第三阶段从90年代开始,智能车辆进入了深入、系统、大规模研究阶段。最为突出的是,美国卡内基.梅隆大学(Carnegie Mellon University)机器人研究所一共完成了Navlab系列的10台自主车(Navlab1—Navlab10)的研究,取得了显著的成就。 相比于国外,我国开展智能车辆技术方面的研究起步较晚,开始于20世纪80年代。而且大多数研究处在于针对某个单项技术研究的阶段。虽然我国在智能车辆技术方面的研究总体上落后于发达国家,并且存在一定得技术差距,但是我们也取得了一系列的成果,主要有: (1)中国第一汽车集团公司和国防科技大学机电工程与自动化学院与2003年研制成功我国第一辆自主驾驶轿车。 (2)南京理工大学、北京理工大学、浙江大学、国防科技大学、清华大学等多所院校联合研制了7B.8军用室外自主车,该车装有彩色摄像机、激光雷达、陀螺惯导定位等传感器。 可以预计,我国飞速发展的经济实力将为智能车辆的研究提供一个更加广阔的前景。因此,对智能小车进行深入细致的研究,不但能加深课堂上学到的理论知识,更能将理论转化为实际运用,为将来打下坚实的基础。

智能小车课程设计报告书

※※※※※※※※※ 级学生※※2015※※课程设计材料※※※※※※※※※※※ 课程设计报告书 课题名称智能小车蓝牙操控和循迹的实现 名姓 学号 院学 专业 指导教师 2019年2月15日 设计目的1 通过设计进一步掌握51单片机的应用,特别是在嵌入式系统中的应用。进一步学习51单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。 2功能要求

智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动运作,不需要人为的管理,可应用于科学勘探等等用途;并且能实现显示时间、速度、里程,具有自动寻迹、寻光、避障等功能,可程控行驶速度、准确定位停车,远程传输图像、按键控制加速,减速,刹停,左转和右转、实时显示运行状态等功能。 3 总体设计方案 在现有玩具电动车的基础上,加了四个按键,实现对电动车的运行轨迹的启动,并将按键的状态传送至单片机进行处理,然后由单片机根据所检测的各种按键状态实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。本设计采用AT89C51单 片机。以AT89C51为控制核心,利用按键的动作,控制电动小汽车的状态。加 装光电、红外线、超声波传感器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动小车的智能控制,如图1所示。简易智能电动车采用AT89C51单 片机进行智能控制。开始由手动启动小车,并复位初始化,当到达规定的起始黑线,由小车底部的红外光电传感器检测到第一条黑线后,通过单片机控制小车[2]。在白纸所做轨迹道路中,小车通过超声波传感器正前开始记数、显示、调速方检测和光电传感器左右侧检测,由单片机控制实现系统的自动避障功能。在电动车进驶过程中,采用双极式H型PWM脉宽调制技术,以控制小车调速;并采用 动态共阴显示行驶时间和里程。小车通过光电传感装置实现驶向光源并通过循迹保持小车在白纸范围内行驶。当小车到达终点第二次检测到黑线时,单片机控制小车停车。 总体设计框架图图1 4 硬件电路选取与设计

基于单片机的智能循迹小车

第1章绪论 1.1课题背景 目前,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。世界上许多国家都在积极进行智能车辆的研究和开发设计。移动机器人是机器人学中的一个重要分支,出现于20世纪06年代。当时斯坦福研究院(SRI)的Nils Nilssen和charles Rosen等人,在1966年至1972年中研制出了取名shakey的自主式移动机器人,目的是将人工智能技术应用在复杂环境下,完成机器人系统的自主推理、规划和控制。从此,移动机器人从无到有,数量不断增多,智能车辆作为移动机器人的一个重要分支也得到越来越多的关注。 智能小车,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。 智能车辆也叫无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。智能车辆的主要特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)行进。智能车辆在原有车辆系统的基础上增加了一些智能化技术设备: (1)计算机处理系统,主要完成对来自摄像机所获取的图像的预处理、增强、分析、识别等工作; (2)摄像机,用来获得道路图像信息; (3)传感器设备,车速传感器用来获得当前车速,障碍物传感器用来获得前方、侧方、后方障碍物等信息。 智能车辆技术按功能可分为三层,即智能感知/预警系统、车辆驾驶系统和全自动操作系统团。上一层技术是下一层技术的基础。三个层次具体如下: (1)智能感知系统,利用各种传感器来获得车辆自身、车辆行驶的周围环境及 驾驶员本身的状态信息,必要时发出预警信息。主要包括碰撞预警系统和驾驶员状态监控系统。碰撞预警系统可以给出前方碰撞警告、盲点警告、车道偏离警告、换道/

简易智能小车_源程序

简易智能小车——2003年全国大学生电子设计竞赛, c51源程序系统的单片机程序 #include "" #define det_Dist */ void ctrMotor_Dist(float dist,unsigned char type) {unsigned char t=0; mType=type; P2=((P2&240)|15); cntTime_Plues=(int)(dist/det_Dist); while(cntTime_Plues) { if(Inter_EX0==1&&StartTask==0) { cntTime_Plues=0; break; } if(Light_Flag==1) t=LightSeek(); if(type==0) 0为A仓库,1为B仓库,2为停车场*/ void fndIorn(void) interrupt 0 { unsigned char i; P10=1; P2=((P2&240)|15); //停车 P07=1; delay(1000);//刹车制动 P07=0; Inter_EX0=1; cntIorn++; Display(cntIorn); for(i=0;i<40;i++) { P2=P2&249; delay(2);

P2=((P2&240)|15); delay(2); } P2=P2&249; delay(100); P2=((P2&240)|15); //停车 IornColor(); //判断铁片黑白,设置bkAim for(i=0;i<95;i++) { P2=P2&249; delay(3); P2=((P2&240)|15); delay(2); } P2=((P2&240)|15); //停车 delay(4000); //把铁片吸起来 EX0=0; } /*外部中断1中断程序: */ /*对霍尔开关的脉冲记数,对小车的位置进行记录,以便对小车进行定位*/ void stpMove(void) interrupt 2 { cntTime_Plues--; if(Direction==0) //向上 { if(mType==0) sY+=det_Dist; else if(mType==2) sY-=det_Dist; } else if(Direction==1) //向左 { if(mType==0) sX+=det_Dist; else if(mType==2) sX-=det_Dist; }

智能循迹小车设计

智能循迹/避障小车研究 工作报告 一、智能循迹小车程序结构框图 二、Proteus仿真图 三、软件程序设计

一、智能循迹小车程序结构框图 经过几天在网上的查找,对智能循迹/避障小车有了大致的了 解, 一般有三个模块: 1、最基本的小车驱动模块,使用两个二相四线步进电机对小车的两个后轮分别进行驱动,前轮最好用万向轮,能使小车更好地转弯; 2、小车循迹模块,在小车底部有三个并排安装的红外对管,对黑色与白色的反射信号不同,经单片机处理后对小车进行相应处理; 3、避障模块,我写的程序中对于避障模块是用中断来处理的(即安装在小车车头的红外对管检测到有障碍物后,就会向单片机的P3_2口输出一个高电平或是低电平,这时中断程序将对小车进行预先设定好的避障处理),但是在程序结构框图中,我不太会表示中断处理方式,所以就用查询的方式画了。

N Y N Y 二、Proteus 仿真图 我用Proteus 大概地仿真了小车的运行状态。图中的两个二相四线步进电机就代表小车的左右轮(假定步进电机顺时针转动方向为小车前进方向),网上有很多种驱动芯片,在仿真时我只使用L298N 芯

片来驱动步进电机。用三个单刀双制开关模拟用于小车循迹的三个红外对管的输出信号,经一个与门与三极管开关连接到P3_3口,中断程序对P1_0, P1_1, P1_2三个口进行检测,并做出相应处理。同时因为避障模块的优先级高于循迹模块,所以将外部中断0用于避障,外部中断1用于循迹。P1_3口则用于检测小车是否到达终点。 1、小车驱动模块: 使用一片298芯片驱动一个二相四线步进电机,电机的电压为12V。

基于某51单片机的智能小车控制系统

工业职业技术学院 毕业设计 课题名称基于51与单片机的智能小车控制系统 系(院)名称电气工程系 专业及班级 学生 学号 指导教师

完成日期年11 月19 日

摘要 随着我国科学技术的进步,智能化作为现代社会的新产物开始越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。智能小车是一个多种高薪技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,可以涉及到当今许多前沿领域的技术。 整个小车平台主要以51单片机为控制核心,通过无线遥控实现前进后退和转向行驶,通过红外线传感器,实现小车的自适应巡航、避障等功能。设计采用对比选择,模块独立,综合处理的研究方法。通过翻阅大量的相关文献资料,分析整理出有关信息,在此基础上列出不同的解决方案,结合实际情况对比方案优劣选出最优方案进行设计。从电机车体,最小系统到无线遥控,红外线对管的自动寻迹再到红外线自动避障和语音控制,完成各模块设计。通过调试检测各模块,得到正确的信号输出,实现其应有的功能。最后将各个调试成功的模块结合到小车的车体上,结合程序,通过单片机的控制,将各模块有效整合在一起,达到所预期的目标,完成最终设计与制作,能使小车在一定的环境中智能化运转。 关键字:智能小车,单片机,红外传感器。

目录 第一章绪论.............................................................................................................................- 1 - 1.1.1智能循迹小车概述........................................................................................................- 1 - 1.1.2课题研究的目的和意义 ...............................................................................................- 2 - 1.1.3智能循迹小车智能循迹分类.......................................................................................- 3 - 1.1.4智能循迹小车的应用....................................................................................................- 3 - 第二章方案设计 ..........................................................................................................................- 5 - 2.1 主控系统.........................................................................................................................- 5 - 2.2单片机最小系统 ...............................................................................................................- 6 - 2.2.1 STC89C52简介...................................................................................................- 6 - 2.2.2 时钟电路...............................................................................................................- 8 - 2.2.3复位及复位电路....................................................................................................- 8 - 2.3 电机驱动模块................................................................................................................ - 10 - 2.4 循迹及避障模块............................................................................................................ - 11 - 2.5 机械系统......................................................................................................................... - 11 - 2.6电源模块......................................................................................................................... - 11 - 第三章硬件设计 ..................................................................................................................... - 12 - 3.1总体设计......................................................................................................................... - 12 - 3.1.1主板设计框图..................................................................................................... - 12 - 主板设计框图如图3-1,所需原件清单如表3-1 .................................................. - 12 -

相关主题
文本预览
相关文档 最新文档