當前位置:首頁 » 公司加盟 » 只能避障小車加盟店
擴展閱讀
濟南永輝物流加盟電話 2025-06-06 18:32:22
聚能加盟價格 2025-06-06 18:26:40

只能避障小車加盟店

發布時間: 2021-06-10 15:57:53

❶ 尋跡避障智能小車的組裝問題

你好,我看你的小車,和我們隊之前做的一樣。
現在我把我們的組裝經驗分享一下:我們組裝時候買了很多固定用的螺絲,比較長,所以適用各個模塊的組裝如果各個模塊全都做出來了,就自己布局下,先考慮功能是否受影響,再考慮美觀,一步一步,不行則改,這樣很快就能組裝好。
然後我們的建議是,這個小車底盤不適用於像電子設計競賽之類,因為它左右兩輪直流電機減速機構阻力差別較大,而且小車的橡膠輪做工不是很好,不是一個相對的圓形,用PID很難控制它們速度一致,使其走直線或者轉精確角度。不知兄弟是如何解決的。

❷ 我做了一個單片機智能避障小車

改用鎳氫充電電池吧,輸出功率會大一些。
電池輸出本來就是直流,後面不用整流模塊,用個穩壓模塊就可以了。
4節5號電池串聯時額定電壓是6V,但接上負載後肯定達不到6V,穩壓模塊還要有壓降,所以很難保證5V的輸出,先計算一下後面負載需要的功率,根據負載功率設計電源。

❸ 智能尋跡避障小車

我做小車用的就是這個程序,好使,選為最佳答案就是。多謝

#include "reg52.h"
#define det_Dist 2.55 //單個脈沖對應的小車行走距離,其值為車輪周長/4
#define RD 9 //小車對角軸長度
#define PI 3.1415926
#define ANG_90 90
#define ANG_90_T 102
#define ANG_180 189

/*============================全局變數定義區============================*/
sbit P10=P1^0; //控制繼電器的開閉
sbit P11=P1^1; //控制金屬接近開關
sbit P12=P1^2; //控制顏色感測器的開閉
sbit P07=P0^7; //控制聲光信號的開啟
sbit P26=P2^6; //接收顏色感測器的信號,白為0,黑為1
sbit P24=P2^4; //左
sbit P25=P2^5; //右 接收左右光感測器的信號,有光為0

unsigned char mType=0; //設置運動的方式,0 向前 1 向左 2 向後 3 向右
unsigned char Direction=0; //小車的即時朝向 0 朝上 1 朝左 2 朝下 3 朝右
unsigned sX=50; unsigned char sY=0; //小車的相對右下角的坐標 CM(sX,sY)

unsigned char StartTask=0; //獲得鐵片後開始執行返回卸貨任務,StartTask置一
unsigned char Inter_EX0=0; // 完成一個完整的任務期間只能有一次外部中斷
// Inter_EX0記錄外部中斷0的中斷狀態
// 0 動作最近的前一次未中斷過,
// 1 動作最近的前一次中斷過

unsigned char cntIorn=0; //鐵片數
unsigned char bkAim=2; //回程目的地,0為A倉庫,1為B倉庫,2為停車場,
//(在MAIN中接受鐵片顏色判斷感測器的信號來賦值)
unsigned char Light_Flag=0;//進入光引導區的標志(1)

unsigned int cntTime_5Min=0;//時間周期數,用於 T0 精確定時
unsigned int cntTime_Plues=0; //霍爾開關產生的脈沖數
/*============================全局變數定義區============================*/

/*------------------------------------------------*/
/*-----------------通用延遲程序-------------------*/
/*------------------------------------------------*/

void delay(unsigned int time) // time*0.5ms延時
{
unsigned int i,j;

for(j=0;j<time;j++)
{
for(i=0;i<60;i++)
{;}
}
}

/*-----------------------------------------------*/
/*-------------------顯示控制模塊----------------*/
/*-----------------------------------------------*/

/*數碼管顯示,顯示鐵片的數目(設接在P0,共陰)*/
void Display(unsigned char n)
{
char Numb[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x37,0x77};

P0=Numb[n];

}

/*-----------------------------------------------*/
/*-------------------感測器模塊------------------*/
/*-----------------------------------------------*/

