Camera接口 ========== 作者: 金艺 概述 ---- Air724UG支持一路摄像头接口。可以用于扫码,拍照应用。 -------------- 特点: '''''' - 只支持SPI接口 - 最高像素30W像素@15fps - 支持数据格式YUV422, Y420, RAW8, RAW10 - 集成GC0310驱动 管脚定义 -------- +---------+---------+---------+---------+---------+---------+---------+ | 管脚名 | 管脚 | 上电默 | I/O | 管 | 电 | 备注 | | | | 认状态 | | 脚描述 | 气特性 | | +=========+=========+=========+=========+=========+=========+=========+ | C | 78 | INPUT | O | 关闭 | VILmi | 电压域 | | AM_PWDN | | PU | | Camera | n=-0.3V | 是V_GLO | | | | LL_DOWN | | | VILm | BAL_1V8 | | | | | | | ax=0.6V | 不用 | | | | | | | VIHm | 则悬空 | | | | | | | in=1.2V | | | | | | | | VIHm | | | | | | | | ax=2.0V | | | | | | | | VOHmin= | | | | | | | | V_ | | | | | | | | GLOBAL_ | | | | | | | | 1V8*0.7 | | | | | | | | VOLmax= | | | | | | | | V_ | | | | | | | | GLOBAL_ | | | | | | | | 1V8*0.3 | | +---------+---------+---------+---------+---------+---------+---------+ | CAM_RST | 84 | INPUT | O | 重启 | 同上 | 同上 | | | | PU | | Camera | | | | | | LL_DOWN | | | | | +---------+---------+---------+---------+---------+---------+---------+ | CAM | 85 | INPUT | O | Camera | 同上 | 同上 | | _REFCLK | | PU | | 基 | | | | | | LL_DOWN | | 准时钟 | | | +---------+---------+---------+---------+---------+---------+---------+ | CAM_SCK | 86 | INPUT | I | SPI | 同上 | 同上 | | | | PU | | Camera | | | | | | LL_DOWN | | 时 | | | | | | | | 钟输入 | | | +---------+---------+---------+---------+---------+---------+---------+ | CAM_SI0 | 87 | INPUT | I | SPI | 同上 | 同上 | | | | PU | | Camer数 | | | | | | LL_DOWN | | 据输入0 | | | +---------+---------+---------+---------+---------+---------+---------+ | CAM_SI1 | 88 | INPUT | I | SPI | 同上 | 同上 | | | | PU | | Camer数 | | | | | | LL_DOWN | | 据输入1 | | | +---------+---------+---------+---------+---------+---------+---------+ | CAMI | 50 | INPUT | I/O | Camera | 同上 | 同上 | | 2C_SDA1 | | PULL_UP | | I2C | | | | (G | | | | | | | | PIO_17) | | | | | | | +---------+---------+---------+---------+---------+---------+---------+ | CAMI | 51 | INPUT | O | Camera | 同上 | 同上 | | 2C_SCL1 | | PULL_UP | | I2C | | | +---------+---------+---------+---------+---------+---------+---------+ | V | 80 | | O | Camer | 1. | | | CC_CAMD | | | | a数字部 | 4V~2.18 | | | | | | | 分电源 | v/100mA | | | | | | | | 默 | | | | | | | | 认1.8V | | +---------+---------+---------+---------+---------+---------+---------+ | V | 79 | | O | Camer | 1 | | | CC_CAMA | | | | a模拟部 | .6V~3.2 | | | | | | | 分电源 | v/100mA | | | | | | | | 默 | | | | | | | | 认1.8V | | +---------+---------+---------+---------+---------+---------+---------+ 参考设计 -------- .. image:: http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20200615000342506_11.png AVDD,DVDD,DOVDD的滤波电容要靠近摄像投接口放置 CAM_SCK,CAM_REFCLK时钟走线要包地处理 整个camera走线要远离VBAT和RF走线,以免互相干扰 模拟电源VCAMA要包地处理,整个摄像投的模拟部分是由VCAMA供电 -------------- AT指令控制 ---------- - 目前AT指令只支持扫码功能,且只能支持CG0310摄像头。LUA跟CSDK开发,只要是SPI接口的摄像头都支持。 - 扫码支持QR,Code 49,Code 128格式。 - 内部集成Zbar解码库 AT+CCAM=0 打开cam AT+CCAM=1 关闭cam AT+CCAM=2 打开扫码 AT+CCAM=3 关闭扫码 扫码成功有+CCAM上报 ``注意:版本号大于470的固件才能支持摄像头功能`` ----------------------------------------------- LUAT 二次开发 ------------- disp.cameraopen() ~~~~~~~~~~~~~~~~~ 初始化摄像头 - 语法 ``= disp.cameraopen(type,zbarscan,mirror,jump)`` - 参数 ======== ============== ================================== 参数 释义 取值 ======== ============== ================================== type 保留 1 zbarscan 扫码功能 1:支持扫码0:不支持扫码 mirror 镜像功能 1:开启摄像头镜像0:关闭摄像头镜像 jump 预览隔行列输出 ======== ============== ================================== - 返回值 无 - 例子 .. code:: lua pm.wake("testTakePhoto") --打开摄像头 disp.cameraopen(1,0,0,1) --disp.cameraopen(1,0,0,0) --因目前core中还有问题没解决,所以不能关闭隔行隔列 --打开摄像头预览 --如果有LCD,使用LCD的宽和高 --如果无LCD,宽度设置为240像素,高度设置为320像素,240*320是Air268F支持的最大分辨率 disp.camerapreview(0,0,0,0,WIDTH or DEFAULT_WIDTH,HEIGHT or DEFAULT_HEIGHT) --设置照片的宽和高像素并且开始拍照 --此处设置的宽和高和预览时的保持一致 disp.cameracapture(WIDTH or DEFAULT_WIDTH,HEIGHT or DEFAULT_HEIGHT) --设置照片保存路径 disp.camerasavephoto("/testCamera.jpg") log.info("testCamera.takePhotoAndDisplay fileSize",io.fileSize("/testCamera.jpg")) --关闭摄像头预览 disp.camerapreviewclose() --关闭摄像头 disp.cameraclose() --允许系统休眠 pm.sleep("testTakePhoto") -------------- disp.camerapreview() ~~~~~~~~~~~~~~~~~~~~ 打开摄像头预览 - 语法 ``disp.camerapreview(offsetx,offsety,startx,starty,endx,endy)`` - 参数 ======= ============= ==== 参数 释义 取值 ======= ============= ==== offsetx 保留 0 offsety 保留 0 startx 预览起始位置x starty 预览起始位置y endx 预览结束位置x endy 预览结束位置y ======= ============= ==== - 返回值 无 -------------- disp.camerapreviewzoom() ~~~~~~~~~~~~~~~~~~~~~~~~ 预览缩放 - 语法 ``disp.camerapreviewzoom(zoom)`` - 参数 ==== ======== ================================== 参数 释义 取值 ==== ======== ================================== zoom 放缩设置 正数放大负数缩小,最大4倍,0不放缩 ==== ======== ================================== - 返回值 1:成功 0:失败 +------+ | ### | | disp | | .cam | | erap | | revi | | ewro | | tati | | on() | | 预览 | | 旋转 | +------+ | - | | 语法 | +------+ | ``di | | sp.c | | amer | | apre | | view | | rota | | tion | | (rot | | atio | | n)`` | +------+ | - | | 参数 | +------+ | \| | | 参数 | | \| | | 释义 | | \| | | 取值 | | \| | | \| | | ——– | | \| | | —- | | \| | | —— | | ———— | | ———— | | \| | | \| | | rota | | tion | | \| | | 旋转 | | \| | | 反转 | | 角度 | | 设置 | | 暂 | | 时只 | | 支持 | | 0和 | | 90度 | | \| | +------+ | - | | 返 | | 回值 | +------+ | 1: | | 成功 | | 0: | | 失败 | +------+ disp.camerapreviewclose() ~~~~~~~~~~~~~~~~~~~~~~~~~ 关闭预览 - 语法 ``disp.camerapreviewclose()`` - 参数 无 - 返回值 1:成功 0:失败 +------+ | ### | | disp | | .cam | | erac | | aptu | | re() | | 拍 | | 照片 | +------+ | - | | 语法 | +------+ | `` | | disp | | .cam | | erac | | aptu | | re(w | | idth | | ,hei | | ght[ | | ,qua | | lity | | ])`` | +------+ | - | | 参数 | +------+ | \| | | 参数 | | \| | | 释义 | | \| | | 取值 | | \| | | \| | | ——- | | \| | | ———— | | \| | | — | | ———— | | ———- | | \| | | \| | | w | | idth | | \| | | 照片 | | 宽度 | | \| | | 取决 | | 于摄 | | 像头 | | \| | | \| | | he | | ight | | \| | | 照片 | | 高度 | | \| | | 取决 | | 于摄 | | 像头 | | \| | | \| | | qua | | lity | | \| | | 照片 | | 压缩 | | 质量 | | \| | | 0 | | -100 | | (值 | | 越大 | | ,质 | | 量越 | | 高) | | \| | +------+ | - | | 返 | | 回值 | +------+ | 1: | | 成功 | | 0: | | 失败 | +------+ disp.camerasavephoto() ~~~~~~~~~~~~~~~~~~~~~~ 保存拍摄的照片到文件 - 语法 ``disp.camerasavephoto(filename)`` - 参数 ======== ============ ========== 参数 释义 取值 ======== ============ ========== filename 保存文件路径 string类型 ======== ============ ========== - 返回值 1:成功 0:失败 -------------- disp.cameraclose() ~~~~~~~~~~~~~~~~~~ 关闭摄像头 - 语法 ``disp.cameraclose()`` - 参数 无 - 返回值 无 相关资料以及购买链接 -------------------- 相关开发板购买链接 `Camera模组购买链接 `__ `Air724UG开发板 `__ `Air724 开发板使用说明 `__ `相关软件资料下载 `__ 常见问题 -------- https://luatdoc.papapoi.com/638/