导航:首页 > 操作系统 > 红外自动跟踪单片机

红外自动跟踪单片机

发布时间:2023-02-23 21:21:08

A. 用单片机如何实现人体追踪

红外跟踪,超声波跟踪。
红外跟踪:
对象携带比较强的红外源(人体体温和背景温度可能不够明显),小车向四个方向检测红外强度,向强度大的一方运动,有点类似昆虫的趋光性。
超声波跟踪:
空旷环境,小车通过超声波检测和对象的距离,大于10m舍弃,小于10m跟踪。不过因为是声波反射,所以即使目标对象够大,搜索和跟踪还是不太准确。
以上都是针对多维的,如果一维“直线”运动跟踪的话,两种方式的可行性都不低。
另外红外跟踪可以“镭射笔指路”,用光笔照射车头地面,小车根据光点相对车头位置运动。
GPS模块化太强,制作起来不一定有意思,想用GPS的话可以试着上淘宝上搜搜,看看有没有能作为参考的。
现在能想到的就这么多,你也可以自

B. 如何用单片机探测到红外感应信号

如果仅仅是判断有无信号,设置一个阈值,超过阈值输出1[或0],此时用比较器即可;热释电传感器输出的信号实际上是连续变化的,也可以用单片机的ADC采样进行数据采集后再处理.取决于你的用法.

C. 单片机红外自动感应门原理图

网上找一下就行了,或自已设计一个就得

好吧!我帮你设计了:(见图)

D. 设计一个基于单片机能自动监测目标转速并自动跟踪的旋转机构跟踪系统

这个做是没问题的,主要先处理好红外检测转速这部分然后再做后面的工作即可。

E. 如何用单片机控制红外对管检测物体,详细点,有图最好

这个很简单:你既然是对管,那么,当有物体通过您的对管之间时,就挡住了您的红外接收器通过发射器发过来的光,这样接收端就产生信号变化,您检测到这个信号变化就+1就可以了。这样就知道多少个物体过去啦。

F. 红外传感器和单片机之间怎么连接

红外传感器和单片机之间的连接方法:

红外传感器绝大部分都是通过测引脚电压换算成距离。所以一般红外都有三根引脚,VCC和GND肯定会接噻,然后信号线接到你开启单片机的ADC通道对应的引脚,读该引脚的电平换算成距离。

红外传感器如果是数据信号,有几个脚,就用单片机几个脚连接,然后根据输出信号的时序写程序读。如果是模拟信号,就得用到A/D转换电路。

(6)红外自动跟踪单片机扩展阅读:

红外传感器的相关要求规定:

1、红外线传感器利用远红外线范围的感度做为人体检出用,红外线的波长比可见光长而比电波短。红外线只由热的物体放射出来,凡是存在于自然界的物体,如人类、火、冰等等全部都会射出红外线,只是其波长因其物体的温度而有差异而已。

2、利用红外辐射的热效应,探测器的敏感元件吸收辐射能后引起温度升高,进而使某些有关物理参数发生变化,通过测量物理参数的变化来确定探测器所吸收的红外辐射。

3、红外传感器已经在现代化的生产实践中发挥着它的巨大作用,随着探测设备和其他部分的技术的提高,红外传感器能够拥有更多的性能和更好的灵敏度。

G. 单片机控制红外程序

给你一个PIC写的接收红外遥控器的程序。

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

//mcu: PIC16F883
//author:
//data:
//ver: 1.0
//********************************************************
#include <pic.h>
#include <pic16f887.h>
#include "main.h"

// 函数声明部份

void interrupt IRQ_TEST(void);
void fun_intset(void);
void set_port(void);
void fun_timerset(void);

void delay_10us(void);
void delay_130us(void);

void test_remote(void);

// 主函数
void main()
{
set_port();
fun_timerset();
fun_intset();
delay_10ms();
ram_ini();
GIE=1;

while(1)
{
asm("clrwd");

test_remote();

}
}

//端口I/O定义子程序
void set_port()
{

ANSEL =0X00; //porta io port
ANSELH=0X00; //portb io port
//TRISX BIT=1, PORTX AS INPUT
TRISA = 0x0F; //RA0-RA3 INPUT ,RA4-RA5 OUTPUT

TRISB = 0x07; //RB0 PASS0, RB1-RB2 INPUT ,RB3-RB6 OUTPUT

TRISC = 0x0F;
// TRISC = 0x03; //RC0-RC1 INPUT,RC5-RC6 OUTPUT , RC3 RC4 EEPROM SCL SDA
PORTC=0;
PORTA=0XFF;
// WPUB=0XFF;
PORTB=0X07;
}

//中断子程序
void interrupt IRQ_TEST(void)
{
if(T0IF) //Timer0中断服务子程序
{
TMR0=0xce;
T0IF=0;
timer_100us++; //100us
}

if(INTF==1)
{

INTF=0;
timer_rec=timer_100us;
timer_100us=0;
flag_rec_remote=1;
}
}

//定时器0初始化设置子程序
void fun_timerset()
{
//Timer0初始化设置
PSA=0;//Timer0 使用预分频器
//Timer0选择分频率为1:2
PS0=0;PS1=0;PS2=0;
//内部时钟定时方式,定时时间:200uS,误差:0uS
T0CS=0;
// TMR0=0x9b;

TMR0=0xce; //100us
}

