崔才豪 張玉華 楊樹(shù)財(cái)
(哈爾濱理工大學(xué)自動(dòng)化學(xué)院1,黑龍江 哈爾濱 150080;哈爾濱理工大學(xué)工程訓(xùn)練中心2,黑龍江 哈爾濱 150080)
在人類(lèi)的生產(chǎn)生活中,很多貨物的運(yùn)輸路線(xiàn)在短時(shí)間內(nèi)是固定的。因此,若為滿(mǎn)足這種運(yùn)輸要求而鋪設(shè)軌道或增設(shè)傳送帶,就會(huì)增加相應(yīng)的生產(chǎn)成本,降低運(yùn)輸?shù)撵`活性。
傳統(tǒng)的運(yùn)輸方式是依靠人駕駛裝卸車(chē)運(yùn)輸貨物[1]。人在貨物運(yùn)輸中的主要作用就是控制車(chē)的啟動(dòng)、停止、運(yùn)動(dòng)方向和速度,這類(lèi)相對(duì)簡(jiǎn)單的勞動(dòng)可以通過(guò)改進(jìn)自動(dòng)控制技術(shù)來(lái)實(shí)現(xiàn)。本文提出了利用普通光源來(lái)引導(dǎo)小車(chē)運(yùn)動(dòng)的設(shè)計(jì)方案。這種利用光信號(hào)引導(dǎo)小車(chē)運(yùn)動(dòng)的設(shè)計(jì),節(jié)約了人力,并提高了生產(chǎn)效率和工作的靈活性。
光是沿直線(xiàn)傳播的,物體接收光能的大小與受光面積成正比,單位面積所獲得的光能稱(chēng)為光強(qiáng)。光電阻傳感器是將光信號(hào)轉(zhuǎn)換成為電阻變化的一種傳感器[2]。這種測(cè)量方法具有結(jié)構(gòu)簡(jiǎn)單、非接觸、可靠性高、精度高和反應(yīng)快等優(yōu)點(diǎn),因此,被廣泛地應(yīng)用于自動(dòng)檢測(cè)系統(tǒng)中[3]。光引導(dǎo)技術(shù)就是基于上述原理,通過(guò)光電阻傳感器檢測(cè)小車(chē)在不同方向上的光強(qiáng),從而判斷出小車(chē)引導(dǎo)光源的方向,實(shí)現(xiàn)以光源為基準(zhǔn)的趨光運(yùn)動(dòng)。
本設(shè)計(jì)采用光電阻傳感器對(duì)光信號(hào)進(jìn)行采集。在光源引導(dǎo)方向上,分別設(shè)置1號(hào)、2號(hào)、3號(hào)光電阻傳感器,其中2號(hào)傳感器和小車(chē)軸線(xiàn)平行。3個(gè)傳感器軸線(xiàn)所構(gòu)成的夾角ω1和ω2保持相等,光源引導(dǎo)信號(hào)的采集如圖1所示。

圖1 信號(hào)采集示意圖Fig.1 Schematic of signal collection
設(shè)1號(hào)和3號(hào)傳感器分別與光源引導(dǎo)方向形成的夾角分別為θ1和θ2,當(dāng)小車(chē)運(yùn)動(dòng)方向偏離光源引導(dǎo)方向時(shí),小車(chē)的實(shí)際運(yùn)動(dòng)方向與光源的引導(dǎo)方向產(chǎn)生了一個(gè)偏差角。小車(chē)偏離光引導(dǎo)方向示意圖如圖2(a)所示。
設(shè)小車(chē)的實(shí)際運(yùn)動(dòng)方向與光源的引導(dǎo)方向產(chǎn)生的偏差角大小為Δθ。此時(shí)調(diào)整小車(chē)的運(yùn)動(dòng)方向,就等價(jià)于調(diào)整偏差角Δθ,使其平衡在零度,從而使小車(chē)的運(yùn)動(dòng)方向和光源引導(dǎo)方向一致,達(dá)到了光引導(dǎo)的效果。小車(chē)恢復(fù)光引導(dǎo)方向示意圖如圖2(b)所示。

圖2 小車(chē)光引導(dǎo)示意圖Fig.2 Schematic of the light-guided car
小車(chē)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)的核心在于如何使小車(chē)以最快的速度從偏離光引導(dǎo)的狀態(tài)中修正過(guò)來(lái),從而恢復(fù)到正常的運(yùn)動(dòng)狀態(tài),并且不會(huì)有較大的超調(diào)或調(diào)整時(shí)間。
對(duì)于小車(chē)的方向控制,可以采用Δθ為調(diào)節(jié)變量,通過(guò)Andriod控制板調(diào)節(jié)驅(qū)動(dòng)電機(jī)的PWM信號(hào),改變電機(jī)輸出功率,從而控制左右電機(jī)的轉(zhuǎn)速,以實(shí)現(xiàn)方向的修正。控制算法可以使用經(jīng)典的PID控制方法[4]。PID就是利用小車(chē)與引導(dǎo)光源的方向偏差,通過(guò)比例、積分和微分作用控制電機(jī)的運(yùn)動(dòng)。當(dāng)電機(jī)的轉(zhuǎn)速和方向經(jīng)過(guò)調(diào)節(jié)后,小車(chē)對(duì)光引導(dǎo)信號(hào)就會(huì)有較快的反應(yīng)速度和較高的調(diào)節(jié)精度。由于小車(chē)在路面粗糙度或負(fù)載變化時(shí)車(chē)輪轉(zhuǎn)速誤差變大,因此,采用紅外線(xiàn)反射式脈沖編碼器對(duì)小車(chē)的轉(zhuǎn)速進(jìn)行測(cè)量。這種傳感器可以將測(cè)量信號(hào)反饋給Andriod控制器,控制器根據(jù)傳感器返回的數(shù)值,實(shí)現(xiàn)對(duì)小車(chē)速度和位移的監(jiān)控。閉環(huán)控制系統(tǒng)由傳感器與直流電機(jī)控制系統(tǒng)構(gòu)成,它能使小車(chē)運(yùn)動(dòng)穩(wěn)定精確[5]。
Arduino是一塊基于開(kāi)放源代碼的接口板,包括12通道數(shù)字GPIO、4通道PWM輸出和6~8通道的10 bit ADC輸入通道。本設(shè)計(jì)中采用Arduino-duemilanove控制板,它的核心是一片AVRmega168單片機(jī)。
光引導(dǎo)信號(hào)發(fā)出的引導(dǎo)光照射在光電阻傳感器上,從而改變了光敏電阻的阻值,進(jìn)而改變了光敏電阻兩端的電壓值。光敏電阻的兩端電壓經(jīng)過(guò)分壓電阻和運(yùn)算放大器進(jìn)行信號(hào)調(diào)整后,由Arduino控制板進(jìn)行A/D轉(zhuǎn)換[6]。3個(gè)傳感器產(chǎn)生3組數(shù)字量,比較后可以得到1個(gè)偏差值[7]。運(yùn)動(dòng)控制系統(tǒng)根據(jù)偏差值調(diào)整小車(chē)的運(yùn)動(dòng)方向。
小車(chē)采用雙直流電機(jī)加萬(wàn)向輪的驅(qū)動(dòng)方式,通過(guò)控制左右直流電機(jī)來(lái)控制小車(chē)的前進(jìn)、后退或左右轉(zhuǎn)向。直流電機(jī)采用直流電機(jī)驅(qū)動(dòng)芯片L298。雙路全橋電機(jī)驅(qū)動(dòng)芯片L298的最大輸出電流為4 A,具有過(guò)溫保護(hù)功能和較高的噪聲抑制比。2路輸出正好可以滿(mǎn)足小車(chē)的左右直流電機(jī)的驅(qū)動(dòng)要求。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è)計(jì)使用Arduino控制板上的數(shù)字輸入輸出端控制驅(qū)動(dòng)芯片的 Input1、Input2、Input3、Input4引腳,從而控制直流電機(jī)的旋轉(zhuǎn)方向;使用Arduino控制板上的PWM輸出引腳控制驅(qū)動(dòng)芯片的EnableA和EnableB引腳,最終實(shí)現(xiàn)了2路直流電機(jī)控制[8],進(jìn)而控制了小車(chē)的運(yùn)動(dòng)方向。
利用紅外線(xiàn)遇黑線(xiàn)被吸收、遇白線(xiàn)被反射的原理,在小車(chē)2路車(chē)軸上分別設(shè)計(jì)2組紅外反射式傳感器,將小車(chē)的轉(zhuǎn)速和位移以脈沖的方式反饋給Arduino控制器。控制器將脈沖信號(hào)在單位時(shí)間計(jì)數(shù)后,就可以得到小車(chē)的實(shí)際速度。將實(shí)際速度和設(shè)計(jì)輸出速度相比較后,可以實(shí)時(shí)調(diào)節(jié)小車(chē)的速度。系統(tǒng)硬件結(jié)構(gòu)如圖3所示。

圖3 系統(tǒng)硬件結(jié)構(gòu)圖Fig.3 Hardware structure of system
Arduino具有類(lèi)似于Java和C語(yǔ)言的IDE集成開(kāi)發(fā)環(huán)境,其編程語(yǔ)言類(lèi)似于C語(yǔ)言,用戶(hù)可以通過(guò)USB接口直接進(jìn)行編程和通信。
光引導(dǎo)小車(chē)首先需要對(duì)自身周?chē)h(huán)境進(jìn)行檢測(cè),判斷引導(dǎo)光源的方向,然后根據(jù)引導(dǎo)光源的強(qiáng)弱,以適當(dāng)?shù)乃俣认蚬庠催\(yùn)動(dòng)。當(dāng)光源強(qiáng)度達(dá)到預(yù)定值時(shí),默認(rèn)已經(jīng)尋找到了光源,小車(chē)即停止運(yùn)動(dòng),進(jìn)入等待狀態(tài);當(dāng)引導(dǎo)光源發(fā)生變化時(shí),退出等待狀態(tài),進(jìn)入光引導(dǎo)狀態(tài),直到再次找到光源[9]。程序設(shè)計(jì)流程圖如圖4所示。

圖4 程序設(shè)計(jì)流程圖Fig.4 Procedure flowchart
程序主要功能是:首先由3路傳感器對(duì)光引導(dǎo)信號(hào)進(jìn)行A/D采集,然后由1號(hào)和3號(hào)傳感器的檢測(cè)值分別與2號(hào)傳感器的檢測(cè)值作差,由差值的正負(fù)來(lái)決定小車(chē)的行走方向是偏左還是偏右,最終根據(jù)差值的絕對(duì)值大小來(lái)決定需要調(diào)整的方向角的大小[10]。主要程序代碼如下。

以上程序中,Lleft(1)、Lmiddle(1)和 Lright(1)為光敏傳感器檢測(cè)函數(shù)的返回光強(qiáng)值;PID(number)為速度設(shè)置函數(shù)根據(jù)number值返回的最佳調(diào)節(jié)參數(shù);turn_left(number,n)和 turn_right(number,n)為小車(chē)調(diào)整角度函數(shù);number為調(diào)節(jié)轉(zhuǎn)速n的位置標(biāo)號(hào)。
在實(shí)驗(yàn)室條件下,光引導(dǎo)運(yùn)動(dòng)小車(chē)實(shí)現(xiàn)了3種常規(guī)運(yùn)動(dòng),即直線(xiàn)運(yùn)動(dòng)、曲線(xiàn)運(yùn)動(dòng)和折線(xiàn)運(yùn)動(dòng),3種運(yùn)動(dòng)路線(xiàn)如圖5所示。

圖5 3種運(yùn)動(dòng)路線(xiàn)Fig.5 Three of the moving routes
當(dāng)在多光源條件下進(jìn)行試驗(yàn)時(shí),非主光源的強(qiáng)度超過(guò)引導(dǎo)光源強(qiáng)度就會(huì)影響小車(chē)的引導(dǎo),小車(chē)運(yùn)動(dòng)的穩(wěn)定性就會(huì)被破壞,進(jìn)而喪失光引導(dǎo)功能。因此,本設(shè)計(jì)提高了對(duì)試驗(yàn)環(huán)境中的光引導(dǎo)信號(hào)的要求。
本文采用Arduino控制板為核心設(shè)計(jì)光引導(dǎo)小車(chē),簡(jiǎn)化了軟件編程和硬件電路的設(shè)計(jì),有效地提高了小車(chē)在運(yùn)輸過(guò)程中對(duì)非固定路線(xiàn)的適應(yīng)性,在實(shí)際應(yīng)用中可以起到降低成本和減少工人勞動(dòng)量的作用。若繼續(xù)提高傳感器精度和數(shù)量,可以實(shí)現(xiàn)更加精確的光引導(dǎo)效果。
[1]梁佳海,黃雪燕.基于光引導(dǎo)的小車(chē)自動(dòng)尋軌技術(shù)研究[J].欽州學(xué)院學(xué)報(bào),2008,23(3):38 -40.
[2]常見(jiàn)生,石要武.檢測(cè)與轉(zhuǎn)換技術(shù)[M].北京:機(jī)械工業(yè)出版社,2008:187 -188.
[3]姚文山.光敏電阻器原理及檢測(cè)方法[J].家電檢修技術(shù),2007,10(1):61.
[4]胡壽松.自動(dòng)控制原理[M].北京:科學(xué)出版社,2009:21 -24.
[5]趙紅飛,陸靜平,蔣達(dá).電動(dòng)汽車(chē)用永磁無(wú)刷直流電機(jī)PID控制器的設(shè)計(jì)及仿真[J].中國(guó)科技信息,2010,20(10):168 -169.
[6]李全利.單片機(jī)原理及接口技術(shù)[M].北京:高等教育出版社,2009:47 -59.
[7]王寶祥.信號(hào)與系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2005:45 -85.
[8]吳鎮(zhèn)揚(yáng).數(shù)字信號(hào)處理[M].北京:高等教育出版社,2004:25-40.
[9]田澤.嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用教程[M].北京:北京航空航天大學(xué)出版社,2005:40 -42.
[10]戴仙金.51單片機(jī)及其C語(yǔ)言程序開(kāi)發(fā)實(shí)例[M].北京:清華大學(xué)出版社,2008:430 -450.