MicroPython让单片机直接跑 Python,C 语言不再是门槛
极客日记 · 2026.08.23 · 开源硬件 · 创客 #131
一句话速览:MicroPython 是跑在微控制器上的 Python 3 实现。Damien George 2013 年用众筹启动,首板 PyBoard(STM32)。今天它覆盖 ESP32、RP2040、ESP8266、STM32、nRF52、RISC-V 等上百款板子——改一行即时看效果,门槛远低于 C。
前面六篇,从 OpenWrt 到 ArduPilot,主角都是固件——被编译进芯片的那段程序。但固件总得有人写。如果说 C 是和单片机对话的「母语」,那 MicroPython 就是给你的一门口语:不用和指针、编译链死磕,敲一行就看到灯亮。这一篇,讲怎么用 Python 把前面那些板子都盘活。
一、它是什么:Python 的「单片机版」
MicroPython 由 Damien George 在 2013 年的 Kickstarter 上众筹启动,目标是「把 Python 3 搬进微控制器」。第一块官方板是 PyBoard(基于 STM32)。它不是一个模拟器,而是真正烧进芯片的解释器——上电即进 REPL(交互式命令行),连上串口就能一行行敲代码、即时执行。
如今它移植到 ESP32(2026.08.02 写过)、RP2040(树莓派 Pico,2026.08.03)、ESP8266、STM32、nRF52、SAMD,以及 RISC-V(2026.08.04 的 Sipeed 等)上百款板子,版本线已到 1.22 / 1.24 一代。
二、为什么比 C / Arduino 友好
| | |
| | |
| | |
| | machine 模块直操作 GPIO/I2C/SPI |
| | |
三、能干啥:把前面的板子串起来
它正是「开源硬件周」前面所有板子的胶水层:ESP32 连 Wi-Fi 上报温湿度、RP2040 做个带屏小装置、micro:bit(2026.08.05 写过,本就用 MicroPython)带孩子入门——几行代码点灯、读传感器、发 HTTP,比 Arduino 的编译-烧录循环轻太多。原型验证、教学、临时小工具,它比 C 省力一个量级。
四、BI9ABS 的真实场景
我常拿 ESP32 + MicroPython 做「想到就写」的小东西:一个 Wi-Fi 温湿度计、一个看门狗脚本、一个把 LoRa 信标转成网页的桥。不用开 IDE、不用等编译,串口里敲几行,灯亮了、数出来了,灵感不冷却。真要上性能或省电,我再退回 C;但从想法到跑通这一步,MicroPython 是最短的路。
五、上手路径与踩坑
流程:给板子烧入 MicroPython 固件(ESP 用 esptool、RP2040 拖 uf2 即可)→ 串口连进 REPL 试代码 → 把正式逻辑写进 main.py 上电自启。
两个坑:
一是RAM 有限,别一次性把大数组/大字符串全塞内存;
二是实时性不如 C,对微秒级时序(比如精确脉冲)还是得靠 C 模块或固件。
它适合「快出活」,不适合「榨性能」。
官网与开源代码
官方主页:micropython.org
开源代码:github.com/micropython/micropython
BI9ABS 点评
MicroPython 不是要取代 C,而是把「想试试」到「跑起来」的距离压到最短。对一个脑子里天天冒点子的人来说,这种即时反馈比任何性能数字都重要。它也是我带两个儿子接触编程的入口——不用先懂指针,灯亮了就有成就感。
建议:把它当「原型语言」用——快速验证想法、做教学、写小工具;真要上性能或低功耗,再回到 C。三周「开源硬件周」写到这里正好收尾:板子(第1周)、射频(第2周)、固件(本周)都有了,而 MicroPython 是让它们都「好写起来」的那层糖。动手吧,串口里敲一行试试。
极客日记 · 开源硬件 · 创客系列
■ 本文主角:MicroPython —— 跑在 MCU 上的 Python 3
■ 起源:2013 年 Damien George 众筹,首板 PyBoard
■ 覆盖:ESP32/RP2040/ESP8266/STM32/nRF52/RISC-V
■ 定位:把前面所有板子「写活」的胶水层
■ 2026 极客日记系列 ■ BI9ABS ■ 转载请注明出处