『壹』 循跡和避障用一個紅外模塊就可以同時滿足么
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)有障礙物時,觸須被擠壓,觸發碰撞開關,碰撞開關斷開默認通路,連接另外的一組通路,給電機供一個「反方向」的電流,電機於是「逆時針方向」旋轉。