RTT MicroPython VS 官方原生MicroPython

当下MicroPython 变得越来越流行,RT-Thread 也提供了对应的软件包的支持。那么,相比官方原生的 MicroPython 我们有哪些改进呢?本文将深入介绍,RT-Thread MicroPython软件包与官方原生MicroPython的区别。

首先,我们先来了解下 MicroPython 本身的一些优势及应用领域。

MicroPython 的优势

Python 是一款容易上手的脚本语言,同时具有强大的功能,语法优雅简单。使用 MicroPython 编程可以降低嵌入式的开发门槛,让更多的人体验嵌入式的乐趣。

通过 MicroPython 实现硬件底层的访问和控制,不需要了解底层寄存器、数据手册、厂家的库函数等,即可轻松控制硬件。

外设与常用功能都有相应的模块,降低开发难度,使开发和移植变得容易和快速。

MicroPython 的应用领域

MicroPython 在嵌入式系统上完整实现了 Python3 的核心功能,可以在产品开发的各个阶段给开发者带来便利。

通过 MicroPython 提供的库和函数,开发者可以快速控制 LED、液晶、舵机、多种传感器、SD、UART、I2C 等,实现各种功能,而不用再去研究底层硬件模块的使用方法,翻看寄存器手册。这样不但降低了开发难度,而且减少了重复开发工作,可以加快开发速度,提高开发效率。以前需要较高水平的嵌入式工程师花费数天甚至数周才能完成的功能,现在普通的嵌入式开发者用几个小时就能实现类似的功能。

随着半导体技术的不断发展,芯片的功能、内部的存储器容量和资源不断增加,成本不断降低,可以使用 MicroPython 来进行开发设计的应用领域也会越来越多。

产品原型验证

众所周知,在开发新产品时,原型设计是一个非常重要的环节,这个环节需要以最快速的方式设计出产品的大致模型,并验证业务流程或者技术点。与传统开发方法相比,使用 MicroPython 对于原型验证非常有用,让原型验证过程变得轻松,加速原型验证过程。

在进行一些物联网功能开发时,网络功能也是 MicroPython 的长处,可以利用现成的众多 MicroPython 网络模块,节省开发时间。而这些功能如果使用 C/C++ 来完成,会耗费几倍的时间。

硬件测试

嵌入式产品在开发时,一般会分为硬件开发及软件开发。硬件工程师并不一定都擅长软件开发,所以在测试新硬件时,经常需要软件工程师参与。这就导致软件工程师可能会耗费很多时间帮助硬件工程师查找设计或者焊接问题。有了 MicroPython 后,将 MicroPython 固件烧入待测试的新硬件,在检查焊接、连线等问题时,只需使用简单的 Python 命令即可测试。这样,硬件工程师一人即可搞定,再也不用麻烦别人了。

教育

MicroPython 使用简单、方便,非常适合于编程入门。在校学生或者业余爱好者都可以通过 MicroPython 快速的开发一些好玩的项目,在开发的过程中学习编程思想,提高自己的动手能力。

下面是一些 MicroPython 教育项目:

从TurnipBit开始完成编程启蒙

(https://www.cnblogs.com/xxosu/p/7206414.html)

MicroBit 创意编程

(http://microbit.org/)

创客 DIY

MicroPython 无需复杂的设置,不需要安装特别的软件环境和额外的硬件,使用任何文本编辑器就可以进行编程。大部分硬件功能,使用一个命令就能驱动,不用了解硬件底层就能快速开发。这些特性使得 MicroPython 非常适合创客使用来开发一些有创意的项目。

下面是使用 MicroPython 制作的一些 DIY 项目:

显示温湿度的 WIFI 时钟

(https://www.bilibili.com/video/av15929152?from=search&seid=16285206333541196172)

OpenMV 智能摄像头

(https://www.bilibili.com/video/av16418889?from=search&seid=16285206333541196172)

手机遥控车

(https://www.bilibili.com/video/av15008143?from=search&seid=16285206333541196172)

搭建 MQTT 服务器

(http://www.360doc.com/content/17/1218/22/8473307_714341237.shtml)

RT-Thread MicroPython 软件包的优势

开发板适配的角度:

原生的 MicroPython:只是对官方自己的开发板支持的非常良好,想要用非官方的板子来跑 MicroPython 就需要自己从头折腾底层的移植。

RT-Thread MicroPython:只要是 RT-Thread 支持的板子,有一定资源,都能跑 RT-Thread 版本的 MicroPython ,很大程度上降低了 MicroPython的门槛。

驱动适配的角度:

原生的 MicroPython:如果花了精力,让原生 MicroPython 在自己板子上跑起来,但接下来的驱动适配(Pin/Uart/I2C/SPI等等)工作,第一次搞的话,又会有一大堆坑迎面而来。

RT-Thread MicroPython:RT-Thread 支持设备驱动框架,只要是 RT-Thread 支持的板子集成了对应的设备驱动,上层 Python 都可以直接调用,省时又省力。

二次开发的角度:

原生的 MicroPython:有了 MicroPython 后虽然上层能实现 Python 开发,但不可能避免的项目里的有些功能确实是目前的 MicroPython 不支持的,而且只能用 C 来实现。此时就需要修改 MicroPython 源代码,熟悉官方的软件框架,大部分还是裸机模型,这些都会是比较吃力的工作。

RT-Thread MicroPython:而 RT-Thread 支持众多 C 的可重用组件,软件包数量目前已经突破 100+ 了,你想要的功能几乎是都能找到,配合图形化的开发工具,二次开发的难度一下子就降低下来了。

多线程的角度:

原生的 MicroPython:官方那边只是很少的 Board 支持多线程,如果自己动手来开发,门槛还是相当高的。

RT-Thread MicroPython:RT-Thread 属于 RTOS ,原生就支持多线程。上层的 Python 多线程接口跟 Python 官方也都是保持一致的。

社区生态的角度:

原生的 MicroPython:官方在国外生态还是不错的,可是语言门槛、距离门槛,会让我们国内开发者感觉跟官方的距离还是挺远的。

RT-Thread MicroPython:RT-Thread 作为国内最大的嵌入式开源社区,活跃度非常高。RT-Thread 也专门编写的了 《RT-Thread MicroPython 开发手册》,由浅入深的角度带大家一起玩 MicroPython。针对常见的开发板还提供了下载即用的固件,论坛也有专门的 MicroPython 版块,里面还有很多学习资源。

更多RT-Thread MicroPython相关资料请至RT-Thread官方文档中心获取:

https://www.rt-thread.org/document/site/submodules/micropython/docs/#rt-thread-micropython

展望RT-Thread MPY + 小程序

目前 RT-Thread MicroPython 的更多高级研发工作仍然在持续推进中,未来我们也将基于 IoT Board 打造MicroPython + 小程序的 RT-Thread 4.0 开发平台,更多新特性也都会逐步释放出来,最大程度的方便开发者实现脚本化编程。

RT-Thread

让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。GPLv2+协议,可免费在商业产品中使用。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190115B11NEM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券