『壹』 循迹和避障用一个红外模块就可以同时满足么
1红外接收管内部带了一个具有红外光敏感特征的PN节,属于光敏二极管,但是它只对红外光有反应。2无红外光时,光敏管不导通,有红外光时,光敏管导通形成光电流,并且在一定范围内电流随着红外光的强度的增强而增大。典型的红外接收管。
3这种红外发射和接收对管在小车、机器人避障以及红外循迹小车中有所应用,所以暂提供一个原理图给大家作为学习。4发射控制和接收检测都是接到我们单片机的IO口上。
5发射部分:当发射控制输出高电平时,三极管Q1不导通,红外发射管L1不会发射红外信号;当发射控制输出低电平的时候,通过三极管Q1导通让L1发出红外光。
6接收部分:R4是一个电位器,也就是“传说”中的滑动变阻器。我们通过调整这个滑动变阻器给LM393的2脚一个阈值电压,这个电压值大小可以根据实际情况来确定。而红外光敏二极管L2收到红外光的时候,会产生电流,并且随着红外光的从弱变强,电流会从小变大。当没有红外光或者说红外光很弱的时候,3脚的电压就会接近VCC,如果3脚比2脚的电压高的话,通过LM393比较器后,接收检测引脚输出一个高电平。当随着光强变大,电流变大,3脚的电压值等于VCC-I*R3,电压就会越来越小,当小到一定程度,比2脚的电压还小的时候,接收检测引脚就会变为低电平。
7这个电路用于避障的时候,发射管先发送红外信号,红外信号会随着传送距离的加大逐渐衰减,如果遇到障碍物,就会形成红外反射。当反射回来的信号比较弱时,光敏二极管L2接收的红外光较弱,比较器LM393的3脚电压高于2脚电压,接收检测引脚输出高电平,说明障碍物比较远;当反射回来的信号比较强,接收检测引脚输出低电平,说明障碍物比较近了。
用于小车循迹的时候,必须要有黑色和白色的轨道。当红外信号发送到黑色轨道时,黑色因为吸光能力比较强,红外信号发送出去后就会被吸收掉,反射部分很微弱。白色轨道就会把大部分红外信号返回来。通常情况下的循迹小车,需要应用多个红外模块同时检测,从多个角度判断轨道,根据判断的结果来调整小车使其按照正常循迹前行。
『贰』 急求基于AT89C51单片机的循迹避障小车电路原理图和主程序(避障模块是超声波测距的),感激不尽啊。
#include<reg51.h>
#define ucharunsignedchar
#defineuintunsignedint
sbitP1_O=P1^0;
sbitP1_1=P1^1;
sbitP1_2=P1^2;
sbitP1_3=P1^3;
sbitP0_2=P0^1;
sbitP0_3=P0^2;
voiddelaym1(uintz)
{
uinti;
for(i=0;i<z;i++);
}
voidmain(void)
{
while(1);
{
=1;
delay(1);
TRIG=0;
while(ECHO==0);
while(ECHO==1)a++;//a每次加1,所时间约21us
delay(30);
a=((340*a*21)/1000)/2;
display();
scan();
z=a;
a=0;
delay(200);}
voidliudianji1()
{
uinti,j;
P0=0X00;
//走直线
for(i=0;i<200;i++)
{for(i=0;i<500;i++)
{
P0_O=1;
P0_1=0;
delaym1(280);
P0_O=0;
P0_1=0;
P0_2=1;
P0_3=0;
delaym1(420);
P0_2=0;
P0_3=0;
}
P0=0X00;
delaym1(30000);
delaym1(30000);}
//右转弯
voidliudianji2()
{for(j=0;j<300;j++)
{P0_O=1;
P0_1=0;
delaym1(300);
P0_O=0;
P0_1=0;
P0_2=1;
P0_3=0;
delaym1(160);
P0_2=0;
P0_3=0;
}
P0=0X00;
delaym1(30000);
delaym1(30000);
//左转弯
voidliudianji3()
{for(i=0;i<600;i++)
{
P0_O=1;
P0_1=0;
delaym1(155);
P0_O=0;
P0_1=0;
P0_2=1;
P0_3=0;
delaym1(650);
P0_2=0;
P0_3=0;
}
P0=0X00;
delaym1(30000);
delaym1(30000);}
P0=0x00;
while(1);
}
}
voidmain(void)
{
while(1)
{
TRIG=1;
delay(1);
TRIG=0;
while(ECHO==0);
while(ECHO==1)a++;//a每次加1,所时间约21us
delay(30);
a=((340*a*21)/1000)/2;
if(a==50)
esle
{voidliudianji3();}
delay(200);
voidliudianji1();
z=a;
a=0;
delay(200);
}
『叁』 避障小车原理
避障小车原理:
一、运动机理:
控制前面两个轮子的转动方向就可以控制整个机器人行进的方向:
1、左右两个前轮都向前转,则机器人向“正前方”直线前进;
2、左右两个前轮都向后转,则机器人向“正后方”直线倒退;
3、左前轮向后转,右前轮向前转,则机器人将以后轮为轴心逆时针转动,即实现向“右后方”转弯倒退;
4、左前轮向前转,右前轮向后转,则机器人将以后轮为轴心顺时针转动,即实现向“左后方”转弯倒退。
二、控制原理
在机器人的头部用钢丝做两根触须,一左一右各连接到一个碰撞开关,分别控制两个前轮的旋转方向。
特别注意,左右触须与对应控制的电机是交叉过来的,即:左边的触须连接右边的碰撞开关,控制右边的电机;右边的触须连接左边的碰撞开关,控制左边的电机。
(1)无障碍物
当前方都没有障碍物,左右两个轮子都向前正转,则机器人向“前方”直线前进。
(2)左前方有障碍物
当左前方有障碍物,在左边触须碰到障碍物时,控制右边的轮子反转,则机器人向“左后方”倒退并转弯,即方向转向了障碍物的右边,从而避开了左边的障碍物。
向后倒退转弯会持续一会,在完成转弯之后,左边触须不再碰到障碍物,则两个轮子都正转,机器人继续向新的没有障碍物的“前方”直线前进。
(3)右前方有障碍物
当右前方有障碍物,在右边触须碰到障碍物时,控制左边的轮子反转,则机器人向“右后方”倒退并转弯,即方向转向了障碍物的左边,从而避开了右边的障碍物。
向后倒退转弯会持续一会,在完成转弯之后,右边触须不再碰到障碍物,则两个轮子都正转,机器人继续向新的没有障碍物的“前方”直线前进。
(4)正前方有障碍物
当正前方有障碍物,左右两边的触须都会碰到障碍物,控制左右两边的轮子都反转,则机器人向“正后方”倒退,从而避开障碍物。
在直线倒退持续了一会后,左右两边的触须都不再碰到障碍物,则两个轮子都正转又变成直线前进;然后又会遇到正前方的障碍物又会直线倒退,再直线前进……如此反复变成一个死循环。
三、电路原理
机器人头部有两根钢丝作的触须,触须分别连接在两个碰撞开关上(注意两根钢丝对应的碰撞开关是交叉的,即:“左—右”钢丝,对应“右—左”碰撞开关)。
(1)没有障碍物时,触须没有被挤压,不触发碰撞开关,碰撞开关默认的通路,给电机供给一个“正方向”的电流,电机于是“顺时针方向”旋转。
(2)有障碍物时,触须被挤压,触发碰撞开关,碰撞开关断开默认通路,连接另外的一组通路,给电机供一个“反方向”的电流,电机于是“逆时针方向”旋转。