MicroPython远程控制工具mpremote详解
什么是mpremote
mpremote是MicroPython官方提供的一款命令行工具,它集成了多种实用功能,可以通过串口连接远程控制和管理MicroPython设备。这个工具极大地简化了MicroPython开发流程,让开发者能够更高效地进行设备交互、文件系统管理和自动化操作。
安装mpremote
安装mpremote非常简单,可以通过Python的包管理工具pip进行安装:
pip install --user mpremote
或者使用pipx(推荐用于隔离环境):
pipx install mpremote
安装完成后,直接运行mpremote命令即可开始使用。
基本使用方法
最简单的使用方式是直接运行mpremote而不带任何参数:
mpremote
这会自动检测并连接到第一个可用的USB串行设备,提供一个交互式终端,你可以通过它访问REPL和查看程序输出。
核心功能命令
mpremote的强大之处在于它提供了一系列功能丰富的命令,这些命令可以单独使用,也可以组合使用。
设备连接管理
-
connect:连接到指定设备
connect auto:自动连接第一个可用设备connect list:列出所有可用设备connect id:<serial>:通过USB序列号连接connect port:<path>:通过设备路径连接
-
disconnect:断开当前连接
设备交互
-
repl:进入设备的REPL交互环境
- 支持多种选项如捕获输出、注入代码等
- 使用Ctrl-]或Ctrl-x退出
-
eval:执行并打印Python表达式结果
-
exec:执行Python代码
-
run:运行本地Python脚本文件
文件系统操作
mpremote提供了完整的文件系统管理功能:
mpremote fs <子命令>
支持的子命令包括:
ls:列出目录内容cp:复制文件(支持本地与设备间互传)rm:删除文件mkdir:创建目录cat:查看文件内容touch:创建文件df:查看存储空间使用情况
文件操作采用了类似scp的语法约定,使用:前缀表示设备上的路径。
高级功能
-
mount:将本地目录挂载到设备
- 开发时极为有用,可以直接编辑本地文件而无需反复上传
- 挂载后设备可以通过
/remote访问本地文件
-
romfs:管理ROMFS分区
- 可以创建和部署ROMFS镜像
- 支持自动将.py文件编译为.mpy
-
rtc:设置/获取设备实时时钟
-
reset:硬重置设备
-
bootloader:进入设备引导程序
自动连接与软重置机制
mpremote设计了智能的自动管理机制:
- 自动连接:当需要访问设备但未显式连接时,会自动连接第一个可用设备
- 自动软重置:在执行某些命令前会自动软重置设备,确保干净的Python环境
- 可通过
resume命令禁用此行为 - 通过
soft-reset命令手动触发
- 可通过
实用技巧与注意事项
-
组合命令:可以在一行中组合多个命令顺序执行
mpremote cp main.py :main.py + repl -
开发流程优化:
- 使用
mount功能实现实时开发 - 利用
run命令快速测试脚本而无需部署 - 通过
edit命令直接编辑设备上的文件
- 使用
-
安全提示:
rm -r :/会删除设备上所有文件,操作需谨慎- 默认情况下会阻止访问挂载目录外的文件,可通过
--unsafe-links覆盖
-
性能优化:
- 文件复制时会自动跳过哈希相同的文件
- 使用
-f强制覆盖已存在文件
自定义快捷方式
mpremote内置了一些常用快捷方式,如:
a0=connect /dev/ttyACM0(Linux)c0=connect COM0(Windows)ls=fs ls
用户还可以通过配置文件~/.config/mpremote/config.py定义自己的快捷方式。
总结
mpremote是MicroPython开发者的强大助手,它通过简洁的命令行界面提供了完整的设备管理功能。无论是日常的REPL交互、文件管理,还是复杂的开发工作流自动化,mpremote都能显著提升开发效率。掌握这个工具的使用,将使你的MicroPython开发体验更加流畅高效。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0218
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0140
uni-appA cross-platform framework using Vue.jsJavaScript09
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03