www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]超聲波模塊HC-SR04調(diào)試經(jīng)驗(yàn)分享

這段時(shí)間要用超聲波做一個(gè)演示實(shí)驗(yàn),就是使用超聲波和舵機(jī)結(jié)合,做一個(gè)自動(dòng)壁障演示實(shí)驗(yàn)。

就是將超聲波接到舵機(jī)上,通過(guò)轉(zhuǎn)動(dòng)舵機(jī)來(lái)獲取各個(gè)方向到小車的距離,從而控制小車運(yùn)動(dòng),避開(kāi)障礙物,并尋找最佳路徑。整個(gè)小車基于航太電子提供的51智能小車,如下圖:

車前面的超聲波模塊就是固定在下面的舵機(jī)上面的,實(shí)際實(shí)驗(yàn)時(shí)需要將顯示屏取下,否則會(huì)檔到舵機(jī)。

下面簡(jiǎn)單說(shuō)下超聲波模塊:

HC-SR04超聲波測(cè)距模塊可提供2cm-400cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)3mm;模塊包括超聲波發(fā)射器、接收器與控制電路,檢測(cè)角度為30°。

另外還有超聲波的控制方式:

(1)采用IO口TRIG觸發(fā)測(cè)距,給最少10us的高電平信號(hào)。

(2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;

(3)有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2

下面說(shuō)說(shuō)這個(gè)超聲波的缺陷了,由于該超聲波測(cè)距本身的缺陷以及該模塊也是市面上比較便宜的模塊,在實(shí)際運(yùn)行時(shí)往往達(dá)不到要求,特別是小車在運(yùn)行時(shí)整個(gè)車子是在震動(dòng)的,對(duì)距離測(cè)試十分不利。

當(dāng)車子在跑動(dòng)時(shí)測(cè)出來(lái)的距離變動(dòng)幅度會(huì)較大,如果加上舵機(jī)的轉(zhuǎn)動(dòng),想實(shí)時(shí)測(cè)到距離是更不可能的了。目前超聲波測(cè)量周期建議是100ms,在100ms的時(shí)間里,超聲波在車上的變動(dòng)還是比較大的,所以在測(cè)量距離的時(shí)候,盡量讓車子停下來(lái),而且舵機(jī)停止轉(zhuǎn)動(dòng)。

另外還有一個(gè)大問(wèn)題,就是前面的障礙物與超聲波不是正對(duì)著,而是呈一個(gè)較大的角度時(shí),測(cè)出來(lái)的距離也是不準(zhǔn)的。這種現(xiàn)象體現(xiàn)在當(dāng)小車與墻斜著跑過(guò)去時(shí)會(huì)直接撞上去,顯然是完全沒(méi)檢測(cè)到墻面。根據(jù)示波器查看結(jié)果,當(dāng)相對(duì)正對(duì)超聲波傾斜角度小于約30°時(shí),還是可以測(cè)出來(lái)的,當(dāng)變得更大時(shí),就會(huì)出現(xiàn)回響電平突然變得很長(zhǎng)的情況,這種時(shí)候也會(huì)有測(cè)量比較接近實(shí)際的時(shí)候,所以在這里需要做濾波處理?;仨懶盘?hào)要么是接近實(shí)際,要么是很長(zhǎng),這樣的情況是很好判斷的。

下面是我基于51單片機(jī)平臺(tái)做的超聲波讀取的方法,暫沒(méi)考慮單片機(jī)性能浪費(fèi)的問(wèn)題,用到了while等待。觸發(fā)信號(hào)輸出以及回響信號(hào)計(jì)數(shù)采用了定時(shí)器T2

如下:

初始化函數(shù),對(duì)T2 初始化

void UltraSoundInit()

{

Trig = 0;

TH2 = RCAP2H = 0;

TL2 = RCAP2L = 0;

TR2 = 0;//關(guān)閉定時(shí)器

ET2=1; //允許T2中斷

}

然后就是T2的中斷函數(shù),當(dāng)定時(shí)器溢出時(shí)進(jìn)入,可以用來(lái)判斷輸出的回響信號(hào)是否過(guò)長(zhǎng),當(dāng)超聲波模塊異常時(shí)也可用來(lái)跳出while死循環(huán)

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

