能否通过USB端口更新Raspberry Pi Pico的Python脚本?(无Thonny及按键)
可行的解决方案(无需Thonny或物理按键)
方法1:利用Pico的USB大容量存储自动挂载特性
如果你的Pico使用默认MicroPython固件,通常自带USB大容量存储(MSC)模式:
- 上电后,PC会识别到名为
RPI-RP2的U盘式存储设备 - 直接将新的Python脚本(比如
main.py)拖放到该存储盘,覆盖原有文件 - 等待数秒,Pico会自动重启并运行新脚本
注:如果当前脚本修改了USB模式(禁用MSC),此方法不适用。
方法2:通过串行终端工具传输脚本
用picocom/minicom这类轻量串行工具即可完成,无需Thonny:
- 安装串行工具:Linux下用
sudo apt install picocom,Windows可通过Chocolatey安装picocom - 找到Pico对应的串行端口(Linux多为
/dev/ttyACM0,Windows为COMx) - 连接端口:
picocom /dev/ttyACM0 -b 115200 - 进入MicroPython REPL后,按
ctrl+E进入粘贴模式,直接粘贴新脚本内容 - 按
ctrl+D退出粘贴模式并保存,Pico会重启运行新代码
方法3:使用rshell工具批量管理文件
rshell是专为MicroPython设备设计的文件管理工具,支持USB串行传输:
- 安装rshell:
pip install rshell - 连接Pico:
rshell -p /dev/ttyACM0(替换为你的串行端口) - 进入Pico文件系统:
cd /pyboard - 上传本地脚本:
cp local_main.py main.py - 重启Pico生效:
repl ~ import machine; machine.reset()
方法4:预设自动更新监听脚本
如果需要更自动化的流程,可以预先在Pico部署监听脚本,通过USB串行接收新代码并覆盖:
预先烧录的main.py示例:
import sys import os def update_script(): print("等待接收新脚本...") new_script = sys.stdin.read() with open("main.py", "w") as f: f.write(new_script) print("更新完成,重启中...") import machine machine.reset() # 触发更新:收到特定指令后进入更新模式 if len(sys.argv) > 1 and sys.argv[1] == "update": update_script() else: # 原有业务逻辑 print("运行原有脚本...")
PC端执行命令触发更新:cat new_main.py | picocom /dev/ttyACM0 -b 115200 -s "update"
内容的提问来源于stack exchange,提问作者PhilTilson
相关产品推荐
相关产品推荐