/*光源檢測程序: */
/*用於糾正小車運行路線的正確性*/
unsigned char LightSeek()
{ void Display(unsigned char);

bit l,r;
l=P24;
r=P25;

if(l==0&&r==1)
{
//Display(1);
return (3); //偏左,向右開
}
if(r==0&&l==1)
{
//Display(3);
return(1); //偏右,向左開

}
if((l==1&&r==1)||(l==0&&r==0))
{//Display(9);
return(0); //沒有偏離,前進
}

}

/*鐵片檢測程序: */
/*判斷鐵片的顏色,設定bkAim,0為A倉庫,1為B倉庫,2為停車場*/
void IornColor()
{
delay(4000);
bkAim=(int)(P26);
Display((int)(P26)+2);
}

/*-----------------------------------------------*/
/*------------------運動控制模塊-----------------*/
/*-----------------------------------------------*/

/*====基本動作層:完成基本運動動作的程序集====*/

/*運動調整程序: */
/*對小車的運動進行微調*/
void ctrMotor_Adjust(unsigned char t)
{
if(t==0)
{
P2=P2&240|11; //用來解決兩電機不對稱的問題
delay(6);
}
if(t==3)
{
P2=P2&250; //向左走
delay(1);
}
if(t==1)
{
P2=(P2&245);
delay(1); //向右走
}

P2=((P2&240)|15);
delay(10);
}

/*直走程序: */
/*控制小車運動距離,dist為運動距離(cm),type為運動方式(0 2)*/
/*只改變小車sX 和 sY的值而不改變Direction的值. */
void ctrMotor_Dist(float dist,unsigned char type)
{unsigned char t=0;
mType=type;
P2=((P2&240)|15);
cntTime_Plues=(int)(dist/det_Dist);

while(cntTime_Plues)
{
if(Inter_EX0==1&&StartTask==0)
{
cntTime_Plues=0;
break;
}
if(Light_Flag==1) t=LightSeek();

if(type==0) //向前走
{
P2=P2&249;
delay(40);
ctrMotor_Adjust(t);
}
if(type==2) //向後退
{
P2=P2&246;
delay(50);
ctrMotor_Adjust(t);
}

P2=((P2&240)|15);
if(mType==2) delay(60);//剎車制動 0.5ms
else delay(75);
}

}

/*拐彎程序: */
/*控制小車運動角度,type為運動方式(1 3) */
/*只改變小車Direction的值而不改變sX 和 sY的值*/
void ctrMotor_Ang(unsigned char ang,unsigned char type,unsigned char dir)
{
unsigned char i=0;
mType=type;
P2=((P2&240)|15);
cntTime_Plues=(int)((PI*RD*90/(180*det_Dist)*1.2)*ang/90);

while(cntTime_Plues)
{
if(Inter_EX0==1&&StartTask==0)
{
cntTime_Plues=0;
break;
}
if(type==1) //向左走
{
P2=P2&250;
delay(100);
ctrMotor_Adjust(0);
}
if(type==3) //向右走
{
P2=P2&245;
delay(100);
ctrMotor_Adjust(0);
}

P2=((P2&240)|15);
delay(50);//剎車制動 0.5ms
}
if(!(Inter_EX0==1&&StartTask==0))
{
Direction=dir;
}

}

/*====基本路線層:描述小車基本運動路線的程序集====*/

/*當小車到達倉庫或停車場時,放下鐵片或停車(0,1為倉庫,2為停車場)*/
void rchPlace()
{unsigned int time,b,s,g;

time=(int)(cntTime_5Min*0.065535);//只有一個數碼管時,輪流顯示全過程秒數 個 十 百
b=time%100;
s=(time-b*100)%100;
g=(time-b*100-s*10)%10;

if(bkAim==2)
{
//到達停車場了,停車
EA=0;
P2=((P2&240)|15);
while(1)
{
Display(10); //N
delay(2000);
Display(cntIorn);
delay(2000);
Display(11);//A
delay(2000);
Display(b);
delay(2000);
Display(s);
delay(2000);
Display(g);
delay(2000);
}
}
else
{
if(Inter_EX0==1&&StartTask==1)P10=0; //到達倉庫,卸下鐵片
}

}

