崔才豪 張玉華 楊樹財
(哈爾濱理工大學(xué)自動化學(xué)院1,黑龍江 哈爾濱 150080;哈爾濱理工大學(xué)工程訓(xùn)練中心2,黑龍江 哈爾濱 150080)
在人類的生產(chǎn)生活中,很多貨物的運輸路線在短時間內(nèi)是固定的。因此,若為滿足這種運輸要求而鋪設(shè)軌道或增設(shè)傳送帶,就會增加相應(yīng)的生產(chǎn)成本,降低運輸?shù)撵`活性。
傳統(tǒng)的運輸方式是依靠人駕駛裝卸車運輸貨物[1]。人在貨物運輸中的主要作用就是控制車的啟動、停止、運動方向和速度,這類相對簡單的勞動可以通過改進(jìn)自動控制技術(shù)來實現(xiàn)。本文提出了利用普通光源來引導(dǎo)小車運動的設(shè)計方案。這種利用光信號引導(dǎo)小車運動的設(shè)計,節(jié)約了人力,并提高了生產(chǎn)效率和工作的靈活性。
光是沿直線傳播的,物體接收光能的大小與受光面積成正比,單位面積所獲得的光能稱為光強。光電阻傳感器是將光信號轉(zhuǎn)換成為電阻變化的一種傳感器[2]。這種測量方法具有結(jié)構(gòu)簡單、非接觸、可靠性高、精度高和反應(yīng)快等優(yōu)點,因此,被廣泛地應(yīng)用于自動檢測系統(tǒng)中[3]。光引導(dǎo)技術(shù)就是基于上述原理,通過光電阻傳感器檢測小車在不同方向上的光強,從而判斷出小車引導(dǎo)光源的方向,實現(xiàn)以光源為基準(zhǔn)的趨光運動。
本設(shè)計采用光電阻傳感器對光信號進(jìn)行采集。在光源引導(dǎo)方向上,分別設(shè)置1號、2號、3號光電阻傳感器,其中2號傳感器和小車軸線平行。3個傳感器軸線所構(gòu)成的夾角ω1和ω2保持相等,光源引導(dǎo)信號的采集如圖1所示。
圖1 信號采集示意圖Fig.1 Schematic of signal collection
設(shè)1號和3號傳感器分別與光源引導(dǎo)方向形成的夾角分別為θ1和θ2,當(dāng)小車運動方向偏離光源引導(dǎo)方向時,小車的實際運動方向與光源的引導(dǎo)方向產(chǎn)生了一個偏差角。小車偏離光引導(dǎo)方向示意圖如圖2(a)所示。
設(shè)小車的實際運動方向與光源的引導(dǎo)方向產(chǎn)生的偏差角大小為Δθ。此時調(diào)整小車的運動方向,就等價于調(diào)整偏差角Δθ,使其平衡在零度,從而使小車的運動方向和光源引導(dǎo)方向一致,達(dá)到了光引導(dǎo)的效果。小車恢復(fù)光引導(dǎo)方向示意圖如圖2(b)所示。
圖2 小車光引導(dǎo)示意圖Fig.2 Schematic of the light-guided car
小車運動控制系統(tǒng)設(shè)計的核心在于如何使小車以最快的速度從偏離光引導(dǎo)的狀態(tài)中修正過來,從而恢復(fù)到正常的運動狀態(tài),并且不會有較大的超調(diào)或調(diào)整時間。
對于小車的方向控制,可以采用Δθ為調(diào)節(jié)變量,通過Andriod控制板調(diào)節(jié)驅(qū)動電機的PWM信號,改變電機輸出功率,從而控制左右電機的轉(zhuǎn)速,以實現(xiàn)方向的修正??刂扑惴梢允褂媒?jīng)典的PID控制方法[4]。PID就是利用小車與引導(dǎo)光源的方向偏差,通過比例、積分和微分作用控制電機的運動。當(dāng)電機的轉(zhuǎn)速和方向經(jīng)過調(diào)節(jié)后,小車對光引導(dǎo)信號就會有較快的反應(yīng)速度和較高的調(diào)節(jié)精度。由于小車在路面粗糙度或負(fù)載變化時車輪轉(zhuǎn)速誤差變大,因此,采用紅外線反射式脈沖編碼器對小車的轉(zhuǎn)速進(jìn)行測量。這種傳感器可以將測量信號反饋給Andriod控制器,控制器根據(jù)傳感器返回的數(shù)值,實現(xiàn)對小車速度和位移的監(jiān)控。閉環(huán)控制系統(tǒng)由傳感器與直流電機控制系統(tǒng)構(gòu)成,它能使小車運動穩(wěn)定精確[5]。
Arduino是一塊基于開放源代碼的接口板,包括12通道數(shù)字GPIO、4通道PWM輸出和6~8通道的10 bit ADC輸入通道。本設(shè)計中采用Arduino-duemilanove控制板,它的核心是一片AVRmega168單片機。
光引導(dǎo)信號發(fā)出的引導(dǎo)光照射在光電阻傳感器上,從而改變了光敏電阻的阻值,進(jìn)而改變了光敏電阻兩端的電壓值。光敏電阻的兩端電壓經(jīng)過分壓電阻和運算放大器進(jìn)行信號調(diào)整后,由Arduino控制板進(jìn)行A/D轉(zhuǎn)換[6]。3個傳感器產(chǎn)生3組數(shù)字量,比較后可以得到1個偏差值[7]。運動控制系統(tǒng)根據(jù)偏差值調(diào)整小車的運動方向。
小車采用雙直流電機加萬向輪的驅(qū)動方式,通過控制左右直流電機來控制小車的前進(jìn)、后退或左右轉(zhuǎn)向。直流電機采用直流電機驅(qū)動芯片L298。雙路全橋電機驅(qū)動芯片L298的最大輸出電流為4 A,具有過溫保護功能和較高的噪聲抑制比。2路輸出正好可以滿足小車的左右直流電機的驅(qū)動要求。L298的主要引腳功能及其主要邏輯功能分別如表1和表2所示。
表1 L298主要引腳功能Tab.1 Functions of the main pins of L298
表2 L298主要邏輯功能Tab.2 Main logical functions of L298
表2 中:L=Low;H=High;X=Don’t care。
本設(shè)計使用Arduino控制板上的數(shù)字輸入輸出端控制驅(qū)動芯片的 Input1、Input2、Input3、Input4引腳,從而控制直流電機的旋轉(zhuǎn)方向;使用Arduino控制板上的PWM輸出引腳控制驅(qū)動芯片的EnableA和EnableB引腳,最終實現(xiàn)了2路直流電機控制[8],進(jìn)而控制了小車的運動方向。
利用紅外線遇黑線被吸收、遇白線被反射的原理,在小車2路車軸上分別設(shè)計2組紅外反射式傳感器,將小車的轉(zhuǎn)速和位移以脈沖的方式反饋給Arduino控制器。控制器將脈沖信號在單位時間計數(shù)后,就可以得到小車的實際速度。將實際速度和設(shè)計輸出速度相比較后,可以實時調(diào)節(jié)小車的速度。系統(tǒng)硬件結(jié)構(gòu)如圖3所示。
圖3 系統(tǒng)硬件結(jié)構(gòu)圖Fig.3 Hardware structure of system
Arduino具有類似于Java和C語言的IDE集成開發(fā)環(huán)境,其編程語言類似于C語言,用戶可以通過USB接口直接進(jìn)行編程和通信。
光引導(dǎo)小車首先需要對自身周圍環(huán)境進(jìn)行檢測,判斷引導(dǎo)光源的方向,然后根據(jù)引導(dǎo)光源的強弱,以適當(dāng)?shù)乃俣认蚬庠催\動。當(dāng)光源強度達(dá)到預(yù)定值時,默認(rèn)已經(jīng)尋找到了光源,小車即停止運動,進(jìn)入等待狀態(tài);當(dāng)引導(dǎo)光源發(fā)生變化時,退出等待狀態(tài),進(jìn)入光引導(dǎo)狀態(tài),直到再次找到光源[9]。程序設(shè)計流程圖如圖4所示。
圖4 程序設(shè)計流程圖Fig.4 Procedure flowchart
程序主要功能是:首先由3路傳感器對光引導(dǎo)信號進(jìn)行A/D采集,然后由1號和3號傳感器的檢測值分別與2號傳感器的檢測值作差,由差值的正負(fù)來決定小車的行走方向是偏左還是偏右,最終根據(jù)差值的絕對值大小來決定需要調(diào)整的方向角的大小[10]。主要程序代碼如下。
以上程序中,Lleft(1)、Lmiddle(1)和 Lright(1)為光敏傳感器檢測函數(shù)的返回光強值;PID(number)為速度設(shè)置函數(shù)根據(jù)number值返回的最佳調(diào)節(jié)參數(shù);turn_left(number,n)和 turn_right(number,n)為小車調(diào)整角度函數(shù);number為調(diào)節(jié)轉(zhuǎn)速n的位置標(biāo)號。
在實驗室條件下,光引導(dǎo)運動小車實現(xiàn)了3種常規(guī)運動,即直線運動、曲線運動和折線運動,3種運動路線如圖5所示。
圖5 3種運動路線Fig.5 Three of the moving routes
當(dāng)在多光源條件下進(jìn)行試驗時,非主光源的強度超過引導(dǎo)光源強度就會影響小車的引導(dǎo),小車運動的穩(wěn)定性就會被破壞,進(jìn)而喪失光引導(dǎo)功能。因此,本設(shè)計提高了對試驗環(huán)境中的光引導(dǎo)信號的要求。
本文采用Arduino控制板為核心設(shè)計光引導(dǎo)小車,簡化了軟件編程和硬件電路的設(shè)計,有效地提高了小車在運輸過程中對非固定路線的適應(yīng)性,在實際應(yīng)用中可以起到降低成本和減少工人勞動量的作用。若繼續(xù)提高傳感器精度和數(shù)量,可以實現(xiàn)更加精確的光引導(dǎo)效果。
[1]梁佳海,黃雪燕.基于光引導(dǎo)的小車自動尋軌技術(shù)研究[J].欽州學(xué)院學(xué)報,2008,23(3):38 -40.
[2]常見生,石要武.檢測與轉(zhuǎn)換技術(shù)[M].北京:機械工業(yè)出版社,2008:187 -188.
[3]姚文山.光敏電阻器原理及檢測方法[J].家電檢修技術(shù),2007,10(1):61.
[4]胡壽松.自動控制原理[M].北京:科學(xué)出版社,2009:21 -24.
[5]趙紅飛,陸靜平,蔣達(dá).電動汽車用永磁無刷直流電機PID控制器的設(shè)計及仿真[J].中國科技信息,2010,20(10):168 -169.
[6]李全利.單片機原理及接口技術(shù)[M].北京:高等教育出版社,2009:47 -59.
[7]王寶祥.信號與系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2005:45 -85.
[8]吳鎮(zhèn)揚.數(shù)字信號處理[M].北京:高等教育出版社,2004:25-40.
[9]田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用教程[M].北京:北京航空航天大學(xué)出版社,2005:40 -42.
[10]戴仙金.51單片機及其C語言程序開發(fā)實例[M].北京:清華大學(xué)出版社,2008:430 -450.