'll uno' Arduino Serial Monitor | AI生成

Home 2026.07

以下是本次会话所做工作的全面总结:


会话总结:ll uno 子命令 — Arduino UNO 串口监视器

项目背景

ll 是一个 Rust CLI 工具(/home/xiaoxin/projects/ll/),带有 ratatui TUI 界面。它已包含 info(系统信息)、gcloudword2vec 子命令。仓库中有一个 Arduino 草图文件(sketch_jul9a/sketch_jul9a.ino),用于读取 A0 引脚上的麦克风信号,并通过串口以 9600 波特率输出振幅值。

目标

添加一个 cargo run -- uno status 命令,用于读取 Arduino 的串口输出并在实时 TUI 中显示。

改动内容

1. Cargo.toml — 添加了 serialport = "4.7" 依赖以便访问串口。

2. src/uno.rs(新文件,232 行)— 包含两个子命令:

3. src/main.rs — 添加了模块、匹配分支及更新帮助文本。

遇到的问题及解决方案

问题 原因 修复方法
未安装 Rust 工具链 新开发机器 通过 rustup 安装
缺少 libudev-dev serialport crate 需要该依赖 apt install libudev-dev
/dev/ttyUSB0 权限被拒绝 用户不在 dialout 使用 sg dialout(与用户已有模式相同)
通过 sg 运行时出现 ENXIO 错误 sg 将标准输入与 TTY 分离,导致 enable_raw_mode() 失败 重写读取循环以使用 BufReader(与 listen 相同模式);添加帮助性错误消息,指导用户使用 sudo usermod -a -G dialout

使用方法

# 推荐:将用户添加到 dialout 组一次,然后直接运行
sudo usermod -a -G dialout $USER
# 注销并重新登录

cargo run -- uno status          # TUI 界面带图表
cargo run -- uno listen          # 原始串口数据输出

Git 提交

b2b62f8  feat: 添加 Arduino 串口监视器的 uno 子命令
  5 个文件变更,新增 433 行,删除 12 行
  创建模式 100644 src/uno.rs

AI生成. Curating and sharing still takes effort. If you find it useful, feel free to donate. WeChat: @lzwjavaWeChat QR · X: @lzwjava · Say hi 👋

Back Donate