文档章节

A20 linux(dragonboard)同时使用Parallel CSI Camera及UVC

ka布
 ka布
发布于 2016/10/31 16:05
字数 530
阅读 68
收藏 0

【目标】
在A20上同时对parallel同时使用parallel csi摄像头及usb摄像头进行preview。
【选型】
硬件选用主控为A20的CubieBoard2开发板。
软件SDK选用全志A20 Kitkat SDK中的lichee包。
【过程】
1、在linux-3.4的menuconfig中将uvc驱动选项打开,USB_VIDEO_CLAS设置成m,USB_VIDEO_CLASS_INPUT_EVDEV设置成y。
Device Drivers —>
<*> Multimedia support —>
[*] Video capture adapters —>
[*] V4L USB devices —>
USB Video Class (UVC)
[*] UVC input events device support
这里写图片描述

2、在dragonboard中加入usb camera的testcase。全志dragonboard环境使用的是linux+DirectFb,可以参考既有的csi camera testcase代码进行添加。大致分为两步:
第一步,在df_view.c的csi camera test代码后加入启动usb camera test的代码

x2 = 0;
height2 = layer_config.height>>1;
y2 = layer_config.height>>1;
if(mic_activated)
{ width2 = (layer_config.width >> 1)-(layer_config.width>>MIC_POWER_BAR_WITH_SHIFT); }
else
{ width2 = (layer_config.width >> 1); }
if (usb_camera_test_init(x2,y2,width2,height2))
{ return -1; }

第二步,增加usbcameratest.c,usbcameratest.c包含了usb camera的初始化、打开、设置参数等核心方法,上文中的usb_camera_test_init函数实现也在这个源码文件里面。可根据以下流程编写usbcameratest.c,
这里写图片描述
这里,有几点需要注意,一是usb camera的数据格式是YUYV,所以在set format的时候,pixel format要设置成YUYV;二是usb camera的图像大小是640x480。

3、从CubieBoard2原理图可知,上面只能使用csi1接parallel csi camera,所以test_config.fex需要作以下修改

[camera]
activated = 1
module_count= 6
module1_path= "/system/vendor/modules/videobuf-core.ko"
module2_path= "/system/vendor/modules/videobuf-dma-contig.ko"
module3_path= "/system/vendor/modules/camera.ko"
module4_path= "/system/vendor/modules/gc0308.ko"
module5_path= "/system/vendor/modules/sunxi_csi1.ko"
module6_path= "/system/vendor/modules/uvcvideo.ko"
dev_cnt = 1
csi_cnt = 1
fps = 30

4、编译打包烧录

cd lichee
./build.sh -p sun7i_dragonboard
./build.sh pack

【结果】
下图LCD右上角为parallel csi camera preview,左下角为usb camera preview,两个摄像头均已打开并持续采集数据绘制以屏幕上。
这里写图片描述

【遗留问题及解决方案】
由于usb camera的数据格式是YUYV,LCD中usb camera preview区域的格式是YUV420,所以无法正确显示来自于usb camera的画面数据。解决此问题可考虑数据格式转换,将YUYV转成YUV420再绘制以屏幕上,实现转换可使用A20 G2D,效率更高。

© 著作权归作者所有

共有 人打赏支持
ka布
粉丝 0
博文 20
码字总数 6282
作品 0
东莞
技术主管
私信 提问
香蕉派开源硬件 Banana PI

Banana PI M1是为了配合Elastos.org 开源OS推广而推出开源硬件平台,BananaPI M1是一款比树莓派更强悍的双核Android4.2产品。BananaPI 支持 Android系统,,Debian linux系统,Ubuntulinux系统...

sinovoip
2014/05/06
0
0
Banana PI 香蕉派 A20开发板介绍

Banana PI M1是为了配合Elastos.org开源OS推广而推出开源硬件平台,BananaPI M1是一款比树莓派更强悍的双核Android4.2产品。BananaPI 支持 Android系统,,Debian linux系统,Ubuntulinux系统...

bananapi
2014/03/26
0
2
关于android多摄像头的问题

请教大神,安卓如何实现同时开启两个摄像头,这两个摄像头其中一个是uvc的,一个是FIC的,已经可以再dev目录下看到两个video设备:video0和video1,现在需要同时打开两个摄像头,但安卓的Cam...

suzilong0
2014/07/17
219
0
【转】用pcDuino做猫脸识别

- 猫脸识别 – Kick off 今天确定了新代一目标: 能够在开发板上收到视频信号,并自动识别其中的物体(第一步不一定是猫脸) 关于猫脸识别 Open CV可以做到对任意形状的识别(Haar-like fea...

微微的薄雾
2013/07/12
4.9K
5
[RK3288][Android6.0] 调试笔记 --- 原生Camera apk打开闪退

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 现象: 接UVC摄像头,用原生Camera apk打开直接闪退,关键log: 分析: log的意思是连接上来的client也就是camera apk user值是0, 而c...

kris_fei
2017/10/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈“李氏代换”——从纪念金庸和斯坦李说起

李氏代换(LSP)简介 李氏代换是软件设计的一个原则,又名依赖倒转原则或依赖倒置原则,其衍生原则有接口分离原则等。该原则由Barbara Liskov于1988年提出。 该原则指出,程序中高级别的元素...

SamYjy
19分钟前
9
0
JavaScript实现在线websocket WSS测试工具 -toolfk程序员工具网

本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果。T...

toolfk
37分钟前
0
0
linux-scp 远程拷贝报错原因

刚拿到一台重装后的服务器,远程ssh都正常,但是一scp拷贝东西就报错: 本地确定是有scp命令的,而且如果是本地没有scp不会报后面那句lost connection,因此就是远程没有scp这个命令。因此在...

linuxprobe16
50分钟前
1
0
OSChina 周六乱弹 —— 谁小时候没当过熊孩子呀

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《行尸走肉》- amazarashi 《行尸走肉》- amazarashi 手机党少年们想听歌,请使劲儿戳(这里) @神话 :周五了,周末干啥...

小小编辑
今天
110
4
docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部