1.3.2 面向硬件的MicroPython

2013年年底,英国剑桥大学数学科学中心理论物理学家Damien P. George(乔治·达明)提出了MicroPython。在工作中,他经常使用Python语言,并进行一些机器人项目开发。有一天,他突然有了一个想法,能否用Python语言来控制单片机,实现对机器人的操控呢?

要知道,Python虽然很强大,但遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼。为了突破这种限制,Damien花费了6个月的时间来打造MicroPython。MicroPython基于ANSI C,语法跟Python 3基本一致,拥有自己的解析器、编译器、虚拟机和类库等。目前它支持基于32bit的ARM处理器,比如STM32F405、STM32F407等。借助MicroPython,用户完全可以通过Python脚本语言实现硬件底层的访问和控制,比如控制LED灯、LCD显示器、读取电压、控制电机、访问SD卡等。

MicroPython在支持库方面围绕着MCU的特性进行了精减,并形成了5个版本,包括开源的标准版本(standard)、双精度浮点版本(double FP)、支持线程功能版本(threading)、双精度浮点+线程版本(double FP + threading)以及支持网络功能版本(network)。主要的固件结构如表1-1所示。

表1-1 固件组织结构简表