文档库 最新最全的文档下载
当前位置:文档库 › 智能车蔽障 机器人 超声测距

智能车蔽障 机器人 超声测距

智能车蔽障 机器人 超声测距
智能车蔽障 机器人 超声测距

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

* 我们赢了

更多技术支持:天津大学51斋303

All Rights Reserved

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

/* P0位控制电机P1全部控制红外P3^1 Trig_Front P3^6 声音信号输入P3^7 Trig_Side

INT0 左侧超声电平输入INT1 前侧超声电平输入

P2^0 EN_LOW_A P2^1 EN_LOW_B P2^2 EN_HIGH_A P2^3 EN_HIGH_B P2^4 P2^5 舵机P2^6 Area

T2 电机控制定时器T0 侧面超声T1 前面超声,舵机

改进:机械臂,超声,减速微调*/

#include

#define uchar unsigned char

#define uint unsigned int

#define SOUND_FREQUENCY 50 //识别声音中心频率

#define SOUND_THRESHOLD 40 //识别声音频率阈值

#define DISTANCE_THRESHOLD 40 //超声测距阈值 90 60

#define STANDARD_FRONT_DISTANCE 1500 //1430us 1490

#define STEEP_OF_START_FRONT_ULTRASOUND 1150 //蔽障区后启动前方超声传感器时机 1150 1250 1280

#define STEEP_OF_START_SIDE_ULTRASOUND 180 //开始进入壁障时第一次开启侧面超声时机180

#define T2_ACC_LEVEL 65000 //每档停留时间,数值加,减少us

#define SPEED_LIMIT 80 //速度上限

#define SPEED_START 700 //速度下限 900

#define ABNORMAL_SPEED_HIGH 80 //非正常高速110

#define ABNORMAL_SPEED_LOW 90 //非正常低速400

#define FINE_ 2 //非正常速度时的加减速幅度

#define DEC_LIMIT 13 //减速到停车经历的步数 12

#define DEC_LIMIT_ 10

#define DEC_LIMIT1 28

#define REV_LIMIT 130 //后退步数 60cm 151

#define TurnLeft_LIMIT 27 //左转步数

#define TurnRight_LIMIT 27 //右转步数

#define DOWN_MACHINE_ARM 158 //竞速区后开启机械臂及以下动作的时机(在此步数之后) 162 140

#define Up_MACHINE_ARM 158 //竞速区后开启机械臂及以下动作的时机(在此步数之后) 15 43

#define CLOSE_SIDE 275 //关闭侧面超声步数700

/***********************************标识位***********************************/

volatile unsigned char bdata Flag0=0; //8位标识位

sbit Full_Speed=Flag0^0; //全速标志位

sbit DEC_Flag=Flag0^1; //T2电机减速允许标识位

sbit ACC_Flag=Flag0^2; //T2电机加速标识位

sbit Use_Sound_Module=Flag0^3; //T2使用声音模块标识位

sbit Arm_Up=Flag0^4; //机械臂上举标志位

sbit Frequency_Right=Flag0^5; //频率符合标志位

sbit Arm_Down=Flag0^6; //下举

sbit Use_Machine_Arm=Flag0^7; //使用机械臂

volatile unsigned char bdata Flag1=0;

sbit Permit_Fine_Adj=Flag1^0; //允许微调标识位

sbit Left_Fine_Adj=Flag1^1; //向左微调标识位

sbit Right_Fine_Adj=Flag1^2; //向右微调标识位

sbit First_Use_Ultrasound=Flag1^3; //第一次使用超声传感器标识位

sbit Break_Flag=Flag1^4; //跳出标识位

sbit Abnormal_High=Flag1^5; //非正常高速标志

sbit Abnormal_Low=Flag1^7; //非正常低速标志

sbit Fine_Adj=Flag1^6; //微调

volatile unsigned char bdata Flag2=0;

sbit OK=Flag2^0; //举臂完

sbit _bar_=Flag2^1; // 检查蔽障标志

/********************传感器模块变量********************/

volatile unsigned char Frequency_Count; //频率计数

sbit Sound_Input=P2^7; //声音信号输入

sbit PWM1=P2^4; //舵机PWM输出

sbit PWM2=P2^5; //舵机PWM输出

