導航:首頁 > 編程語言 > 基於pic的智能循跡避障小車代碼

基於pic的智能循跡避障小車代碼

發布時間:2023-03-28 03:05:50

Ⅰ 急求基於AT89C51單片機的循跡避障小車電路原理圖和主程序(避障模塊是超聲波測距的),感激不盡啊。

#include<reg51.h>

#define ucharunsignedchar

#defineuintunsignedint

sbitP1_O=P1^;

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);

{

TRIG=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);

}

Ⅱ 循跡小車不循跡代碼怎麼調試

使用digitalRead()函數讀取數字引腳的高低電平,循跡模塊檢測到黑線為高電平HIGH(1),白線為低電平絕脊鉛LOW(0),如果循跡模塊的指示燈不靈敏或者一閃一閃的,就需要用螺絲刀調節藍色的電位器,將循跡模塊放在黑線上,把燈調亮,然後再回調一些,把燈調滅,這樣循跡模塊的閾值就剛好在臨野旦界點了。

Sensor [0] = digitalRead(10);
Sensor [1] = digitalRead(11);
Sensor [2] = digitalRead(12);
Sensor [3] = digitalRead(13;
2.列印循跡模塊的高低電平
使用Serial.print();函數列印循跡的值,在Arino的右上角有個放大鏡,可以打開串口監視並好器,電腦連接Arino就可以看到串口的值了

Ⅲ 51單片機智能小車製作,求通俗易懂的講解

系統的單片機程序:

#include"reg52.h"

#definedet_Dist2.55//

單個脈沖對應的小車行走距離,其值為車輪周長

/4#defineRD9//

小車對角軸長度。

#definePI3.1415926

#defineANG_9090

#defineANG_90_T102

#defineANG_180189/

全局變數定義區。

/sbitP10=P1^0;//

控制繼電器的開閉sbitP11=P1^1;//

控制金屬接近開關。


(3)基於pic的智能循跡避障小車代碼擴展閱讀:


控制器部分:接收感測器部分傳遞過來的信號,並根據事前寫入的決策系統(軟體程序),來決定機器人對外部信號的反應,將控制信號發給執行器部分。好比人的大腦。

執行器部分:驅動機器人做出各種行為,包括發出各種信號(點亮發光二極體、發出聲音)的部分,並且可以根據控制器部分的信號調整自己的狀態。

對機器人小車來說,最基本的就是輪子。這部分就好比人的四肢一樣。 感測器部分:機器人用來讀取各種外部信號的感測器,以及控制機器人行動的各種開關。好比人的眼睛、耳朵等感覺器官。




Ⅳ 51單片機智能兩路循跡小車程序,檢測到黑線直走,檢測不到黑線就左轉或右轉都可以,需要程序代碼麻煩了

別想那麼復雜。
首先,你把檢測黑線的感測器就當一普通開關。因為,當照射在黑線上時,光線反射能力弱,輸出低電平。照在黑線外,則輸出高電平。只有高低兩種電平,所以,你只需要把它當一個普通開關看待。
然後,既然是普通開關,寫代碼時只需要位聲明以及設置gpio為雙向或強拉模式,51單片機都不用設置gpio。
最後,程序里,檢測到高電平然後io口電平取反就行。

Ⅳ 用單片機AT89C51設計智能小車,要有循跡、避障、計算路程的功能

這個很麻煩的 自己做不但要有單片機基礎 還要花費很多精力

如果你只想應付的話就幾個人湊錢 在淘寶上買到類似的小車 大概幾百元

如果自己做的話 就花個100~200買個車模 然後自己做控制電路

這個得需要經驗 慢慢來

Ⅵ 我是一名大一的學生,單片機學了一點,水平能夠做出智能尋跡避障小車,我是看郭天祥的視頻學的,現在在編

先買一個價格適中的開發板,如STM32,LPC,飛思卡爾tfu等均可,對照提供的例子程序一個個地進行學習調試。先吃透其中的原理,然後再進神搭漏行ucosii或linux的簡游爛枝飢單搭建學習,最終進行系統的學習。

Ⅶ 用labview編程智能循跡小車的程序思路

膠帶的寬度一定的話:

四個感測器一字排列的情況最簡單:

按1234號感測器命名,照在膠帶上狀態位為A,否則為a.

直線正常行走時,23號持續為A,14號持續為a.

分析開始右轉的邏輯:

  1. 2號變a,繼續直線行走,直到4號變A,根據24號間的距離和小車在這段時間內行駛的距離計算出轉動角度(這就是動態平面幾何問題了,自己畫圖解一下,注意轉彎時候前後中心點的軌跡,膠帶寬度是關鍵,得到的角度不會也不必太精確。這里我只討論邏輯),然後以比計算結果稍大(目的是確保能讓2恢復狀態A)的轉動角度開始轉彎,等到2和3都恢復狀態A,小車變回直線行走,等到2號重新變a,小車再恢復到原先的轉動角度……後面一直循環就行了

  2. 直線上如果車子前進方向傾斜,和轉彎一樣,下面以車子向右傾斜為例分析:

    1. 會出現3號變a的情況,繼續保持直線行走,直到1號變A,計算出小車在這個過程中行進距離,結合膠帶寬度,1和3號間的距離,就可以算出偏離的角度然後決定轉動角度。後面具體調整和過彎道一樣。

然後我來吐槽為什麼要用labview,你是想著拿著筆記本進行無線操控么 - -,嵌入式的labview編程現在還不成熟好吧~

Ⅷ 避障小車原理

避障小車原理:

一、運動機理:

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

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

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

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

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

二、控制原理

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

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

(1)無障礙物

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

(2)左前方有障礙物

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

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

(3)右前方有障礙物

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

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

(4)正前方有障礙物

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

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

三、電路原理

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

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

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

閱讀全文

與基於pic的智能循跡避障小車代碼相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接