• 正文
  • 相关推荐
申请入驻 产业图谱

剑桥本科生6个月写就的嵌入式开发语言:一文读懂MicroPython的发展史

21小时前
99
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1.MicroPython 语言的开发历史

近年来,Python 的受欢迎程度飙升。如今,它的使用无处不在,从 DevOps 到统计分析,甚至桌面软件。但很长一段时间以来,嵌入式领域明显缺少 Python 的使用。2013 年,达米安·乔治 (Damien George) 发起了 Kickstarter 众筹活动,这一切都发生了变化。达米安是剑桥大学的一名本科生,也是一位狂热的机器人程序员。他希望将 Python 世界从处理千兆字节容量的机器转移到千字节容量的机器。他在 Kickstarter 众筹活动中尝试支持自己的开发,同时将概念验证转化为最终的实现。

Damien 花费了六个月的时间幵发了 MicroPython,MicroPython 本身使用 GNU C 进行开发,在 ST 公司的微控制器上实现了 Python 3 的基本功能,拥有完善的解析器、编译器、虚拟机和类库等。在保留 Python 语言的主要特性和基本功能的基础上,他还对嵌入式的常用功能做了封装,同时为一些常用硬件和传感器编写了专门的驱动类库。

最初的 Kickstarter 活动发布了带有 STM32F4 驱动的开发板“pyboard”的 MicroPython,该版本是一个专门设计的硬件开发板,作为操作系统(OS)运行 MicroPython。开发板上内置了 4 个不同颜色的 LED 指示灯、一个三轴加速传感器、一个 microSD 插座,可以通过 USB 下载用户程序和升级固件

MicroPython 支持嵌入式硬件平台,主线支持的芯片有 ARM Cortex-M 系列芯片(STM32、RP2040、TI CC3200)、ESP8266、ESP32、16 位 PIC 等。

2016 年,为 BBC Micro Bit 创建了 MicroPython 版本,作为 Python 软件基金会对 Micro Bit 与 BBC 合作伙伴关系的贡献的一部分。

2017 年 7 月,MicroPython 被分叉,创建了 CircuitPython,这是 MicroPython 的一个版本,强调教育性和易用性。 MicroPython 和 CircuitPython 支持稍微不同的硬件集(例如,CircuitPython 支持 Atmel SAM D21 和 D51 板,但放弃了对 ESP8266 的支持)。从版本 4.0 开始,CircuitPython 基于 MicroPython 版本 1.9.4。[

2017 年,Microsemi 为 RISC-V(RV32 和 RV64)架构制作了 MicroPython 移植版。

2019 年 4 月,创建了用于 Lego Mindstorms EV3 的 MicroPython 版本。

2021 年 1 月,创建了适用于 RP2040(ARM Cortex-M0+)的 MicroPython 端口。

除了 MicroPython,在嵌入式系统上还有像 Lua、Javascript、MMBasic 等脚本编程语言。但是它们都不如 MicroPylhon 的功能完善,性能也没有 MicroPython 好,在可移植性、使用的简便方面都不如 MicroPython,可以使用的资源也很少。

2.其他使用 Python 进行嵌入式编程的例子

2.1 PyMite

PyMite 是一个从头开始编写的轻量级 Python 解释器,可在 8 位及更大的微控制器上执行,其资源有限为 64 KiB 程序存储器闪存)和 4 KiB RAM。 PyMite 支持 Python 2.5 语法的子集,并且可以执行 Python 2.5 字节码的子集。 PyMite 还可以在桌面计算机上编译、测试和执行。

2.2 CircuitPython

CircuitPython 是一种基于 MicroPython 的编程语言,旨在简化在低成本微控制器板上进行编码的实验和学习。大多数 CircuitPython 库也可以在单板计算机 (SBC) 上运行,例如 Raspberry PiLinux 运行“桌面”Python(通常称为 CPython)而不是 CircuitPython。

3.CircuitPython 和 MicroPython 的区别

CircuitPython 是初学者友好的 Python 开源版本,CircuitPython 基于 MicroPython,适用于称为微控制器的小型廉价计算机。微控制器是许多电子产品的大脑,包括用于构建业余项目和原型的各种开发板。

电子学中的 CircuitPython 是学习编码的最佳方式之一,因为它将代码与现实联系起来。通常只需通过拖放将 CircuitPython 安装在受支持的 USB 板上,然后 code.py 在 CIRCUITPY 驱动器上编辑文件。代码将自动重新加载。除了文本编辑器外,无需安装任何软件(我们建议初学者使用)。

对比 MicroPython,CircuitPython 最直观的差异如下:

    CircuitPython 会把单片机当作一个优盘,连接电脑后使用电脑操作系统自带的文件管理器和文本编辑器就可以开发;CircuitPython 将很多东西做了简化,比如 REPL 里只有 Ctrl-C 和 Ctrl-D 两个操作,而 MicroPython 有 5 个;CircuitPython 里面默认保存即触发运行;CircuitPython 还砍掉了 MicroPython 中的中断功能,只保留了异步;CircuitPython 强调代码的通用性,已经在 api 上创建了统一的硬件,只要硬件支持,力求 A 芯片上的代码在不经任何修改的前提下就可以在 B 芯片上运行;MicroPython 则有 import esp,import pyb 这样的操作。

相关推荐