PCB圖畫的收集是AOI設備進行檢測的關鍵步驟之一,收集的圖畫信息將會用在今后的圖畫處理模塊中。
圖畫的收集設備
圖畫收集設備,完結的使命是將光信號轉化成能夠記載的電信號,能完結這類光電變換功用的有CCD(Charge Coupled Device,電荷耦合器材)類器材,CMOS(Complementary Metal-Oxide-Semiconductor,互補金屬氧化物半導體)類設備和PSD(Position Sensitive Detector,半導體方位敏感檢出器)設備等。咱們設備選擇CCD作為圖畫收集設備。
CCD類器材相關于CMOS類器材,具有低噪聲和高靈敏度的特色。CCD分為面陣(Area Arrays)型CCD和線陣(Linear Arrays)型CCD,咱們選用的是面陣型的。面陣型CCD圖畫傳感器由感光區、信號存儲區和輸出搬運部分組成,感光區能夠感觸目標物體的光源,并轉化成電荷,然后通過移位寄存器輸出電信號。由于CCD是面陣型的,所以需要通過水平緩筆直兩個移位寄存器輸出電信號。
輸出的電信號就是CCD收集的圖畫信號。
圖畫體系及灰度圖
一般的圖畫都是由各種的點構成的,這些點被稱為像素(pix),這些點的調集就形成了一整幅圖畫。關于五顏六色的圖畫有RGB、CMY、YUV、YcbCr幾個體系。RGB是最常用的五顏六色體系,核算機體系一般運用RGB體系,是運用紅色(RED)、綠色(GREEN)和藍色(BLUE)三原色彩疊加得到各種色彩,這三種色彩被分為256級(當然還能夠分成更多的等級,如512,1024等),經組合可得1600萬種色彩。而CMY為減色體系,分別為青色(Cyan)、品紅(Magenta)、黃色(Yellow)三種色彩,CMY體系一般用于印刷工業。這兩個體系的其對應聯系如圖所示。
RGB、CMY聯系圖從上面的聯系圖中,能夠看到白色為(255,255,255),黑色為(0,0,0),這樣從白色到黑色的連線上的點是R=G=B,這些點只有亮度信息,能夠成為灰度信號。咱們把只含亮度信號,沒有色彩信號的圖畫,成為灰度圖,就是咱們平常看到是非照片。
在AOI設備中運用是非CCD進行圖畫收集,得到的就是灰度圖。這是由于對PCB上的瑕疵只需是非信號就能表明,并且是非CCD的解析度也遠較五顏六色CCD高,相同面積的CCD靶面上,是非圖畫的解析度是五顏六色圖畫的三倍以上。這樣,咱們今后說到的任何圖畫信號都是灰度的是非圖畫。
從上述的描繪能夠得知,關于一個灰度點,能夠有三個元素(x,y,D)來表明,其間x和y為該點的平面坐標,D為該點的灰度值,在0到255之間.這樣,一幅數字圖畫是一個二維的陣列,陣列元素值被稱為灰度值(亮度值)。關于陣列中的任意一個像素的能夠用如下公式表明:
f (x y)=D(x y)
x,y表明點的坐標,D表明這一點的灰度值。咱們收集的圖畫一般用這種方法來存儲的。
圖畫的收集
圖畫的核算方法是以像素(pix)來核算的,pix的換算聯系為1mm=48pixes。咱們設備選用的CCD攝像頭,收集到的一幀(frame)圖畫的像素為4008pix×2672pix。
這樣編程時,對一幀圖畫的像素能夠有這樣的界說:
#define XAXIS 4008
#define XAXIS 2672
在設備中作業臺上,要完結一次一切PCB板的圖畫收集,共要收集6幀圖畫,把這6幀圖畫檢測完結后,即完結一次的PCB的檢測流程。
再來看一下,咱們從攝像頭里,收集到的圖畫信號是怎樣的格局。從攝像頭里,讀取到的圖畫結構為C鋤eraData幸bu膿,這是一個線性存儲的圖畫單元。咱們在一幀圖畫中座標(x,y)處的像素點的灰度值D,能夠用公式來得到:
D=buffer[x+y*XAXIS]
了解圖畫像素的存儲結構后,咱們再看一下與圖畫收集相關的結構。
struct Capture{
int i;//X方向的位移
int j;//Y方向的位移
int rowC;//一幀圖畫的總的行數
int colC;//一幀圖畫的總的列數
int bufferNo;//存儲圖畫的緩存編號
CameraData*buffer;//存儲圖畫的結構
};
在CCD移動和拍照時,首先要查看CCD的幀存儲器里是否有圖畫信號能夠讀取,用布爾值fcancapture來查看是否有掃描到的圖畫信號,如果有則把圖畫的基本信息放入Capture的結構之中。
if (fcancapture){//查看是否有圖畫幀
num=getAvailFrame();//取可用的像素幀數
if (mum!=0){
Capture cp;//界說Capture類結構cp,并開端給cp的結構賦值
cp.buffer=buff[num-1];
cp.bufferNo=num;
cp.i=si;
cp.j=sj;
cp.colC=columnCount;
cp.rowC=rowCount;
cap[num]=cp;
int pxdst=pxd_goSnap(1,num);//取移動狀況
Sleep(170);//延時等候CCD曝光
fcanmoveall=true;//康復移動
fcancapture=false;//中止捕捉下一幀
}
}
收集后得到一幀完好的PCB圖畫(4008pix×2672pix)
aoi設備檢測圖畫的收集和轉化小結
AOI設備的圖畫收集進程,能夠分為硬件的馬達驅動開發,和圖畫讀取的兩個部分;這一章是上一個AOI設備馬達操控的后續打開內容。
圖畫讀取就是從CCD中收集出圖畫的灰度信號值,并最終被存儲在CameraData*buffer的緩沖區內。關于一次收集,咱們在作業臺上要收集6幀圖畫,為此體系樹立一個結構Capture來操控圖畫信號的讀取,該結構會操控幀圖畫在作業臺上的方位,以及隊伍信號值。
咱們將馬達的驅動和信號的讀取,這兩部分肯機地結合起來,就完結了AOI設備的圖畫收集模塊的規劃,并完成了該模塊的功用。

