使用Air780EPV测试gc032a摄像头
最近捣鼓合宙的新模块Air780EPV,基于移芯EC718PV平台,看到宣传上的低功耗字样琳琅满目,想着也拿来试一试,以前的展锐的方案是得逐步更换过来了。本文也只是试玩啦,别当真。
从TB买到的是Air780EPV开发板和gc032a
摄像头,只是座子没有焊上去,得手动补一下,其他都是成熟的资料,拿来跑一下并没有什么问题。现在合宙也不知道是啥情况,自从CC表涨价,再到开发板涨价,连双头Type-C数据线都能涨价的,TB店里面的CC表评价也骂声不断,看着开发板从69到99,再到199,捣鼓合宙4G模块 Cat.1 Air724UG和导航模块Air530;公众号也从每周一的技术分享和新品发布,换成了零零散散的商业心灵鸡汤,个人感觉就是从一个偏向技术开倒车搞成了搞管理的模式。虽然说从经济学的角度来说,开发板这种销售量不多的量产产品,确实应该提高是单品的售价来获得利润最大化,总之就是反正没多少人买嘛,要买模组搞开发的又不得不去买开发板来调试,但是全涨价了搞这些把口碑弄跌下去了也得不偿失。毕竟我们环境有不一样的。
再者说,能在Cat.1上找到低功耗的差异点,以此作为产品卖点自然是蛮好的,但是也不至于忘记积极维护自己的产品线和平台了吧,总感觉也不能为了低功耗来低功耗吧,平台的生态也依旧重要。
以下是从芯片选型手册上截图的平台差异:
以及基于相同平台的其他几个模组的情况:
摄像头的话具体是长下面这样:
1.首先就是要到:Minke工作台 (luatos.com) 中云编译固件,加入需要的外设,默认固件里是没有摄像头的:
摄像头的文档参考:camera - 摄像头 - LuatOS 文档
以下是基于demo/camera/spi_cam · 合宙Luat/LuatOS - 码云 - 开源中国 (gitee.com),修改的使用示例:
记得把gc032a.lua
加入编译的资源列表。
PROJECT = "camerademo"
VERSION = "1.0.0"
-- 实际使用时选1个就行
-- require "bf30a2"
require "gc032a"
-- require "gc0310"
sys = require("sys")
log.style(1)
local SCAN_MODE = 0 -- 写1演示扫码
local uartid = 2 -- 根据实际设备选取不同的uartid
-- 初始化
local result = uart.setup(uartid, -- 串口id
115200, -- 波特率
8, -- 数据位
1 -- 停止位
)
camera.on(0, "scanned", function(id, str)
if type(str) == 'string' then
log.info("扫码结果", str)
elseif str == false then
log.error("摄像头没有数据")
else
log.info("摄像头数据", str)
sys.publish("capture done", true)
end
end)
local function press_key()
log.info("boot press")
sys.publish("PRESS", true)
end
gpio.setup(0, press_key, gpio.PULLDOWN, gpio.RISING)
gpio.debounce(0, 100, 1)
local rawbuff, err
rawbuff, err = zbuff.create(640 * 480 * 2, 0, zbuff.HEAP_AUTO)
-- rawbuff, err = zbuff.create(60 * 1024, 0, zbuff.HEAP_AUTO)
if rawbuff == nil then
log.info(err)
end
sys.taskInit(function()
log.info("摄像头启动")
local cspiId, i2cId = 1, 1
i2c.setup(i2cId, i2c.FAST)
gpio.setup(5, 0) -- PD拉低
-- local camera_id = bf30a2Init(cspiId,i2cId,25500000,SCAN_MODE,SCAN_MODE)
-- local camera_id = gc0310Init(cspiId,i2cId,25500000,SCAN_MODE,SCAN_MODE)
local camera_id = gc032aInit(cspiId, i2cId, 24000000, SCAN_MODE, SCAN_MODE)
camera.stop(camera_id)
-- camera.preview(camera_id, true)
log.info("按下boot开始测试")
uart.write(uartid, "hello")
log.info(rtos.meminfo("sys"))
log.info(rtos.meminfo("psram"))
while 1 do
result, data = sys.waitUntil("PRESS", 30000)
if result == true and data == true then
log.debug("摄像头拍照")
-- 2和3需要非常多非常多的psram,尽量不要用.jpeg压缩质量,1最差,占用空间小,3最高,占用空间最大而且费时间,默认1
camera.capture(camera_id, rawbuff, 1)
result, data = sys.waitUntil("capture done", 30000)
log.info(rawbuff:used())
-- rawbuff:resize(60 * 1024)
log.info(rtos.meminfo("sys"))
log.info(rtos.meminfo("psram"))
log.info("rawbuff")
uart.tx(uartid, rawbuff) -- 找个能保存数据的串口工具保存成文件就能在电脑上看了, 格式为JPG
end
end
end)
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
拍照的结果就不发了,反正都是一坨。本来还想试一下EPV的深度睡眠的,但是并没有行,会被立马自行唤醒,以后有机会再继续捣鼓了。果然这个摄像头还是用于扫码合适。。。和简单试用安信可ESP32-CAM摄像头开发板 中的摄像头相同。最后还是希望合宙回到前几年的样子,经常能薅薅羊毛蛮好的,何必斤斤计较用户转化率呢?隔壁嘉立创也没说啥吧。
不知道说啥好了。。。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
能打电话吗什么
支持,并且EPV还支持VoLTE通话