基于ARM嵌入式圖像處理平臺(tái)的太陽(yáng)跟蹤系統(tǒng)
2 軟件設(shè)計(jì)
2.1 跟蹤控制策略
圖3所示是太陽(yáng)跟蹤系統(tǒng)工作過(guò)程流程圖,系統(tǒng)采用的跟蹤控制策略如下:本文引用地址:http://m.butianyuan.cn/article/148942.htm
(1)系統(tǒng)可設(shè)置2種工作模式,早晨6:00喚醒跟蹤控制系統(tǒng),系統(tǒng)啟動(dòng)跟蹤控制,進(jìn)入跟蹤模式;下午18:00休眠系統(tǒng),系統(tǒng)關(guān)閉跟蹤控制,進(jìn)入待機(jī)模式。同時(shí)系統(tǒng)采用粗跟蹤和精跟蹤2種方式,粗跟蹤采用視日運(yùn)動(dòng)跟蹤方法,精跟蹤采用基于計(jì)算機(jī)視覺(jué)的跟蹤方法。粗跟蹤為精跟蹤提供初始工作條件,精跟蹤保證系統(tǒng)的跟蹤精度。
(2)喚醒跟蹤控制系統(tǒng)時(shí),采用視日運(yùn)動(dòng)開(kāi)環(huán)計(jì)算方法進(jìn)行粗跟蹤。粗跟蹤的基本過(guò)程是:根據(jù)太陽(yáng)運(yùn)行的天文規(guī)律計(jì)算,利用系統(tǒng)時(shí)間和給定的當(dāng)?shù)亟?jīng)緯度計(jì)算太陽(yáng)高度角和太陽(yáng)方位角,并根據(jù)計(jì)算結(jié)果來(lái)驅(qū)動(dòng)并控制步進(jìn)電機(jī),從而調(diào)整太陽(yáng)能電池板的角位置。粗跟蹤的目的是為了讓太陽(yáng)進(jìn)入圖像傳感器的視野范圍,主要用于首次定位和目標(biāo)丟失后的重新定位。
(3)系統(tǒng)工作在跟蹤模式時(shí),周期性采集圖像,采用基于計(jì)算機(jī)視覺(jué)的閉環(huán)校正方法進(jìn)行精跟蹤。精跟蹤的基本過(guò)程是:通過(guò)對(duì)采集圖像進(jìn)行處理,獲取太陽(yáng)角度偏差量。由太陽(yáng)角度偏差量可得到轉(zhuǎn)臺(tái)應(yīng)轉(zhuǎn)過(guò)的角度,從而使太陽(yáng)能電池板能正對(duì)太陽(yáng)。精跟蹤的目的是為了保證系統(tǒng)跟蹤精度。
(4)系統(tǒng)工作在跟蹤模式時(shí),由于陰天、雨天或其他原因,太陽(yáng)光線很弱或基本看不見(jiàn),導(dǎo)致CMOS圖像傳感器無(wú)法捕捉到太陽(yáng)。此時(shí),太陽(yáng)能電池板的工作效率很低,為了減小跟蹤系統(tǒng)能耗,不進(jìn)行電機(jī)動(dòng)作并保持當(dāng)前狀態(tài)。同時(shí)設(shè)置累計(jì)標(biāo)志S,它表示圖像傳感器在連續(xù)S個(gè)采樣周期內(nèi)沒(méi)有捕捉到太陽(yáng)。當(dāng)S累計(jì)到設(shè)定值N時(shí),采用視日運(yùn)動(dòng)開(kāi)環(huán)計(jì)算方法重新粗定位,并重置累計(jì)標(biāo)志S。這樣在降低系統(tǒng)能耗的同時(shí)可以提高系統(tǒng)可靠性。
2.2 基于計(jì)算機(jī)視覺(jué)的跟蹤方法
基于計(jì)算機(jī)視覺(jué)的跟蹤方法,其基本過(guò)程如下:通過(guò)對(duì)采集圖像進(jìn)行處理,得到太陽(yáng)位置偏差量。如果偏差在預(yù)設(shè)閾值范圍內(nèi),則保持當(dāng)前狀態(tài);如果偏差超出預(yù)設(shè)閾值F1的范圍,則根據(jù)偏差的方向和大小調(diào)整轉(zhuǎn)臺(tái),使得通過(guò)圖像處理得到的偏差在預(yù)設(shè)閾值F2的范圍內(nèi)。其中閾值F1的范圍比閾值F2的范圍大,這樣可以減小電機(jī)動(dòng)作次數(shù),降低能耗。
(1)圖像處理方法。圖像傳感器得到圖像后,首先進(jìn)行圖像的灰度化。使用屏蔽字和移位操作來(lái)得到R,G,B分量,再進(jìn)行比例轉(zhuǎn)換,得到灰度圖像。設(shè)置閾值,將圖像二值化,得到的圖像中的光斑即為太陽(yáng)。找到太陽(yáng)位置,計(jì)算光斑中心與圖像中心的偏差值,將該偏差值換算為太陽(yáng)方位角和高度角的實(shí)際偏差值。
(2)偏差角計(jì)算與轉(zhuǎn)臺(tái)控制。記CMOS圖像傳感器的焦距為f,像素大小為kx×ky。假設(shè)采集圖像上太陽(yáng)位置偏離圖像中心的偏差為px× py,則可以計(jì)算太陽(yáng)偏差角如下:
太陽(yáng)方位偏差角:△α=arctan(px×kx/f);
太陽(yáng)高度偏差角:△β=arctan(py×ky/f)。
根據(jù)太陽(yáng)方位偏差角和高度偏差角,通過(guò)串口控制轉(zhuǎn)臺(tái)轉(zhuǎn)動(dòng),使太陽(yáng)能電池板正對(duì)太陽(yáng)。其中轉(zhuǎn)臺(tái)x軸應(yīng)轉(zhuǎn)過(guò)的角度為太陽(yáng)方位偏差角,轉(zhuǎn)臺(tái)y軸應(yīng)轉(zhuǎn)過(guò)的角度為太陽(yáng)高度偏差角。
2.3 嵌入式處理平臺(tái)的實(shí)現(xiàn)
系統(tǒng)采用S3C2440作為主控制器。利用Linux內(nèi)核代碼,針對(duì)本處理器和本系統(tǒng)特點(diǎn),對(duì)內(nèi)核進(jìn)行相應(yīng)的配置和裁剪,編譯生成嵌入式內(nèi)核,并選用yaffs作為根文件系統(tǒng),將內(nèi)核映像文件和根文件系統(tǒng)燒寫(xiě)到微控制器中,并編寫(xiě)相應(yīng)驅(qū)動(dòng)程序。
程序在主機(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ī)對(duì)微控制器的控制。程序編寫(xiě)完成后,進(jìn)行交叉編譯,生成可執(zhí)行文件,下載到處理器運(yùn)行即可。
評(píng)論