uchar code PWM_C1[21]={1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

uchar code PWM_C2[21]={1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

uint PC;

sbit Trig_Front=P3^1; //前方超声传感器控制信号

sbit Trig_Side=P3^7; //左侧超声传感器控制信号

volatile uint Standard_Side_Distance; //标准距左侧距跑道边界距离

volatile uint Now_Front_Distance; //当前距前方跑道边界距离

volatile uint Now_Side_Distance; //当前距左侧跑道边界距离

sbit Side_Ultrasound_Output=P3^2; //

sbit Front_Ultrasound_Output=P3^3; //

/*****************控制电机模块变量*****************/

uchar code motor_REV[8]={0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99}; //正转序列uchar code motor_FFW[8]={0x99,0x88,0xcc,0x44,0x66,0x22,0x33,0x11}; //反转序列uchar code motor_TurnRight[8]={0x19,0x38,0x2c,0x64,0x46,0xc2,0x83,0x91}; //左转序列uchar code motor_TurnLeft[8]={0x91,0x83,0xc2,0x46,0x64,0x2c,0x38,0x19}; //右转序列

uint time; //拍拍延迟时间

uint Common_Count; //电机运转步数公共计数

uint Bar_DEC_Count; //臂章模块中减速次数计数

uint Count; //

uchar m; //固定拍计数

sbit EN_Right_A=P2^2;

sbit EN_Right_B=P2^3;

sbit EN_Left_A=P2^0;

sbit EN_Left_B=P2^1;

sbit Area=P2^6;

uchar Fine_Count;

/***********************************模块函数声明***********************************/

void delay(uint); //基础延迟

void delay1ms(uint); //1ms延迟

void T2_Initialize_Sound(void); //T2控制声音模块初始化

void Sound_Module(void); //开赛音模块函数

void Machine_Arm_Up(void); //机械臂控制

void Machine_Arm_Down(void); //

void Front_Ultrasound(void); //前方超声传感器处理函数

void Side_Ultrasound(void); //左侧超声传感器处理函数

void T2_Initialize_Motor(void); //T2控制电机初始化

void FFW_long(void); //

void TurnLeft(void); //

void TurnRight(void); //

void REV(void); //

void DEC(void); //

void DEC_(void);

void DEC1(void);

void BarModule(void); //

void FFW_Bar(void); //

void FFW_Speed(void); // //放下臂,倒车结束

void FFW_Speed_Throw(void); // /完成举臂,减速

void REV1(void)

{

TR2=0;

ET2=0;

time=SPEED_START;

Abnormal_High=1;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

T2_Initialize_Motor();

TR2=1;

for(Common_Count=0;Common_Count

{

for(m=0;m<8;m++)

{

P0=motor_REV[m];

delay(time);

}

if(Common_Count==REV_LIMIT-15-DEC_LIMIT1)

{

ET2=0;

TR2=0;

T2_Initialize_Motor();

Abnormal_High=0;

Abnormal_Low=0;

ACC_Flag=0;

DEC_Flag=1;

ET2=1;

TR2=1;

}

}

}

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

************************************************************************************************ ************************************************

************************************************

****************************************************************

************************************************ 主程序

****************************************************************

************************************************

****************************************************************

************************************************************************************************ ************************************************

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

void main()

{

delay1ms(1000);

EA=1;

/*启动后第一个半圈*/

Sound_Module();

Machine_Arm_Up();

while(!OK);

OK=0;

Machine_Arm_Down();

while(!OK);

OK=0;

FFW_Bar();

FFW_Speed_Throw();

/*第二个半圈*/

TurnLeft();

FFW_Bar();

FFW_Speed();

for(;;)

{

/*第三个半圈*/

TurnLeft();

FFW_Bar();

FFW_Speed_Throw();

/*第四个半圈*/

TurnLeft();

FFW_Bar();

FFW_Speed();

}

while(1);

}

/************************延迟函数块***********************/

void delay(uint i)

{

while(i--)

{

;

}

}

void delay1ms(uint i)

{

uchar j;

while(i--)

{

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

{;}

}

}

/*************************声音函数块************************/

void T2_Initialize_Sound(void)

{

ET2=1;

RCAP2H=(uchar)(15536>>8);

RCAP2L=(uchar)(15536&0x00ff);

}

void Sound_Module(void)

{

TR2=0;

Use_Sound_Module=1;

Frequency_Count=0;

T2_Initialize_Sound();

while(1)

{

if(!Sound_Input)

{

TR2=1;

while(TR2)

{

if(!Sound_Input)

Frequency_Count++;

}

Frequency_Count=0;

if(Frequency_Right)

break;

}

}

Use_Sound_Module=0;

TR2=0;

ET2=0;

delay1ms(6000);

}

/***********************机械臂函数块(T1控制)*********************/

void Machine_Arm_Down(void)

{

// IP=0x08; //

OK=0;

Use_Machine_Arm=1;

Arm_Up=1;

Arm_Down=0;

Common_Count=0;

PWM1=0;

PWM2=0;

PC=0;

ET1=1;

TMOD=0x11;

TH1=0xfc;

TL1=0x18;

TR1=1;

}

void Machine_Arm_Up(void)

{

// IP=0x08; //

OK=0;

Use_Machine_Arm=1;

Arm_Up=0;

Arm_Down=1;

Common_Count=0;

PWM1=0;

PWM2=0;

PC=0;

ET1=1;

TMOD=0x11;

TH1=0xfc;

TL1=0x18;

TR1=1;

}

/***********************超声测距(T1,T0控制)*********************/

void Front_Ultrasound(void)

{

Use_Machine_Arm=0;

Trig_Front=0;

ET1=1;

TMOD=0x11;

TH1=0x15;

TL1=0xa0;

TR1=1;

}

void Side_Ultrasound(void)

{

First_Use_Ultrasound=1;

Trig_Side=0;

ET0=1;

TMOD=0x11;

TH0=TL0=0x00;

TR0=1;

}

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

************************************************************************************************ ************************************************

************************************************

****************************************************************

************************************************ 电机处理函数

****************************************************************

************************************************

****************************************************************

************************************************************************************************ ************************************************

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

void T2_Initialize_Motor(void)

{

ET2=1;

RCAP2H=(uchar)(64500>>8);

RCAP2L=(uchar)(64500&0x00ff);

}

void FFW_Bar(void) //自动结束后左转了

{

time=SPEED_START;

Abnormal_High=0;

Abnormal_Low=0;

Bar_DEC_Count=0;

DEC_Flag=0;

ACC_Flag=1;

Fine_Count=0;

_bar_=1;

T2_Initialize_Motor();

TR2=1;

for(Count=0;;Count++)

{

for(m=0;m<8;m++)

{

P0=motor_FFW[m];

delay(time);

}

if(Count==(STEEP_OF_START_FRONT_ULTRASOUND-Bar_DEC_Count*DEC_LIMIT))

{

_bar_=0;

DEC();

// while(1);

Front_Ultrasound();

}

if(_bar_)

{

BarModule();

}

if(Break_Flag==1)

{

Break_Flag=0;

DEC();

TurnLeft();

break;

}

if(Fine_Adj)

{

Fine_Count++;

}

if(Count==STEEP_OF_START_SIDE_ULTRASOUND)

{

Side_Ultrasound();

}

/* if(Count==(STEEP_OF_START_FRONT_ULTRASOUND-Bar_DEC_Count*DEC_LIMIT)) {

_bar_=0;

Front_Ultrasound();

} */

if(Fine_Count==4)

{

if(Left_Fine_Adj)

{

EN_Left_A=1;

EN_Left_B=1;

Left_Fine_Adj=0;

}

if(Right_Fine_Adj)

{

EN_Right_A=1;

EN_Right_B=1;

Right_Fine_Adj=0;

}

Fine_Count=0;

Fine_Adj=0;

TR0=1;

ET0=1;

}

if(Permit_Fine_Adj)

{

if(Left_Fine_Adj)

{

EN_Left_A=0;

EN_Left_B=0;

}

if(Right_Fine_Adj)

{

EN_Right_A=0;

EN_Right_B=0;

}

Permit_Fine_Adj=0;

Fine_Adj=1;

}

}

}

void FFW_Speed_Throw(void) //完成举臂,减速{

time=SPEED_START;

Abnormal_High=1;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

Common_Count=0;

Fine_Count=0;

T2_Initialize_Motor();

Side_Ultrasound();

TR2=1;

for(Count=0;;Count++)

{

for(m=0;m<8;m++)

{

P0=motor_FFW[m];

delay(time);

}

if(Fine_Adj)

{

Fine_Count++;

}

if(Area) //检测到黑线

{

Common_Count++;

if(Common_Count==Up_MACHINE_ARM)

{

// DEC1();

// delay1ms(300);

Machine_Arm_Up();

while(!OK);

REV();

break;

/* Machine_Arm_Up();

while(!OK);

break; */

}

}

if(Fine_Count==4)

{

if(Left_Fine_Adj)

{

EN_Left_A=1;

EN_Left_B=1;

Left_Fine_Adj=0;

}

if(Right_Fine_Adj)

{

EN_Right_A=1;

EN_Right_B=1;

Right_Fine_Adj=0;

}

Fine_Count=0;

Fine_Adj=0;

TR0=1;

ET0=1;

}

if(Permit_Fine_Adj)

{

if(Left_Fine_Adj)

{

EN_Left_A=0;

EN_Left_B=0;

}

if(Right_Fine_Adj)

{

EN_Right_A=0;

EN_Right_B=0;

}

Permit_Fine_Adj=0;

Fine_Adj=1;

}

}

}

void FFW_Speed(void) //放下臂,倒车结束{

time=SPEED_START;

Abnormal_High=1;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

Fine_Count=0;

T2_Initialize_Motor();

Side_Ultrasound();

TR2=1;

for(Common_Count=0;;)

{

for(m=0;m<8;m++)

{

P0=motor_FFW[m];

delay(time);

}

if(Fine_Adj)

{

Fine_Count++;

}

if(Area) //检测到黑线

{

TR0=0;

ET0=0;

Common_Count++;

if(Common_Count==DOWN_MACHINE_ARM-DEC_LIMIT1)

{

DEC1();

Machine_Arm_Down();

while(!OK);

REV1();

break;

}

}

if(Fine_Count==4)

{

if(Left_Fine_Adj)

{

EN_Left_A=1;

EN_Left_B=1;

Left_Fine_Adj=0;

}

if(Right_Fine_Adj)

{

EN_Right_A=1;

EN_Right_B=1;

Right_Fine_Adj=0;

}

Fine_Count=0;

Fine_Adj=0;

TR0=1;

ET0=1;

}

if(Permit_Fine_Adj)

{

if(Left_Fine_Adj)

{

EN_Left_A=0;

EN_Left_B=0;

}

if(Right_Fine_Adj)

{

EN_Right_A=0;

EN_Right_B=0;

}

Permit_Fine_Adj=0;

Fine_Adj=1;

}

}

}

void FFW_long(void)

{

ET2=0;

TR2=0;

time=SPEED_START;

T2_Initialize_Motor();

Abnormal_High=0;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

TR2=1;

ET2=1;

for(;;)

{

for(m=0;m<8;m++)

{

P0=motor_FFW[m];

delay(time);

}

if((P1==0xf9)||(P1==0xfb)||(P1==0xfb))

{

DEC();

break;

}

}

}

void DEC(void)

{

ET2=0;

TR2=0;

T2_Initialize_Motor();

Abnormal_High=0;

Abnormal_Low=0;

ACC_Flag=0;

DEC_Flag=1;

ET2=1;

TR2=1;

for(Common_Count=0;Common_Count

for(m=0;m<8;m++)

{

P0=motor_FFW[m];

delay(time);

}

}

}

void DEC_(void)

{

ET2=0;

TR2=0;

T2_Initialize_Motor();

Abnormal_High=0;

Abnormal_Low=0;

ACC_Flag=0;

DEC_Flag=1;

ET2=1;

TR2=1;

for(Common_Count=0;Common_Count

for(m=0;m<8;m++)

{

P0=motor_FFW[m];

delay(time);

}

}

}

void DEC1(void)

{

ET2=0;

TR2=0;

T2_Initialize_Motor();

Abnormal_High=0;

Abnormal_Low=0;

ACC_Flag=0;

DEC_Flag=1;

ET2=1;

TR2=1;

for(Common_Count=0;Common_Count

{

for(m=0;m<8;m++)

{

P0=motor_FFW[m];

delay(time);

}

}

}

void TurnLeft(void)

{

EN_Left_A=1;

EN_Left_B=1;

EN_Right_A=1;

EN_Right_B=1;

TR2=0;

ET2=0;

T2_Initialize_Motor();

time=SPEED_START;

Abnormal_High=0;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

TR2=1;

ET2=1;

for(Common_Count=0;Common_Count

for(m=0;m<8;m++)

{

P0=motor_TurnLeft[m];

delay(time);

}

if(Common_Count==TurnRight_LIMIT-DEC_LIMIT)

{

ET2=0;

TR2=0;

T2_Initialize_Motor();

Abnormal_High=0;

Abnormal_Low=0;

ACC_Flag=0;

DEC_Flag=1;

ET2=1;

TR2=1;

}

}

}

void TurnRight(void)

{

EN_Left_A=1;

EN_Left_B=1;

EN_Right_A=1;

EN_Right_B=1;

TR2=0;

ET2=0;

T2_Initialize_Motor();

time=SPEED_START;

Abnormal_High=0;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

TR2=1;

ET2=1;

for(Common_Count=0;Common_Count

for(m=0;m<8;m++)

{

P0=motor_TurnRight[m];

delay(time);

}

if(Common_Count==TurnRight_LIMIT-DEC_LIMIT)

{

ET2=0;

TR2=0;

T2_Initialize_Motor();

Abnormal_High=0;

Abnormal_Low=0;

ACC_Flag=0;

DEC_Flag=1;

ET2=1;

TR2=1;

}

}

}

void REV(void)

{

TR2=0;

ET2=0;

time=SPEED_START;

Abnormal_High=1;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

T2_Initialize_Motor();

TR2=1;

for(Common_Count=0;Common_Count

for(m=0;m<8;m++)

{

P0=motor_REV[m];

delay(time);

}

if(Common_Count==REV_LIMIT-DEC_LIMIT1)

{

ET2=0;

TR2=0;

T2_Initialize_Motor();

Abnormal_High=0;

Abnormal_Low=0;

ACC_Flag=0;

DEC_Flag=1;

ET2=1;

TR2=1;

}

}

}

void BarModule(void)

{

switch(P1)

{

case 0xf1:

{

Bar_DEC_Count++;

TR0=0;

ET0=0;

DEC_();

TurnLeft();

FFW_long();

TurnRight();

TR2=0;

ET2=0;

time=SPEED_START;

Abnormal_High=0;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

TR2=1;

ET2=1;

Side_Ultrasound();

} break;

case 0xf3:

{

Bar_DEC_Count++;

TR0=0;

ET0=0;

DEC_();

TurnLeft();

FFW_long();

TurnRight();

TR2=0;

ET2=0;

time=SPEED_START;

Abnormal_High=0;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

TR2=1;

ET2=1;

Side_Ultrasound();

} break;

case 0xf5:

{

Bar_DEC_Count++;

TR0=0;

ET0=0;

DEC_();

TurnLeft();

FFW_long();

TurnRight();

TR2=0;

ET2=0;

time=SPEED_START;

Abnormal_High=0;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

TR2=1;

ET2=1;

Side_Ultrasound();

} break;

case 0xfb:

{

Bar_DEC_Count++;

TR0=0;

ET0=0;

DEC_();

TurnLeft();

FFW_long();

TurnRight();

TR2=0;

ET2=0;

time=SPEED_START;

Abnormal_High=0;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

TR2=1;

ET2=1;

Side_Ultrasound();

} break;

case 0xf8:

{

Bar_DEC_Count++;

TR0=0;

ET0=0;

DEC_();

TurnRight();

FFW_long();

TurnLeft();

TR2=0;

ET2=0;

time=SPEED_START;

Abnormal_High=0;

Abnormal_Low=0;

DEC_Flag=0;

ACC_Flag=1;

TR2=1;

ET2=1;

Side_Ultrasound();

} break;

case 0xfa:

{

Bar_DEC_Count++;

TR0=0;

ET0=0;

DEC_();

TurnRight();

FFW_long();

TurnLeft();

TR2=0;

ET2=0;

超声波传感器测距原理

芀一、超声波测距原理 肅超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的 同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S , 即: 膂S = v·△t /2 ① 芀这就是所谓的时间差测距法。 蝿由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0. 6 米/ 秒。如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度T 时, 超声波传播速度V 的计算公式为: 螅V = 331.45 + 0.607T ② 芄 声 速 确 定

后, 只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。 薂二、系统硬件电路设计 腿图2 超声波测距仪系统框图 蒆基于单片机的超声波测距仪框图如图 2 所示。该系统由单片机定时器产生 40KHZ 的频率信号、超声波传感器、接收处理电路和显示电路等构成。单片机 是整个系统的核心部件,它协调和控制各部分电路的工作。工作过程:开机,单 片机复位,然后控制程序使单片机输出载波为40kHz 的10 个脉冲信号加到超声 波传感器上,使超声波发射器发射超声波。当第一个超声波脉冲群发射结束后, 单片机片内计数器开始计数,在检测到第一个回波脉冲的瞬间,计数器停止计数, 这样就得到了从发射到接收的时间差△t;根据公式①、②计算出被测距离,由显示装置显示出来。下面分别介绍各部分电路: 莅1 、超声波发射电路 螀超声波发射电路如图3所示,89C51 通过外部引脚P1.0 输出脉冲宽度为250 μ s , 40kHz 的10 个脉冲串通过超声波驱动电路以推挽方式加到超声波传感器而发 射出超声波。由于超声波的传播距离与它的振幅成正比,为了使测距范围足够远, 可对振荡信号进行功率放大后再加在超声波传感器上。 薈图3中T为超声波传感器,是超声波测距系统中的重要器件。利用逆压电效应 将加在其上的电信号转换为超声机械波向外辐射; 利用压电效应可以将作用在它 上面的机械振动转换为相应的电信号, 从而起到能量转换的作用。市售的超声 波传感器有专用型和兼用型,专用型就是发送器用作发送超声波,接收器用作接

智能化机器人设计说明书

机械装备设计制造综合技能大赛 设 计 说 明 书 姓名:孙小平洪耀林徐海昌 指导老师:黄伟玲 2014年9月17日 江西·赣州

摘要 随着计算机技术,人工智能技术的迅速发展以及智能采集器的不断改进和推陈出新,智能信息采集装置已经取得了很大进展。但是对于应用比较复杂通用性较高的全自动信息采集车还没有突破性的进展。智能数据信息采集车的研究将会告别信息相互孤立缺乏联动性的现象,是一个复杂的,面向智能化的,不断发现的过程。近年来,很多关于信息采集的研究和设计,尤其是智能数据信息采集车更是吸引了很多人的眼球。对于智能信息采集车来说,不但要有环境信息获取功能,还要有对信息理解和信息处理的功能。对自动信息采集车的研究是针对环境空间的识别,然后建立相应数据通道,通过雷达和无线装置把获取的数据传送到终端。 智能信息采集车采用了应用范围广,性价比高的基于单片机的多数据通道采集系统,将来自传感器的信号通过转换器转换为数字信号后由单片机采集然后利用SPI通信将数据送到主机进行数据的存储后期处理与显示实现数据处理功能强大的智能化高端信息采集设备。 智能数据信息采集车是一个集自动驾驶、环境感知、规划决策等功能于一体的综合系统。它集中的运用了人工智能、导航、传感器及自动控制等技术;应用了计算机、信息传递、通信交流等现代装备,是典型的高新技术综合体。 关键词:智能信息采集车、智能化、传感器、数据通道、现代装备

第一章绪论 (1) 1.1 信息采集的现状及发展概述 (1) 1.2信息采集车国内外研究现状 (2) 1.3智能信息采集车的背景意义 (4) 1.4 设计要求及内容 (6) 第二章智能信息采集车的结构与工作原理 (6) 2.1 数据获取装置的设计 (6) 2.2 行走方案选择 (7) 2.3基本结构 (9) 2.4工作原理 (11) 第三章智能信息采集车的功能与特点 (12) 3.1 智能信息采集车的功能 (12) 3.2智能信息采集车的特点 (13) 第四章智能信息采集车的设计思路 (15) 4.1 基本工作思路 (15) 4.2动力选择思路 (15) 4.3设计后的调整 (16) 第五章总结与展望 (17) 参考文献 (18)

基于51单片机设计智能避障小车

单片机设计智能避障小车 摘要 利用红外对管检测黑线与障碍物,并以STC89C51单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由L298N 驱动电路完成,速度由单片机输出的PWM波控制。本文首先介绍了智能车的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计实物图,及完整的C语言程序。 关键词:智能小车;51单片机;L298N;红外避障;寻迹行驶 abstract Using infrared detection black and obstacles to the line and STC89C51 microcontroller as the control chip to control the speed of the electric car and steering, so as to realize the function of automatic tracking and obstacle avoidance. Which the car driven by the L298N driver circuit is completed, the speed of the microcontroller output PWM wave control. This article first introduces the development of the intelligent car prospect, then introduces the design idea, the subject selection of each module circuit and working principle of the circuit, the design process of the subject is summarized and prospect with each module circuit principle diagram, and the real figure design, and complete C language program. Key words: smart car; 51 MCU; L298N; infrared obstacle avoidance; track driving

10米超声波测距仪设计实现

10米超声波测距仪设计实现 一、功能要求 设计一个超声波测距仪,可以测量测距仪与被测物体间的距离。要求测量范围0.1~10.00米,测量精度1cm,测量时与被测物体不接触,并将测量结果显示出来。 二、系统硬件电路 1.单片机系统及显示电路 单片机采用89C51或89S51。采用12MHz高精度晶振,以获得较稳定的时钟频率,减小测量误差。单片机用p1.0端口输出超声波换能器所需的40Hz方波信号,利用外中断0口监测超声波接受电路输出的返回信号。显示电路采用简单实用的4位共阳极LED数码管,段码用74LS244驱动,位用PNP8550驱动。 2.超声波发射电路 主要由74LS04和超声波换能器T构成。这种推挽形式的方波信号可以提高发射强度。反相器并联提高驱动能力。上拉电阻R1、R2提高74LS04输出高电平的驱动能力。 3.超声波接收电路 CX20106A是接收38KHz超声波的芯片,可利用它做接收电路。 4.系统程序 超声波测距仪的软件主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序组成。 主程序:

开始 系统初始化 发送超声波脉冲 等待反射超声波 计算距离 显示结果 丢系统初始化,设置T0为方式1,EA=1,P0,P2清0。为避免超声波发射器直接接传送到接收器,需要延时0.1ms。由于时钟的频率是12MHz,计数器每计一个数就是1us。如果按声速344m/s,则d=c*t/2=172T0 cm 超声波发生子程序:通过P1.0端口发送2个左右超声波脉冲信号,脉宽12us,同时T0计数。 超声波测距仪利用中断0检测返回的超声波,一旦接收到返回的信号,立即进入中断。中断后就立即关闭T0停止计时。如果计数器益出则测试不成功。 3方案设计和选择 根据本次设计的要求,方案的选择应力求实用性强,性价比高,使用简单。 3.1 超声波测距的基本原理 谐振频率高于20kHz的声波被称为超声波。超声波

移动机器人超声波测距避障系统设计

龙源期刊网 https://www.wendangku.net/doc/5614280030.html, 移动机器人超声波测距避障系统设计 作者:李恒徐小力左云波 来源:《现代电子技术》2014年第03期 摘要:测距避障是移动机器人适应未知复杂环境的能力之一,准确测出移动机器人和障碍物之间的距离是关键。以dsPIC33FJ256MC710单片机为核心研究设计了一种移动机器人超声波测距避障系统。该系统利用脉冲回波法测距,针对超声波在空气中的传播速度受环境温度的影响,设计了超声波速度温度补偿电路。实验结果表明该超声波测距避障系统测量数据准确,能够满足移动机器人在复杂环境中避障的需求。 关键词:移动机器人;测距避障;超声波;硬件电路 中图分类号: TN710?34; TP73 文献标识码: A 文章编号: 1004?373X(2014) 03?0157?03 Design of obstacle avoidance system with ultrasonic ranging based on mobile robot LI Heng, XU Xiao?li, ZUO Yun?bo (Ministry of Education Key Laboratory of Modern Measurement & Control Technology,Beijing Information Science & Technology University, Beijing 100192, China) Abstract:Obstacle avoidance with ranging is one of robot′s competencies in adapting to unknown complex environment. It is very important to measure the distance between the robot and the obstacles accurately. An obstacle avoidance system with ultrasonic ranging by mobile robot is designed with dsPIC33FJ256MC710 as the core. The distance between the robot and the obstacles is measured with pulse echo method. Ultrasonic velocity temperature compensation circuit is designed for ultrasonic velocity changes as the ambient temperature. Experimental results show that the system ranging accurately and is able to meet the requirement of obstacle avoidance for mobile robot in complex environments. Keywords: mobile robot; obstacle avoidance by ranging; ultrasonic; hardware circuit 0 引言 在某些特种环境,如反恐排爆、灾难救援等现场,特种机器人被广泛地用于代替人类执行信息获取、搜索救援、环境检测等工作。作业环境的复杂多变,要求特种机器人有较好的环境适应能力,能够在未知或者部分未知的环境中通过传感器获取周围环境信息,包括障碍物的尺寸,位置和距离等信息,并使机器人找到一条无碰撞最优路线[1]。移动机器人测距避障的传

智能机器人的现状和发展趋势

智能移动机器人的现状和发展 姓名 学号 班级:

智能移动机器人的现状及其发展 摘要:本文扼要地介绍了智能移动机器人技术的发展现状,以及世界各国智能移动机器人的发展水平,然后介绍了智能移动机器人的分类,从几个典型的方面介绍了智能移动机器人在各行各业的广泛应用,讨论了智能移动机器人的发展趋势以及对未来技术的展望,最后提出了自己的建议和设想,分析我国在智能移动机器人方面发展并提出期望。 关键词:智能移动机器人;发展现状;应用;趋势 1引言 机器人是一种可编程和多功能的,用来搬运材料、零件、工具的操作机,或是为了执行不同的任务而具有可改变和可编程动作的专门系统。智能移动机器人则是一个在感知 - 思维 - 效应方面全面模拟人的机器系统,外形不一定像人。它是人工智能技术的综合试验场,可以全面地考察人工智能各个领域的技术,研究它们相互之间的关系。还可以在有害环境中代替人从事危险工作、上天下海、战场作业等方面大显身手。一部智能移动机器人应该具备三方面的能力:感知环境的能力、执行某种任务而对环境施加影响的能力和把感知与行动联系起来的能 力。智能移动机器人与工业机器人的根本区别在于,智能移动机器人具有感知功 能与识别、判断及规划功能[1] 。 随着智能移动机器人的应用领域的扩大,人们期望智能移动机器人在更多领 域为人类服务,代替人类完成更复杂的工作。然而,智能移动机器人所处的环境 往往是未知的、很难预测。智能移动机器人所要完成的工作任务也越来越复杂; 对智能移动机器人行为进行人工分析、设计也变得越来越困难。目前,国内外对 智能移动机器人的研究不断深入。 本文对智能移动机器人的现状和发展趋势进行了综述,分析了国内外的智能 移动机器人的发展,讨论了智能移动机器人在发展中存在的问题,最后提出了对 智能移动机器人发展的一些设想。 1

智能避障小车设计

江阴职业技术学院项目设计报告 项目:超声波避障小车的设计与制作 专业应用电子技术专业 学生姓名 班级10应用电子()班 学号 指导教师 完成日期

智能小车是一种能够通过编程手段完成特定任务的小型化机器人,它具有制作成本低廉,电路结构简单,程序调试方便等优点。由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。 本论文介绍的是具有自动避障功能的智能小车的设计与制作(以下简称智能小车),论文对智能小车的方案选择,设计思路,以及软硬件的功能和工作原理进行了详细的分析和论述。经实践验收测试,该智能小车的电路结构简单,调试方便,系统反映快速、灵活,设计方案正确、可行,各项指标稳定、可靠。

Smart cars can be programmed to perform a specific task means the miniaturization of robot, it has to make cost is low, circuit simple structure, convenient program test. Because of it has strong interest, intelligent robot car favored by the majority of the university students' enthusiasts and love. This paper introduces the is a automatic obstacle avoidance function of intelligent car design and production (hereinafter referred to as the smart car), the thesis to the intelligence of the car scheme selection, design idea, and the implementation of hardware and software function and working principle of a detailed analysis and discusses. After practice acceptance test, this intelligent car circuit structure is simple, convenient debug, fast, flexible system reflect, correct and feasible design scheme, each index is steady and reliable.

超声波液位测量系统设计

超声波液位测量系统设计阳华忠孙传友长4女学电,;学M4¨025 鞭蛹隧鞠獬黼黜裂簿螽缓灏醺戳黼{t*t☆sPcEoBl^女m●^‰,LMl812≈,《{目^《tE“&”^#&*雎*t{《.*#自&m£i”1“女T一**¨t《,”‘f#十∞}m*.mtT≈,《ttt湿度.*^.B§f#境目t*Ⅻt十¥∞#自.tm7}#《*目^#^*&镕■t十来目f&.#^i&&■t¨#*t.豳■蕾鞠积整黼燃霸麟醐黼}E#.}m*,《’女;LMlB12 1引言 n【】__超市披挂求班}K迅速.4、M渗墟刮*个镯域.¨仃军¥Ⅸ玎驯缭婶冉IIii#8有rL£的“川.漓f±☆1删*和托M也址日常t僻巾十最盛的邻j域+披ft的删*片证卉他毒。恻如羞Ⅲ往洲n液俺U锌“,删屉池位,赳胜补偿趟自浊扯删量池似等等m采邢t些方法会J、腰劣∞环境和抽悼峦‘£的坐化给删*带m#k的瞄莘…毕“;fm悼具有蝇蚀什…嘲蚀删抽越^¨埘I№-陋,奉&计性出r坫f浮rn0磐【匕浊ms},cl,∞l^.1…单Jt扎LMl8l二越r々渡々m推成,0片#【f占,l的古洼自g{kI。硅U越。水《统可蒜性-≈.近H1fj:%精度高。 2参比法液位测量原理 警比洼H娘理是利用超}"往换能8发一¨110趟-;浊忸冲]Ⅲ过’Ln《传播0g鹰崔ft转^的并【日处掰成fi针日睦f々到搀能*片搏M接收。精Ⅲ忧5超声被¨垃日十纠挡牧自坩_{,J就“J眦牯确地计算Ⅲ随Ⅻ4披体的触协。其原H圳Ⅵl,j超声藏#射Ji掳4£趟十波∞传感*就鼻m趺控憧剑州柬m泄f:号求…濉足“枉准环处r“生的删∞帅时问为【o。B求H“#是I_I_泞r灶产’p的,删址的时问山r6掉F陆触洲浦傩的披1Ⅳ峦fLm坐化超J:一被“行早以j,的7L秆m。…々播。山十越钠【d的j{罐中1怍,超F*纠K,*q■fJ}”}千肌蛳的琏鹰+H‘÷,山ft可得 咖} P止巾vf)是超,r漓到拉准环∞迹Ⅱ。V是超声涟刊iTr顺_fii自0Jl嚏.“r“推111: ⅢJ+ H一=_』 胜艟Ⅻ目演津的液化- ¨】|0_hd }r=H卜坐1一d l^?hH是储删砝液体的涟n h-挂地奇被传晦%爿存*睡带的m离;h 是超■被心堪*Ⅻ",琐部的H捕.酒过 删%的时州“弹其值?ho是超声被f々盛* 判}tt*M一的啦离.一q椒擗址日】肫m】稠整棱 挂环的r*度;d是泞r项而刊油自帕* 离。m此”rⅢ删址日f々出#艘∞谴虚£ 芏*仃枉州温睦m鹿,≮H描{啊超 Jh挫∞速疃拚呆统带沫舶m菇。 法i坑錾盛观J#功矩{【l减少i统琨 蕈麓世gm满Mmr要求苴M t管的底口?‘o№删f&体连通恒f*删陂 似进^【I|II最昔:¨’,浮于的密度90川、 T触目哺体的密嘘.JL汗子具备托惭蚀 忡;其。,抟c*环_胛丁^选有利于起} *i川nⅡ“抖;】lH,Ⅲl量管录I¨抗腐蚀 忡蝗的十诱钢村料. 囤1臆理犀 3硬件原理电路 牟系统纳简嘤碰什}b路¨RI!.性自f 和拄牧Ⅻ什电路目ⅢIM1s11趟■胜々… 鞋成oI_l。M1sl二硅种既能K进《能 接性超声波的0H呆¨』适块鞋戍,,l以简 ft№m“牿提高{统的一,J稚性。0l-内 郫乜拈:胩f-p州制c生妊落#,,*增& 接收∞,脉冲啁,¨拴删#啭自抑制≈, ‘j8%【☆j自电。Fn、f.1MI812处于发时 模式.箱】符嘟外拄c1lik亡m瞎的世蚶 矗摊投的[怍撷牛LlCI扳蒿增蚰被憾为 振荡醺走,振荡信≈!{驱r女坡★后,M13管 wⅡ6管脚输m。 ’_8管Ⅷ为Ⅱl“平时.iMl8l!处于 拉收懊文,趣声踺1々媾g摇收“连日的衄 市披1j号%电彝耦仟…4符脚输^再经 内郫哺级般^艘凡岳的f;}轴U】管删 的喈扳日路取出的竹母起送剑幢删£. 目时竹檗F一也披捡删,-4“通过l7管W外 接的电料进行滤眭。’1管M【L的电Ⅲ盘 拜小州*能触牲怪Ⅻ蝌祝j,器&蜒蚓簋 T转¥”IⅢ” 圉3主程序流程圈 图2简要磋件电路目

超声波传感器及其测距原理

安全避障是移动机器人研究的一个基本问题。障碍物与机器人之间距离的获得是研究安全避障的前提,超声波传感器以其信息处理简单、价格低廉、硬件容易实现等优点,被广泛用作测距传感器。本超声波测距系统选用了SensComp公司生产的Polaroid 6500系列超声波距离模块和600系列传感器,微处理器采用了ATMEL公司的AT89C51。本文对此超声波测距系统进行了详细的分析与介绍。 1、超声波传感器及其测距原理 超声波是指频率高于20KHz的机械波[1]。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应[1]的原理将电能和超声波相互转 化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。 超声波测距的原理一般采用渡越时间法TOF(time of flight)[2]。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的

声源与障碍物之间的距离,即 1、硬件电路设计 我们设计的超声波测距系统由Polaroid 600系列传感器、Polaroid 6500系列超声波距离模块和AT89C51单片机构成。 2.1 Polaroid 600系列传感器 此超声波传感器是集发送与接收一体的一种传感器。传感器里面有一个圆形的薄片,薄片的材料是塑料,在其正面涂了一层金属薄膜,在其背面有一个铝制的后板。薄片和后板构成了一个电容器,当给薄片加上频率为49.4kHz、电压为300VAC pk-pk的方波电压时,薄片以同样的频率震动,从而产生频率为49.4kHz的超声波。当接收回波时,Polaroid 6500内有一个调谐电路,使得只有频率接近49.4kHz的信号才能被接收,而其它频率的信号则被过滤。 Polaroid 600超声传感器发送的超声波具有角度为30度的波束角[3],如图1所示:

超声波测距及红外避障小车的设计

超声波测距及红外避障小车的设计 发表时间:2018-06-11T11:51:58.193Z 来源:《电力设备》2018年第1期作者:赵勇柳青张腾文 [导读] 摘要:介绍一种超声波测距及红外避障小车的设计,根据功能需求,进行系统方案设计,进而进行系统模块设计。 (沈阳理工大学信息科学与工程学院辽宁沈阳 110159) 摘要:介绍一种超声波测距及红外避障小车的设计,根据功能需求,进行系统方案设计,进而进行系统模块设计。本小车将超声波测距和红外避障结合起来,增加了系统的可实现性。 关键词:超声波测距;红外避障;小车;设计 概论 在当今世界,复杂的环境不断对科技提出越来越高的要求,要求我们探寻更为合适的技术来适应复杂环境的变化。超声波测距因其可以直接测量近距离目标,纵向分辨率高,适用范围广,方向性强,并具备不受光线、烟雾、电磁干扰等因素影响,且覆盖面积大等优势被广泛应用;红外避障则是通过检测红外光遇到障碍物反射来感知障碍物的存在,反馈至控制器,单片机进行驱动报警以有效避障。本智能小车将超声波测距技术和红外避障技术相结合,为现代智能化生活中,非接触特殊环境下的探测及测距、安全保护、车载倒车等提供可靠、实时有效的保障。 1.功能需求 该超声波测距及红外避障小车将测距功能和避障功能相结合,在获得距离信息的基础上进行有效避障,并将距离显示在LCD1602液晶显示屏上,当距离小于一定数值时,小车将转向。小车使用电机进行驱动,采用AT89S52单片机作为核心控制器进行有效控制。 2.系统方案设计 本智能小车由超声波测距系统、温度补偿系统、摄像头传输系统、红外避障系统、WIFI系统、显示系统六部分组成。小车的运行由AT89S52芯片作为核心控制器,测距和红外避障由超声波传感器和红外传感器进行数据采集,显示系统部分由LCD1602液晶显示屏来完成,温度传感器采集外界环境温度进行温度补偿,摄像头和WIFI模块完成画面的传输和设备的控制,如图1所示。 图1 系统硬件组成 3.系统模块设计 3.1超声波测距模块 本小车设计的测距系统采用脉冲回波法测距,以AT89S52芯片为核心,通过超声波传感器发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中碰到障碍物面阻挡就立即反射回来,超声波接收器收到返回波时就立即停止计时。如果设超声波的传播速度为计时器记录的时间为,可计算出发射距离障碍物面的距离,即 3.2温度补偿模块 温度补偿模块主要是对温度进行补偿,以减小测距误差。温度传感器主要运用的是DS18B20。每次温度测量前,首先会将温度寄存器和低温度系数振荡器预置-55℃所对应的基数值,而高温度系数振荡器会根据环境温度确定一个振荡周期。然后,低温度系数振荡器开始振荡,对应的计数器对振荡脉冲进行减计数,直到计数器中被预置的值减为0。此时,温度寄存器的值加1,而低温度系数振荡器的值重新被预置到-55℃所对应的基数值,如此重复直到高温度系数振荡器停振,此时,温度寄存器的值就是所要测的温度值。 3.3摄像头和WIFI模块 摄像头将道路实时画面传输到手机或PC等终端设备上,操作者可以直观地了解到道路信息。通过手机或PC上的WIFI与在小车上的WIFI模块相协同,可以在手机或PC端控制小车的前进、后退、拐弯等动作,该系统便于灵活控制小车动作、易于操作。 3.4红外避障模块 避障传感器利用物体的反射性质来实现避障功能。在一定范围内,如果没有障碍物,发射出去的红外线,因为传播距离越远而逐渐减弱,最后消失;如果有障碍物,红外线遇到障碍物,被反射到达传感器接收头,传感器检测到这一信号,确认正前方有障碍物,并将信号传给单片机,单片机对信号进行系统的处理分析,从而协调小车两轮工作,完成躲避障碍物的动作。 3.5显示模块 将测得的温度和距离通过传感器送入到单片机中进行处理,将处理后的结果显示在液晶上,可以直观地读出温度和距离参数,使参数可视化,便于实时监测测距精度。

工业机器人的智能化技术讲课稿

机器人的智能化技术 学院:机械工程学院 班级: 姓名: 学号:

一、前言 从感觉到记忆到思维这一过程,称为“智慧”,智慧的结果就产生了行为和语言,将行为和语言的表达过程称为“能力”,两者合称“智能”。智能机器人之所以叫智能机器人,这是因为它有相当发达的“大脑”。在脑中起作用的是中央计算机,这种计算机跟操作它的人有直接的联系。最主要的是,这样的计算机可以进行按目的安排的动作。 大多数专家认为智能机器人至少要具备以下三个要素:一是感觉要素,利用形形色色的内部信息传感器和外部信息传感器,如视觉、听觉、触觉、嗅觉,用来认识周围环境状态;二是运动要素,除具有感受器外,它还有效应器,作为作用于周围环境的手段,对外界做出反应性动作;三是思考要素,根据感觉要素所得到的信息,思考出采用什么样的动作。感觉要素包括能感知视觉、接近、距离等的非接触型传感器和能感知力、压觉、触觉等的接触型传感器。这些要素实质上就是相当于人的眼、鼻、耳等五官,它们的功能可以利用诸如摄像机、图像传感器、超声波传成器、激光器、导电橡胶、压电元件、气动元件、行程开关等机电元器件来实现。对运动要素来说,智能机器人需要有一个无轨道型的移动机构,以适应诸如平地、台阶、墙壁、楼梯、坡道等不同的地理环境。它们的功能可以借助轮子、履带、支脚、吸盘、气垫等移动机构来完成。在运动过程中要对移动机构进行实时控制,这种控制不仅要包括有位置控制,而且还要有力度控制、位置与力度混合控制、伸缩率控制等。智能机器人的思考要素是三个要素中的关键,也是人们要赋予机器人必备的要素。思考要素包括有判断、逻辑分析、理解等方面的智力活动。这些智力活动实质上是一个信息处理过程,而计算机则是完成这个处理过程的主要手段。 智能的发达是第三代机器人的一个重要特征。人们根据机器人的智力水平决定其所属的机器人代别。有的人甚至依此将机器人分为以下几类:受控机器人——“零代”机器人,不具备任何智力性能,是由人来掌握操纵的机械手;可以训练的机器人——第一代机器人,拥有存储器,由人操作,动作的计划和程序由人指定,它只是记住(接受训练的能力)和再现出来;感觉机器人——机器人记住人安排的计划后,再依据外界这样或那样的数据(反馈)算出动作的具体程序;智能机器人——人指定目标后,机器人独自编制操作计划,依据实际情况确定动作程序,然后把动作变为操作机构的运动。因此,它有广泛的感觉系统、智能、模拟装置(周围情况及自身——机器人的意识和自我意识) 二、发展过程 起初,机器人的本体上没有智能单元只有执行机构和感应机构,它具有利用传感信息(包括视觉、听觉、触觉、接近觉、力觉和红外、超声及激光等)进行传感信息处理、实现控制与操作的能力。受控于外部计算机,在外部计算机上具有智能处理单元,处理由受控机器人采集的各种信息以及机器人本身的各种姿态和轨迹等信息,然后发出控制指令指挥机器人的动作。 随着科学技术的进步,机器人通过计算机系统与操作员或程序员进行人-机对话,实现对机器人的控制与操作。虽然具有了部分处理和决策功

智能避障小车设计--毕业设计完整版-附程序编程

毕业设计设计题目:智能避障小车设计 系别:机电工程系 班级:测控技术与仪器 姓名:XXX 指导教师: XXX

智能小车设计 摘要 随着近年来机器人的智能水平不断提高,其中机器人的感觉传感器种类越来越多,而视觉传感器成为自动行走和驾驶的重要部件。智能小车可应用于无人工厂,仓库,服务机器人等领域解决一些高危环境下的难题。同时单片机技术的迅速发展使得机器人的智能控制更加智能化,人性化。 该设计是利用光电传感器以一定的频率发射红外线来检测障碍物,然后将检测信号发送到STC89C52单片机,并以STC89C52单片机为控制芯片进而电动小汽车的速度及转向,以此实现自动避障的功能。其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波调速控制。本设计结构简单,较容易实现,与实际相结合,现实意义很强,但具有高度的智能化、人性化,一定程度体现了智能。 关键词:智能小车; STC89C52单片机; L298N; PWM波

Design Of Smart Car Abstract Along with the robot's intelligent level rises ceaselessly, the types of robot sensory sensor are more and more, and the vision sensor have become the important part in the automatic walking and driving .Smart car can be applied to unmanned factory, warehouse, service robot and etc. to solve some high risk environment problems,At the same time,The rapid development of MCS technology makes the intelligent control of robot more intelligent ang humane. This design uses a photoelectric sensor sending a certain frequency transmitting infrared to detect obstacles, and then sends a detection signal to a STC89C52 MCS. While the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52 MCS.This design is practical ,easy realization and simple in the structure, but highly intelligent, humane, Intelligent in some degree. Key words:Smart Car; STC89C52 MCS; L298N; PWM Signa

基于单片机的超声波测距系统设计

基于单片机的超声波测距系统设计 [摘要]超声波技术是一项应用十分广泛的实用的非接触式技术。它具有传播距离远、聚向性能好、能源在传播过程中消耗缓慢等优点,而超声波测距更是借助了超声波的上述优点外还有如原理简单易懂、相关配件价格实惠等优势而被大量推崇。文章首先介绍超声波测距的测距原理和系统构架,然后分别对制作超声波测距的硬件电路和软件编程思路进行阐述,最后介绍调试超声波测距仪中的一些测试结果。 [关键词]单片机;超声波;测距系统 众所周知,城市轨道交通的检修为了不打扰正常的运营通常放在半夜进行,而在此过程中如要进行一些非接触式的检测项目时,往往由于现场的光线昏暗或是检测条件有限,通常是由检修的老员工通过自己多年的经验来主观判断是否存在误差。这样凭自己的主观工作经验而下的判断无疑是给列车的安全出行埋下了安全隐患。超声波测距技术正是一项非接触式的测距技术,它具有传播距离远、能量消耗少、聚向性能佳等优势,特别适用于传播媒介是空气的应用环境之中。由于在空气中波速较慢,因此容易检测出反射信号的信息,具有很强的分辨能力。同时,它能做到实时控制和检测可靠优势而使其具有很高的工业实用价值,因此它被广泛地应用,而且价格相对低廉,不会给企业和个人使用增加太多的成本负担。一、超声波测距的工作原理 目前超声波的测距原理主要有三种方式:分别是渡越时间检测

法、相位检测法和声波幅值检测法[1] 。相位检测法虽然通过相位之间的角度计算能够得出比较高的精确度[2],但是计算方式比较复杂,而且相关的硬件设备价格较贵;而采用声波幅值检测方法的话,主要的瓶颈在于它容易受到反射波的干扰,而造成灵敏性和精确度不高[3]。综合比较下来,渡越时间检测法的检测原理简单易懂同时反射波也不会对其造成干扰而使其灵敏度和精确度下降,最终笔者选择的超声波测距原理是渡越时间检测法。 渡越时间检测法的原理就是:检测从超声波发射器发出的超声波,经气体介质的传播到接收器的时间,即渡越时间[4]。而用在传媒介质为空气中声波的速度乘以该渡越时间就可以得出我声波总 的传播距离。由于该距离是发射到发射面后再有接收端口接收到的,因此实际的距离则是之前声波乘以渡越时间的一半。而对于时间的计算则是通过51单片机的内部定时器来实现。 测距的具体过程如下:通过超声波发射装置向某一方向或是某一反射面发射超声波,同时激发单片机内部的定时器开始计时。在超声波发射后遇到障碍物则被反射回来,之后被超声波的接收端所接收到;与此同时,单片机的内部定时器停止计时。那么在单片机的内部定时器中的这段时间就是渡越时间,之后将这段时间送给单片机进行读取并计算,最后单片机将最终的结果显示到数码管上。二、超声波测距系统的组成 整个测距系统的话主要是由c51单片机作为核心的控制系统以及发射模块、接收模块、报警模块、显示模块、电源模块等组成。具

高精度超声波测距系统设计

高精度超声波测距系统设计。 引言 利用超声波测量距离的原理可简单描述为:超声波定期发送超声波,遭遇障碍物时发生反射,发射波经由接收器接收并转化为电信号,这样测距技术只要测出发送和接收的时间差, 然后按照下式计算,即可求出距离: 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求, 因此,广泛应用于倒车提醒、建筑工地、工业现场等的距离测量。目前的测距量程上能达到百米数量级,测量的精度往往能达到厘米数量级。本文在分析现有超声波测距技术基础之上, 给出了一种改进方案,测量精度可达毫米级。 2 系统方案分析与论证 2.1 影响精度的因素分析 根据超声波测距式(1)可知测距的误差主要是由超声波的传播速度误差和测量距离传播 的时间误差引起的。 对于时间误差主要由发送计时点和接收计时点准确性确定,为了能够提高计时点选择的准确性,本文提出了对发射信号和加收信号通过校正的方式来实现准确计时。此外,当要求测距误差小于 1 mm时,假定超声波速度C=344 m/s(20℃室温),忽略声速的传播误差。则测距误差s△t<0.000 002 907 s,即2.907 ms。根据以上过计算可知,在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于1 mm的误差。使用的12 MHz晶体作时钟基准的89C51单片机定时器能方便的计数到1μs的精度,因此系统采用AT89S51的定一时器能保证时间误差在 1 mm的测量范围内。

智能超声波避障小车汇总

智能超声波避障小车 姓名: 班级: 学号:

目录 摘要 (3) 一、总体方案概述 (3) 二、总体电路原理图 (3) 三、各模块功能介绍 (4) (一)、超声波测距模块 (4) (二)、步进电机控制模块 (5) (三)、单片机控制模块 (6) 四、系统软件设计 (6) 五、应用前景 (7) 六、参考文献 (8)

摘要: 现今发达的交通在给人们带来便捷的同时也带来了许多的交通事故。 发生交通事故的因 素有很多。 当然,如果我们的汽车能够更加智能,就是说事先能预测并显示前面障碍物离车的距离,当障碍物距离很近时汽车会自动采取一些措施避开障碍物,这样就能够在很大程度上避免这些事故的发生。在本论文中,我们将会看到能够实现这一功能的智能小车。 关键字:超声波、测量、避障、单片机 一、总体方案概述 本小车使用一台AT89S51单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,并且用数码管实时的显示出来,在小车与障碍物的距离小于安全距离(用软件设定)时,小车会发出“在距您车前方x(数码显示的实时距离)米的地方有一障碍物,请您注意避让”的语音提示,并且拐弯,以避开障碍物,同时会点亮相应侧边的发光二极管作为提示信号。在避开障碍物后,小车会沿直线前进。 本系统设计的简易智能小车分为几个模块:单片机控制系统、超声波路面检测系统、前进、转弯控制电机以及方向指示灯系统。它们之间的相互关系如下图1所示。 二、总体电路原理图 图1:智能小车简要原理框架图

三、各模块功能介绍 (一)、超声波测距模块 首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。时序图如图1所示。由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。 图1:超声波模块时序图

避障小车制作讲解

智能避障小车实验报告与总结 学院:机电工程学院 专业年级:09级电气工程及其自动化 队员姓名:

智能避障小车实验报告与总结 摘要:本设计制作的是单片机控制的自动避障小汽车,以单片机为小汽车的“大脑”,红外线探头为小汽车的“眼睛”,电机为小汽车的“双足”。“大脑”控制“眼睛”去看前方是否有障碍物,当“眼睛”看到障碍后,由大脑来控制“双足”的行动方向。从而实现小汽车的自动避障。 关键词: 单片机红外线传感器避障小车 一、设计任务与要求 小车从无障碍地区启动前进,感应前进路线上的障碍物后,根据障碍物的位置选择下一步行进方向。 二、方案设计与论证 本设计制作的是单片机控制的自动避障小汽车,以单片机为小汽车的“大脑”,红外线探头为小汽车的“眼睛”,电机为小汽车的“双足”。“大脑”控制“眼睛”去看前方是否有障碍物,当“眼睛”看到障碍后,由大脑来控制“双足”的行动方向。从而实现小汽车的自动避障。电路原理简单,结构明了。如图为整个系统的框图。 根据设计要求,我们的自动避障小车主要由六个模块构成:车体框架、主控模块、探测模块、电机驱动模块组成。各模块分述如下: 1、小车车体 在设计车体框架时,我们有两套起始方案,自己制作和直接购买车身。 方案二:自己设计制作车架自己制作小车底盘,用两个直流减速电机作为主动轮,利用两电机的转速差完成直行、左转、右转、左后转、右后转、倒车等动作。减速电机扭矩大,转速较慢,易于控制和调速,符合避障小车的要求。而且自己制作小车框架,可以根据电路板及传感器安装需求设计空间,使得车体美观紧凑。但这种方法费时费力且成本较高。 方案二:购买半成品小车底盘改装,此种方案方便简洁而且价格低廉,小车各个机械部分安装完整,只需稍加改装就可以使用。而且我们主要是目的是小车控制系统的设计,因此我们采取该方案。 2、主控板 小车的主控系统,即小车的大脑,我们采用了STC89C52单片机制作的最小系统。 3、避障模块 避障方案选择,方案一:采用超声波避障。超声波受环境影响较大,电路复杂,而且地面对超声波的反射,会影响系统对障碍物的判断。

超声波测距电路

超声波测距电路 摘要:随着单片机、DSP、FPGA、CPLD技术的不断成熟,各种智能测量系统不断涌现,测距电路可以用在工业生产、医疗技术、日常生活中各个方面,典型的应用如汽车倒车告警、机器人的自动避障行走、工业上的液位、井深、管道长度等场合,本文在介绍超声波测距原理的基础上总结并讨论现有的几种电路设计方法,并提出增大测量距离及改善系统性能的实现方法。 关键词:超声波;测距;FPGA实现 1超声波是一种在弹性介质中的机械振荡,它是由与介质相接触的振荡源所引起的,其频率在20KHz以上。超声波为直线传播方式,频率越高,绕射能力越弱,但反射能力越强。超声波在介质中传播时在不同介面上具有反射的特性,由于它有指向性强、方向性好、传播能量大、传播距离较远等特点,常用于测量物体的距离、厚度、液位等。超声波的传播速度与介质的密度和弹性特性有关,它在空气中的传播速度为340m/s。发射一定频率的超声波,借助空气媒质传播,到达测量目标或障碍物后反射回来,其所经历的时间长短与超声波传播的路程的远近有关,测试传输时间可以得出距长。利用超声波特性、单片机控制、电子计数相结合可以实现非接触式测距。由于超声波检测迅速、方便、计算简单,且不受光线、电磁波、粉尘等的干扰,其测量精度较高。常用于桥梁、涵洞、隧道的距离检测中。 2使用超声波和使用激光测距的比较:基于以上介绍的超声波的特点不难区分它们的各自的适用场合,激光测距主要用于远程,如测月球到地球距离,或远距离无障碍测距,而且成本要比用超声波大,因为光速为3×10^8M/S,而一般市场上的单片机最高频率在十几至几十兆,(本人接触的ARM最大30M)如果测量的距离在十米左右,那么假设单片机别的都不做只是计数,出射光将在大约0.033us后返回,要求单片机CLK为1/0.033MHz,也就是说30M时钟频率的单片机刚发出出射激光的命令,光就已经在它的下个CLK脉冲来到了,更别提计数了,即使使用频率很高的单片机或其他器件如FPGA等在精度上将不能满足需要(通常在收发间隔中得到的计数脉冲越多精度越高)。但值得注意的是,超声波在空气中传播速度会随介质温度的升高而增大,气温每上升1℃,声波速度增加0.6mPs。所以在测量中要考虑温度变化的因素,进行温度补偿修正,减少测量误差。另外超声波在传输距离稍大时衰减很大,精度也随之降低。 3超声波发生/接收器:为了研究和利用超声波,人们研究了多种超声波发生器,常用的超声波发生器可以分为二大类,一是用电气方式产生超声波,如压电式、磁致伸缩式超声波发生器;二是用机械方式产生超声波,有加尔统笛、液哨和气流旋笛等。它们产生的超声波的频率、功率和声波特性各不相同。这里采用第一类的压电式超声波发生器,是利用压电晶体的电致伸缩现象,即压电效应。常用的压电材料有石英晶体、压电陶瓷等。在压电材料切片上施加一定频率的交变电压,当外加信号频率等于压电晶片的固有频率时,会产生电致伸缩振动,产生共振,并带动共振板振动,产生超声波。超声波的频率越高,方向性越好,但频率太高,衰减也大,传播的距离越短。考虑到实际工程测量要求,可以选用超声波的频率f=40kHz,波长λ=0.85cm。超声波的接收是利用超声波发生器的逆效应(逆压电效应)而进行工作的。当一定频率的超声波作用到压电晶体片上时,使晶体伸缩,在晶体的两端面产生交变电荷,把电荷转换成电压,再经放大输出,它的结构与发生器类似。发送和接收可以由一个超声换能器承担,它是一种既可以把电能转化为声能、又可以把声能转化为电能的器件或装置。换能器在电脉冲激励下可将电能转换为机械能,向外发送超声波;反之,当换能器处在接收状态时,它可将声能(机械能)转换为电能。超声波发生/接收器的外形和通常的驻极体话筒差不多,如果发生接收是分开的两个在安装过程中要注意它们之间的距离大概在6—8CM否则过于靠近易产生干扰。(可采用MA40LIS和MA40LIR) 4超声测距原理:最常用的超声测距方法是回声探测法。其工作原理是:使换能器向介质发射声脉冲,声波遇到被测物体(目标)后必有反射回来的声波(回波)作用于换能器上。若已知介质的声速为c,第一个回波到达的时刻与发射脉冲时刻的时间差为t,那么即可按式s=ct/2计算换能器与目标之间的距离。考虑到传感器的成本与安装的方便性,也可采用收发兼用型超声波探头,即实际距离d=s。声波的速度c与温度T有关。如果环境温度变化显著,则必须考虑温度 补偿问题。 5系统设计:

相关文档
相关文档 最新文档