蔣鵬 張春艷 朱芙菁
DOI:10.19392/j.cnki.16717341.201714059
摘要:本項(xiàng)目采用了高性能單片機(jī)STM32作為控制單元,多個(gè)超聲波測距模塊構(gòu)成的測量單元,可以對多個(gè)方向進(jìn)行測量,并且測量單元和控制單元通過無線通信進(jìn)行信息交換,擺脫了線路的束縛。
關(guān)鍵詞:STM32;超聲波測距;無線通信
超聲波測距主要應(yīng)用于倒車提醒、行動(dòng)機(jī)器人、工業(yè)現(xiàn)場等的距離測量。常見的超聲波測距儀將測距模塊、控制單元及報(bào)警電路設(shè)計(jì)成一個(gè)整體,僅具有測量和報(bào)警功能,如倒車?yán)走_(dá),或者將測距模塊通過線路與控制、顯示、報(bào)警模塊相連,如帶顯示功能的倒車?yán)走_(dá)。隨著技術(shù)的發(fā)展,普通的超聲波測距儀已經(jīng)跟不上時(shí)代的進(jìn)步了,如以上兩種超聲波測距雷達(dá)都有很大的局限性?;诖?,我們計(jì)劃設(shè)計(jì)基于STM32F103控制的——多路無線通信超聲波測距儀。
1 項(xiàng)目硬件構(gòu)成
該項(xiàng)目的硬件部分由單片機(jī)控制模塊、顯示模塊、無線通信模塊、波測距模塊四大部分組成,系統(tǒng)框圖如圖1所示。
控制模塊選用的是STM32系列的STM32F103型單片機(jī),它具有高性能、低成本、低功耗等特點(diǎn),并且時(shí)鐘頻率達(dá)到了72MHz,具有較快的運(yùn)行速度。顯示模塊采用了4.3寸的TFTLCD顯示器,其色彩豐富,亮度高,支持中英文顯示并且可自定義字體及大小。無線通信模塊則選擇了NRF24L01,NRF24L01是由NORDIC生產(chǎn)的工作在2.4GHz~2.5GHz的ISM 頻段的單片無線收發(fā)器芯片,采用FSK 調(diào)制,集成NORDIC自家的Enhanced Short Burst協(xié)議??梢詫?shí)現(xiàn)點(diǎn)對點(diǎn)或是1對6的無線通信,無線通信速度最高可達(dá)到2Mbps,NRF24L01采用SPI通信。無線收發(fā)器包括:頻率發(fā)生器、增強(qiáng)型“SchockBurst”模式控制器、功率放大器、晶體振蕩器、調(diào)制器和解調(diào)器。輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI 接口進(jìn)行設(shè)置,幾乎可以連接到各種單片機(jī)芯片,并完成無線數(shù)據(jù)傳送工作。測距模塊采用的是HYSRF05超聲波模塊,HYSRF05超聲波模塊可提供2cm~450cm的非接觸式距離感測功能,測距精度可高達(dá)3mm,模塊包括超聲波發(fā)射器、接收器和控制電路。
本項(xiàng)目中由單片機(jī)控制模塊、TFTLCD顯示模塊、無線通信模塊構(gòu)成了顯示單元,這個(gè)部分是整個(gè)系統(tǒng)的核心所在,STM32F103對從NRF24L01接收到的距離數(shù)據(jù)進(jìn)行處理,并實(shí)時(shí)顯示在TFTLCD顯示屏上。測量單元由單片機(jī)控制模塊、信息采集模塊、無線通信模塊構(gòu)成。本項(xiàng)目中可以具有多個(gè)測量單元,測量單元實(shí)時(shí)將超聲波模塊測量到的距離數(shù)據(jù)通過無線通信模塊傳遞給顯示單元,經(jīng)過數(shù)據(jù)處理后將不同通道的數(shù)據(jù)分別顯示在屏幕上。
2 超聲波模塊接口設(shè)計(jì)及工作原理
超聲波模塊的回響信號輸出端Echo與PC14相連;觸發(fā)控制、信號輸入端Echo與PC15相連。
HYSRF05超聲波測距模塊基本工作原理:當(dāng)單片機(jī)至少給Trig10us以上的高電平時(shí)觸發(fā)模塊開始測距,模塊自動(dòng)發(fā)送8個(gè)40KHz的方波,并自動(dòng)潔廁是否有信號返回,當(dāng)有信號返回時(shí),通過Echo輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。超聲波模塊的工作時(shí)序如圖2所示。
3 軟件設(shè)計(jì)
測量單元程序流程圖如圖3a所示,測量單元主要功能就是每隔一段時(shí)間利用超聲波測距模塊進(jìn)行測距,并通過NRF24L01將測量結(jié)果返回給顯示單元。本段程序的關(guān)鍵在于得到測量結(jié)果,通過圖4的回響信號可以看出高電平持續(xù)的時(shí)間就是聲波一個(gè)往返所用時(shí)間,因此在模塊自動(dòng)發(fā)送8個(gè)40KHz的方波后檢測到回響信號產(chǎn)生高電平時(shí)啟動(dòng)定時(shí)器,當(dāng)回響信號出現(xiàn)下降沿時(shí)停止計(jì)時(shí),讀取定時(shí)器的計(jì)數(shù)值得到聲波的往返時(shí)間,通過公式就可以計(jì)算出測量距離。測量距離的計(jì)算公式為:距離=(高電平時(shí)間*340M/S)/2。
顯示單元程序流程圖如圖3b所示。在本項(xiàng)目中,顯示單元最多連接六個(gè)測量單元,利用NRF24L01的六個(gè)通道分別接收六個(gè)測量單元發(fā)送的測量信息,并在TFTLCD屏顯示。
參考文獻(xiàn):
[1]譚浩強(qiáng).C程序設(shè)計(jì)(第二版).清華大學(xué)出版社,1999,12.
[2]武奇生.基于ARM的單片機(jī)應(yīng)用及實(shí)踐·STM32案例式教學(xué).機(jī)械工業(yè)出版社,2014,6.