描述
本文来源电子发烧友社区,作者:HonestQiao, 帖子地址:
https://bbs.elecfans.com/jishu_2282162_1_1.html这次有幸获得Air105的试用,结合之前使用合宙产品的经验,很快就上手了。零、开箱首先来看一看Air105:
合宙发的
开发板,一如既往的高颜值,Air105的开发板,是黑金组合的。
另外,提供了排针,但一般都不焊针,需要自己焊接,不过要测试板载的三个颜色的LED,以及摄像头,不用焊针都可以进行。
这块小板子,相对于其价位,非常超值。Air105搭载高性能Cortex-M4F内核,最高频率204Mhz,内置640KB SRAM和4MB Flash,大小仅10mm*10mm,共有56个可编程GPIO管脚。
外设方面,提供UART/GPIO/I2C/ADC/SPI等基础外设,还提供DAC/USB/DCMI/HSPI/LCDI/KCU等高级外设接口。
同时还内置LDO与锂电池充电功能,支持5V/3.3V供电,同时自带5V转3.3V的LDO,极大的简化了外围
威廉希尔官方网站
。
结合合宙开源的openluat,开发起来块,应用场合也非常多,小家电、智能家居、智能玩具、工业控制、医疗监护等物联网场景,都可以使用。
广告打完,这次我不点灯了,直接上摄像头了。
要正常使用摄像头,我们需要如下的准备:
1. 连接好摄像头2. 了解开发板上的拨码开关3. 两个USB驱动:一个是CH340(USB2TTL)的,一个是摄像头的
CH340驱动:
http://www.wch.cn/download/ch341ser_exe.html 【CH341SER.EXE】
摄像头驱动:
https://doc.openluat.com/wiki/21?wiki_page_id=2070#USB_8 【合宙Cat.1模块PC 端 USB 驱动】
4. 固件烧录工具:
1) LuaTools工具:
https://wiki.luatos.com/pages/tools.html 【LuaTools下载(右键另存为)】
2) 最新固件:LuaTools自带
3) 摄像头应用lua脚本:LuaTools自带
5. PC端摄像头显示程序:https://gitee.com/openLuat/luatos-soc-air105/attach_files
下面,我们一步一步操作:
一、连接好摄像头:
参考上图,连接好摄像头,确保接口部分连接到位,摄像头正面朝上
二、了解开发板上的拨码开关:
USB接口旁边有个小开关,默认表面有贴膜,撕掉即可。
当拨码
拨到ON的时候,我们可以通过USB下载固件,下载脚本,已经通过LuaTools进行串口调试。
当拨码
拨离ON的时候,我们可以通过USB获取摄像头的数据。
三、两个USB驱动:
1. 调试串口驱动:
调试串口驱动为CH340驱动,驱动安装后,就可以通过USB下载固件,下载脚本,已经通过LuaTools进行串口调试。
断开开发板USB连接,将拨码开关拨到ON,然后连接USB,识别后,设备信息如下:
2. 摄像头驱动:
摄像头驱动使用的和“合宙Cat.1模块PC 端 ”同样的USB驱动:
断开开发板USB连接,将拨码开关拨离ON,然后连接USB,识别前,设备信息如下:
识别后,设备信息如下:
四、固件烧录:
首先,断开开发板USB连接,将拨码开关
拨到ON,然后连接USB,识别后,再进行下面的操作。
下载LuaTools工具,并放置到LuaTools目录中,然后启动Luatools_v2.exe,会自动检测最新版本,如果提示更新,点击开始即可自动更新。
LuaTools启动成功后,会自动下载所支持的设备最新固件和demo脚本。
在LuaTools主界面,按照下面的参数进行设置,就可以打开串口,看到调试信息了:
然后,点击项目管理测试,添加一个Air105_Test的测试项目,并选定好底层Core和要写入的脚本,具体如下:
上图中,对应的Core和脚本,均在LuaTools目录中,按照所示目录选择即可。
设置好以后,点击
下载底层和脚本,等待下载完成即可。
正常下载,为绿色进度条和文字;如果有问题,是红色的文字提示。
首次下载的时候,需要
下载底层和脚本;后续直接下载脚本即可。如果固件有更新了,可以选择新的固件,再次
下载底层和脚本。
开发板重启后,串口调试部分,将会显示如下信息,表示摄像头开始工作了:
五、PC端摄像头显示程序
要使用PC端摄像头显示程序显示摄像头拍摄的内容,需要先断开开发板USB连接,将拨码开关
拨离ON,然后连接USB,识别后,再进行下面的操作。
下载Air105摄像头预览及固件_20220331.7z,解压后,点击其中的start.exe,就会自动安装需要的.NET依赖包,并启动显示应用:
在操作界面上,选择对应的串口和波特率,点击
开始读取,稍后就会显示摄像头拍摄的内容了。
因为摄像头比较初级,所以拍摄的清晰度不是很高,而且速度也不是很快,能用就成。
摄像头拍摄部分的代码,可以查看 resource/105_lua_lod/core_V0006/demo/camera/Air105/capture_u*** 部分的代码:
-
sys.taskInit(function()
-
-
while 1 do
-
-- 稍微等待一下
-
sys.wait(100)
-
log.debug("摄像头捕获图像")
-
-- 删除老的图片,避免重复显示
-
os.remove("/temp.jpg")
-
camera.capture(camera_id, "/temp.jpg", 1)
-
sys.waitUntil("scanned", 1000)
-
local f = io.open("/temp.jpg", "r")
-
local data
-
if f then -- 若文件存在, 必然能打开并读取, 否则肯定拍照失败了
-
data = f:read("*a")
-
log.info("fs", #data)
-
f:close()
-
-
-- 请使用上位机读取, 链接稍后提供
-
uart.write(uart.VUART_0, "Air105 USB JPG " .. tostring(#data) .. "rn")
-
uart.write(uart.VUART_0, data)
-
end
-
end
-
-
end)
复制代码
其核心,就是通过摄像头获取图像,保存为jpg图片,然后通过串口以字符串模式发送出来。
而PC端的程序,就是接收这个图片数据,然后解码为图片binary数据,再显示出来。
如果有玩过迪文COF智能屏的同学,完全可以两者结合,把图片数据,直接给发到迪文COF智能屏显示了。
打开APP阅读更多精彩内容