zoukankan      html  css  js  c++  java
  • 【物联网智能网关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电源也可以。

    首先在代码中要打开串口,设置必要的参数:

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

        if (!pct01.Open()) 

        {

            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

    MF资料:http://www.sky-walker.com.cn/News.asp?Id=25

     

  • 相关阅读:
    Android自定义之ScrollView下拉刷新
    android Viewpager取消预加载及Fragment方法的学习
    Android上下左右滑动,显示底层布局
    android权限大全
    android学习之VelocityTracker
    Android之自定义(上方标题随ViewPager手势慢慢滑动)
    Red Hat Enterprise Linux 7.5安装极点五笔
    Red Hat Enterprise Linux 7.5安装盘内容做本地YUM源
    RHEL7+Oracle11g笔记
    CentOS安装VNC方法
  • 原文地址:https://www.cnblogs.com/yefanqiu/p/2491056.html
Copyright © 2011-2022 走看看