基于單片機的線陣CCD實時檢測系統方案設計
檢測過程描述:參見圖2的系統電路圖,當CCD被驅動后因其光電特性會有視頻模擬信號Vout輸出,信號如圖4所示。可以看出:模擬信號Vout在CCD掃描到深色區和白色區有明顯的幅值大小區別,要提取的信息就是這個變化的電壓信號,但單片機不能直接處理模擬信號Vout,因此必須先將Vout通過二值化處理得到數字信號BIN(見圖2二值化電路部分)。這樣便得到了反映白線左右兩個邊緣的脈沖信號BIN。為了方便上位機的處理,不直接輸出信號BIN,而是將BIN反饋給AT89C2051,讓其通過程序編制來捕捉其上升沿和下降沿的跳變,再從另外的引腳輸出與BIN上升沿和下降沿同步的負脈沖信號BIN_OUT。這樣上位機可方便地通過中斷檢測到白線的左右側。這里AT89C205l還要輸出一個同步信號FC(即驅動轉移脈沖φTG)。因為系統是在連續掃描地面信息,故FC脈沖可標志CCD上一次掃描的結束和新一行掃描的開始。新一行開始掃描時,上位機收到FC負脈沖后可進入中斷對定時器TO、Tl清零并立即開始計數。當收到BIN_OUT的第一個負脈沖后進入中斷并停止,定時器TO;當收到BIN_OUT的第二個負脈沖后進人中斷并停止定時器T1,讀出定時器TO、T1里的數t0、t1。t0、t1便反映了路面白線的坐標位置,很明顯t1與t0之差便是白線寬度。 本文引用地址:http://www.104case.com/article/193929.htm
綜合以上驅動和檢測信號要求得出:在主程序中用一個死循環產生連續的四路驅動脈沖,并通過嵌入相應的其他功能的指令來保證四個驅動脈沖的相位關系,對BIN信號的上升沿和下降沿的判斷也在此循環中完成。對BIN信號的當前狀態還必須有一個狀態標志BIN_STATE。一旦遇到BIN信號有電子變化便給出相應的BIN_OUT負脈沖,而BIN_OUT恢復高電平是靠定時器TO溢出中斷服務程序實現的。
本系統用一片小型單片機完全實現了預定功能,幾乎沒有復雜的外圍電路器件,結構簡單可靠,硬件、軟件代價都較低,系統成本預算較低。整個檢測系統角在機器人視覺上實驗效果也非常理想。系統可根據具體的需要和要求進行擴展和改變,如增加信號輸出、改變檢測系統和上位機的信號接口等。
評論