* 函 數(shù) 名 :Timer0Int

* 函數(shù)功能 :定時(shí)器0中斷服務(wù)函數(shù)

* 輸 入 :無(wú)

* 輸 出 :無(wú)

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

void Timer2Int() interrupt 5 // 定時(shí)器2中斷是5號(hào),當(dāng)定時(shí)器2發(fā)生溢出時(shí)說(shuō)明量測(cè)的距離過(guò)遠(yuǎn)或超聲波本次測(cè)量異常

{

TF2 = 0;

overflow_count++;

TH2 = 0;

TL2 = 0;

if(overflow_count == 2)

{

status = 5;//超時(shí)

}

}

下面就是測(cè)量的方法,比較簡(jiǎn)單,當(dāng)測(cè)量失敗就讓那個(gè)全局變量為0,注意:超聲波是有最小測(cè)量距離的,一般障礙物理超聲波2cm以內(nèi)時(shí),測(cè)得距離就不準(zhǔn)了,所以測(cè)量距離不可能為0

void GetDistance()

{

//發(fā)送觸發(fā)信號(hào)

Trig = 1;

status = 1;

TH2 = 0;

TL2 = 0;

TR2 = 1;//打開(kāi)定時(shí)器

while(TL2 < 42);//延時(shí)超過(guò)10us

status = 2;

Trig = 0;

TR2 = 0;

TH2 = 0;

TL2 = 0;

overflow_count = 0;

TR2 = 1;

while(Echo == 0)//等待回向信號(hào)起始位置

{

if(status == 5)

{

status = 0;

distance_cm = 0;

return;//本次失敗

}

}

TR2 = 0;//清空計(jì)數(shù)

TH2 = 0;

TL2 = 0;

overflow_count = 0;

TR2 = 1;

while(Echo == 1)//開(kāi)始計(jì)算長(zhǎng)度

{

if(status == 5)

{

status = 0;

distance_cm = 0;

TR2 = 0;

return;//本次失敗

}

}

dis_count =overflow_count*65536 + TH2*256 + TL2;

TR2 = 0;

distance_cm = (unsigned int)(((long)(dis_count) * 34)/8000);//聲速 dis_count*(1/(FOSC/12))*Vsound*100/2

status = 0;//準(zhǔn)備下次發(fā)送

}

下面就是要調(diào)用上面函數(shù)的方法,注意這個(gè)函數(shù)執(zhí)行間隔至少是100ms(其實(shí)75ms的時(shí)候也可以)

void GetDistanceDelay()

{

distance_cm = 0;

while(distance_cm == 0)

{

GetDistance();

if(distance_cm != 0)

{

return;

}

Delayms(100);

}

}

這樣做雖然浪費(fèi)了很多處理器性能,但比起獲得錯(cuò)誤數(shù)據(jù)還是要好些。在這個(gè)實(shí)驗(yàn)中,除了車子前行時(shí)沒(méi)100ms檢測(cè)一次距離,在其他時(shí)候都是要等車子停止時(shí)才測(cè)距的,另外使用超聲波做這個(gè)事本來(lái)就是比較勉強(qiáng)的,如果想要更好的效果,建議搭配其他傳感器如光電對(duì)管壁障模塊,用這個(gè)模塊來(lái)檢測(cè)斜邊的障礙物還是很有效的,也就是遠(yuǎn)處交給超聲波處理,近處交給壁障模塊處理。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

超聲波雷達(dá)是汽車中最為常見(jiàn)的一種傳感器。它是通過(guò)反射超聲波裝置,發(fā)射超聲波,并接受回來(lái)的反射波后,測(cè)算距離。超聲波雷達(dá)主要用在自動(dòng)泊車和停車輔助上,分類的話可以分為APA和UPA兩種。

關(guān)鍵字: 超聲波 雷達(dá) 攝像頭

在這篇文章中,小編將對(duì)無(wú)人機(jī)的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進(jìn)對(duì)無(wú)人機(jī)的了解程度,和小編一起來(lái)閱讀以下內(nèi)容吧。

關(guān)鍵字: 無(wú)人機(jī) 超聲波 傳感器