/*無任務模式: */
/*設置小車的固定運動路線,未發現鐵片時的運動路線*/
void BasicRoute()
{ //Light_Flag=1;
ctrMotor_Dist(153,0);
//Light_Flag=0;
ctrMotor_Ang(ANG_90,1,1);
ctrMotor_Dist(100-sX,0);
ctrMotor_Dist(125,2);
ctrMotor_Dist(73,0);
ctrMotor_Ang(ANG_90,1,2);
//Light_Flag=1;
ctrMotor_Dist(153,0);
//Light_Flag=0;
ctrMotor_Ang(ANG_180,1,0);
rchPlace();

}

/*任務模式: */
/*設置小車的發現鐵片後的運動路線*/
void TaskRoute()
{
//基本運行路線表,記載拐彎 0 向前 1 左拐 2 向後 3 右拐,正讀去A區;反讀去B區
StartTask=1;

ctrMotor_Ang(ANG_90_T,1,2);

if(bkAim==1) //倉庫A
{
ctrMotor_Dist(10,0);
P2=((P2&240)|15);
delay(60);
ctrMotor_Ang(ANG_90_T,1,3);
ctrMotor_Dist(100-sX,2);

ctrMotor_Ang(ANG_90_T,1,2);
Light_Flag=1;
ctrMotor_Dist(153,2);
Light_Flag=0;
// ctrMotor_Ang(208,1,0);
}
else if(bkAim==0) //倉庫B
{
ctrMotor_Dist(10,0);
P2=((P2&240)|15);
delay(60);
ctrMotor_Ang(ANG_90_T,1,3);
ctrMotor_Dist(100-sX,0);
ctrMotor_Ang(ANG_90_T,1,0);
Light_Flag=1;
ctrMotor_Dist(153,2);
Light_Flag=0;
//ctrMotor_Ang(208,1,0);
}

delay(5000);

rchPlace();

}

/*---------------------------------------------*/
/*-------------------主程序段------------------*/
/*---------------------------------------------*/
void main()
{
delay(4000);

P2=0xff; //初始化埠
P07=0;
P1=0;

TMOD=0x01; //初始化定時器0/1 及其中斷
TL0=0;
TH0=0;
TR0=1;
ET0=1;
ET1=1;

IT0=1; //初始化外部中斷
EX0=1;

IT1=1;
EX1=1;

EA=1;
P11=1;

while(1)
{
Display(cntIorn);
bkAim=2;

BasicRoute();

if(Inter_EX0==1)
{
TaskRoute();//按獲得鐵片後的路線運動
IE0=0;
EX0=1;
}
Inter_EX0=0;

}
}

/*----------------------------------------------------*/
/*----------------------中斷程序段--------------------*/
/*----------------------------------------------------*/

/*定時器0中斷程序: */
/*當時間過了5分鍾,則就地停車並進入休眠狀態*/
void tmOver(void) interrupt 1
{
cntTime_5Min++;
TL0=0;
TH0=0;

if(cntTime_5Min>=4520)
{
Display(5);
P2=((P2&240)|15);
EA=0; //停車程序
P07=1;
delay(4000);
PCON=0X00;
while(1);
}

}

/*外部中斷0中斷程序: */
/*發現鐵片,發出聲光信號並將鐵片吸起,發光二極體和蜂鳴器*/
/*並聯在一起(設接在P07). 0為A倉庫,1為B倉庫,2為停車場*/
void fndIorn(void) interrupt 0
{
unsigned char i;

P10=1;
P2=((P2&240)|15); //停車
P07=1;
delay(1000);//剎車制動 0.5ms
P07=0;

Inter_EX0=1;

cntIorn++;
Display(cntIorn);

for(i=0;i<40;i++)
{
P2=P2&249;
delay(2);
P2=((P2&240)|15);
delay(2);
}

P2=P2&249;
delay(100);
P2=((P2&240)|15); //停車

IornColor(); //判斷鐵片黑白,設置bkAim

for(i=0;i<95;i++)
{
P2=P2&249;
delay(3);
P2=((P2&240)|15);
delay(2);
}
P2=((P2&240)|15); //停車
delay(4000); //把鐵片吸起來
EX0=0;

}

