文档库 最新最全的文档下载
当前位置:文档库 › 智能小车机器人宝贝车专用寻迹传感器QTI 灰度传感器说明

智能小车机器人宝贝车专用寻迹传感器QTI 灰度传感器说明

QTI传感器套件

QTI 灰度检测传感器套件(KC-S80004)产品概述

QTI循迹套件是一个可以检测黑色线带灰度级别

的传感器套件。本套件在设计中考虑到应用范围,而

将QTI传感器信号输出设计为OC门高阻状态,这样

它可适应于具有三态IO的单片机(如:A VR)进行

IO模拟量测量或开启单片机内部上拉电阻进行开关

量测量,而对于只具有普通准双向IO的单片机(如

普通C51)是无法检测OC门高阻状态,它必须要在

QTI传感器信号输出端外接一个上拉电阻,这样便可

检测黑白线(开关量)。

产品特点:

?简易的3Pin杜邦线接口

?可以输出灰度值和开关量

?配套的铜柱便于安装和卸载

?检测响应速度高,阈值任意给定

?检测功耗低

电气参数

?工作电压:5V DC

?检测距离:2-3 CM

?灰度值:0-1024

套件列表

名称数量

QTI灰度传感器4个

20cm 3Pin 杜邦线4条

10K插件电阻4个

M3*20铜柱8个

M3*6盘头带平垫螺丝8个

尼龙垫片8个

等长排针4个

面包板跳线12条

长沙市科彩电子科技有限公司

长沙市开福区五一大道202南栋B座612

详细了解QTI灰度传感器

Q T I灰度传感器是一个反射型光电传感器。是使用光电接收管

来检测物体表面反射光强度的传感器。因此这种光电传感器便可

应用在检测物体表面颜色的深度和测量一定距离的移动物体。反

射型光电传感器的结构是由一个红外发射管和一个红外接收管组

成,在一定距离内,当发射出去的红外光线被颜色深度较浅的物

体所接受时,会将这些红外光线反射回来,红外接收管便可以接

收到这个返回来的信号;若发射出去的红外光线被颜色深度较深

的物所接受时,较深的颜色物体能吸收红外光而反射回来的红光

线很弱或没有反射回来红外光线,这时接收管接收不到信号。这

样便可以用这两种状态来判断被测物体的颜色深度。用这个结构

的光电传感器再外加一些阻容件便可以将光能转为电能了。

AVR如何用三态IO检测这个QTI的模拟量信号?

以下是三态IO单片机(A VR)应用高阻状态对QTI进行灰度级别模拟量检测的连接示意图

长沙市科彩电子科技有限公司

长沙市开福区五一大道202南栋B 座612

演示案例

#include //机器人基本头文件 #include //机器人串口头文件

#define Threshold 100 //黑色与白色之间的阈值

#define LeftQti0 //接在PB0 #define LeftCenterQti 1 //接在PB1 #define RightCenterQti 2 //接在PB2 #define RightQti3 //接在PB3

// 判断黑线与白线之间的标志 // 值赋予1-表示黑线 // 值赋予0-表示白线 uint8_t sDigi0 = 0; uint8_t sDigi1 = 0; uint8_t sDigi2 = 0; uint8_t sDigi3 = 0;

/******************************************************************* 函数名: long RCtime(uint8_t sensPin) 功能:检测出灰度值

输入参数:sensPin-接QTI 的管脚号 输出参数:result -灰度值

********************************************************************/ long RCtime(uint8_t sensPin) {

long result = 0;

DDRB |= _BV(sensPin); PORTB|= _BV(sensPin);

delay_nms(1); //充电1ms

DDRB &=~_BV(sensPin); PORTB&=~_BV(sensPin);

while((PINB&_BV(sensPin))) result++; return result; }

