基于單片機的AGV智能車的設計
隨著計算機和信息技術的快速發(fā)展,AGV智能車在運輸、倉儲等工業(yè)領域獲得了廣泛的應用。特別是隨著現(xiàn)代物流業(yè)的飛速發(fā)展,運輸以及倉儲成本問題已成為物流企業(yè)在成本核算中一個無法忽視的問題,實現(xiàn)產(chǎn)品的零庫存是節(jié)約成本、提高產(chǎn)品競爭力的目標之一。一方面是為了節(jié)約成本,實現(xiàn)零庫存;另一方面是為了獲得規(guī)模效益而不斷擴大的儲備倉庫,要實現(xiàn)不同產(chǎn)品的自動歸庫和自動出倉,需要一種可以實現(xiàn)自動化操作的智能設備,來完成這些無人化工作,從而實現(xiàn)高效管理和自動控制的目標。AGV智能車恰好可以實現(xiàn)這樣的功能。本文基于單片機的原理,探討和模擬了AGV智能車在倉庫中實現(xiàn)對產(chǎn)品的自動歸庫和自動出倉的工作方式。
本文引用地址:http://m.butianyuan.cn/article/196984.htm1 方案選擇及硬件電路設計
1.1 MC9S12DJ128單片機
MC9S12DJ128 MCU是一種16 bit的MCU,其內(nèi)部主要由MCU的基本部分和CAN功能模塊組成。MCU的基本部分主要包括:
(1)時鐘和復位產(chǎn)生模塊CRG(Clock and Reset Generator)。包括低電流振蕩器或是標準振蕩器的選擇、鎖相環(huán)時鐘頻率放大器、看門狗、實時中斷和時鐘監(jiān)控器。
(2)存儲器包括128 KB的Flash、 8 KB的RAM、 2 KB的EEPROM。具有5V輸入和驅動能力,CPU的工作頻率可達到50 MHz,并支持單線背景調(diào)試模式(BDM),可以在線調(diào)試。
(3)29路獨立的數(shù)字I/O接口,20路帶中斷和喚醒功能的數(shù)字I/O接口;2個8通道的10位A/D轉換器、具有外部轉接觸能力;具有8通道的輸入捕捉/輸出比較,還具有8個可編程PWM通道,可配置成8通道8位或4通道16位PWM,其每個通道的周期和占空比均可以通過編程獨立設置。
(4)具有2個串行異步通信接口SCI、2個同步串行外設接口SPI、Byteflight,Inter-IC總線以及SAE J1850 Class B數(shù)據(jù)通信網(wǎng)絡接口[1]。
為了實現(xiàn)AGV智能車的控制實現(xiàn)無人化操作,硬件電路的設計主要包括路徑信息采集分離模塊、電源管理模塊、舵機控制模塊、電機驅動控制模塊及速度檢測控制電路等。其設計框圖如圖1所示。
為了方便硬件電路調(diào)試、便于硬件電路的分割處理、避免硬件電路可能出現(xiàn)的信號干擾、串擾問題,方便機械結構的設計,本設計采用模塊化設計,不同模塊之間可以通過屏蔽線或同軸電纜實現(xiàn)信號傳輸,通過實驗,其效果比較理想。
1.2 電源管理模塊
本設計中AGV智能車采用7.2 V的電池組供電。常用的直流低壓控制電路可采用開關穩(wěn)壓和串聯(lián)穩(wěn)壓方式。開關穩(wěn)壓芯片的工作效率高但電路有較大的電源噪聲,適用于耗電量較大的電路[2]。當電路的電池電壓由于消耗變低時,通用的LM7805芯片輸出電壓就難以保證,容易造成單片機的自復位。另外在考慮到驅動電機有較大的電流,尤其智能車在啟動和加速時,可能會造成電池比較大的輸出壓降。
基于以上的考慮,本設計電源模塊的主控芯片分別采用MAX1771CSA和MAX1626ESA,該芯片有較大的電壓輸入范圍,能有效地保證由于電池的損耗輸出電壓降低而造成的穩(wěn)壓電路的較大電壓波動輸出。采用MAX1771CSA構成12 V升壓電路,MAX1626ESA構成5 V降壓電路。單片機主控制電路、舵機驅動、速度檢測均需要+5 V的控制電壓,而視頻采集電路需+12 V控制電壓。該電源供電模塊設計完全可以滿足控制要求。
1.3 CCD視頻采集分離模塊
本文采用Clarion CC-450型車載前端攝像頭,該攝像為NTSC制式,掃描525線30幀/s的圖像。CCD攝像頭輸出標準的視頻復合信號,通過行掃描的方式,將圖像信息轉換為一維的視頻模擬信號輸出。通過對比S12單片機采集圖像分辨率的特點及路徑檢測所需圖像分辨率的要求可以發(fā)現(xiàn),在安裝CCD攝像頭的時候,只要將其旋轉90°,則圖像信息也將旋轉90°,如圖2所示。通過A/D轉換器采集的圖像信息,水平分辨率與垂直分辨率會發(fā)生互換,從原來的水平分辨率低、垂直分辨率高的圖像,變成水平分辨率高、垂直分辨率低的圖像,正好可以滿足道路參數(shù)檢測的要求。
由于攝像頭采集的信號數(shù)據(jù)量較大,采用單片機本身自帶的A/D轉換I/O口可能出現(xiàn)轉換速度無法滿足要求的情況,所以,在本設計中另外采用了1片A/D信號轉換芯片ADC1775CIMTC,以滿足攝像頭信號采集和轉換使用。步信號分離芯片LM1881和ADC1775CIMTC的A/D轉換可以對視頻信號進行采集,從而得到CCD的灰度圖像數(shù)據(jù),經(jīng)二值化處理就可以在圖像上得到黑色路徑軌跡的點陣[3],視頻信號通過比較器與設定的值進行比較,從而得到視頻電壓的二值化。二值化電路原理圖如圖3所示。A/D信號轉換芯片ADC1775CIMTC如圖4所示。調(diào)節(jié)設定電壓比較值,將該值設定為視頻信號中黑白亮色的分界電壓值,以提高輸出圖像識別效果。攝像頭采集電路如圖5所示。
1.4 電機驅動模塊
AGV智能車上采用RS-380SH型驅動電機,為了可靠保證智能車的速度,提高其負載能力,本設計采用2片并聯(lián)使用的具有短路保護、欠壓保護與過溫保護功能的MC33887芯片驅動電機,保證電機的驅動能力,實現(xiàn)對速度進行控制。通過將各種狀態(tài)引入單片機的中斷口,使單片機能對外界的異常情況進行實時處理。采用2部分電路對稱布置,如圖6所示為其中的1片硬件電路。
1.5 舵機控制模塊
本設計采用SRM-102型舵機,其響應速度為0.2s/60°??刂贫鏅C的脈沖可以使用S12單片機的1路PWM產(chǎn)生。單片機中有8路PWM輸出端口,可以將其中相鄰的2路PWM輸出級聯(lián)成一個16位PWM輸出。在單片機為24 MHz時,設置級聯(lián)PWM周期常數(shù)為60 000,對應PWM周期為20 ms的脈沖信號,PWM占空比常數(shù)為4 500時對應輸出為1.5 ms。改變占空比常數(shù)可以改變輸出脈沖的寬度。另外,脈沖寬度與轉角的線性關系計算公式為:
a=(L-1.5)×90°
式中,a是舵機的轉角,單位為度(°);L是脈沖寬度,單位是ms。
其轉角和脈沖寬度對應關系如圖7所示。
測試過程中,發(fā)現(xiàn)舵機一定的轉角有時間的延遲,時間延遲正比于旋轉過的角度,反比于舵機的響應速度,通過分析可知,舵機的響應速度直接影響小車轉彎的速度。而且在實際的控制現(xiàn)場,還影響轉向的精確度。通過不斷的測試發(fā)現(xiàn)可以適當抬高攝像頭的高度,使其能夠探測更遠的距離,提前采集彎道信息,提前對舵機給以響應。但同樣存在一個問題,攝像頭抬得過高會出現(xiàn)采集回來的路徑的灰度值偏低,必須通過不斷的實驗找到一個合適的結合點。
1.6 速度檢測模塊
本設計采用齒槽圓盤加直射式光電對射傳感器構成車速檢測電路。通過光電傳感器讀取齒槽圓盤轉動脈沖。傳感器輸出的電壓信號可以由單片機的A/D端口進行讀取,其余的輸出脈沖信號可以利用單片機I/O端口輸入到單片機內(nèi)部的定時器/計數(shù)器模塊中進行測量。通過周期讀取計數(shù)器的計數(shù)數(shù)值,可以反映脈沖的頻率,從而得到車速信息。
假設n為后軸的轉速(單位為r/s);N為1個采樣周期T內(nèi)光電傳感器記錄的脈沖個數(shù);P為齒槽盤的齒數(shù);T為采樣周期(單位s)。則:
N=T×n×P (1)
因此小車后輪的轉速為:
n=N/(P×T) (2)
經(jīng)測量,小車后輪直徑D=55 mm,則可以得到小車瞬時速度為:
V=π×n×D (3)
固定在后軸上的齒槽盤是1個圓周被分成60個等份的齒槽圓盤。齒槽盤上的1個齒和1個缺口連續(xù)通過速度傳感器后,速度傳感器就會生成1個脈沖信號。經(jīng)過整形處理有單片機的I/O口對其進行計數(shù)捕捉,每捕捉到1個脈沖信號,智能車前進的路程就可用下式得到:
L=1/60×π×D (4)
把D=55 mm代入公式(4)中可以得到:
L=1/60×π×55 mm=2.879 mm (5)
通過測試可以確定,當速度采樣周期為0.2 s時效果最佳。如果采樣周期太長,則脈沖累加器得到的數(shù)量太多,在軟件編程時對算法不利?;谏鲜龇治?,將定時器時間設定為48 ms,即每隔48 ms定時器就產(chǎn)生1次中斷并讀取脈沖累加器中的數(shù)值。設定經(jīng)過4個間隔后做1次PID算法來改變電機的驅動信號,進而改變智能車的速度。在PID算法中的檢測值(反饋值)由這4次讀取脈沖累加器的值平均后得到,其目的在于防止檢測信號突變而干擾控制。為了濾除干擾信號,在PID控制算法中加1個滑動平均濾波器。按上述設定定時器設定值和脈沖累加器后,可以推算出智能車的速度表達式如式(6)所示,從而完成對智能車的速度的測量。
V=(L×N)/48 (6)
1.7 鍵盤顯示控制模塊
本設計采用的單片機自身帶有可用于擴展鍵盤和顯示的I/O口,硬件設計直接采用外置式8針插拔4×4鍵盤,以及帶有字庫的外置式點陣液晶顯示模塊,以方便在調(diào)試過程中及時糾正智能車在運行過程中的路徑偏差。在實際的控制現(xiàn)場,可以采用無線通信模塊來給AGV傳輸指令,實現(xiàn)遠距離操控[1]。
2 系統(tǒng)軟件設計
2.1 系統(tǒng)初始化
在系統(tǒng)運行開始時,首先需要進行初始化,初始化主要包括時鐘初始化、A/D口初始化、PWM初始化、IRQ初始化以及I/O口初始化。其中,A/D和IRQ在CCD圖像采集過程中使用,PWM主要應用在舵機的控制和電機驅動的控制上。
2.2 PID算法設計
舵機轉角與電機轉速算法從最遠的一行圖像開始,根據(jù)預設的標志位判斷該行是否有效。如果不是有效行,則判斷下一行,直到找到有效的第1行為止。找到有效行就可以獲得中心線的位置信息,繼續(xù)尋找最后一行有效黑線,據(jù)此計算出黑線的斜率。將黑線中心位置及黑線的斜率代入本設計的舵機控制量與中心位置公式,計算出舵機應有的控制量,從而確定相應的舵機轉角及電機的轉速。計算公式如下:
舵機控制量=比例控制量+積分控制量+微分空置量 (7)
式中,比例控制量根據(jù)黑線中心位置乘以比例系數(shù)得到,積分控制量根據(jù)黑線斜率計算得到,微分空置量則是第K次與第K-1次比例控制量的差值[5]。各控制量的系數(shù)值均通過測試選定。
對于電機速度的控制,主要根據(jù)在起始時給定智能車的運行速度以及啟動后計算出的舵機控制量判斷智能車是否行駛在直道上,如果是在直道上則加快速度,否則根據(jù)控制量的大小進行適當?shù)臏p速,以保證智車能在過彎時能更加順暢和精確。
2.3 CCD圖像采集
本設計采用的CCD圖像傳感器采集圖像的幀周期為33.4 ms,行周期為63.6 μs。在智能車行駛過程中需要對采集的圖像進行實時處理,并不斷進行反饋以對舵機轉角和速度進行控制,因此,在采集工程中以半幀為1個采集周期,每8線采集1線,剩余時間執(zhí)行其他任務。
2.4 圖像處理
通過CCD采集獲得的是一幅灰度圖像,為了確定路徑,需要進行二值化并對中心線進行直線擬合。由于單片機要不斷地進行圖像采集,所以計算時間剩余十分有限,為此進行二值化和直線擬合就需要采用計算量最小的算法來完成。
2.5 圖像閾值的確定
由于攝像頭采集的圖像信息數(shù)據(jù)量比較大,而且必須是動態(tài)實時的路徑信息?;趩纹瑱C的處理速度和時間,本文采用固定的閾值進行圖像的二值化。單片機本身無法進行動態(tài)計算,所以需要確定一個比較合理的方法來確定一個固定閾值。本設計利用分割最優(yōu)閾值迭代算法進行閾值計算[6]。當采集完1幅圖像之后進行最優(yōu)閾值計算,計算完成后將計算結果發(fā)給單片機,然后進行下一幅圖像采集,如此循環(huán)。
在迭代算法中,需要對分割出的圖像分別求出其灰度平均值,計算如下:
式中,E{g(x,y)}表示灰度平均值,f(x,y)表示圖像二維定義,e(x,y)表示偏差函數(shù)。
(8)式、(9)式說明了隨著迭代次數(shù)的增加,平均灰度值將趨向于真值。因此,用迭代算法求得的最佳值不受噪聲干擾的影響。
在計算過程中,首先選擇一個近似值作為初始值,然后進行分割,產(chǎn)生子圖像;并根據(jù)子圖像的特性選取新的值,然后用新的值分割圖像,經(jīng)過幾次循環(huán),使錯誤分割圖像像素點降到最少。這樣做的結果明顯優(yōu)于用初始值直接分割圖像的效果,值的改進策略是用迭代算法的關鍵[7]。具體步驟如下:
(1)選擇一個初始值的估算值
通過分析,確定16為圖像的固定閾值。實驗證明,經(jīng)過以16為閾值的二值化處理后的圖像比較清晰,在實驗室光照較好的條件下,沒有出現(xiàn)離散斑點,智能車的自主識別效果很好。在軟硬件程序的聯(lián)合調(diào)試過程中,在實驗室正常燈光環(huán)境下,智能車能很好地沿線行駛,在實際的調(diào)試中發(fā)現(xiàn)如果光線太暗,會造成CCD攝像頭采集回來的圖形灰度值偏低的情況。針對這種情況,可以嘗試采用補光的措施,來滿足攝像頭對環(huán)境光照的要求。智能車控制系統(tǒng)流程如圖8所示。
智能車在直線行駛過程中,舵機與前軸夾角為90°,考慮到車輛行駛中偏離路徑出現(xiàn)的誤差,當其夾角范圍在80°~100°范圍內(nèi)時,直接輸出舵機的計算值;當檢測到的夾角超出此范圍值時,為保證智能車的正確行駛方向,由光電傳感器進一步檢測其行駛路徑,并輸出計算的舵機轉角。
智能車是在預先設置好的路徑上行駛。在實際的倉庫環(huán)境中,由于智能車會有較大的負載,為了保證安全,在智能車出現(xiàn)錯道情況時,必須讓其強制停止。在到達箱體貨物跟前必須減速。所以針對這種情況可以安裝其他設備,如紅外傳感器和行程開關,以保證檢測信息足夠讓智能車安全行駛。
本文通過模擬在大型倉庫中,AGV自主尋跡智能車,來實現(xiàn)倉庫的無人化管理。通過實驗證明,本智能車在這種環(huán)境中實現(xiàn)的可行性?;诙鄠鞲衅餍畔Ш较到y(tǒng)在大型倉庫管理中實現(xiàn)智能車無人化管理,給工業(yè)現(xiàn)場多信息導航智能系統(tǒng)提供有益的參考。
pid控制相關文章:pid控制原理
pwm相關文章:pwm是什么
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
評論