news 2026/4/16 12:27:20

MicroPython新手教程:从安装到运行第一个程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MicroPython新手教程:从安装到运行第一个程序

从零开始玩转MicroPython:点亮第一盏LED只需5分钟

你有没有过这样的经历?想做个智能小灯,查了一堆资料却发现要装编译器、配工具链、写寄存器……还没动手就放弃了。
但现在不一样了。

随着物联网和创客文化的兴起,一种叫MicroPython的技术正在悄悄改变嵌入式开发的门槛。它让普通人也能像写脚本一样控制硬件——插上USB线,打开编辑器,敲几行代码,立刻看到效果。

今天我们就来走一遍最真实的入门流程:不讲虚的,只说你能马上用上的操作。准备好了吗?我们从拿到一块开发板开始。


为什么是MicroPython?

在传统世界里,微控制器(MCU)都是C/C++的天下。但你知道吗?很多初学者卡住的地方根本不是“逻辑不会”,而是:

  • 编译报错看不懂
  • 下载失败找不到驱动
  • 改个变量要等半分钟重新烧录

而 MicroPython 的出现,就是为了解决这些“反人类”环节。

它把 Python 这种高级语言塞进了只有几十KB内存的芯片里,让你可以用print("Hello, World!")的方式去点亮一个LED。更爽的是,按回车就能执行,改错了马上重来——这叫REPL 模式,也就是“你说一句,它应一声”。

比如你要测试某个引脚有没有输出高电平,以前得:
1. 写代码 → 2. 编译 → 3. 烧录 → 4. 观察现象 → 5. 失败再重来……

现在呢?连上串口终端,直接敲:

from machine import Pin led = Pin(2, Pin.OUT) led.on()

啪!灯亮了。如果没亮,马上检查是不是引脚编号错了,或者换一个试试。整个过程不超过10秒。

这就是它的魔力:把试错成本降到最低

目前主流的支持平台包括:
-ESP32:自带Wi-Fi/蓝牙,适合做联网设备
-Raspberry Pi Pico(RP2040):双核M0+,价格便宜,社区活跃
-STM32系列:工业级稳定,适合长期运行项目

无论你是学生、老师,还是业余爱好者,只要会一点点Python基础,就能快速做出看得见摸得着的作品。


先别急着写代码,先把系统装好

任何程序都得先有“操作系统”才能跑。不过MicroPython不需要安装Linux或Windows,它本身就是固件,直接刷进芯片就行。

你需要准备的东西很简单:
- 一块开发板(推荐 ESP32 DevKit 或 Raspberry Pi Pico)
- 一根 USB 数据线
- 一台电脑(Win/Mac/Linux 都行)

接下来分两条路走:看你用的是哪种板子。

如果你用的是 ESP32

第一步:下载固件