/******************************************************************* 函数名:int main() 功能:主函数

长沙市科彩电子科技有限公司

长沙市开福区五一大道202南栋B 座612

输入参数:无 输出参数:NULL

********************************************************************/ int main() {

uart_Init(); //串口头文件

SET_DDRC3; //设置PC3为输出口 SET_DDRC2; //设置PC2为输出口 while(1) {

// 打印出QTI 传感器的灰度值

printf("LeftQti:%d ",RCtime(LeftQti));

printf("LeftCenterQti:%d ",RCtime(LeftCenterQti)); printf("RightCenterQti:%d ",RCtime(RightCenterQti) ); printf("RightQti:%d\n",RCtime(RightQti));

//--------------------- 判读黑线与白线的阈值 ----------------------------- if(RCtime(LeftQti) > Threshold)

sDigi0 = 1; //黑线

else

sDigi0 = 0; //白线

if(RCtime(LeftCenterQti) > Threshold)

sDigi1 = 1; //黑线

else

sDigi1 = 0; //白线 if(RCtime(RightCenterQti) > Threshold)

sDigi2 = 1; //黑线 else

sDigi2 = 0; //白线

if(RCtime(RightQti) > Threshold)

sDigi3 = 1; //黑线

else

sDigi3 = 0; //白线 ……

AVR 如何用三态IO 开启内部上拉电阻检测QTI 的开关量信号?

以下是三态IO 单片机(A VR )开启内部上拉电阻对QTI 进行黑白循线(开关量)检测的连接示意图

长沙市科彩电子科技有限公司

长沙市开福区五一大道202南栋B 座612

演示案例

#include //机器人基本头文件 #include //机器人串口头文件

#define LeftQti 0 //接在PB0 #define LeftCenterQti 1 //接在PB1 #define RightCenterQti 2 //接在PB2 #define RightQti 3 //接在PB3

// 判断黑线与白线之间的标志 // 值赋予1-表示黑线 // 值赋予0-表示白线 uint8_t sDigi0 = 0; uint8_t sDigi1 = 0; uint8_t sDigi2 = 0; uint8_t sDigi3 = 0;

/******************************************************************* 函数名: long IO_Switch() 功能 : IO 口开关量检测

输入参数:sensPin-接QTI 的管脚号 输出参数:result –检测状态值

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

uint8_t IO_Switch() {

长沙市科彩电子科技有限公司

长沙市开福区五一大道202南栋B 座612

DDRB = 0b1111; // 设置DDRB 为输出模式 delay_nus(230); // 延时230us DDRB = 0b0000; // 设置DDRB 为输入模式 delay_nus(230); // 延时230us return (PINB&0x0f); }

/******************************************************************* 函数名: int main() 功能 : 主函数 输入参数:无 输出参数:NULL

********************************************************************/ int main() { uart_Init(); //串口头文件 PORTB |=0x0f; //设置PB0~PB3为输出 SET_DDRC3; //设置PC3为输出口 SET_DDRC2; //设置PC2为输出口 while(1) { IO_Switch();

//------------------- 1000-------------------------------------------------- //-------------------左大转------------------------------------------------- if (IO_Switch() == 0x01) {

……

QTI 如何适应于普通C51单片机的开关量信号检测?

以下是准双向IO 单片机(普通C51)外接上拉电阻对QTI 进行黑白循线(开关量)检测的连接示意图

长沙市科彩电子科技有限公司

长沙市开福区五一大道202南栋B 座612

演示案例

/************************************************************************* 说明:

leftservo - P11 Rightservo- p10

QTI Pin: left - > Right |P24|P23|P22|P21|

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

#include #include #include

#define uint unsigned int #define uchar unsigned char

长沙市科彩电子科技有限公司

长沙市开福区五一大道202南栋B 座612

uchar QTIState ;

/******************************************************************* 函数名: Get_QTI_State () 功能 : IO 口开关量检测 输入参数:NULL

输出参数:QTIState –检测状态值

********************************************************************/ void Get_QTI_State(void) { QTIState = P2&0x1e; }

/******************************************************************* 函数名:Follow_Line () 功能 : 循迹

输入参数:QTIState 输出参数:NULL

********************************************************************/ void Follow_Line(void) { Get_QTI_State(); switch(QTIState) { case 0x10 : Rotate_Left(); //0001000 break; case 0x18 : Pivot_Left(); break; case 0x08 : Forward(); break; case 0x04 : Forward(); break; case 0x0c : Forward(); break; case 0x06 : Pivot_Right(); break; case 0x02 : Rotate_Right(); break; default : Forward(); break; } }

长沙市科彩电子科技有限公司

长沙市开福区五一大道202南栋B 座612

……

结论

QTI 传感器实际检测黑色渐变条,用模拟量检测和开关检测其对检测距离固定,而判别的有效范围阈值比较如下示意图。

255

~

注意事项:

QTI 传感器安装到机器人上时,有一个高度调整问题,不能过高也不能过低。对于模拟量检测时高度要求没有那么严格,可以用软件自定义阈值而设置检测范围。而对于开关量检测时必须要按QTI 传感器性能而定格它的安装高度,这个需要人工调整。可以事先测试每个QTI 传感器位置于何高度时可以很好的检测到黑白线。打个比方,如定格2CM 高度检测黑白线,当在2CM 高度处下方是黑线QTI 传感器信号端应该能输出高电平,而白线时输出低电平,否则必须适当调整这个高度值,满足检测黑白线的阈值高度时便可以正常工作。

由上可知:灰度测量的阈值是由软件修改时间长度而设定,开量测量的阈值是由安装高度来调整。

2012-06-26

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