MicroPython是一个小型的开源Python编程语言解释器,运行在小型嵌入式开发板上。使用MicroPython,您可以编写干净、简单的Python代码来控制硬件,而不必使用复杂的底层语言,如C或c++ (Arduino用于编程)。

MicroPython的Logo

Python编程语言的简单性使MicroPython成为编程和硬件新手的理想选择。MicroPython功能非常齐全,支持大多数Python语法,所以即使是经验丰富的Python老手也会发现使用MicroPython很熟悉和有趣。

除了易于使用之外,MicroPython还有一些独特的特性,使它有别于其它嵌入式系统:

  • 使用交互式解释器:REPL(读Read-评估Evaluate-打印Print-循环Loop) - 这允许你连接到一个板,并让它执行代码,而不需要编译或上传-完美的快速学习和试验硬件!
  • 丰富的软件库 - 像普通的Python编程语言一样,MicroPython内置了非常多的库来支持许多任务。例如,通过MicroPython的内置库,可以很容易地解析来自Web服务的JSON数据,使用正则表达式搜索文本,甚至进行网络套接字编程。
  • 可扩展性 - 对于高级用户来说,MicroPython可以通过低级C/C++函数进行扩展,因此在需要时,您可以将富有表现力的高级MicroPython代码与更快的低级代码混合使用。

MicroPython是Python 3语言的一个变种,其思想来源于剑桥大学的Darrien P. George博士,他与一个众筹团队一起于2013年开发了一款支持MicroPython的硬件开发板 - 叫PyBoard,并于2014年的Python大会(PyCon)上提出了MicroPython1.0。George博士也建立了micro python.org网站来支持MicroPython和Pyboard。

MicroPython.Org官方的Logo

MicroPython.Org官方推出的PyBoard,基于STM32控制器

MicroPython被设计用于快速有效地创建嵌入式系统控制程序。嵌入式系统可以简单定义为任何需要使用微控制器以满足工程需要的工程。典型的嵌入式系统通常使用传感器,有时会使用电子机械传动结构与微控制器接口,它们可能附接有人机接口设备,便于交互,但是更多为自动的,为单机运行或连接至云端进行远程访问。

就像Arduino板一样,MicroPython可以控制硬件和连接的设备 - 可以控制GPIO引脚闪烁灯、读取开关以及更多;可以驱动能够驱动伺服器、LED的PWM信号; 能通过模数转换器读取读取模拟传感器的信息,与I2C或SPI设备通信也很容易,你甚至可以在一些板上找到网络和WiFi支持。MicroPython甚至有用于控制其它硬件的库,如NeoPixels和LED条,微型OLED显示器等等。 简而言之,MicroPython可以做很多事情!

MicroPython有很少的限制,几乎Arduino能做的任何事情都可以通过MicroPython板来完成。然而,需要注意的是,与类似的Arduino或其它基于C/C++的底层代码相比,MicroPython代码没有那么快,需要的内存也可能更大,不过通常这并不重要,因为速度和内存差异并不大,大多数的应用不会受到影响。 要注意的是,那些对时间或性能要求很严格的代码可能无法在MicroPython中工作。例如,在MicroPython中完全使用软件来驱动IO管脚实现一些高速的串行通信协议可能不是最好的主意。然而,有一些方法可以混合MicroPython和低级C/C++代码,这样我们就可以同时拥有这两个世界的优点 - 主要的逻辑是干净且易于理解的MicroPython代码,而性能关键部分使用更快的低级代码编写的。

MicroPython语言实现了大部分核心Python 3语言,但是MicroPython不能实现整个Python 3标准库。Python以拥有广泛的标准库而闻名,但是试图将这么大的库压缩到只有千字节内存的小板上是不可能的。相反,MicroPython实现了一些Python标准库的更小版本,为我们提供了很棒的开发体验。