新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM嵌入式图像处理平台的太阳跟踪系统

基于ARM嵌入式图像处理平台的太阳跟踪系统

作者: 时间:2012-06-06 来源:网络 收藏

2 软件设计
2.1 控制策略
图3所示是工作过程流程图,采用的控制策略如下:

本文引用地址:https://www.eepw.com.cn/article/148942.htm

c.jpg


(1)可设置2种工作模式,早晨6:00唤醒跟踪控制系统,系统启动跟踪控制,进入跟踪模式;下午18:00休眠系统,系统关闭跟踪控制,进入待机模式。同时系统采用粗跟踪和精跟踪2种方式,粗跟踪采用视日运动跟踪方法,精跟踪采用计算机视觉的跟踪方法。粗跟踪为精跟踪提供初始工作条件,精跟踪保证系统的跟踪精度。
(2)唤醒跟踪控制系统时,采用视日运动开环计算方法进行粗跟踪。粗跟踪的基本过程是:根据运行的天文规律计算,利用系统时间和给定的当地经纬度计算高度角和太阳方位角,并根据计算结果来驱动并控制步进电机,从而调整太阳能电池板的角位置。粗跟踪的目的是为了让太阳进入图像传感器的视野范围,主要用于首次定位和目标丢失后的重新定位。
(3)系统工作在跟踪模式时,周期性采集图像,采用计算机视觉的闭环校正方法进行精跟踪。精跟踪的基本过程是:通过对采集图像进行处理,获取太阳角度偏差量。由太阳角度偏差量可得到转台应转过的角度,从而使太阳能电池板能正对太阳。精跟踪的目的是为了保证系统跟踪精度。
(4)系统工作在跟踪模式时,由于阴天、雨天或其他原因,太阳光线很弱或基本看不见,导致CMOS图像传感器无法捕捉到太阳。此时,太阳能电池板的工作效率很低,为了减小跟踪系统能耗,不进行电机动作并保持当前状态。同时设置累计标志S,它表示图像传感器在连续S个采样周期内没有捕捉到太阳。当S累计到设定值N时,采用视日运动开环计算方法重新粗定位,并重置累计标志S。这样在降低系统能耗的同时可以提高系统可靠性。
2.2 计算机视觉的跟踪方法
基于计算机视觉的跟踪方法,其基本过程如下:通过对采集图像进行处理,得到太阳位置偏差量。如果偏差在预设阈值范围内,则保持当前状态;如果偏差超出预设阈值F1的范围,则根据偏差的方向和大小调整转台,使得通过得到的偏差在预设阈值F2的范围内。其中阈值F1的范围比阈值F2的范围大,这样可以减小电机动作次数,降低能耗。
(1)方法。图像传感器得到图像后,首先进行图像的灰度化。使用屏蔽字和移位操作来得到R,G,B分量,再进行比例转换,得到灰度图像。设置阈值,将图像二值化,得到的图像中的光斑即为太阳。找到太阳位置,计算光斑中心与图像中心的偏差值,将该偏差值换算为太阳方位角和高度角的实际偏差值。
(2)偏差角计算与转台控制。记CMOS图像传感器的焦距为f,像素大小为kx×ky。假设采集图像上太阳位置偏离图像中心的偏差为px× py,则可以计算太阳偏差角如下:
太阳方位偏差角:△α=arctan(px×kx/f);
太阳高度偏差角:△β=arctan(py×ky/f)。
根据太阳方位偏差角和高度偏差角,通过串口控制转台转动,使太阳能电池板正对太阳。其中转台x轴应转过的角度为太阳方位偏差角,转台y轴应转过的角度为太阳高度偏差角。
2.3 处理的实现
系统采用S3C2440作为主控制器。利用Linux内核代码,针对本处理器和本系统特点,对内核进行相应的配置和裁剪,编译生成内核,并选用yaffs作为根文件系统,将内核映像文件和根文件系统烧写到微控制器中,并编写相应驱动程序。
程序在主机上设计完成后,需进行交叉编译,然后下载到处理器运行。
首先在主机Linux系统下搭建交叉编译环境,这里采用arm-linux-gcc-4.3.2 with EABI版本的交叉编译器,并配置主机和目标板的NFS和FTP网络,以实现主机到目标板的文件下载和主机对微控制器的控制。程序编写完成后,进行交叉编译,生成可执行文件,下载到处理器运行即可。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