張宇杭
摘 要:常規(guī)的基于集成電路的激光測(cè)距儀設(shè)計(jì)方法操作繁瑣、成本高?;趩纹瑱C(jī)設(shè)計(jì)的激光測(cè)距儀則可以執(zhí)行預(yù)置、檢測(cè)、顯示、報(bào)警等多種操作,同時(shí)相對(duì)于專用集成電路來(lái)說(shuō)成本更低,更易操作簡(jiǎn)單可靠。基于此,本文基于脈沖回波測(cè)距原理,基于單片機(jī)開發(fā)了一種廣泛使用的激光測(cè)距儀。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);激光測(cè)距儀;設(shè)計(jì);脈沖回波
測(cè)距技術(shù)的發(fā)展始于接觸式測(cè)距技術(shù),接觸式測(cè)距適用性較差,非接觸測(cè)距技術(shù)應(yīng)運(yùn)而生,尤其是電磁波測(cè)距技術(shù)的誕生于應(yīng)用是測(cè)量技術(shù)發(fā)展史的里程碑。最初被用于雷達(dá)測(cè)距定位,大大提升了距離測(cè)量的精度和速度,也為測(cè)量操作的自動(dòng)化提供了技術(shù)支撐。當(dāng)前,激光測(cè)距在工業(yè)生產(chǎn)中的應(yīng)用正變得越來(lái)越普遍?;诖耍疚尼槍?duì)脈沖回波激光測(cè)距儀器設(shè)計(jì)思路進(jìn)行了簡(jiǎn)要論述,并探討如何基于單片機(jī)設(shè)計(jì)激光測(cè)距儀,以豐富激光測(cè)距儀的功能,提高其測(cè)量精度,簡(jiǎn)化激光測(cè)距操作。
1脈沖回波激光測(cè)距儀設(shè)計(jì)思路
本次設(shè)計(jì)基于脈沖回波法測(cè)距原理開發(fā)出一種激光測(cè)距儀。當(dāng)發(fā)射探針發(fā)射的激光與障礙物碰撞時(shí)會(huì)被反射,接收探針會(huì)接收到反射的激光。設(shè)計(jì)發(fā)射探針、接收探針使其位于同一位置。如果激光從發(fā)射到接收用時(shí)為t,則激光從探針反射至反射面用時(shí)為t/2。激光探針、反射面的距離S可以通過(guò)以下公式算得:
其中c表示大氣環(huán)境中的光傳播速度;t表示激光從發(fā)射到被接收的用時(shí)
因?yàn)樵趯?shí)際制作過(guò)程中缺少光纖,而激光器和光電二極管的端面形狀面積相差很大與上文中的數(shù)學(xué)模型中所設(shè)的理想條件差距過(guò)大,所以采用回波法代替,無(wú)光纖時(shí)可正常使用而在擬合光纖后僅需在算法時(shí)間t中減去激光在光纖中的傳播時(shí)間即可。激光發(fā)射與接收模型與上文光纖探針基本相同,不過(guò)發(fā)射光斑與接收面積的比值更大。
激光器經(jīng)方波調(diào)制后為脈沖信號(hào),因?yàn)槁瓷浼鞍l(fā)射角等問題光電二極管采集到為類正弦信號(hào),為方便后續(xù)處理需將正弦信號(hào)變成高低電平,及做比較處理大于均值的值記為高電平,其余值記為0。電路設(shè)計(jì)仿真如圖1所示:
2硬件設(shè)計(jì)
2.1光學(xué)探針
通過(guò)使用Vl53l0X集成芯片,替代原設(shè)計(jì)中激光器、光電轉(zhuǎn)換模塊、流壓轉(zhuǎn)換模塊。因?yàn)槠浔旧砭哂信涮椎?40nmvcsel發(fā)射器和接收光電二極管,在無(wú)重組配件選型情況下為設(shè)計(jì)提供便捷,同時(shí)其垂直腔表面發(fā)射激光,再加上內(nèi)部配置物理紅外濾光片使其具有更強(qiáng)的抗干擾性,與之配套的spad陣列(單光子雪崩二極管)與相較常規(guī)光電二極管性能更強(qiáng),弱光探測(cè)更為敏感。這些使得該芯片具有良好的準(zhǔn)確性與較長(zhǎng)的探測(cè)距離滿足設(shè)計(jì)需求,且其是較為成熟的完全集成微型模塊體積小可靠性強(qiáng),有效避免了缺少檢測(cè)器械帶來(lái)的影響,在測(cè)距過(guò)程中,Vl53l0X芯片發(fā)射多個(gè)vcsel紅外脈沖,然后被待測(cè)目標(biāo)反射回來(lái),并被陣列接收檢測(cè),一次測(cè)量的時(shí)間預(yù)計(jì)為33毫秒(初始化/測(cè)距/內(nèi)務(wù)處理),在實(shí)際測(cè)量中受傳播損耗影響采用23毫秒。最小范圍測(cè)量周期為8毫秒。
2.2單片機(jī)
設(shè)計(jì)中使用STC89C51單片機(jī)作為下位機(jī)。該單片機(jī)是宏晶科技生產(chǎn)的一種CMOS8位微控制器,指令代碼完全兼容傳統(tǒng)8051單片機(jī),具有高性能、低功耗、超強(qiáng)抗干擾、使用方便簡(jiǎn)單的特點(diǎn),是新一代8051單片機(jī)。其主頻可達(dá)35MHz,定時(shí)器精度可達(dá)0.028μs,由定時(shí)時(shí)間t1、t2帶來(lái)的誤差為0.0097mm,誤差值可忽略不計(jì)。
3電路設(shè)計(jì)
因?yàn)閂l53l0X芯片發(fā)射與接受探針間距較小,考慮到后期擬合光纖需要同時(shí)使用兩枚該芯片,一枚正常進(jìn)行激光測(cè)距使用,另一枚僅提供調(diào)制后的940nm激光。使用ALTUMDESIGNER進(jìn)行電路設(shè)計(jì),因?yàn)橛蓡纹瑱C(jī)和集成芯片替代大部分電路,所以需連接芯片相對(duì)較少不進(jìn)行PCB打樣設(shè)計(jì),供電部分因缺少穩(wěn)壓電源等設(shè)備,同時(shí)該電路需向計(jì)算機(jī)進(jìn)行串行傳輸,所以通過(guò)USB轉(zhuǎn)TTL線同時(shí)完成串行傳輸和供電,基于單片機(jī)的激光測(cè)距儀電路設(shè)計(jì)圖如2所示
4 程序設(shè)計(jì)
本次程序設(shè)計(jì)使用匯編語(yǔ)言編程。程序基本流程是在完成系統(tǒng)的初始化之后,由脈沖產(chǎn)生電路產(chǎn)生脈沖信號(hào),并且由功率放大器電路驅(qū)動(dòng)半導(dǎo)體激光發(fā)生器以發(fā)射激光,激光遇到障礙物反射回來(lái),經(jīng)過(guò)放大電路后再次產(chǎn)生脈沖信號(hào),單片機(jī)記錄兩個(gè)脈沖信號(hào)之間的時(shí)間間隔,根據(jù)上述公式可以計(jì)算激光發(fā)射點(diǎn)、障礙物之間的距離。只要根據(jù)該過(guò)程將程序?qū)懭雴纹瑱C(jī),就可以在顯示模塊上正確顯示結(jié)果。與啟動(dòng)激光發(fā)射電路同時(shí)啟動(dòng)計(jì)時(shí)器,計(jì)時(shí)器計(jì)數(shù)功能用于記錄激光發(fā)射時(shí)間和接收到反射激光的時(shí)間。當(dāng)接收到激光時(shí),在接收電路的輸出端產(chǎn)生負(fù)跳變,在端子INT0或INT1處產(chǎn)生中斷請(qǐng)求信號(hào),單片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行外部中斷服務(wù)程序,讀取時(shí)間差并計(jì)算出距離。
4.1下位機(jī)程序
使用UVisionIDE軟件通過(guò)C語(yǔ)言進(jìn)行單片機(jī)控制程序編寫,該程序采用PWM進(jìn)行數(shù)據(jù)讀取,距離=高電平時(shí)間(μs)/10:
4.2 上位機(jī)程序
首先創(chuàng)建一個(gè)while循環(huán)控制上位機(jī)程序開停,然后在其中進(jìn)行后續(xù)程序編寫。然后從VISA庫(kù)調(diào)用VISA配置串口按對(duì)應(yīng)端口將串口名稱、波特率、數(shù)據(jù)位、奇偶、停止位和流控等控件連入如圖3-8所示:然后創(chuàng)建一個(gè)真假循環(huán)控制上位機(jī)給下位機(jī)的數(shù)據(jù)發(fā)送,在其中調(diào)用VISA寫入,將VISA資源名稱與VISA配置串口VISA資源名稱輸出相連,錯(cuò)誤輸入與VISA配置串口錯(cuò)誤輸出相連,然后在寫入緩存區(qū)創(chuàng)建字符串
在之后創(chuàng)建層疊順序結(jié)構(gòu),在其中置入等待,并設(shè)計(jì)等待時(shí)間及每次距離數(shù)據(jù)讀取前延時(shí),在層疊順序結(jié)構(gòu)同樣置入等待為while循環(huán)延時(shí)時(shí)間,以便設(shè)備有時(shí)間相應(yīng)。在串行傳輸和讀取中存在機(jī)械噪聲和丟包現(xiàn)象不利于整體數(shù)據(jù)波形觀測(cè),所以需要進(jìn)行有效值選擇,首先創(chuàng)建一個(gè)真假循環(huán)真假條件默認(rèn)為T,在其中調(diào)用數(shù)據(jù)節(jié)點(diǎn)、VISA讀取,將數(shù)據(jù)節(jié)點(diǎn)的引用與VISA資源名稱的VISA資源名稱輸出相連,錯(cuò)誤輸入與VISA資源名稱的錯(cuò)誤輸出相連,再將其引用輸出與VISA讀取的VISA資源名稱相連,錯(cuò)誤輸出與錯(cuò)誤讀取相連,將VISA讀取的讀取緩沖區(qū)輸出的字符串通過(guò)字符串轉(zhuǎn)換至數(shù)組,然后連入公式節(jié)點(diǎn)b1=a4左移八位+a5,如果b1<2500與a0=90與a1=90發(fā)生則b=b1輸出b,因?yàn)榘l(fā)送數(shù)據(jù)到上位機(jī)的時(shí)候TX_DATA[0]=TX_DATA[1]=0x5a=90;來(lái)判斷數(shù)據(jù)的有效性,a0:幀頭0x5a、a1:幀頭0x5a、a2:功能字節(jié)、a3:數(shù)據(jù)個(gè)數(shù)、a4:是數(shù)據(jù)高八位、a5:是數(shù)據(jù)的第八位、b1=a4左移八位+a5就是距離位移,通過(guò)幀頭來(lái)判斷是否發(fā)生丟包,同時(shí)距離位移不能超過(guò)2500mm因?yàn)榱砍淌?-2500以此作為約束去除噪聲,如果過(guò)大或沒有數(shù)據(jù)仍使用上次賦值的b,將b連接至顯示控件,并創(chuàng)建引用節(jié)點(diǎn)再真假循環(huán)外連接至波形圖得到距離曲線程序
結(jié)語(yǔ)
綜上所述,該激光測(cè)距儀性能穩(wěn)定,功能豐富,操作簡(jiǎn)便,數(shù)據(jù)的接收處理效率較高,還可以方便的進(jìn)行部件的連接和斷開,易于維護(hù)。經(jīng)測(cè)試器誤差在2.15%左右。該激光測(cè)距解決了一些實(shí)際問題,例如傳統(tǒng)激光測(cè)距儀的操作復(fù)雜,適用性差的問題,應(yīng)用前景較好。
參考文獻(xiàn):
[1]陳羽. 高精度脈沖激光測(cè)距儀的研究[D]. 西安工業(yè)大學(xué), 2014.
[2]徐成濤, 吳冠豪, 鄭睿童. 脈沖式激光測(cè)距儀計(jì)時(shí)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 自動(dòng)化儀表, 2012(05):77-80.
[3]孫興信. 脈沖式激光測(cè)距儀的硬件設(shè)計(jì)[D].
[4]周宇. 脈沖式激光測(cè)距儀的研究與設(shè)計(jì)[D]. 2016.