BearPi-HM Micro 鸿蒙应用开发体验

这是在去年小熊派开发的一款开发板(核心STM32MP157),我之前也花了一些时间来学习开发了一个应用。包含南向各种外设驱动的开发和北向hap APP的开发,最终实现了自己的构想。(之前没有时间记录,今天简单记录总结)

请添加图片描述
在这里插入图片描述

南向开发功能如下

  • 板载陀螺仪驱动(实现开发板倾斜角检测)
  • E53IA1 温湿度传感器驱动
  • E53IA1 光照传感器驱动
  • E53IA1 电机控制

北向开发Hap应用实现的功能
动画实现、温湿度数据显示,传感器状态实时更新,包含了动画、定时器、布局的使用以及触摸对应传感器实现手势切换状态(上下左右划动等)。

由于华为openharmony3.0对于智慧视觉设备支持的API非常有限,所以目前并没有实现我期待的最完美的效果。其中南向的开发我最初想用陀螺仪实现屏幕倾斜检测,然后自动旋转屏幕和UI,结果,鸿蒙嵌入式设备不支持竖屏,就这么尴尬。

功能演示如下:

把鸿蒙3.0的应用装进折叠开发板

在这里插入图片描述

南向开发总结

南向的开发还是有一些复杂的,需要遵循鸿蒙的一套驱动开发框架(HDF框架),HDF框架以组件化的驱动模型作为核心设计思路,为开发者提供更精细化的驱动管理,让驱动开发和部署更加规范。HDF框架将一类设备驱动放在同一个host里面,开发者也可以将驱动功能分层独立开发和部署,支持一个驱动多个node,HDF驱动模型如下图所示:
在这里插入图片描述
我这边也是根据官方文档循序渐进开发了所需要的的驱动,并最终将E53外设板的所有外设整合为一个驱动,同时用一个数据将传感器数据一次传输到应用层,且包含bool型的传感器状态,感觉还是很方便的。这样北向的应用就可以调一次接口来实现所有传感器状态的查询了。具体的HDF框架中的理论知识,不再赘述,可自行查看文末的文档。
在这里插入图片描述
还有一点是北向与南向的交互是调用的JS接口来实现的,但是鸿蒙官方提供的接口非常少,应该只有两个(搞不懂,,),所以所有的与外设交互的接口,都需要自己实现,例如:小熊派例程中的操作LED的接口。这也是我为什么把E53的传感器融合为一个接口的原因,这样调用一次即可查询多个数据。

北向开发总结

北向应用的开发,反而更简单一些,因为开发方式与微信小程序几乎是一模一样的,但是也抵挡不住里面的坑多,,,还是刚刚所说的,API接口太少了,尤其是UI和动画方面。

  • 智慧视觉产品支持的UI非常少
  • 动画只支持XY轴的平移,且不能混合
  • 布局没有相对布局
  • 简单的旋转,UI控件也是不支持的,只有图片能旋转
  • 很多控件的参数都不能动态更新
  • 等等

所以能做的UI是非常有限的,我期间想做一个类似于鸿蒙超级终端的动画,来实现气泡的动态效果,即点击对应气泡,则对应传感器工作,功能实现了但是动画和UI折腾了很久,不尽人意(动画只能线性运动无法达到比较自然的动态效果)。
在这里插入图片描述
CSDN图片大小的无奈

期间我还尝试做了帧动画,来实现鸿蒙开机动画的效果,在虚拟机上面是可以正常工作的而且很流畅,但是在板子里面播放及其卡顿,目前原因未知。
在这里插入图片描述

由于个别接口,我并未遵循鸿蒙的协议,所以并未直接提交PR给小熊派,而是自己克隆的仓库自己来维护。在开发过程中我与小熊派的老王一起联调填了很多的坑。特此记录,后续待小熊派的WIFI和网络驱动开发完毕,我会再开发更多有意思的物联网应用,敬请期待!

小熊派仓库:https://gitee.com/bearpi/bearpi-hm_micro_small
我的南向仓库:https://gitee.com/wenzhengclub/bearpi-hm_micro_small
我的北向仓库(将不断丰富):https://gitee.com/wenzhengclub/openharmony_app

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值