/*

//定时器2初始化设置子程序
void fun_timer2set()
{

//Timer2初始化设置
//timer2使用预分频率1:1
T2CKPS0=0;T2CKPS1=0;
//timer2使用后分频率1:1
TOUTPS0=0;
TOUTPS1=0;
TOUTPS2=0;
TOUTPS3=0;
//定时器2定时时间为:200uS,误差:0uS
TMR2=0x38;
TMR2ON=1;
}

*/

//中断允许设置子程序
void fun_intset()
{
T0IE=1;//Tiemr0中断允许

INTEDG=0; //RB0 FALLAGE INTERRUPT
INTE=1;
INTF=0;

}

void ram_ini(void)
{

}
//------------------------------------------------------------

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

void delay_10us(void)
{
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
}

void delay_130us(void)
{
uchar i;

for(i=0;i<13;i++)
{
NOP;
NOP;
NOP;
}
}

void delay_10ms(void)
{
unsigned int i;

for(i=0;i<1000;i++)
{
NOP;
NOP;
NOP;
NOP;
NOP;
}
}

void test_remote(void)
{
uchar rec_ok,i;

if(flag_rec_remote==1)
{
flag_rec_remote=0;

// remote_buf[rec_byte]=timer_rec; //test use
// rec_byte++; //test use
// return; //test use

if(flag_rec_head==0)
{
if(timer_rec>=90&&timer_rec<=140) //135
{
flag_rec_head=1;
rec_byte=0;
rec_bit=0;
rec_buf=0;
return;
}
}
else
{
if(timer_rec>=8&&timer_rec<=12) //11.2
{
rec_buf=(rec_buf>>1);
rec_buf=rec_buf&0x7f;

}

else if(timer_rec>=18&&timer_rec<=22) //22
{
rec_buf=(rec_buf>>1);
rec_buf=rec_buf|0x80;
}
else if(timer_rec>=90&&timer_rec<=140)
{
flag_rec_head=1;
rec_byte=0;
rec_bit=0;
rec_buf=0;
return;
}
else
{
flag_rec_head=0;
rec_byte=0;
rec_bit=0;
rec_buf=0;
return;
}

}

if(flag_rec_head==1)
{

rec_bit++;
if(rec_bit==8)
{
remote_buf[rec_byte]=rec_buf;
rec_byte++;
rec_bit=0;
if(rec_byte==4)
{
NOP;
NOP;
NOP;
NOP;
rec_byte=0;
rec_bit=0;
rec_buf=0;
flag_rec_head=0;

}
}

}
}

}

H. 单片机和红外传感器怎么连接

循迹小车?
这种电路我做过N个,其实没有那么麻烦。
用TCRT5000红外传感器(就是两个红外管绑在一起,网上有资料),四条腿。东西不难买,大约2块钱一个。
在发射管上串连一个200欧姆电阻直接接在+5V电源和地上,别接反了。
在输出的管子上,集电极串连一个10K电阻接到+5V,射极接地,在电阻于集电极中间引一条线作为输出,平时没有障碍物的时候输出高电平,有障碍物的时候输出低电平。
就这么简单,外围只有两个电阻,调节发射管的电阻可以调节灵敏度(障碍物距离)。

I. 单片机的红外遥控的原理

1、发送端由单片机和红外发光二极管组成。
单片机控制红外发光二极管发射38KHz左右的红外光,这个红外光就可能起到传递信号的作用。你可以在你的程序中规定发射红外线时表示二进制的一个位‘1’无红外线时表示二进制的‘0’。这样你就可以发出一系列由‘1’和‘0’所级成的信号。
2、接收端是由红外接收二极管和单片机组成。
前面我们让发射端发出信号,现在接收头就开始收信号。

J. 红外传感器怎么接到单片机上

将该传感器的输出端口的信号,经过电路的处理后,达到单片机工作电压范围时,可有两种方法实现于单片机的连接。
方法一:将处理后的信息接在51或52系列单片机的P3.2或P3.3口的外部中断端口,对中断定时器的IE=0X81或IE=0X84;TCON=0X01或TCON=0X04,在中断子程序中可以读数据进行处理显示;
方法二;同上,将处理后的数据端口,接到普通的端口,即,该端口做基本的输出用的情况不需要对端口强拉高,而,做输入用时要对基本端口拉高,然后利用相关程序处理显示即可。

阅读全文

与红外自动跟踪单片机相关的资料

热点内容
linux空值 浏览:137
剪力墙钢筋用不用加密区 浏览:978
哪里app可以上高中生物课 浏览:472
cad粗糙度快捷键命令大全 浏览:521
腾讯云服务器无法运行软件 浏览:342
奔跑吧哪个app 浏览:97
哪个app听音乐最好 浏览:281
考研英语2真题pdf 浏览:699
烟台编程积木教育环境好不好 浏览:214
python优秀代码 浏览:620
androidtop命令 浏览:455
你平时怎么排解压力 浏览:68
表格中的文件夹怎样设置 浏览:476
em78单片机 浏览:960
splitjava空格 浏览:248
电脑怎么谷歌服务器地址 浏览:515
nx自定义工具启动宏命令 浏览:101
程序员怎么解决无法访问互联网 浏览:303
java访问本地文件 浏览:747
瓦斯琪服务器怎么用 浏览:22