Google Colaboratory在线开发环境是否支持Python串口通信库?
Colab环境使用串口控制Arduino的实现说明
核心问题解答
可以在Colab笔记本中导入pyserial串口通信库,但默认的云端运行时无法直接访问本地电脑插入的Arduino串口硬件,因为Colab的默认代码运行在Google远端服务器上,和用户本地硬件完全隔离,直接调用串口库只能扫到云端服务器的串口设备,无法操作你孙子本地插的Arduino。
两种可实现的操作方案
方案1:切换Colab为本地运行时(操作门槛最低)
你孙子的本地电脑仅需安装基础的Jupyter本地连接依赖,无需手动配置串口开发环境,全程操作可以提前写好步骤引导点击:
- 本地电脑打开命令提示符/终端,仅需执行一次安装命令:
pip install jupyterlab jupyter_http_over_ws - 执行服务启动命令:
jupyter notebook --NotebookApp.allow_origin='https://colab.research.google.com' --port=8888 --NotebookApp.port_retries=0 - 复制终端输出的服务链接,打开Colab笔记本后点击右上角的连接按钮,选择「连接到本地运行时」,粘贴链接完成连接
- 连接完成后在Colab单元格执行
!pip install pyserial即可自动安装串口库,后续直接导入serial库就能和本地插入的Arduino正常通信,操作逻辑和你本地电脑上的代码完全一致。
方案2:使用Web Serial API(无需安装任何本地软件)
如果不想在本地装任何依赖,可以直接调用浏览器自带的Web Serial API实现通信,不需要用到pyserial库:
- 在Colab单元格中插入JS代码段调用浏览器串口权限,选择对应的Arduino串口设备建立连接
- 前端JS拿到串口数据后可以传递给Colab的Python内核做后续处理,也可以接收Python端的指令发送给Arduino
示例代码片段:
%%javascript // 申请串口权限并连接 const port = await navigator.serial.requestPort(); await port.open({ baudRate: 9600 }); // 和Arduino的波特率保持一致
常见避坑提醒
不要在默认的云端运行时中直接调用pyserial扫串口,扫到的所有设备都是远端服务器的硬件,和本地的Arduino无关。
内容的提问来源于stack exchange,提问作者Rick swancott
相关产品推荐
相关产品推荐

