王利平,黃 健
(西京學(xué)院,西安 710123)
智能小車是一個集傳感器技術(shù)、信息融合、自動行駛等功能為一體的綜合體,可應(yīng)用在比較惡劣的工業(yè)環(huán)境中,例如在有毒、有害、潮濕等環(huán)境中作業(yè)。自動循跡是智能車要解決的一個技術(shù)問題,近年來,人們關(guān)注更多的是如何實現(xiàn)黑白線循跡,即沿著兩邊貼有黑線,中心為白色的跑道行駛[1-3]。在黑白線循跡中采用的是光電傳感器,光電傳感器發(fā)射的紅外線遇到白色平面反射光強,而遇到黑色平面時光線更多的被吸收,反射光弱,據(jù)此原理區(qū)分黑白線。但這種方法受自然光的影響較大,當(dāng)自然光比較強時,很難區(qū)分黑白線。
基于此,本文采用細鐵絲為跑道,使小車沿著鐵絲行駛,因鐵絲受環(huán)境影響較小。而對鐵絲的檢測,就是對金屬的檢測。早期的金屬檢測采用模擬電路,檢測輸出的也是模擬信號,因此其抗干擾能力、精度都較低。本文采用數(shù)字電感傳感器LDC1612,LDC1612是雙通道金屬檢測傳感器,輸出28位的數(shù)字量,具有IIC接口,可方便地與各種微處理器相連。28位的數(shù)字量可實現(xiàn)對金屬物高分辨率、高精度檢測,據(jù)此可設(shè)計沿細鐵絲行駛的智能小車。
系統(tǒng)設(shè)計框圖如圖1所示。
圖1中主控采用STM32F103ZET6,該處理器共有3個硬件SPI接口、8個定時器、3個串口、144個引腳,是基于Cortex M3的32位微處理器,功能強大,資源豐富[4-5]。LDC1612將采集到的數(shù)據(jù)通過IIC串行總線傳送給STM32,STM32根據(jù)LDC1612雙通道傳感器A和B采集的數(shù)字量判斷鐵絲的位置,控制小車的行駛。用1.44寸TFT真彩屏作為顯示設(shè)備,用于顯示采集到的A,B傳感器的數(shù)字量和時間信息等。
圖1系統(tǒng)框圖
LDC1612原理圖如圖2所示。圖2中LDC1612的1腳是SCL,是IIC總線中的時鐘信號線;2腳是SDA,是IIC總線中的數(shù)據(jù)線,分別連接到STM32的PE4和PE5引腳上,PE4和PE5作普通的IO口,采用模擬IIC的方式與LDC1612進行數(shù)據(jù)傳送。為了保證傳輸?shù)目煽啃?,在該引腳上都接有10 kΩ的上拉電阻。LDC1612采用3.3 V供電。LDC1612的9腳IN0A和10腳IN0B是IN0輸入通道,11腳IN1A和12腳IN1B是IN1輸入通道;這兩個通道分別連接自制電感線圈和電容,構(gòu)成LC諧振電路,通過電渦流原理檢測金屬[6-7]。
圖2STM32與LDC1612連接圖
自制線圈如圖3所示,可通過手工繞制或者在Altium Design中繪制,然后加工而成。圖3中線圈是在PCB中繪制的,直徑達到了4 cm。圖中線圈相當(dāng)于電感,給該電感配置一個合適的電容。當(dāng)外部有金屬物體時,就會產(chǎn)生LC諧振。LC的諧振頻率通下式計算:
圖3PCB下繪制電感線圈
Fsen=13×FexFcnt×RT
(1)
式中:Fsen是LC諧振頻率;Fex是外部時鐘基準(zhǔn)頻率,LDC1612內(nèi)部晶振產(chǎn)生,取值為4 MHz;Fcnt是LDC1612內(nèi)部計數(shù)器值,RT是LDC1612內(nèi)部寄存器設(shè)置的響應(yīng)時間。對式(1)兩邊分別求倒數(shù),并做適當(dāng)變化,可得到:
RT(1/Fsen)=3Fcnt(1/Fex)
(2)
式中:1/Fsen是LC諧振周期;1/Fex是基準(zhǔn)時鐘周期。式(2)表明在RT個LC諧振周期內(nèi),使用LDC1612的Fcnt計數(shù)器記錄基準(zhǔn)時鐘的個數(shù)來推算LC的諧振頻率。
根據(jù)電渦流原理,要檢測細小的金屬,必須要產(chǎn)生足夠大的渦流,就必須增大電感量L,通過多次實驗,繪制了直徑4cm的電感線圈,線的粗細為0.1 mm,電感量為0.250 mH,與其匹配的電容的大小為2.5 nF。對金屬的檢測距離達到3 cm。若要提高檢測距離,可適當(dāng)加大電感和電容。
TB6612是日本東芝公司出品的一款直流電機驅(qū)動器,性能優(yōu)于L298,可同時驅(qū)動2路直流電機,最大電流可達1.5 A,TB6612與STM32的連接圖如圖4所示。
圖4TB6612與STM32的連接圖
圖4中AIN1,AIN2,PWMA分別控制一路電機,對應(yīng)電機連接端是AO1和AO2; BIN1,BIN2,PWMB分別控制另一路電機,對應(yīng)電機連接端是BO1和BO2; 可將AIN1,AIN2,PWMA連接到對應(yīng)的STM32的IO口,PWMA引腳產(chǎn)生對應(yīng)的PWM波形,用于電機的調(diào)速。對應(yīng)的真值表如表1所示。
表1TB6612真值表
輸入輸出電機AIN1AIN2PWMAAO1AO2HHLLL制動HLHHL正轉(zhuǎn)LHHLH反轉(zhuǎn)LLLLL制動
表1中H代表高電平,L代表低電平。當(dāng)電機全速運行時,PWMA輸出高電平;要調(diào)整速度時,PWMA輸出不同占空比的方波。另一路電機BIN1,BIN2,PWMB, BO1,BO2的控制邏輯與表1類似。
TFT顯示單元采用1.44寸SPI接口真彩屏,顯示電路設(shè)計如圖5所示。
圖5TFT顯示電路設(shè)計原理圖
為提高1.44 TFT真彩屏的刷屏速度,采用STM32F103ZET6的硬件SPI1接口與1.44寸TFT真彩屏相連。因為對TFT液晶屏,只有寫屏操作,沒有讀操作,所以硬件SPI只需要3根線。其中SCLK連接到PB3(SPI1_SCLK),DI連接到PB5(SPI2_MOSI),CS連接到PB12(SPI2_NSS)。其余RST為復(fù)位信號,GND要共地,VCC接3.3 V。
軟件設(shè)計流程圖如圖6所示。首先對IIC接口、定時器、SPI接口進行初始化,然后通過IIC接口循環(huán)采集LDC1612的金屬探測值。為了使檢測值穩(wěn)定、可靠,共循環(huán)采集50次,進行冒泡排序,去掉最大值和最小值各10個,用剩下的30個求均值,并將結(jié)果送給1.44寸TFT屏顯示。因為LDC1612是雙通道的,所以可以連接2個傳感器,假設(shè)左邊的傳感器為A,右邊的傳感器為B。小車行駛時,將鐵絲放在傳感器A和B的中間,當(dāng)鐵絲偏向左邊時,A傳感器的值增大,控制小車右轉(zhuǎn);當(dāng)鐵絲偏向右邊時,B傳感器的值增大,控制小車左轉(zhuǎn);當(dāng)鐵絲在A,B中間時,A,B傳感器的值相等,小車直走。小車的行駛通過TB6612直流電機驅(qū)動。按照表1的真值表控制小車的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)。
圖6軟件流程圖
圖7給出了ILC讀時序。圖7中SCL是時鐘信號,SDA是數(shù)據(jù)線。對LDC1612進行讀操作時,首先發(fā)送所讀單元地址,然后分別讀出高8位和低8位數(shù)據(jù)[8-9]。LDC1612雙通道的地址寄存器的映射關(guān)系如表2所示。
圖7IIC讀時序
表2中,按照圖7的時序,讀寫0x00和0x01的高16位數(shù)據(jù)和低16位數(shù)據(jù),將其組合成通道0所對應(yīng)的32位數(shù)據(jù),通過和0X0FFFFFFF做“與運算”得到28位有效數(shù)據(jù)。同樣,通過讀寫0x02和0x03地址得到通道1的28位有效數(shù)據(jù)。初始化時,為了驗證IIC時序的正確性,可通過讀寫設(shè)備ID號實現(xiàn),若讀到的ID號是0x3055,則說明IIC讀寫時序正確,初始化成功,否則重新調(diào)試程序。
表2LDC1612寄存器映射表
地址功能描述0x00通道0高16位數(shù)據(jù)0x01通道0低16位數(shù)據(jù)0x02通道1高16位數(shù)據(jù)0x03通道1低16位數(shù)據(jù)0x7f設(shè)備ID號(默認值0x3055)
測試時的跑道如圖8所示。測試時,為了增加難度,在轉(zhuǎn)彎處設(shè)置了彎道。小車起始位置放在2 m直道的正中心,途徑6個彎道,彎道圓弧的半徑均為20 cm,最后再回到起點處,順時針行駛一圈。表3、表4列出了細鐵絲位置與傳感器的測量值之間的對應(yīng)關(guān)系。
圖8測試場地
表3直道行駛時細鐵絲位置與傳感器測量值之間關(guān)系
細鐵絲位置l/cm傳感器A測量值傳感器B測量值直道直線中心 19300 19300左偏0.5 19293 19300左偏1.5 19288 19300左偏2.5 19285 19300中心 19300 19300右偏0.5 19300 19295右偏1.5 19300 19287右偏2.5 19300 19285
表4彎道行駛時細鐵絲位置與傳感器測量值之間關(guān)系
細鐵絲相對中心點偏移距離l/cm傳感器A測量值傳感器B測量值彎道彎道起點中心 19300 19300彎道直走5 19299 19293再直走5 19298 19290直走出彎道 19297 19288彎道右拐 19297 19295再右拐 19298 19296進直道 19300 19300
表3中,測試時,首先將細鐵絲放置在傳感器A和B的自制線圈的正中心。假設(shè)通道0所對應(yīng)的傳感器為A,安裝在小車的左邊;通道1所對應(yīng)的傳感器為B,安裝在小車的右邊。當(dāng)小車按順時針方
向在直道上行駛時,當(dāng)細鐵絲靠近傳感器A時,傳感器A的測量值降低,傳感器B因為遠離鐵絲,所以其值不變,此時控制小車右轉(zhuǎn),直至左、右傳感器采集值相同為止;反之,細鐵絲靠近傳感器B時,傳感器B的測量值降低,傳感器A因為遠離鐵絲,所以其值不變,此時控制小車左轉(zhuǎn),直至左、右傳感器采集值相同為止。表4中,當(dāng)在彎道行駛時,情況比較復(fù)雜,細鐵絲靠近的一端的傳感器值降低得比較快,此時控制小車向傳感器值增大的一方旋轉(zhuǎn),直至左右兩邊傳感器的測量值接近為止,然后控制小車直走。
本文設(shè)計了一種能夠沿著細鐵絲行駛的智能小車,采用LDC1612數(shù)字電感傳感器探測金屬,配置適當(dāng)?shù)碾娙?,可實現(xiàn)對細鐵絲的檢測,檢測距離接近3 cm。由于LDC1612是雙通道傳感器,恰好可以實現(xiàn)對一根細鐵絲的檢測和循跡。加入適當(dāng)?shù)能浖V波算法,可使數(shù)據(jù)處理變得更加穩(wěn)定、可靠。本設(shè)計為智能小車的循跡增加了一種新的思路和方法,克服了光電傳感器受強光影響比較大的缺點,可應(yīng)用在灰塵、污垢、油和潮濕等惡劣環(huán)境中,具有一定的實用價值。
[1] 余熾業(yè), 宋躍, 雷瑞庭.基于STC12C5A60S2 的智能循跡小車[J].實驗室研究與探索,2014,33(11):46-49.
[2] 王晶.智能小車運動控制技術(shù)的研究[D].武漢:武漢理工大學(xué),2009.
[3] 尹杰,楊宗帥,聶海,等.基于紅外反射式智能循跡遙控小車系統(tǒng)設(shè)計[J].電子設(shè)計工程,2013,(23):178-184.
[4] 金立,賈存良,王梅,等.基于PIC單片機的智能循跡小車設(shè)計[J].工礦自動化,2010,(8):129-132.
[5] 莫太平,楊宏光,劉冬梅.面向多路線的智能循跡小車的設(shè)計與實現(xiàn)[J].自動化與儀表,2014,(4):6-9.
[6] 賀桂芳.一種新型智能金屬探測儀的設(shè)計[J].儀表技術(shù)與傳感器,2016,1:13-15.
[7] 師樹恒,趙斌,郭朋彥,等.基于MK60N512的智能循跡小車設(shè)計[J].機床與液壓,2014,42(2):91-96.
[8] 王茹茹,宋開宏,明軍,等.基于開放線圈系統(tǒng)金屬探測儀傳感器的特性分析[J].合肥工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2015,38(3):354-357.
[9] 宋永獻,馬娟麗,賀乃寶,等.基于TMS320F2812的智能循跡小車控制系統(tǒng)設(shè)計[J].計算機測量與控制,2011,19(9):2128-2130.