<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于單片機的線陣CCD實時檢測系統(tǒng)方案設(shè)計

          基于單片機的線陣CCD實時檢測系統(tǒng)方案設(shè)計

          作者: 時間:2012-05-06 來源:網(wǎng)絡(luò) 收藏

          檢測過程描述:參見圖2的系統(tǒng)電路圖,當(dāng)被驅(qū)動后因其光電特性會有視頻模擬信號Vout輸出,信號如圖4所示。可以看出:模擬信號Vout在掃描到深色區(qū)和白色區(qū)有明顯的幅值大小區(qū)別,要提取的信息就是這個變化的電壓信號,但不能直接處理模擬信號Vout,因此必須先將Vout通過二值化處理得到數(shù)字信號BIN(見圖2二值化電路部分)。這樣便得到了反映白線左右兩個邊緣的脈沖信號BIN。為了方便上位機的處理,不直接輸出信號BIN,而是將BIN反饋給AT89C2051,讓其通過程序編制來捕捉其上升沿和下降沿的跳變,再從另外的引腳輸出與BIN上升沿和下降沿同步的負(fù)脈沖信號BIN_OUT。這樣上位機可方便地通過中斷檢測到白線的左右側(cè)。這里AT89C205l還要輸出一個同步信號FC(即驅(qū)動轉(zhuǎn)移脈沖φTG)。因為系統(tǒng)是在連續(xù)掃描地面信息,故FC脈沖可標(biāo)志上一次掃描的結(jié)束和新一行掃描的開始。新一行開始掃描時,上位機收到FC負(fù)脈沖后可進入中斷對定時器TO、Tl清零并立即開始計數(shù)。當(dāng)收到BIN_OUT的第一個負(fù)脈沖后進入中斷并停止,定時器TO;當(dāng)收到BIN_OUT的第二個負(fù)脈沖后進人中斷并停止定時器T1,讀出定時器TO、T1里的數(shù)t0、t1。t0、t1便反映了路面白線的坐標(biāo)位置,很明顯t1與t0之差便是白線寬度。

          本文引用地址:http://www.ex-cimer.com/article/193929.htm

          綜合以上驅(qū)動和檢測信號要求得出:在主程序中用一個死循環(huán)產(chǎn)生連續(xù)的四路驅(qū)動脈沖,并通過嵌入相應(yīng)的其他功能的指令來保證四個驅(qū)動脈沖的相位關(guān)系,對BIN信號的上升沿和下降沿的判斷也在此循環(huán)中完成。對BIN信號的當(dāng)前狀態(tài)還必須有一個狀態(tài)標(biāo)志BIN_STATE。一旦遇到BIN信號有電子變化便給出相應(yīng)的BIN_OUT負(fù)脈沖,而BIN_OUT恢復(fù)高電平是靠定時器TO溢出中斷服務(wù)程序?qū)崿F(xiàn)的。

          本系統(tǒng)用一片小型完全實現(xiàn)了預(yù)定功能,幾乎沒有復(fù)雜的外圍電路器件,結(jié)構(gòu)簡單可靠,硬件、軟件代價都較低,系統(tǒng)成本預(yù)算較低。整個檢測系統(tǒng)角在機器人視覺上實驗效果也非常理想。系統(tǒng)可根據(jù)具體的需要和要求進行擴展和改變,如增加信號輸出、改變檢測系統(tǒng)和上位機的信號接口等。


          上一頁 1 2 下一頁

          關(guān)鍵詞: CCD 單片機 線陣 實時檢測

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();