访问 micropython.org/download → 找到 “ESP32” → 下载最新的.bin文件(名字类似esp32-idf4-xxxx-v1.xx.x.bin

第二步:安装烧录工具

打开终端(命令提示符),输入:

pip install esptool

这个工具专门用来给ESP芯片传固件。

第三步:进入下载模式

这是关键一步!ESP32 默认不是空的,它出厂时可能跑着AT指令或者其他固件。我们要强制让它进入“可编程状态”。

操作方法是:

按住开发板上的BOOT 按钮→ 再短按一下RESET 按钮→ 松开 RESET → 再松开 BOOT

这时候芯片就进入了 ROM 下载模式,等着接收新程序。

第四步:查看串口号
  • Windows:打开设备管理器,找“端口 (COM & LPT)”下的 COM 号(比如 COM4)
  • Mac/Linux:在终端输入ls /dev/tty.*,通常会看到/dev/ttyUSB0/dev/cu.SLAB_USBtoUART
第五步:烧录固件

假设你的串口是/dev/ttyUSB0,固件文件放在当前目录,执行:

esptool.py --port /dev/ttyUSB0 write_flash 0x1000 esp32-idf4-20230628-v1.20.0.bin

解释一下参数:
---port:指定通信端口
-write_flash:写入Flash的命令
-0x1000:起始地址(必须对齐,不能乱改)
- 最后是固件路径

等待十几秒,看到Hash of data verified.就说明成功了!

重启开发板(按一次 RESET),然后打开串口工具(推荐 PuTTY、screen 或 Thonny 自带的终端),设置波特率为115200,你应该会看到:

>>>

恭喜,你现在面对的是一个能听懂 Python 的小电脑!


如果你用的是 Raspberry Pi Pico

Pico 更简单,因为它原生支持一种叫UF2的拖拽式烧录方式,完全不用命令行。

第一步:下载固件

去 https://micropython.org/download/rp2-pico/ 下载pico-micropython.uf2文件。

第二步:进入UF2模式

按住开发板上的BOOTSEL按钮 → 插USB线连接电脑 → 松开按钮

这时你会看到电脑弹出一个名为RPI-RP2的U盘。

第三步:拖进去就完事

把刚才下载的.uf2文件拖进这个U盘里。几秒钟后自动断开并重启,开发板就已经运行 MicroPython 了!

重新插拔USB,打开串口终端,同样设置波特率 115200,看到>>>提示符即大功告成。


写第一个程序:让LED闪起来

现在我们来干点实际的事:控制板载LED闪烁,并通过串口打印信息。

大多数开发板都有一个内置LED,常见位置如下:
-ESP32:接在 GPIO2 上(有时是蓝灯)
-Pico:焊在板子背面,对应 GP25 引脚

你可以先试试看哪个引脚能让灯亮。

方法一:即时调试 —— 用 REPL 快速验证

打开串口终端,确保能看到>>>,然后逐行输入以下代码:

import machine import time led = machine.Pin(2, machine.Pin.OUT) # 创建输出引脚对象

注意:如果是Pico,请把2改成25

接着输入:

led.on() # 灯亮 time.sleep(1) led.off() # 灯灭

看到了吗?灯真的亮了一下!这种“边输边动”的体验,正是 MicroPython 最吸引人的地方。

再来个循环让它一直闪:

for i in range(5): led.toggle() # 自动翻转状态 print("LED状态切换") time.sleep(1)

每秒闪一次,总共5次。toggle()是个好帮手,省得你记上次是开还是关。


方法二:做成自动运行程序

REPL适合测试,但总不能每次上电都手动敲一遍吧?我们需要让程序自己启动。

这就需要用到两个特殊文件:
-boot.py:开机只运行一次,用于初始化
-main.py:主程序,每次都会运行

boot.py(系统配置)
# boot.py - 初始化串口和日志输出 import machine import os uart = machine.UART(0, baudrate=115200) os.dupterm(uart) print("【系统】已启动")

这段代码的作用是把 REPL 输出重定向到串口,方便后续调试。

main.py(主逻辑)
# main.py - 主程序 import machine import time import os # 自动识别平台 if 'PICO' in os.uname().sysname: led_pin = 25 else: led_pin = 2 led = machine.Pin(led_pin, machine.Pin.OUT) while True: led.toggle() print(f"LED当前状态: {led.value()}") time.sleep(1)

这段代码会在所有支持MicroPython的板子上自动适配LED引脚,无限循环闪烁。

那么问题来了:怎么把这两个文件传到开发板上去?


推荐新手使用 Thonny IDE:图形化上传超轻松

虽然有各种命令行工具(比如 rshell、ampy),但我强烈建议初学者用Thonny

它是专为Python初学者设计的IDE,内置对MicroPython的完整支持。

安装与连接

  1. 去 thonny.org 下载安装包
  2. 打开软件,在右下角选择解释器:
    - 对于 ESP32:选 “MicroPython (ESP32)”
    - 对于 Pico:选 “MicroPython (Raspberry Pi Pico)”
  3. 用USB连接开发板,Thonny 会自动识别串口

编写并上传代码

在编辑区写下main.py的内容 → 点击菜单 “File” → “Save as…” → 选择 “Device” → 输入文件名main.py

搞定!下次重启就会自动运行。

如果你想同时上传boot.py,也是一样操作,保存为boot.py即可。

从此以后,你再也不用手动复制粘贴代码了。


实战小例子:读取温湿度传感器

我们再来个小项目练手:用 DHT11 传感器采集环境数据。

DHT11 是常见的数字温湿度模块,只需要一个GPIO就能通信。

接线很简单:
- VCC → 3.3V
- GND → GND
- DATA → GPIO4(或其他任意数字引脚)

然后在 Thonny 中输入以下代码:

import dht import machine import time # 初始化传感器 d = dht.DHT11(machine.Pin(4)) while True: try: d.measure() # 触发一次测量 temp = d.temperature() # 获取温度 humi = d.humidity() # 获取湿度 print(f"温度: {temp}°C, 湿度: {humi}%") except OSError as e: print("读取失败:", e) time.sleep(2)

运行后,串口会每隔两秒输出当前温湿度。如果接线正确,几分钟就能看到数据跳出来。

你会发现,整个过程没有复杂的寄存器配置,也没有底层时序控制。MicroPython 已经帮你封装好了常用外设驱动。


踩坑提醒:这些错误90%的人都遇到过

别以为一切顺利,以下是几个经典“翻车现场”及应对方案:

❌ 串口打不开 / 设备未识别

  • 检查USB线是否支持数据传输(有些充电线只能供电)
  • 确认开发板是否进入了正确的模式(BOOTSEL或BOOT按键有没有按对)
  • 尝试换个USB口或电脑

❌ 固件烧录失败,提示“Failed to connect”

  • 很可能是没进下载模式,重复一次“先按BOOT,再按RESET”的操作
  • 有些ESP32板子需要外接USB转串模块,确认CH_PD引脚被拉高

❌ LED不亮?

  • 查阅开发板原理图,确认板载LED接的是哪个GPIO
  • 注意某些引脚有特殊用途(如ESP32的GPIO6~11连接内部Flash,不能随便用)

❌ 提示 MemoryError

  • 不要一次性加载大文件或创建太多变量
  • 避免在循环中频繁创建对象(如不断 new Pin)

❌ 程序跑着跑着复位?

  • 可能是电源不足,尤其是外接多个传感器时
  • 建议使用外部稳压电源,而不是靠USB硬撑

后续可以怎么玩?

当你成功跑通第一个程序后,真正的乐趣才刚开始。

你可以尝试:
- 接OLED屏幕显示文字或图形
- 用ESP32连Wi-Fi,把传感器数据发到手机
- 用WebREPL实现无线编程
- 搭建一个简易天气站或植物浇水提醒器

MicroPython 社区非常活跃,GitHub上有大量开源库可以直接调用,比如:
-ssd1306.py:驱动OLED屏
-umqtt.simple:MQTT协议客户端
-urequests:发起HTTP请求

而且由于语法接近标准Python,很多第三方库稍作修改就能跑。


最后一句话

你现在已经完成了从零到运行第一个MicroPython程序的全过程。

不需要理解中断向量表,也不需要研究链接脚本。只要会写几行Python,就能亲手操控物理世界。

这才是技术普惠的意义。

如果你正打算做一个小发明,不妨试试用 MicroPython 开个头。也许下一个让人眼前一亮的作品,就诞生于今晚的一次尝试。

欢迎正式踏入精彩的MicroPython 世界

关键词汇总:micropython, 嵌入式Python开发, 固件烧录, REPL, GPIO, UART, Thonny IDE, ESP32, Raspberry Pi Pico, main.py, boot.py, 串口通信, 交互式编程, 快速原型, 物联网, microcontroller, 文件系统, 硬件控制, 开发环境搭建, 实时调试

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 5:04:33

Plotly动态展示IndexTTS2语音参数调节效果,交互式体验

Plotly动态展示IndexTTS2语音参数调节效果,交互式体验 在智能语音技术日益渗透日常生活的今天,我们早已不再满足于“能说话”的机器。无论是虚拟助手、有声读物,还是游戏角色配音,用户期待的是富有情感、自然流畅、可定制化的声音…

作者头像 李华
网站建设 2026/4/16 11:00:12

终极指南:快速上手Waifu2x-Caffe图像放大降噪神器

终极指南:快速上手Waifu2x-Caffe图像放大降噪神器 【免费下载链接】waifu2x-caffe lltcggie/waifu2x-caffe: Waifu2x-Caffe 是一个用于图像放大和降噪的 Python 库,使用了 Caffe 深度学习框架,可以用于图像处理和计算机视觉任务,支…

作者头像 李华
网站建设 2026/4/14 13:15:08

ASMR音频批量下载工具:3分钟掌握高效获取asmr.one资源的秘诀

ASMR音频批量下载工具:3分钟掌握高效获取asmr.one资源的秘诀 【免费下载链接】asmr-downloader A tool for download asmr media from asmr.one(Thanks for the asmr.one) 项目地址: https://gitcode.com/gh_mirrors/as/asmr-downloader 还在为寻找高质量的A…

作者头像 李华
网站建设 2026/4/16 8:14:12

git commit message规范模板:用于IndexTTS2二次开发提交

git commit message规范模板:用于IndexTTS2二次开发提交 在人工智能语音系统日益复杂的今天,一个小小的代码变更可能牵动整个合成流程的稳定性。尤其是在像 IndexTTS2 这样集成了深度学习模型、WebUI 交互与情感控制逻辑的多层架构中,多人协作…

作者头像 李华
网站建设 2026/4/16 10:27:22

Altair声明式语法创建IndexTTS2统计图表,代码更简洁

使用 Altair 声明式语法构建 IndexTTS2 统计图表:让代码更简洁、分析更高效 在语音合成技术不断突破的今天,我们早已不再满足于“能说话”的机器。从智能客服到虚拟主播,用户期待的是有情感、有温度、有节奏变化的声音表达。IndexTTS2 V23 版…

作者头像 李华
网站建设 2026/4/16 11:59:19

LFM2-350M-Extract:一键提取多语言文档关键信息

LFM2-350M-Extract:一键提取多语言文档关键信息 【免费下载链接】LFM2-350M-Extract 项目地址: https://ai.gitcode.com/hf_mirrors/LiquidAI/LFM2-350M-Extract 导语:Liquid AI推出轻量级文档信息提取模型LFM2-350M-Extract,以3.5亿…

作者头像 李华