概要[Abstract]超聲波模塊在競(jìng)賽中應(yīng)用廣泛。實(shí)時(shí)測(cè)距、定點(diǎn)停車、機(jī)器人避障都可用此模塊協(xié)助完成。
實(shí)現(xiàn)功能:
此模塊實(shí)現(xiàn)基于HC-RS04/RCWL-1601超聲波器件的測(cè)距。本模塊適用于HC-SR04、RCWL-1601等型號(hào)超聲波傳感器器件的驅(qū)動(dòng),只要啟動(dòng)方式為向i/o口發(fā)送脈沖,模塊自動(dòng)發(fā)送特定頻率(8個(gè)40KHz)脈沖測(cè)距的超聲波器件,一般都適用。
實(shí)現(xiàn)原理:
其基本原理就是利用聲波遇到障礙物返回,在此期間計(jì)算聲波往返的時(shí)間,再結(jié)合聲音在空氣中的傳播速度(約340m/s)計(jì)算發(fā)射源到障礙物之間的距離。
這里對(duì)部分模塊源碼作下說(shuō)明:
測(cè)距為什么選擇產(chǎn)生17KHz不規(guī)則“時(shí)鐘”,超聲波測(cè)距公式:距離 = (echo高電平時(shí)間×34000cm/s) / 2 (單位:cm)。如果我們用17KHz的時(shí)鐘進(jìn)行計(jì)時(shí),那么就有:距離 = (((1/17K) × m) × 34000cm/s) / 2 (其中m為17KHz時(shí)鐘的周期個(gè)數(shù)),化簡(jiǎn)之后:距離 = m (單位:cm)。我們發(fā)現(xiàn)用17KHz時(shí)鐘計(jì)數(shù)非常方便,這也是采用這個(gè)頻率時(shí)鐘的主要原因。特別地:我們這里制造地17KHz“時(shí)鐘”和一般時(shí)鐘有區(qū)別,我們僅用它來(lái)計(jì)算有多少個(gè)17KHz周期,因此只需要維持一個(gè)系統(tǒng)時(shí)鐘的高電平即可,結(jié)合我們?cè)谙旅娴腶lways塊里面使用17KHz的高電平作為計(jì)數(shù)器的累加觸發(fā)條件,制造這樣特別的時(shí)鐘反而更方便,若我們制造的一個(gè)高低電平時(shí)長(zhǎng)一致的普通時(shí)鐘,則我們還需要額外去檢測(cè)17KHz時(shí)鐘的上升沿作為累加條件。
另外,此模塊已經(jīng)將測(cè)試距離數(shù)值按照個(gè)、十、百、千的順序分別存放在data的[3:0]、[7:4]、[11:8]、[15:12],如果要將距離數(shù)值顯示在數(shù)碼管上也非常方便。