/*外部中斷1中斷程序: */
/*對霍爾開關的脈沖記數,對小車的位置進行記錄,以便對小車進行定位*/
void stpMove(void) interrupt 2
{
cntTime_Plues--;

if(Direction==0) //向上
{
if(mType==0) sY+=det_Dist;
else if(mType==2)
sY-=det_Dist;
}
else if(Direction==1) //向左
{
if(mType==0) sX+=det_Dist;
else if(mType==2)
sX-=det_Dist;
}
else if(Direction==2) //向下
{
if(mType==0) sY-=det_Dist;
else if(mType==2)
sY+=det_Dist;
}
else if(Direction==3) //向右
{
if(mType==0) sX-=det_Dist;
else if(mType==2)
sX+=det_Dist;
}

❹ 我想做智能避障小車,還學什麼

你先試著做小車,碰到什麼不會就學什麼,我就是這么過來的,不然盲目的學意義不大

❺ 做一個智能避障小車需要哪些元件誰教教我謝謝啦^_^

單片機最小外圍電路(單片機+晶振+若干電容)
紅外對管+比較器電路(LM339之類的)
電源穩壓(7805之類的)
以上只是避障
要控制車還要電機驅動電路(L298N之類的)
電機供電還要大功率電池

❻ 避障小車原理

避障小車原理:

一、運動機理:

控制前面兩個輪子的轉動方向就可以控制整個機器人行進的方向:

1、左右兩個前輪都向前轉,則機器人向「正前方」直線前進;

2、左右兩個前輪都向後轉,則機器人向「正後方」直線倒退;

3、左前輪向後轉,右前輪向前轉,則機器人將以後輪為軸心逆時針轉動,即實現向「右後方」轉彎倒退;

4、左前輪向前轉,右前輪向後轉,則機器人將以後輪為軸心順時針轉動,即實現向「左後方」轉彎倒退。

二、控制原理

在機器人的頭部用鋼絲做兩根觸須,一左一右各連接到一個碰撞開關,分別控制兩個前輪的旋轉方向。

特別注意,左右觸須與對應控制的電機是交叉過來的,即:左邊的觸須連接右邊的碰撞開關,控制右邊的電機;右邊的觸須連接左邊的碰撞開關,控制左邊的電機。

(1)無障礙物

當前方都沒有障礙物,左右兩個輪子都向前正轉,則機器人向「前方」直線前進。

(2)左前方有障礙物

當左前方有障礙物,在左邊觸須碰到障礙物時,控制右邊的輪子反轉,則機器人向「左後方」倒退並轉彎,即方向轉向了障礙物的右邊,從而避開了左邊的障礙物。

向後倒退轉彎會持續一會,在完成轉彎之後,左邊觸須不再碰到障礙物,則兩個輪子都正轉,機器人繼續向新的沒有障礙物的「前方」直線前進。

(3)右前方有障礙物

當右前方有障礙物,在右邊觸須碰到障礙物時,控制左邊的輪子反轉,則機器人向「右後方」倒退並轉彎,即方向轉向了障礙物的左邊,從而避開了右邊的障礙物。

向後倒退轉彎會持續一會,在完成轉彎之後,右邊觸須不再碰到障礙物,則兩個輪子都正轉,機器人繼續向新的沒有障礙物的「前方」直線前進。

(4)正前方有障礙物

當正前方有障礙物,左右兩邊的觸須都會碰到障礙物,控制左右兩邊的輪子都反轉,則機器人向「正後方」倒退,從而避開障礙物。

在直線倒退持續了一會後,左右兩邊的觸須都不再碰到障礙物,則兩個輪子都正轉又變成直線前進;然後又會遇到正前方的障礙物又會直線倒退,再直線前進……如此反復變成一個死循環。

三、電路原理

機器人頭部有兩根鋼絲作的觸須,觸須分別連接在兩個碰撞開關上(注意兩根鋼絲對應的碰撞開關是交叉的,即:「左—右」鋼絲,對應「右—左」碰撞開關)。

(1)沒有障礙物時,觸須沒有被擠壓,不觸發碰撞開關,碰撞開關默認的通路,給電機供給一個「正方向」的電流,電機於是「順時針方向」旋轉。

(2)有障礙物時,觸須被擠壓,觸發碰撞開關,碰撞開關斷開默認通路,連接另外的一組通路,給電機供一個「反方向」的電流,電機於是「逆時針方向」旋轉。

❼ 關於智能紅外避障循跡小車作品起個好聽到名字

我發給你吧 剛翻譯的.但是只有一篇誒,因為這個英文文獻確實很少.

❽ 我想做個pLC自動避障小車,請問需要什麼配件

PLC,電源,3-4個光纖感測器加放大器,如果小車是步進電機的話要配套驅動器