> 文档中心 > 为什么要进行MicroPython到OpenHarmony的移植工作

为什么要进行MicroPython到OpenHarmony的移植工作


为什么要在OpenHarmony上使用MicroPython

我要开设一本面向全校低年级本科生的课程《智能物联网应用设计》,这门课程也是华为“教育部产学合作协同育人”项目支持的。目前课程的实验部分是采用润和的hi3861平台,按照标准的OpenHarmony的开发方法做的,需要C语言和Device Tools。申请开课时就有评审老师对采用C语言这事有担心,觉得可能对低年级来说太难了。后来调研了一下,还真是的。所以就考虑在课上采用MicroPython。

为什么要自己移植MicroPython

然后我就开始寻找能够在轻量级设备上使用的MicroPython。曾经问过连志安老师有没有好用的MicroPython实现,他的回答是没有。

唐佐林可能是最早做这方面尝试的了,在Gitee上可以找到他的代码仓库,而且在OpenHarmony-SIG的官方仓库也有收录。这是一个可用的实现,虽然没有支持REPL,显得不太好用,但是这个工作对我们的工作很有帮助。

有网友推荐了Waffle Nano (华夫饼鸿蒙版),这也是华为进行相关教师培训所使用的平台。但是他的网站源代码似乎不完整,而且一年多也没啥更新,应该主要的兴趣在于卖板子。

在参加电子爱好者的小河狸创客板试用活动时接触了他们的格物板,非常不错,不过他们也不开源,而且他们不单独卖板子,主要是卖课程。不过在51CTO的博客上能够找到技术人员分享的一些细节。

后来也看到几家类似的机构提供基于MicroPython和OpenHarmony的产品,不过他们都是靠卖板子或者课程盈利的,基本没法拿到源代码。

转了一圈,最后决定在以上工作的基础上自己开始移植工作。当然我的主要想法是满足自己教学的需要,暂时还没有更远大的目标。后来申请了一个学校的大创项目,招募了睿信书院的4个大一和大二的学生帮助完成这个工作。

我的工作目标

首先是满足我的课程教学需要,所以要支持润和WiFi物联网开发套件的基本功能,包括设备控制和MQTT联网。今后我们的实验可以用C语言完成,也可以用MicroPython完成,学生自主选择。

有几点技术上的要求:

  • 支持REPL和主流的MicroPython编辑器,方便学生开发

  • 采用比较规范的MicroPython移植流程,不修改py目录下的源代码,方便更新MicroPython的核心代码

  • 采用比较规范的OpenHarmony的开发流程,这样可以方便地扩展到其他轻量级开发板中,比如W800或XR608

  • API上尽可能和现有的开发板兼容,方便其他板卡的MicroPython程序移植

目前一个最简单的MicroPython移植版本(基于MicroPython 1.19和OpenHarmony 3.0)已经可以运行,后续继续完善。希望暑假的时候全部代码能够公开。