青島恒星科技學(xué)院 夏 杰 魏書偉
智能自動循線小車采用32位單片機(jī)LPC54606為核心控制器,通過智能車上搭載的傳感器識別賽道中間的電磁線,以最快的速度完成巡線行駛,采用工字電感完成對賽道信息的采集檢測,通過算法提取中線,使用PID控制算法調(diào)節(jié)舵機(jī)的打角,實(shí)現(xiàn)智能車運(yùn)動過程中的方向閉環(huán)控制,同時,車上搭載TFT顯示模塊和按鍵,可以對車內(nèi)參數(shù)實(shí)現(xiàn)快速調(diào)節(jié),并通過上位機(jī)對采集信息進(jìn)行分析。經(jīng)多次重復(fù)實(shí)驗(yàn),結(jié)果表明,智能小車可以精確并迅速完成巡線行駛。
本系統(tǒng)采用32位微控制LPC54606型號芯片作為核心控制單元對整個智能小車系統(tǒng)進(jìn)行控制。賽道信息由車體前方架設(shè)的幾個工字型電感進(jìn)行采集,經(jīng)LPC54606的ADC口接收信號后,同時內(nèi)部發(fā)出PWM波,用于智能小車的運(yùn)動控制反應(yīng)和驅(qū)動直流電機(jī)對智能小車進(jìn)行速度控制,同時通過控制智能小車兩個輪子的速度差來實(shí)現(xiàn)車體的轉(zhuǎn)向,使智能小車在賽道上能夠自主循跡行駛。此外,智能小車上增加按鍵和撥碼開關(guān)作為輸入設(shè)備,便于智能小車的速度控制和策略的選擇。
通過改變電機(jī)轉(zhuǎn)速來實(shí)現(xiàn)速度控制和方向控制,保證車模沿著競賽道路行駛。智能小車行駛的道路中心鋪設(shè)有一根金屬漆包線,通有100mA的20kHz交變電流,道路中心線周圍產(chǎn)生一個交變磁場通過傳感器采集道路電磁信息數(shù)據(jù),經(jīng)過算法處理實(shí)現(xiàn)電機(jī)控制和方向控制,從而保證智能小車在賽道上的高效行駛。
圖1 智能巡線小車系統(tǒng)結(jié)構(gòu)框圖
如圖1所示,本設(shè)計(jì)共四大模塊:LPC54606主控模塊、電機(jī)驅(qū)動模塊、電源模塊、輔助模塊。主控模塊將傳感器采集信號處理后,根據(jù)控制算法對應(yīng)控制直流電機(jī)轉(zhuǎn)速,實(shí)現(xiàn)對智能車的最優(yōu)速度控制。傳感器模塊,通過25cm長的前瞻放置四個對稱電感,使小車提前判斷賽道信息,做出決策提供充足的反應(yīng)時間。電源模塊,為整個系統(tǒng)提供合適而又穩(wěn)定的電源。電機(jī)驅(qū)動模塊,驅(qū)動直流電機(jī)完成智能小車的加減速控制和舵機(jī)轉(zhuǎn)向控制。輔助模塊主要用于智能小車的各傳感器的功能調(diào)試、賽車在賽道上的狀態(tài)監(jiān)測等。
LPC54606單片機(jī)將高級計(jì)時器和模擬功能結(jié)合在一起,其中的DSP功能使單片機(jī)能夠支持?jǐn)?shù)據(jù)密集型應(yīng)用中的復(fù)雜算法,且LPC54606單片機(jī)具有高達(dá)512KB的閃存和外部存儲器接口,靈活性強(qiáng),閃存選項(xiàng)支持大型內(nèi)部和外部存儲器配置,可根據(jù)需求變化進(jìn)行調(diào)整。LPC54xxx系列之間的兼容性強(qiáng),能夠提供無縫的遷移路徑,并提高處理能力。LPC54606單片機(jī)實(shí)物圖如圖2所示。
圖2 LPC54606單片機(jī)實(shí)物圖
在交變的磁場中,智能巡線小車通過電磁引導(dǎo)判斷行駛路徑,傳感器模塊根據(jù)RC諧振公式計(jì)算得出外部頻率為20KHz,信號調(diào)理與傳輸采用四路10mH的電感和6.8uF的電容組成諧振電路,布局通過左右兩路電感平放、中間兩路電感傾斜的方式來進(jìn)行電磁信號的采集。在電磁自主循跡狀態(tài)下,智能小車不受光線、溫度和濕度的影響,適應(yīng)性強(qiáng),相對光電或攝像頭引導(dǎo)的小車有巨大優(yōu)勢。
驅(qū)動電路本方案采用了集成度更高的BNT7971B驅(qū)動芯片,同時使用兩個驅(qū)動芯片,IN1給PWM高電平信號的同時IN2給低電平信號,左邊芯片高邊MOSFET會在PWM控制下快速打開,而低邊MOSFET則一直處于關(guān)閉狀態(tài);右邊芯片高邊MOSFET一直關(guān)閉而低邊MOSFET一直處于打開的狀態(tài),這樣就同時實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)控制和對輸出電流的PWM控制,達(dá)到電機(jī)的正反轉(zhuǎn)和調(diào)速目的。經(jīng)過多次試驗(yàn)測試,雙BTN7971搭建的H橋驅(qū)動電路PWM工作頻率最佳為17kHz,此時輸出的方波波紋較小,控制精度較高,BTN驅(qū)動電路如圖3所示。
圖3 BTN驅(qū)動電路圖
智能巡線小車的驅(qū)動電機(jī)為S380電機(jī),轉(zhuǎn)向舵機(jī)為S3010舵機(jī),智能巡線小車的控制采用的是前輪轉(zhuǎn)向,后輪驅(qū)動方案。智能巡線小車機(jī)械結(jié)構(gòu)創(chuàng)新有以下幾點(diǎn):
(1)車模底盤降低,用來降低重心。
(2)舵機(jī)采用豎直姿態(tài),方便控制。
(3)對前輪傾角進(jìn)行調(diào)節(jié),保證車直線行駛的穩(wěn)定性。
(4)電池平放后移,使重心盡量位于車體中后方緊貼底盤,保證車在高速時入彎時的穩(wěn)定性。
(5)用輕便碳素桿作為前瞻用來固定電磁干,前端的碳素桿采用“工”字形結(jié)構(gòu)設(shè)計(jì),更好的減輕了上下坡電磁干上下擺動的現(xiàn)象。車的機(jī)械結(jié)構(gòu)實(shí)物圖如圖4所示。
圖4 機(jī)械結(jié)構(gòu)實(shí)物圖
本系統(tǒng)控制部分包括方向PID控制和差速控制賽道信息檢測是由車體前方架設(shè)的四個工字型電感進(jìn)行采集,經(jīng)LPC54606的ADC口接收信號后,發(fā)出PWM波驅(qū)動直流電機(jī)對智能汽車進(jìn)行加速和減速控制,通過控制智能小車兩個輪子的速度差和舵機(jī)打角來實(shí)現(xiàn)車體的轉(zhuǎn)向,使智能車在賽道上能夠自主循跡行駛。系統(tǒng)主程序流程圖如圖5所示。
本方案采用增量式PID控制:
當(dāng)加入積分項(xiàng)后,會導(dǎo)致系統(tǒng)控制滯后,因此決定只采用PD項(xiàng),使用開方差比求和法來計(jì)算當(dāng)前賽道中線的偏差值Erros_S,由比例系數(shù)Kp與Error_S的乘積得到比例項(xiàng)。其次加入微分項(xiàng),該微分控制項(xiàng)可以克服單純比例控制帶來的滯后作用,使其更近目標(biāo)值。
圖5 系統(tǒng)主程序流程圖
當(dāng)比例P系數(shù)偏大時,直道行駛時小車晃動較大,舵機(jī)反應(yīng)太過靈敏,彎道轉(zhuǎn)彎半徑減小;比例P系數(shù)偏小時,直道行駛晃動小,舵機(jī)反應(yīng)太過遲鈍;微分D系數(shù)偏大時舵機(jī)反應(yīng)靈敏,易高頻抖動,抗干擾能力差;微分D系數(shù)偏小時,抗干擾能力好,多級反應(yīng)慢。所以只有采用適當(dāng)?shù)腜D調(diào)節(jié)相結(jié)合,才可以使智能小車達(dá)到快速穩(wěn)定的效果。
PID算法示意圖如圖6所示。
圖6 PID算法示意圖
主要算法思想:將采集的值進(jìn)行排序,然后再用一變量來存儲每一路的平均值,對于滑動求和就是每次采樣一個新數(shù)據(jù)便存入暫存區(qū),同時去掉一個老數(shù)據(jù),始終保持最新數(shù)據(jù)。將濾波完后的值賦值給當(dāng)前值。由于不同運(yùn)放芯片的放大倍率可能不同,為了方便之后的PID算法處理,應(yīng)對采集數(shù)據(jù)進(jìn)行歸一化處理,歸一化是一種簡化計(jì)算的方式,即將有量綱的表達(dá)式,經(jīng)過變換,化為無量綱的表達(dá)式,成為標(biāo)量。
電感采集如表1所示。
表1 電感采集
結(jié)束語:本文以LPC54606單片機(jī)為控制核心,設(shè)計(jì)智能自動循線小車,經(jīng)多次重復(fù)實(shí)驗(yàn),結(jié)果表明,智能小車可以精確并迅速完成巡線行駛,且具有以下幾個創(chuàng)新點(diǎn):
(1)控制過程:電磁采集模塊利用工字電感和矯正電容組成的諧振電路來進(jìn)行電磁信號采集然后經(jīng)過運(yùn)算放大模塊進(jìn)行信號的放大和提取傳輸給單片機(jī),經(jīng)過運(yùn)算以后輸出合適的舵機(jī)PWM值來進(jìn)行舵機(jī)的打角控制;調(diào)速方面為給定速度和差速來進(jìn)行電機(jī)的兩輪轉(zhuǎn)速控制實(shí)現(xiàn)小車的動力控制。
(2)軟件算法:首先采取電感信號,但電感歸一化也影響小車在中線的位置,歸一化之后偏差在中線為0,所以調(diào)好之后需進(jìn)行PD調(diào)節(jié),先P后D進(jìn)行調(diào)節(jié),提升速度,達(dá)到最大速度后,再進(jìn)行差速調(diào)節(jié)。