基于润和hi3516 dv300开发板,体验鸿蒙3.0 L1小型系统拍照Sample

背景:希望能在润和hi3516 dv300开发板上,体验拍照功能

前段时间花了一段精力,好不容易在润和hi3516 dv300上烧录了L2系统,并跑成功了ArkUI应用,详见(基于润和3516 dv300开发板,运行鸿蒙3.0 ArkUI helloworld_sd2131512的专栏-CSDN博客)。但是我的目标是做一个自动感应拍照的功能,不需要开发应用。

因此,最近重新看了OpenHarmony文档,发现其在轻小型系统上已经有现成的sample(zh-cn/device-dev/guide/device-camera-control-example.md · OpenHarmony/docs - Gitee.com),于是想跑通一下,看看这个拍照样例工程是怎么玩的,下面详细记录下操作步骤:

步骤一:购买和组装润和Hi3516 dv300开发板

淘宝搜索“润和HarmonyOS HiSpark Taurus AI Camera(Hi3516dv300)开发板套”

Tips: 价格有点小贵,屏幕容易坏。最好是参加Harmonos/OpenHarmony的各种赛事,比如成长计划等,有板子送。。而且一些社区直播也有抽奖送板子

参考视频,我家二年级的小朋友看了都会组装。。。

步骤二:源码下载,编译  (我这里使用的是3.0 LTS版本代码

我还是喜欢用 Docker编译,官网写的很详细,这里就不再重复了:Docker编译环境

注意:

1.我们这里是编译的是轻量和小型系统,不是标准系统哈。

2. hb set时,我们选择ipcamera_hispark_taurus

3.执行hb build -f编译

编译结果文件生成在out/hispark_taurus/ipcamera_hispark_taurus目录下

步骤三:烧录,和运行HelloWorld

官方文档有个介绍:·运行Hello OHOS(编译、烧录)

不过,我还是使用的HiTools工具烧录的USB烧录方式烧录的,具体步骤为:

1.请连接好电脑和待烧录开发板,需要同时连接串口和USB口,具体可参考Hi3516DV300开发板介绍

2.打开电脑的设备管理器,查看并记录对应的串口号。

如果对应的串口异常,请根据Hi3516DV300/Hi3518EV300开发板串口驱动安装指导安装USB转串口的驱动程序。

3.如不识别,安装USB驱动,下载地址 

如果安装驱动后,还提示不识别的USB设备,请将下面的内容保存未一个注册表文件,如test.reg,然后注册。

PS不要问我为啥,别人发我的,我就这么做了。。。。

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\12D1D0010100]
"SkipBOSDescriptorQuery"=hex:01,00,00,00
"osvc"=hex:00,00
"IgnoreHWSerNum"=hex:01

5.使用Hitools,烧写,然后按住串口边上的复位键,插拔USB电源线重启。

注意:这里比烧录L2标准系统麻烦的是,需要自己写一个eMMC分区表文件,里面写清楚各镜像所在路径.需要修改里面的SelectFile为自己的本地绝对路径

<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info ProgrammerFile="">
<Part Sel="1" PartitionName="fastboot" FlashType="emmc" FileSystem="none" Start="0" Length="1M" SelectFile="D:\madixin\oh 3516_dv300\l1 3.0_lts\u-boot-hi3516dv300.bin"/>
<Part Sel="1" PartitionName="kernel" FlashType="emmc" FileSystem="none" Start="1M" Length="9M" SelectFile="D:\madixin\oh 3516_dv300\l1 3.0_lts\OHOS_Image.bin"/>
<Part Sel="1" PartitionName="rootfs" FlashType="emmc" FileSystem="none" Start="10M" Length="20M" SelectFile="D:\madixin\oh 3516_dv300\l1 3.0_lts\rootfs_vfat.img"/>
<Part Sel="1" PartitionName="userfs" FlashType="emmc" FileSystem="none" Start="30M" Length="50M" SelectFile="D:\madixin\oh 3516_dv300\l1 3.0_lts\userfs_vfat.img"/>
</Partition_Info>
生产固件及应用文件的名称 对应文件路径 文件说明
u-boot-hi3516dv300.bin device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/ 系统启动引导程序
OHOS_Image.bin out/hispark_taurus/ipcamera_hispark_taurus/ 系统内核固件
rootfs_vfat.img out/hispark_taurus/ipcamera_hispark_taurus/ 文件系统
userfs_vfat.img out/hispark_taurus/ipcamera_hispark_taurus/ 用户数据分区

烧录时间1分钟以内,比L2的快多了

6. 如果是第一次烧录程序的话(从L2烧录到L1时也需要重新设置),单板在启动的时候需要设置bootargs,否则不能正常启动。

启动时,迅速按回车,输入

setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=27M rw";
save
reset

步骤五:拍照样例

参考:相机应用实例, 可以实现相机拍照,录制,视频的操作,那么生下来就需要研究下“applications/sample/camera/media/camera_sample.cpp”的代码了。

值得说明的是,如果有TF卡,按照说明的是,照片会生成在/sdcard目录下,可以拷贝出来。

但是我,没有TF卡,而是尝试在本机(windows)上部署了各NFS服务,挂载到L1设备中,具体方法参考https://harmonyos.51cto.com/posts/3078  , 那么这种方法的话,照片是生成在了/userdata下,此时使用cp命令拷贝出来就可以看到照片了

下一步想研究下,如何使用3516开发板的按钮,来触发拍照。这块可能需要实现HDF的按钮驱动,响应GPIO中断了。 完全的知识盲区,希望有高手能指点下。。。

猜你喜欢

转载自blog.csdn.net/sd2131512/article/details/121760552