【物聯網智能網關-02】獲取攝像頭數據+顯示

在上一篇文章《經過AD採集獲取溫溼度》咱們介紹了物聯網智能網關的AD端口的使用狀況,AD接口是.NET Micro Framework標準庫函數之一,只要底層BSP支持就能夠直接使用。可是對一些比較複雜的傳感器,好比串口攝像頭就沒有什麼庫能夠直接使用了,須要用戶根據攝像頭的通訊協議,進行串口編程,因爲相對複雜,對一些初入門用戶是有一些開發難度的。鑑於此,故開發了一套擴展庫,用戶只要幾行代碼,就能夠完成和傳感器的通訊,從而獲取數據。YFSoft.Hardware.Camera.PTC01.dll就是一種這樣的庫。編程

在我之前寫過的一篇文章《攝像頭藍牙圖像遠程獲取》中曾介紹過YFSoft.Hardware.Camera.PTC01.dll庫的使用,不過當時因爲.NET Micro Framework開發板並不支持WPF,因此沒有在LCD上顯示。今天的程序示例和之前的有所不一樣,是經過用戶按按鈕進行拍照的,而且把照片顯示在LCD上。函數

物聯網智能網關共引出5個串口,其中串口1爲調試口,串口5爲485口,其餘三個串口均可以使用(注意:紫藤207系統的COM2實際上是COM6),咱們使用COM3。測試

攝像頭除了一個串口外,還引出兩根線,白線或紅線接5V電源正,黑線或灰線接電源負。開發板自己有5V接口,串口地和電源地是互通的,因此咱們只須要把白線或紅線接入5V端子便可,黑線或灰線就不用管了。固然你也能夠不用開發板上輸出的電源(輸出功率相對較小),直接外接5V電源也能夠。spa

首先在代碼中要打開串口,設置必要的參數:.net

PCT01 pct01 = new PCT01("COM3", PCT01.Baudrate.Baudrate_38400);                        調試

    if (!pct01.Open()) blog

    {接口

        Debug.Print("Open failed");圖片

        pct01.Close();開發

        return;

}

攝像頭有兩種圖像大小能夠獲取,一個是320*240,一個是640*480,因爲咱們的LCD的分辨率是320*240,因此咱們設置獲取的圖片的大小就爲320*240。

if (!pct01.SetPhotoSize(PCT01.PhotoSize.Photo_320_240))

    {

        Debug.Print("SetPhotoSize failed");

        pct01.Close();

        return;

    }

另外攝像頭還能夠設置jpg的壓縮率,壓縮率越高,jpg的圖片越小,可是越不清晰。

if (!pct01.SetCompressRatio(0x36))  //0xFF

    {

        Debug.Print("SetCompressRatio failed");

        pct01.Close();

        return;

    }

按鍵相關的代碼,因爲比較簡單,這裏就略去不說了,有興趣的朋友,能夠參見我之前寫的文章《GPIO測試》。

按鈕按下後,發出圖像獲取指令,圖像獲取後,就在LCD上顯示:

byte[] picData = null;

pct01.GetPhoho(out picData);

Bitmap bmp = new Bitmap(picData, Bitmap.BitmapImageType.Jpeg);

bmp.Flush();

很是簡潔的幾句代碼,就完成了圖像獲取和圖像顯示。實際的拍攝效果圖以下: 

本文源碼:http://www.sky-walker.com.cn/MFRelease/Sample/YFCamera_Test.rar

MF簡介:http://blog.csdn.net/yefanqiu/article/details/5711770

相關文章
相關標籤/搜索