s5p4418摄像头程序使用教程

s5p4418摄像头程序使用教程

本次我采用的硬件设备是nanopiM2,摄像头模块是CAM500B,软件上使用的linux3.4.39内核, 这里nanopi2系列也是适用的,并且对于运行环境也是linux3.4.39的其他s5p4418的开发板也是同样适用的,比如迅为的itop4418等等。

一.本次硬件设备图如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注: CAM500B其实就是 OV5640模组,分辨率是500万像素。

二.软件程序 nanocams 介绍

nanocams 是三星官方编写的一套摄像头的测试demo程序,用C++程序的方式编写的程序比较简单,有兴趣的老哥可以研究下其源代码。
github链接地址: https://github.com/friendlyarm/nexell_linux_platform.git
克隆方式:git clone https://github.com/friendlyarm/nexell_linux_platform.git
仓库图示:
在这里插入图片描述
克隆下来的源码目录是: nexell_linux_platform 具体文件如下图:
在这里插入图片描述
注:从Makefile 可以看到这个源码的编译必须要版本为 4.9.3 的交叉编译工具链编译,否则拒绝编译。

三.编译源码

生成库文件的目录有:
libnxv4l2 、libnxmalloc 、prebuilt 、libnxvpu
生成可执行文件的目录:
nanocams

大概用到的库文件如下拷贝到开发板的/lib 目录下面:
在这里插入图片描述
拷贝 nanocams/nanocams 的可执行文件到开发板的 /bin 目录下面即可。

四.nanocams运行测试

在这里插入图片描述
由上图可知:
-p 预览图片尺寸
-n 预览帧数
-c 拍照的图片尺寸
-o 保存文件名

0 - 640x480
1 - 800x600
2 - 1280x720
3 - 1600x1200
4 - 2592x1944

那么 -p 1 表示预览图片的尺寸是 800 x 600 , -p 2 预览的图片是 1280 x 700 如此类推,毕竟ov5640支持最大的分辨率是2592 x 1944 详情查看ov5640的数据手册。

以800 x 600 的方式预览,预览40帧后,以 2592 x 1944 的格式抓拍一帧保存为 IMG001.jpg 的运行命令如下:
nanocams -p 1 -n 40 -c 4 -o IMG001.jpg

在这里插入图片描述
运行的时候可以发现显示屏能看到摄像头预览的图像,但是最后拍照的时候运行出错了这是为何???
答: 因为拍照的时候最后要用到 s5p4418的硬件编码器去生成 jgp图像,因此需要打开设备文件节点 /dev/nv_vpu 。

五.补充s5p4418的硬件vpu驱动模块 nx_vpu.ko 文件。

三星并无把vpu驱动加入到3.4.39的内核里面只提供了源代码,我们以模块方式编译,源码目录如下:
在这里插入图片描述
vim Makefile
编译过驱动模块的老哥都知道模块编译依赖内核源码目录,我们下面修改一下Makefile依赖的内核源码目录开始编译!!
在这里插入图片描述

编译过程如下:
在这里插入图片描述
最后我们拷贝 nx_vpu.ko 到开发板并加载模块并查看是否生成设备文件节点
/dev/nx_vpu !!
在这里插入图片描述
可以发现运行没有再报错了,把生成的 IMG001.jpg 文件发到Windows系统下双击打开即可,拍出来的照有点模糊献丑了:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值