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开发体验更加流畅高效。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0245- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python05