王楠,王蘊(yùn)嶺,孫玉軍
(滄州職業(yè)技術(shù)學(xué)院,河北滄州,061000)
目前,市場上的超聲波測距裝置大多無法實(shí)現(xiàn)水平調(diào)節(jié)的問題,同時(shí)采用人工接觸式測距也會(huì)存在一定的誤差,因此測量的距離可能會(huì)不精準(zhǔn)甚至不準(zhǔn)確,這樣不僅會(huì)造成很大的麻煩,嚴(yán)重者甚至?xí)a(chǎn)生一系列的安全隱患。為了避免水平測量過程中的偏移誤差,確保超聲波測距裝置的正常使用,能夠得到比較精準(zhǔn)的測距結(jié)果,為此需研發(fā)一種單片機(jī)控制的自平衡超聲波水平精準(zhǔn)測距裝置。因此,本文設(shè)計(jì)了一種基于STM32單片機(jī)嵌入式系統(tǒng),可根據(jù)不同地理位置、多種地形進(jìn)行調(diào)整和作業(yè)的實(shí)時(shí)水平精準(zhǔn)測距裝置。在不同行業(yè),如建筑、交通、工業(yè)等具有廣泛應(yīng)用,同時(shí)可以避免與有毒有害物質(zhì)接觸,在裝置啟動(dòng)之后即可實(shí)現(xiàn)測距,并能在液晶顯示屏和語音實(shí)時(shí)進(jìn)行播報(bào),實(shí)現(xiàn)了非接觸、實(shí)用性強(qiáng)、測距精準(zhǔn)、使用方便、適用范圍廣等特點(diǎn)。
該測距儀由單片機(jī)STM32F401模塊、超聲波HC-SR04測距模塊、語音識(shí)別模塊、語音合成輸出模塊、顯示輸出模塊、按鍵輸入模塊、姿態(tài)檢測模塊構(gòu)成。系統(tǒng)整體框架圖如圖1所示。
圖1 系統(tǒng)的整體框架圖
本設(shè)計(jì)采用STM32F401開發(fā)板,該開發(fā)板包含了STM32F系列板卡慣有的機(jī)械按鍵、LED指示燈、mini USB調(diào)試接口、眾多I/O口、可以外設(shè)通過排針座引出等功能。除此之外,也有與眾不同之處,如兼容Arduino Shield接口,并且可以通過Arduino Shield擴(kuò)展接口給板卡供電,板卡落載了STM32F401RET6核心微控制器,基于32位的高性能ARM Cortex-M4處理器,帶FPU單元,最高支持84MHz主頻。
超聲波測距是一種檢測迅速、計(jì)算簡單、方便低廉的非接觸式檢測技術(shù),不會(huì)受光線、顏色等因素影響,即使惡劣的環(huán)境 (如含粉塵) 也有一定的適應(yīng)能力。本設(shè)計(jì)采用超聲波測距傳感器HC-SR04對(duì)距離進(jìn)行測量。該模塊由五個(gè)端口組成,分別為VCC、TRIG、ECHO和兩個(gè)GND終端,其中VCC供電范圍為2.4~5.5V,GND為接地引腳,TRIG為測距電平觸發(fā)引腳,ECHO為測距電平輸入引腳。該模塊測量精度可達(dá)毫米級(jí)別,測量范圍在5厘米到400厘米之間[1]。
液晶顯示模塊用于顯示配置信息及輸出結(jié)果,便于調(diào)試工作。該顯示屏適用于多種市面常見開發(fā)板。本設(shè)計(jì)利用STM32F4的FSMC功能驅(qū)動(dòng)TFT液晶屏,并通過其串口向使用TFT液晶屏的外部處理器提供控制通道。外部處理器通過訪問串口STM32F4內(nèi)部預(yù)先燒錄的接口程序,實(shí)現(xiàn)對(duì)TFT液晶屏的控制[2]。該模塊硬件簡單,只需兩根I/O口線就能對(duì)TFT液晶屏進(jìn)行控制。經(jīng)實(shí)驗(yàn)驗(yàn)證,該結(jié)構(gòu)穩(wěn)定可靠,顯示效果清晰。
HLK-V20是針對(duì)大量純離線控制場景和產(chǎn)品的高性能語音識(shí)別模塊。可廣泛且快速的使用于智能家居、各類智能家電、物聯(lián)網(wǎng)等需要語音操控的產(chǎn)品。該模塊采用32bit RSIC架構(gòu)內(nèi)核,并加入了專門針對(duì)信號(hào)處理和語音識(shí)別所需要的DSP指令集,支持浮點(diǎn)運(yùn)算的FPU運(yùn)算單元,以及FFT加速器,通過神經(jīng)網(wǎng)絡(luò)對(duì)音頻信號(hào)進(jìn)行訓(xùn)練學(xué)習(xí),提高語音信號(hào)的識(shí)別能力。本設(shè)計(jì)中制定了該語音模塊的喚醒詞、命令詞和應(yīng)答播報(bào)詞,使用測距儀時(shí),首先喚醒測距儀“小凌小凌”,測距儀回答“我在”,并開始測距,結(jié)果在TFT顯示屏顯示的同時(shí),語音模塊實(shí)時(shí)進(jìn)行播報(bào)。在實(shí)際體驗(yàn)中,語音效果良好。
單片機(jī)采用C語言進(jìn)行編程,系統(tǒng)軟件可分為主程序和各模塊子程序。最重要的程序就是單片機(jī)控制超聲波檢測距離,進(jìn)而顯示屏輸出并進(jìn)行語音播報(bào)的主程序過程。其系統(tǒng)主程序流程框圖如圖2所示。
圖2 單片機(jī)主程序流程框圖
系統(tǒng)的軟硬件設(shè)計(jì)共同組成了一個(gè)整體。在測距儀測距系統(tǒng)正式啟動(dòng)之后,系統(tǒng)首先會(huì)進(jìn)行初始化位置調(diào)整,之后進(jìn)行方位檢測平衡階段,下一步判斷是否進(jìn)行連續(xù)測量,按下按鍵開始啟動(dòng)測距,輸入語音指令從而喚醒測距儀,測距依將結(jié)果進(jìn)行顯示并語音播報(bào)。
在進(jìn)行系統(tǒng)調(diào)試階段,可以利用傳統(tǒng)的測距工具,例如刻度尺進(jìn)行所測距離的核對(duì),判斷設(shè)計(jì)是否符合實(shí)際,從而進(jìn)一步調(diào)試和完善。本系統(tǒng)設(shè)計(jì)的要求主要針對(duì)水平測距的范圍及精度進(jìn)行,系統(tǒng)調(diào)試應(yīng)圍繞這兩個(gè)參數(shù)開展。通過分析實(shí)驗(yàn)數(shù)據(jù),可以發(fā)現(xiàn)本測距儀在設(shè)計(jì)上較為合理,誤差在可控范圍內(nèi),因此,該基于單片機(jī)的測距系統(tǒng)設(shè)計(jì)方案可行。
本設(shè)計(jì)中的自平衡超聲波測距儀以STM32F401為控制核心,根據(jù)三點(diǎn)確定一個(gè)平面及時(shí)進(jìn)行調(diào)整。該測距儀通過測量超聲波的發(fā)射信號(hào)和接收信號(hào)的時(shí)間差,結(jié)合超聲波發(fā)射信號(hào)和接收信號(hào)時(shí)的傳播速度從而得到測量距離。不僅可以在TFT液晶屏中顯示距離信息,還可以由語音模塊進(jìn)行播報(bào)提醒。在實(shí)際體驗(yàn)中,效果良好,方案可行,實(shí)驗(yàn)精度和范圍可以達(dá)到控制要求。加之,本測距儀結(jié)構(gòu)簡單、人機(jī)界面友好、互動(dòng)性強(qiáng)、操作方便、成本低廉,因此,該測距儀可以實(shí)現(xiàn)非接觸式的、自平衡校準(zhǔn),并可根據(jù)不同地理位置、多種地形進(jìn)行調(diào)整和作業(yè)的實(shí)時(shí)水平精準(zhǔn)測距,具有很高的推廣和實(shí)用價(jià)值。