基于32位ARM嵌入式微控制器S3C2440來構(gòu)建太陽跟蹤系統(tǒng)
基于計(jì)算機(jī)視覺原理,以ARM微控制器為核心構(gòu)建嵌入式圖像處理平臺,實(shí)現(xiàn)了對太陽的實(shí)時(shí)跟蹤。系統(tǒng)采用CMOS圖像傳感器采集太陽圖像,通過微控制器計(jì)算太陽角度,通過串口控制轉(zhuǎn)臺,實(shí)現(xiàn)對太陽的高精度跟蹤。同時(shí),與視日運(yùn)動規(guī)律相結(jié)合,保證系統(tǒng)的可靠性。試驗(yàn)表明,該系統(tǒng)在降低系統(tǒng)能耗的同時(shí),能可靠有效地跟蹤太陽運(yùn)動。
隨著社會的發(fā)展和進(jìn)步,環(huán)保節(jié)能已經(jīng)成為人類可持續(xù)發(fā)展的必要條件。目前,再生能源的開發(fā)和利用越來越受到人們的關(guān)注。太陽能由于其普遍、無害、無限、長久等特點(diǎn),成為最綠色、最理想、最可靠的替代能源。但太陽能同時(shí)存在分散,不穩(wěn)定,效率低等特點(diǎn),太陽能光伏系統(tǒng)為解決這一問題提供了條件。
就目前的太陽能光伏系統(tǒng)而言,如何最大限度提高太陽能的轉(zhuǎn)換率,仍是國內(nèi)外的研究熱點(diǎn)。有研究表明,和始終朝南的固定表面相比,與太陽輻射方向始終保持垂直的表面對太陽能的利用率提高約33%。太陽跟蹤裝置可以保證太陽輻射方向始終垂直于太陽能電池板平面,使接收到的太陽輻射大大增加,提高了太陽能的接受率與利用率,因而得到廣泛的應(yīng)用。
太陽跟蹤裝置的分類方法有很多,按照跟蹤方法,主要可分為視日運(yùn)動跟蹤和光電跟蹤,視日運(yùn)動跟蹤又可分為單軸跟蹤和雙軸跟蹤。光電跟蹤裝置有較高靈敏度,結(jié)構(gòu)簡單,能通過反饋消除累積誤差,具有較大優(yōu)勢,但受環(huán)境影響很大。其關(guān)鍵部件是光電傳感器,常用的是光敏電阻。由于光敏電阻安裝位置不連續(xù)和環(huán)境光散射等因素的影響,系統(tǒng)不能連續(xù)跟蹤太陽,精度有限。視日運(yùn)動跟蹤能夠全天候?qū)崟r(shí)跟蹤,但是存在累積誤差。其中,單軸跟蹤裝置結(jié)構(gòu)簡單,但跟蹤誤差大;雙軸跟蹤裝置算法復(fù)雜,跟蹤難度較大,但跟蹤精度較高。
本文用基于32位ARM嵌入式微控制器S3C2440來構(gòu)建太陽跟蹤系統(tǒng),采用CMOS圖像傳感器來感知太陽方位,并通過微控制器計(jì)算獲取太陽跟蹤誤差,實(shí)現(xiàn)對太陽的高精度跟蹤。加入視日運(yùn)動規(guī)律,在跟蹤目標(biāo)丟失時(shí),對系統(tǒng)進(jìn)行重新定位。同時(shí),該系統(tǒng)的結(jié)構(gòu)簡單輕便,功耗低,環(huán)境適應(yīng)能力強(qiáng),能應(yīng)用于各種太陽能設(shè)備。
1 硬件設(shè)計(jì)
1.1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)以ARM微控制器作為主控制器,采用CMOS圖像傳感器采集圖像,并利用雙軸轉(zhuǎn)臺來支撐太陽能電池板。其中雙軸轉(zhuǎn)臺集成了電機(jī)驅(qū)動與控制部分,通過串口與主控制器進(jìn)行通信。
如圖1所示是太陽跟蹤系統(tǒng)的硬件結(jié)構(gòu)圖。在圖1中,CMOS圖像傳感器與太陽能電池板處在同一平面,并固連在雙軸轉(zhuǎn)臺上;ARM處理器與雙軸轉(zhuǎn)臺的電機(jī)驅(qū)動部分采用串口通信方式;系統(tǒng)的供電均由蓄電池支持(包括ARM控制板和轉(zhuǎn)臺),因而形成了一個(gè)獨(dú)立系統(tǒng)。系統(tǒng)的基本工作原理是:根據(jù)視日運(yùn)動規(guī)律或CMOS圖像傳感器采集的天空圖像,利用ARM處理器求取系統(tǒng)跟蹤控制參數(shù),并通過串口來控制雙軸轉(zhuǎn)臺的轉(zhuǎn)動。
1.2 硬件介紹
(1)ARM微控制器。從實(shí)用角度考慮,太陽跟蹤系統(tǒng)的低功耗設(shè)計(jì)顯得尤為重要,ARM微處理器在保證高性能的前提下能夠盡量降低功耗。相對于PC機(jī),ARM微處理器占用空間較小,質(zhì)量輕,可靠性強(qiáng),硬件資源豐富,在簡化系統(tǒng)結(jié)構(gòu)的同時(shí)為系統(tǒng)功能擴(kuò)展提供了可能。系統(tǒng)選用32位ARM嵌入式微控制器S3C2440來構(gòu)建控制平臺。運(yùn)用ARM微控制器構(gòu)建的嵌入式圖像處理平臺大大提高了圖像的處理速度,同時(shí)有效降低了系統(tǒng)成本。圖像處理系統(tǒng)還具有拆裝方便,配置靈活等優(yōu)點(diǎn),安全性得到大大提高。
(2)雙軸轉(zhuǎn)臺。系統(tǒng)采用集成式雙軸轉(zhuǎn)臺,其結(jié)構(gòu)如圖2所示,工作電壓為24 V,可利用蓄電池供電。在圖2中,x向?yàn)樗椒较?,y向?yàn)榇怪狈较?。x向轉(zhuǎn)角對應(yīng)太陽方位角,y向轉(zhuǎn)角對應(yīng)太陽高度角。該雙軸轉(zhuǎn)臺x向轉(zhuǎn)動范圍為-157°~+157°,y向轉(zhuǎn)動范圍為0°~90°,集成了電機(jī)控制模塊,并提供串行接口,控制器可以利用串口通信來控制并驅(qū)動轉(zhuǎn)臺在x向和y向上的轉(zhuǎn)動。
(3)CMOS圖像傳感器。圖像傳感器產(chǎn)品主要有CCD,CMOS,CIS三種。其中CMOS圖像傳感器集成度高,價(jià)格低廉,而且可以實(shí)現(xiàn)數(shù)字化輸出,軟件可編程控制,提高了系統(tǒng)設(shè)計(jì)的靈活性,同時(shí)也具有較高的抗干擾性和穩(wěn)定性。系統(tǒng)采用的圖像傳感器為OmniVision公司的OV 9650型COMS攝像頭,其功耗為30μW,陣列大小為1 300×1 028 pixels,焦距為4.85 mm,像素大小為3.18μm×3.18μm,支持軟件可編程控制,輸出圖像格式包括YUV,RGB等。
2 軟件設(shè)計(jì)
2.1 跟蹤控制策略
圖3所示是太陽跟蹤系統(tǒng)工作過程流程圖,系統(tǒng)采用的跟蹤控制策略如下:
(1)系統(tǒng)可設(shè)置2種工作模式,早晨6:00喚醒跟蹤控制系統(tǒng),系統(tǒng)啟動跟蹤控制,進(jìn)入跟蹤模式;下午18:00休眠系統(tǒng),系統(tǒng)關(guān)閉跟蹤控制,進(jìn)入待機(jī)模式。同時(shí)系統(tǒng)采用粗跟蹤和精跟蹤2種方式,粗跟蹤采用視日運(yùn)動跟蹤方法,精跟蹤采用基于計(jì)算機(jī)視覺的跟蹤方法。粗跟蹤為精跟蹤提供初始工作條件,精跟蹤保證系統(tǒng)的跟蹤精度。
(2)喚醒跟蹤控制系統(tǒng)時(shí),采用視日運(yùn)動開環(huán)計(jì)算方法進(jìn)行粗跟蹤。粗跟蹤的基本過程是:根據(jù)太陽運(yùn)行的天文規(guī)律計(jì)算,利用系統(tǒng)時(shí)間和給定的當(dāng)?shù)亟?jīng)緯度計(jì)算太陽高度角和太陽方位角,并根據(jù)計(jì)算結(jié)果來驅(qū)動并控制步進(jìn)電機(jī),從而調(diào)整太陽能電池板的角位置。粗跟蹤的目的是為了讓太陽進(jìn)入圖像傳感器的視野范圍,主要用于首次定位和目標(biāo)丟失后的重新定位。
(3)系統(tǒng)工作在跟蹤模式時(shí),周期性采集圖像,采用基于計(jì)算機(jī)視覺的閉環(huán)校正方法進(jìn)行精跟蹤。精跟蹤的基本過程是:通過對采集圖像進(jìn)行處理,獲取太陽角度偏差量。由太陽角度偏差量可得到轉(zhuǎn)臺應(yīng)轉(zhuǎn)過的角度,從而使太陽能電池板能正對太陽。精跟蹤的目的是為了保證系統(tǒng)跟蹤精度。
(4)系統(tǒng)工作在跟蹤模式時(shí),由于陰天、雨天或其他原因,太陽光線很弱或基本看不見,導(dǎo)致CMOS圖像傳感器無法捕捉到太陽。此時(shí),太陽能電池板的工作效率很低,為了減小跟蹤系統(tǒng)能耗,不進(jìn)行電機(jī)動作并保持當(dāng)前狀態(tài)。同時(shí)設(shè)置累計(jì)標(biāo)志S,它表示圖像傳感器在連續(xù)S個(gè)采樣周期內(nèi)沒有捕捉到太陽。當(dāng)S累計(jì)到設(shè)定值N時(shí),采用視日運(yùn)動開環(huán)計(jì)算方法重新粗定位,并重置累計(jì)標(biāo)志S。這樣在降低系統(tǒng)能耗的同時(shí)可以提高系統(tǒng)可靠性。
2.2 基于計(jì)算機(jī)視覺的跟蹤方法
基于計(jì)算機(jī)視覺的跟蹤方法,其基本過程如下:通過對采集圖像進(jìn)行處理,得到太陽位置偏差量。如果偏差在預(yù)設(shè)閾值范圍內(nèi),則保持當(dāng)前狀態(tài);如果偏差超出預(yù)設(shè)閾值F1的范圍,則根據(jù)偏差的方向和大小調(diào)整轉(zhuǎn)臺,使得通過圖像處理得到的偏差在預(yù)設(shè)閾值F2的范圍內(nèi)。其中閾值F1的范圍比閾值F2的范圍大,這樣可以減小電機(jī)動作次數(shù),降低能耗。
(1)圖像處理方法。圖像傳感器得到圖像后,首先進(jìn)行圖像的灰度化。使用屏蔽字和移位操作來得到R,G,B分量,再進(jìn)行比例轉(zhuǎn)換,得到灰度圖像。設(shè)置閾值,將圖像二值化,得到的圖像中的光斑即為太陽。找到太陽位置,計(jì)算光斑中心與圖像中心的偏差值,將該偏差值換算為太陽方位角和高度角的實(shí)際偏差值。
(2)偏差角計(jì)算與轉(zhuǎn)臺控制。記CMOS圖像傳感器的焦距為f,像素大小為kx×ky。假設(shè)采集圖像上太陽位置偏離圖像中心的偏差為px× py,則可以計(jì)算太陽偏差角如下:
太陽方位偏差角:△α=arctan(px×kx/f);
太陽高度偏差角:△β=arctan(py×ky/f)。
根據(jù)太陽方位偏差角和高度偏差角,通過串口控制轉(zhuǎn)臺轉(zhuǎn)動,使太陽能電池板正對太陽。其中轉(zhuǎn)臺x軸應(yīng)轉(zhuǎn)過的角度為太陽方位偏差角,轉(zhuǎn)臺y軸應(yīng)轉(zhuǎn)過的角度為太陽高度偏差角。
2.3 嵌入式處理平臺的實(shí)現(xiàn)
系統(tǒng)采用S3C2440作為主控制器。利用Linux內(nèi)核代碼,針對本處理器和本系統(tǒng)特點(diǎn),對內(nèi)核進(jìn)行相應(yīng)的配置和裁剪,編譯生成嵌入式內(nèi)核,并選用yaffs作為根文件系統(tǒng),將內(nèi)核映像文件和根文件系統(tǒng)燒寫到微控制器中,并編寫相應(yīng)驅(qū)動程序。
程序在主機(jī)上設(shè)計(jì)完成后,需進(jìn)行交叉編譯,然后下載到處理器運(yùn)行。
首先在主機(jī)Linux系統(tǒng)下搭建交叉編譯環(huán)境,這里采用arm-linux-gCC-4.3.2 with EABI版本的交叉編譯器,并配置主機(jī)和目標(biāo)板的NFS和FTP網(wǎng)絡(luò),以實(shí)現(xiàn)主機(jī)到目標(biāo)板的文件下載和主機(jī)對微控制器的控制。程序編寫完成后,進(jìn)行交叉編譯,生成可執(zhí)行文件,下載到處理器運(yùn)行即可。
3 實(shí)驗(yàn)結(jié)果
3.1 基于計(jì)算機(jī)視覺方法的跟蹤實(shí)驗(yàn)
如圖4所示是某次精跟蹤過程的實(shí)驗(yàn)結(jié)果,其中(a)為CMOS圖像傳感器捕捉到的原始圖像;(b)為經(jīng)過灰度化、二值化后的結(jié)果,可以看出圖像中的太陽已經(jīng)被提取出來;(c)為精跟蹤一段時(shí)間后圖像傳感器得到的圖像,可以看出太陽處在圖像中心位置,此時(shí)太陽光線垂直照射太陽能電池板。
3.2 系統(tǒng)技術(shù)指標(biāo)
對本文提出的太陽跟蹤系統(tǒng)進(jìn)行了性能測試,通過分析測試結(jié)果,該系統(tǒng)的技術(shù)指標(biāo)如表1所示。
4 結(jié)語
本文中設(shè)計(jì)的太陽跟蹤系統(tǒng)采用視日運(yùn)動跟蹤方法和基于計(jì)算機(jī)視覺的跟蹤方法相結(jié)合的方式,一方面采