摘要:鍋爐壓力容器在生產(chǎn)、生活中占有重要地位,但其長(zhǎng)期在高溫高壓下高速運(yùn)行,具有極高的危險(xiǎn)性,一旦發(fā)生事故,后果不堪設(shè)想,因此必須認(rèn)真做好鍋爐壓力容器的檢驗(yàn)工作。鑒于此,對(duì)鍋爐壓力容器的各種檢驗(yàn)方法進(jìn)行了分析和研究。

關(guān)鍵字: 鍋爐壓力容器 x射線 超聲波

摘要:局部放電法能夠?qū)﹄娎|絕緣缺陷產(chǎn)生的局部放電信號(hào)進(jìn)行檢測(cè),通過(guò)對(duì)放電量和相位等特征參數(shù)的分析,可以判斷缺陷類型和絕緣劣化程度,進(jìn)而預(yù)測(cè)電纜剩余壽命?,F(xiàn)基于高頻電流法、超高頻法、超聲波法研制了一套多傳感技術(shù)融合的電纜局...

關(guān)鍵字: 超高頻 超聲波 檢測(cè)系統(tǒng)

摘要:簡(jiǎn)要介紹了廣東國(guó)華臺(tái)山發(fā)電廠在水位、料位、漿液測(cè)量等不同環(huán)境下,測(cè)量?jī)x器的設(shè)計(jì)選型及安裝使用情況。臺(tái)山電廠自投產(chǎn)以來(lái),由于設(shè)計(jì)原因灰?guī)爝B續(xù)料位計(jì)一直無(wú)法準(zhǔn)確測(cè)量灰?guī)炝衔?石灰石漿液箱測(cè)量液位也經(jīng)常跳變導(dǎo)致跳泵,影響...

關(guān)鍵字: 雷達(dá) 超聲波 重錘式

通過(guò)手指輕輕一點(diǎn),即可開(kāi)鎖,在小時(shí)候曾以為是科幻片的事實(shí)擺在眼前,如今見(jiàn)怪不怪了,手機(jī)、門鎖、支付等日常生活活動(dòng)經(jīng)常使用這種技術(shù)。你知道嗎?指紋的應(yīng)用在我國(guó)早就2500年前開(kāi)始了。

關(guān)鍵字: 指紋識(shí)別 超聲波 Galaxy S10

摘要:超聲波清洗機(jī)的設(shè)計(jì)主要包括結(jié)構(gòu)設(shè)計(jì)和控制系統(tǒng)設(shè)計(jì),鑒于此,首先闡明了超聲波清洗的原理,其次介紹了清洗機(jī)結(jié)構(gòu)模塊的設(shè)計(jì),最后說(shuō)明了控制系統(tǒng)的構(gòu)成,詳細(xì)分析了如何利用單片機(jī)對(duì)超聲波清洗機(jī)的電機(jī)進(jìn)行正反轉(zhuǎn)及調(diào)速控制,從而...

關(guān)鍵字: 超聲波 清洗機(jī) 電機(jī)調(diào)速

TDK集團(tuán)(東京證券交易所代碼:6762)隆重推出適合超聲波應(yīng)用的全新B78416A*系列緊湊型愛(ài)普科斯 (EPCOS) EP6變壓器。新系列元件為表面安裝 (SMD) 型,有五種型號(hào)供選擇,覆蓋1:1:8.42至1:1...

關(guān)鍵字: TDK 變壓器 超聲波

為了將升壓轉(zhuǎn)換器在輕載或空載條件下的功率損耗降至最低,設(shè)計(jì)人員通常使用脈沖頻率調(diào)制 (PFM) 來(lái)降低開(kāi)關(guān)頻率,從而降低相關(guān)的開(kāi)關(guān)損耗。在 PFM 中,隨著負(fù)載越來(lái)越低,越來(lái)越多的開(kāi)關(guān)脈沖被跳過(guò),如圖 1 所示。顯然,這...

關(guān)鍵字: 升壓轉(zhuǎn)換器 FM PS 超聲波

小編將為大家?guī)?lái)超聲波傳感器的相關(guān)介紹,詳細(xì)內(nèi)容請(qǐng)看下文。

關(guān)鍵字: 超聲波傳感器 傳感器 超聲波

技術(shù)前線

2090 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