MicroPython(http://micropython.org/),是Python 3编程语言的一个完整软件实现,基于ANSI C(C语言标准),被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。
MicroPython是面向嵌入式设备的轻量级的Python,最低能够运⾏在只有256k代码空间和16K RAM的硬件上。MicroPython有两个主要应用场景:非常适合于编程入门;降低嵌入式的开发门槛。
C/C++语言在嵌入式系统中的代码占比中一直处于王者地位,但近几年MicroPython的发展和普及证明,Python无疑将在未来几年内快速抢占和蚕食C/C++的份额。
MicroPython是澳大利亚程序员和物理学家Damien George,在2013年一次成功的Kickstarter众筹活动之后最初创建的。尽管最初的Kickstart众筹活动将MicroPython与pyboard微控制器一起发行,MicroPython支持大量的基于ARM的体系结构。MicroPython已经运行于Arduino、ESP8266、ESP32、和物联网硬件。在2016年,Python软件基金会创建了MicroPython的BBC Micro Bit版本,作为其BBC Micro Bit合作伙伴贡献的一部分。
这个项目的源代码托管于GitHub。
MicroPython中功能最强,速度最快,资源最丰富的是STM32系列,支持的芯片型号最多,适应性最好,它的库也是最全面的。目前STM32分支支持STM32F4/F7/L4系列下的数十种型号芯片和开发板,是DIY的最佳选择,比如说STM32F405。也就是说ARM处理器STM32F405上直接可运行Python语言,Python语言来控制单片机。
还有基于ARM®Cortex™-M0的MicroBit。不过,ESP8266(以及ESP32)可能是最普及的MicroPython硬件,获得MicroPython官方推荐。
pyboard是官方的MicroPython微控制器板,基于STM32F405RG微控制器。
TPYBoard是遵守MIT协议由TurnipSmart公司制作的一系列MicroPython开发板,目前TPYBoard现已形成了完善的MicroPython开发体系,并形成了完善的技术文档以及技术支持服务。TPYBoard v101/v102基于STM32F405;TPYBoard v201基于STM32F405并支持以太网;TPYBoard v202基于ESP8266并支持WIFI;TPYBoard v702基于STM32F405,是目前市面上唯一支持GPS&北斗双模定位及GPRS通信功能的MicroPython开发板。
ESP8266 是一款由上海乐鑫信息科技(Espressif)开发的可以作为微控制器使用的成本极低且具有完整TCP/IP协议栈的Wi-Fi IoT控制芯片,由深圳安信可(Ai-Thinker)基于ESP8285生产的ESP-01模组于2014年8月首次引起了西方的创客们的注意。NodeMCU便是安信可基于ESP8266或ESP32的开源 IoT 开发板。
NodeMCU 项目成功借鉴了 Arduino 或 Raspberry Pi 的运作模式,项目包含开发板和开源固件,该固件提供了一个基于 eLua(嵌入式 Lua)的简单编程环境。NodeMCU 内置 USB 端口,并比 Arduino 更多出Wifi支持。
在开发工具方面,有 NodeMCU 官方的 Lua SDK,第三方的 Noduino SDK,甚至也可以使用 Arduino IDE。但对ESP32和ESP8266板进行编程的流行方法是使用MicroPython固件。
mPython掌控板是一块MicroPython微控制器板,由创客教育专家委员会推出,是国内第一款专为编程教育而设计的开源硬件,它集成了ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,具有专属mPythonX IDE掌控板编程软件。
“掌控板”是一个可玩性、可拓展性超高的微型掌上电脑,集多种传感器、感应器于一身,配备一块OLED屏幕,集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时板上集成OLED显示屏、RGB灯、加速度计、麦克风、数字光线传感器、蜂鸣器、按键开关、触摸开关、金手指外部拓展接口,支持图形化及python代码编程,可实现智能机器人、创客智造作品等智能控制类应用。利用掌控上丰富的传感器,结合它小尺寸的特点还可以做很多智能穿戴、电子饰品等各种DIY作品应用。
Python软件基金会创建了MicroPython的BBC Micro Bit版本——Micro:bit Python编辑器,作为其BBC Micro Bit合作伙伴贡献的一部分。Micro:bit是基于ARM®Cortex™-M0的嵌入式系统。
MicroPython大致可以烧录这些芯片(具体参考MicroPython downloads ):
Python软件基金会创建了MicroPython的BBC Micro Bit版本——micro:bit Python编辑器(https://python.microbit.org/) ,作为其BBC Micro Bit合作伙伴贡献的一部分。
Mu(https://codewith.mu/)是一个用Python编写的跨平台编辑器,它最初是为了micro:bit开发的,在发布micro:bit Python编辑器之前,Mu被官方推荐,并被认为可能是人们在BBC micro:bit上进行MicroPython编程最简单的方式。
MicroPython IDE是Visual Studio Code的Micropython集成开发环境。
Python Editor是TurnipSmart公司基于TPYBoard系列开发板的Micropython语言在线拼插编辑器。当拼插好图形,系统会根据图形自动生成Micropython代码,在右侧区域显示,不需要考虑格式和缩进的问题。只需要掌握好图形拼插的原理,代码将是完全正确的。
2017 年 7 月,MicroPython 被分叉创建了 CircuitPython 以支持不同的硬件集,这是一个强调简化低成本微控制器的实验和教育的 MicroPython 版本,面向学生和初学者。为了让人更轻松体验微控制器和机器人编程,Edublocks 等项目启用了类似 Scratch 的拖放式体验,支持 CircuitPython。
CircuitPython 的开发由 Adafruit Industries 提供支持,所以提供对 Adafruit 系列硬件的支持但降低了与 ESP8266 的兼容性。大多数 Adafruit 实现都将微控制器板显示为 USB 连接驱动器,在这些情况下,添加代码就像将它拖到磁盘一样简单。在 Adafruit 每周时事通讯 Python on Hardware 中会提供有关单板上 CircuitPython、MicroPython 和 Python 的新闻,Welcome CircuitPython 也由 adafruit.com 提供。
更多MicroPython与CircuitPython信息可以参考这篇文章。