ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

树莓派铁盒实战:从系统配置到YOLOv5边缘推理部署

树莓派铁盒实战:从系统配置到YOLOv5边缘推理部署 如果你手里有一块吃灰的树莓派或者正打算入手树莓派 5 / 4B又不想让它裸着主板跑、不想风扇积灰、不想线材乱飞那“把树莓派装进小铁盒”这个方向就非常值得折腾。这篇文章不聊概念直接讲怎么做从系统烧录、换源、基础配置到 GPIO 控制、摄像头接入、传感器读取再到在树莓派上部署轻量级 AI 模型比如 YOLOv5最后讲怎么把小铁盒版本的树莓派做成一个稳定运行的准生产环境。这类项目的核心价值很直接小体积、低功耗、可长期通电、适合做桌面小服务、边缘推理节点或者智能硬件实验台。而且树莓派生态成熟从官方系统到各种第三方镜像再到 Docker、Python 服务、摄像头推理、GPIO 控制几乎每个环节都有现成方案。真正考验人的不是单点功能而是把系统、散热、电源、IO、模型部署、自动启动这些环节串起来让它在铁盒里稳定跑下去。这篇文章会按实际部署顺序展开最后给出常见问题排查清单和工程化建议。整个项目适合有 Linux 基础、想跑通完整硬件AI 小项目的读者也适合打算把树莓派改造成低功耗边缘节点的同学。1. 核心能力速览能力项说明项目类型树莓派嵌入式主机 AI 边缘推理节点常见主控树莓派 4B / 5 / 5B具体以手头硬件为准系统支持Raspberry Pi OS、Ubuntu Server / Desktop需按设备架构选择主要功能系统安装配置、GPIO 控制、摄像头模块接入、传感器读取、轻量 AI 模型部署、API 服务摄像头模块OV5647 等 CSI 接口摄像头显示接口定义需按实际型号确认扩展控制Pico 控制舵机、L298N 驱动板、DHT11 温湿度传感器等启动方式命令行启动、systemd 自启、Docker 容器、Python 脚本是否支持 API支持通过 Flask / FastAPI 等方式写本地推理接口是否支持批量任务支持可配合任务队列处理图片、视频帧或模型推理任务推荐硬件树莓派 4B2G 以上/ 树莓派 5散热铁盒或金属外壳适合场景桌面小主机、低功耗服务器、边缘 AI 实验、学校项目、极客玩具需要说明的是树莓派本身不是高算力设备跑大模型不现实但跑轻量级 YOLOv5、TinyML、文字识别、传感器采集这类任务完全够用。把树莓派装进小铁盒另一个重要目的是解决散热和稳定性金属外壳不仅防尘还能承担一部分被动散热功能长时间通电更安心。2. 适用场景与使用边界这类“铁盒树莓派”项目最常见的落地场景有三类第一类是桌面小主机。把树莓派装进铁盒再接一个小风扇或直接靠金属外壳散热长期通电跑 Home Assistant、AdGuard Home、FTP 备份、Samba 共享、内网穿透之类的轻量服务功耗通常只有几瓦到十几瓦比开一台旧电脑省电太多。第二类是边缘推理节点。树莓派 5 的算力比 4B 明显提升配合 CSI 摄像头模块可以把 YOLOv5 这类轻量检测模型直接跑在设备上用于识别特定物体、统计出现在画面里的目标数量或者每隔几秒抓帧处理后向上位机汇报结果。整个过程不依赖云服务数据也不出本地网络。第三类是硬件学习与竞赛项目。热词里出现了“树莓派无人机悬停”“树莓派小车生产实习报告”“树莓派 Pico 控制舵机”“树莓派 L298N 驱动板”说明很多人在做小车、机械臂、无人机这类机电结合的项目。把树莓派装在铁盒里当成“车载主控”既能保护主板也方便固定在底盘上。需要特别注意边界问题。树莓派上的摄像头录音录像、人脸识别、车辆识别这些功能必须在合法授权、隐私明确的场景下使用。不要对陌生人进行无感采集不要上传或公开涉及个人隐私的影像数据。模型文件、训练数据也要注意版权和授权协议尤其是从网上下载的预训练权重。另外树莓派跑不了大参数模型强行部署只会换来极低的帧率和长时间卡顿这一点在选型时要提前想清楚。3. 环境准备与前置条件3.1 硬件准备做“铁盒树莓派”之前先把硬件清单列清楚树莓派主板优先选树莓派 58G 版本更从容预算有限用 4B 也没问题。4B 跑 YOLOv5 的 CPU 推理会比较吃力但做 GPIO 控制和普通服务没问题。电源树莓派 5 官方推荐 5V/5A27W电源4B 推荐 5V/3A。电源质量直接影响系统稳定性尤其是接硬盘、摄像头、风扇之后电压不足会出现随机重启。TF 卡或 SSD系统跑在 TF 卡上读卡速度很重要至少选 A2 级别的高速卡32G 以上。想更稳定就上 USB 转 NVMe 固态小铁盒方案一般也能塞下转接板。散热铁盒金属外壳或铝合金被动散热壳按主板型号购买别买错版本4B 和 5 的孔位不同。CSI 摄像头模块OV5647 是常见的入门摄像头模块接在树莓派的 CSI 接口上安装时注意排线金手指方向和接口位置热词里提到的“15pin CSI 引进定义”其实就是 CSI 排线接口定义不同主板的 CSI 口不一定兼容要按实际主板型号查原理图。风扇如果铁盒没有风道选一个 5V 静音风扇接 GPIO 的 5V 和 GND 引脚或者用官方主动散热器。3.2 系统镜像与烧录工具系统方面树莓派 5 建议直接用 Raspberry Pi OSBookworm 及之后版本4B 可以选择旧版镜像或 Ubuntu Server / Desktop。如果不想折腾桌面环境树莓派装 Ubuntu 时可以考虑最小化安装。热词里出现的“树莓派5 清华源 ubuntu22.04”说明不少人会用清华源安装 Ubuntu 22.04这种做法适合需要更贴近桌面服务器环境的场景但驱动和硬件加速需要额外配置新手建议先用官方 Raspberry Pi OS。烧录工具首选官方 Raspberry Pi Imager。它支持直接选择型号、系统镜像、配置 SSH、配置无线网络省去后面手动写wpa_supplicant.conf的麻烦。3.3 前置检查清单检查项建议SD 卡/SSD 容量至少 32G做 AI 推理或装 Docker 建议 64G 以上系统更新首次开机先sudo apt update sudo apt upgradeSSH 启用无显示器操作时提前在 Imager 里启用 SSH 并设置密码网络环境固定局域网 IP或配置路由器 DHCP 保留Python 版本Raspberry Pi OS 自带 Python 3.11确认python3 --version散热状态开机后检查 CPU 温度vcgencmd measure_temp4. 树莓派系统安装、换源与基础配置4.1 烧录系统使用 Raspberry Pi Imager 写入系统镜像。核心步骤打开 Imager选择树莓派型号。选择操作系统如 Raspberry Pi OS (64-bit)。选择 SD 卡或 SSD。进入设置开启 SSH配置用户名密码配置 Wi-Fi。等待写入完成插卡开机。命令行方式下也可以用dd写镜像但新手建议用 Imager能规避很多隐藏分区对不齐的问题。4.2 换国内软件源树莓派默认软件源在境外国内网络环境下载依赖非常慢。换源是最优先做的事之一。编辑/etc/apt/sources.listsudo nano /etc/apt/sources.list如果系统是 Raspberry Pi OS Bookworm软件源配置通常在/etc/apt/sources.list.d/raspi.list和/etc/apt/sources.list.d/debian.list里不同版本位置不同。务必先查看ls /etc/apt/sources.list.d/换源时把deb.debian.org或archive.raspberrypi.org替换为清华源地址。以 Debian bookworm 的 arm64 架构为例替换形如deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware替换后运行sudo apt update sudo apt upgrade -y如果输入材料里的版本是 Ubuntu 22.04换源地址则对应清华 Ubuntu 镜像源且需要注意 ARM 架构的 ports 源。不要把 amd64 的源直接写到树莓派上否则 apt 会报错。4.3 安装常用基础软件sudo apt install -y git curl wget vim htop python3-pip python3-venv # GPIO 控制库 sudo apt install -y python3-gpiozero python3-rpi.gpio # 摄像头相关 sudo apt install -y libcamera-apps树莓派 5 的 GPIO 控制建议使用gpiozero或libgpiod工具老旧的RPi.GPIO库可能不支持新内核实测中发现部分版本在树莓派 5 上会报错最好用gpiozero或python3-lgpio。4.4 设置中文输入法与桌面环境如果刷的是桌面版且需要中文输入sudo apt install -y fcitx5 fcitx5-chinese-addons装完后在系统设置里把输入法框架切换到 Fcitx 5然后添加拼音输入法。这是树莓派中文输入法最常见的配置方式出现无法输入中文时大概率是输入法框架没切换或者当前用户没加入input组。4.5 固定 IP 与 SSH 优化建议修改/etc/dhcpcd.conf老系统或直接通过 NetworkManager 设置静态 IP。最稳的方式是在路由器上按 MAC 地址绑定 IP这样即使重装系统地址也能保持一致。SSH 建议改掉默认 22 端口并配置密钥登录减少公网扫描风险虽然多数人只在局域网内使用但安全习惯越早建立越好。5. 小铁盒里的硬件接线与 GPIO 控制“装进小铁盒”不只是物理上盖盖子更关键的是接线布局、供电规划和引脚定义确认。树莓派引脚的坑几乎每个新手都会踩一遍特别是摄像头排线和外设电源接反轻则功能异常重则烧坏 GPIO。5.1 树莓派 GPIO 引脚速认树莓派 40Pin GPIO 中最常用的几类引脚3.3V 和 5V 电源引脚GND 地线GPIO17、GPIO27、GPIO22、GPIO23、GPIO24 等可编程 IOI2CGPIO2SDA、GPIO3SCLSPIGPIO8CE0、GPIO9MISO、GPIO10MOSI、GPIO11SCLKUARTGPIO14TXD、GPIO15RXD树莓派 5 引脚布局沿用了 40Pin 标准但部分引脚功能定义和电气特性有变化接线前必须查当前系统的引脚映射不要凭旧板子的记忆直接接。# 查看当前引脚定义 pinout5.2 点亮一个 LED 并控制舵机下面的示例使用gpiozero在树莓派 4B 和 5 上都能跑通。先创建一个虚拟环境python3 -m venv ~/pi-env source ~/pi-env/bin/activate pip install gpiozero写一个简单脚本控制 LED 闪烁from gpiozero import LED from time import sleep led LED(17) for _ in range(10): led.on() sleep(0.5) led.off() sleep(0.5) print(LED test finished)如果要把树莓派 Pico 接进来控制舵机Pico 通过 MicroPython 控制舵机比较方便树莓派主板和 Pico 之间用 USB 串口通信或者直接让 Pico 独立执行树莓派只做任务下发。常见组合是树莓派装一个 FastAPI 服务收到 HTTP 请求后通过串口向 Pico 发送运动指令Pico 再产生对应 PWM 信号驱动舵机。5.3 DHT11 温湿度传感器读取DHT11 是入门级数字温湿度传感器接一个 GPIO 引脚即可import Adafruit_DHT # 或者使用 dht11 库 import RPi.GPIO as GPIO import dht11 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) instance dht11.DHT11(pin23) result instance.read() if result.is_valid(): print(Temperature: %-3.1f C % result.temperature) print(Humidity: %-3.1f %% % result.humidity)实测中 DHT11 的读取间隔至少需要 1 秒以上连续读取太快容易拿到无效数据。树莓派 4B 上电量不足时传感器读数会频繁失败先检查电源是否达标。5.4 L298N 驱动板控制小车L298N 是常见的直流电机驱动板树莓派 GPIO 输出 PWM 信号控制电机转速。接线时要注意共地树莓派的 GND 必须和 L298N 的 GND 接在一起否则控制信号参考电位不一致电机不会正常转动。电源不要直接从树莓派 5V 引脚拉给电机电机启动瞬间电流很大会让树莓派电压跌落甚至重启。典型接线思路电池组正负极接 L298N 的 12V/GND树莓派两个 GPIO 接 L298N 的 IN1/IN2 控制正反转树莓派一个支持 PWM 的 GPIO 接 L298N 的 ENA 调速树莓派 GND 与 L298N GND 共地代码上使用gpiozero的Motor类更简洁from gpiozero import Motor from time import sleep motor Motor(forward23, backward24, enable25) motor.forward(0.5) sleep(2) motor.stop() print(motor test finished)5.5 OV5647 摄像头模块接线与测试OV5647 是树莓派常用的 CSI 摄像头模块接线时注意排线金属触点朝向主板 PCB 方向插到位后有卡扣固定。传统上树莓派用的raspistill命令在 Bookworm 系统上已经被libcamera取代正确用法是# 检查摄像头是否被系统识别 libcamera-hello --list-cameras # 拍摄一张静态图片 libcamera-still -o test.jpg # 拍摄 10 秒视频 libcamera-vid -t 10000 -o test.h264如果摄像头拍出来的画面是花屏或全绿多半是排线没插到位或排线反向如果 csi 口没识别到先重启树莓派再测因为部分老固件对热插拔不友好。6. 在树莓派上部署 YOLOv5 模型准备与推理6.1 为什么选择 YOLOv5YOLOv5 在边缘设备上是相对成熟的轻量目标检测方案社区资料多、部署教程多模型体积小有 nano / small 等轻量变体。树莓派 4B 跑 YOLOv5s 的推理速度大约在每秒 1-3 帧左右具体取决于分辨率、模型大小和是否启用 NEON 优化树莓派 5 会好一些但也到不了实时视频流的水平。如果跑 YOLOv5n速度会快不少适合静止画面或低帧率检测场景。6.2 安装依赖sudo apt install -y libatlas-base-dev libopenblas-dev liblapack-dev python3 -m venv ~/yolo-env source ~/yolo-env/bin/activate pip install --upgrade pip pip install numpy opencv-python-headless torch torchvision pip install ultralytics这里注意几点树莓派是 ARM 架构PyTorch 官方对部分旧树莓派型号只有 CPU 版本安装时不要强行装 CUDA 版本。树莓派 5 可以尝试使用 PyTorch 官方提供的 arm64 轮子但如果下载速度极慢用清华 PyPI 镜像会快很多。opencv 安装完整版可能拉入很多 GUI 依赖服务器场景用opencv-python-headless更省空间。ultralytics包同时支持 YOLOv5 和 YOLOv8直接用它跑模型最简单。6.3 下载模型权重YOLOv5 官方权重可以从 GitHub Release 下载实际以官方仓库发布页为准或者通过 ultralytics 自动下载。如果网络环境受限从国内镜像或自己的训练结果导入也可以。6.4 跑一张图片检测from ultralytics import YOLO model YOLO(yolov5nu.pt) results model.predict(test.jpg, saveTrue, conf0.4, imgsz640) for r in results: for box in r.boxes: cls_id int(box.cls[0]) conf float(box.conf[0]) name model.names[cls_id] print(fclass{name}, confidence{conf:.4f})预期输出是控制台打印出检测到的目标类别和置信度同时在runs/detect/下生成标注了检测框的图片。判断成功的标准只有一个被检测物体的类别名称正确、置信度超过阈值。6.5 在树莓派上部署自己训练的 YOLOv5 模型如果你已经在自己电脑上训练好了模型需要把.pt权重文件传到树莓派scp your_model.pt pi192.168.1.100:~/yolo-env/注意模型文件大小几十 MB 的模型传起来没问题但几百 MB 的模型在树莓派上推理压力会非常大。轻量场景建议使用yolov5n或yolov5s作为基础模型。如果自训练模型有自定义类别加载后直接用model.names查看类别表确认类别索引是否和训练一致。6.6 摄像头实时推理树莓派接 CSI 摄像头拍摄视频帧然后送入 YOLO 模型做检测。帧率不会太高所以更现实的做法是每隔 1-2 秒抓一帧import cv2 from ultralytics import YOLO model YOLO(yolov5nu.pt) cap cv2.VideoCapture(0, cv2.CAP_V4L2) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) frame_count 0 while True: ret, frame cap.read() if not ret: break frame_count 1 if frame_count % 15 ! 0: continue results model.predict(frame, conf0.4, verboseFalse) annotated results[0].plot() cv2.imshow(pi-yolo, annotated) if cv2.waitKey(1) 0xFF ord(q): break cap.release() cv2.destroyAllWindows()这只能算验证流程。真正要部署成服务要把cv2.imshow去掉改成把结果写回内存队列或输出到 HTTP 接口。7. 树莓派接口 API 与批量任务树莓派作为边缘节点最实用的能力是把模型推理封装成 API这样其他设备电脑、手机、上位机可以通过 HTTP 请求调用检测能力树莓派内部再做批量图片或视频帧检测。7.1 用 FastAPI 封装推理服务from fastapi import FastAPI, File, UploadFile from ultralytics import YOLO import numpy as np import cv2 app FastAPI() model YOLO(yolov5nu.pt) app.post(/detect) async def detect(image: UploadFile File(...)): data await image.read() img_array np.frombuffer(data, np.uint8) img cv2.imdecode(img_array, cv2.IMREAD_COLOR) results model.predict(img, conf0.4, verboseFalse) detections [] for box in results[0].boxes: cls_id int(box.cls[0]) conf float(box.conf[0]) detections.append({ class: model.names[cls_id], confidence: conf, }) return {detections: detections}启动服务uvicorn api_server:app --host 0.0.0.0 --port 8000启动后同一局域网内的设备就可以访问http://树莓派IP:8000/detect上传图片并返回识别结果。7.2 curl 调用示例curl -X POST http://127.0.0.1:8000/detect \ -F imagetest.jpg返回 JSON 示例{ detections: [ {class: person, confidence: 0.8732}, {class: car, confidence: 0.6541} ] }接口能跑通之后就可以把树莓派当成一个低功耗检测节点其他程序只需要发 HTTP 请求不需要关心模型怎么推理。7.3 批量任务队列批量图片检测不用并发请求因为树莓派 CPU 算力有限并发反而会拖慢整体速度。更合理的做法是加一个简单的任务队列import glob import os from ultralytics import YOLO model YOLO(yolov5nu.pt) input_dir ./images output_dir ./output os.makedirs(output_dir, exist_okTrue) images glob.glob(os.path.join(input_dir, *.jpg)) for idx, img_path in enumerate(images): print(f[{idx1}/{len(images)}] processing {img_path}) results model.predict(img_path, conf0.4, saveTrue, save_diroutput_dir)批量任务要加日志和失败重试不能一个文件出错就把整个队列终止。建议每处理一张图打印一条日志处理失败时捕获异常并跳过最后统一输出失败清单。8. 资源占用与性能观察树莓派没有独立显卡所有推理都在 CPU 上完成。观察资源占用主要用三个命令htop vcgencmd measure_temp vcgencmd measure_volts从常见实践看树莓派 4B 跑 YOLOv5s 的 CPU 占用会接近满载温度在被动散热裸板状态下可能快速升到 80°C 以上这时 CPU 会主动降频推理速度反而变慢。装进小铁盒后如果散热设计不好温度问题会更明显。重要建议跑推理任务时务必启用主动散热风扇或者使用带大面积散热片的金属外壳。更稳妥的做法是调低输入分辨率640x640 的输入比 1280x1280 快很多。降低检测频率从每秒检测改成每 2 秒检测CPU 占用会大幅下降。批量任务不要并行跑太多进程树莓派内存和 CPU 都不富裕。显存占用这个概念在树莓派上不适用因为 CPU 推理使用的是系统内存。4B 的 2G 版本跑 YOLOv5n 勉强可用4G 版本更从容。树莓派 5 的 8G 版本适合同时跑服务、摄像头推理和数据库但整体性能依然无法和 PC 相比这是一个必须认清的边界。9. 常见问题与排查方法问题现象可能原因排查方式解决方案树莓派只有红灯亮系统无法开机系统损坏、电源功率不足、TF 卡接触不良观察红灯是否闪烁接 HDMI 看显示输出更换电源重新烧录系统绿灯无规律闪烁启动卡死内核崩溃或文件系统损坏查看串口日志或用另一台机器读卡检查修复文件系统重刷系统apt 更新极慢软件源是境外默认源cat /etc/apt/sources.list迁移到清华等国内镜像源SSH 连接不上SSH 未启用、IP 变了、防火墙ping 树莓派IP检查路由器后台在 Imager 里启用 SSH固定 IP摄像头画面花屏/绿屏CSI 排线未插到位重新插拔检查排线方向按正确方向插好后重启libcamera 找不到摄像头内核模块未加载或固件旧sudo apt upgrade后重启查 dmesgGPIO 引脚不生效使用了旧版 RPi.GPIOpython3 -c import RPi.GPIO报错改用gpiozero或libgpiodDHT11 数据频繁无效读取间隔太短或供电不稳加sleep(2)换独立电源外接 3.3V/5V 稳定电源YOLOv5 推理极慢模型太大或分辨率过高换yolov5n降imgsz为 320只保留必要检测类别减少前处理耗时uvicorn 端口冲突8000 端口被占用sudo lsof -i :8000换端口启动--port 8001铁盒内温度过高风道不畅或被动散热面积不足vcgencmd measure_temp加风扇或开散热孔批量任务中途卡死内存不足或进程被 OOM 杀死dmesggrep -i oom10. 最佳实践与工程化建议第一第一次跑通功能之前千万不要把树莓派彻底封进铁盒。先把系统、GPIO、摄像头、模型推理全部在裸板上验证完再装盒。否则每次调试都要拆外壳非常折磨。第二给树莓派建立一个专门的工作目录结构。建议这样组织~/pi-project/ ├── config/ # 配置文件、引脚映射表 ├── scripts/ # 启动脚本、工具脚本 ├── models/ # 模型权重文件 ├── inputs/ # 待处理的图片/视频素材 ├── outputs/ # 推理结果和日志 └── logs/ # 运行日志和错误日志第三配置 systemd 服务让关键脚本开机自启。以下是示例 service 文件实际路径和执行命令按项目调整[Unit] DescriptionPi YOLO API Server Afternetwork.target [Service] Userpi WorkingDirectory/home/pi/pi-project ExecStart/home/pi/pi-project/venv/bin/uvicorn api_server:app --host 0.0.0.0 --port 8000 Restartalways RestartSec5 [Install] WantedBymulti-user.target启用sudo cp pi-yolo.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable pi-yolo.service sudo systemctl start pi-yolo.service第四接口服务如果没有特殊需求监听地址建议设为127.0.0.1或指定局域网网段不要默认暴露到公网。如果确实需要远程访问走 Tailscale 这类组网工具更安全不要在路由器上盲目映射端口。第五所有涉及摄像头采集、人脸检测、录音录像的演示都必须限定在自己拥有的设备、场所和素材范围内。不要拍摄无关人员不要保存敏感影像不要上传未授权数据到云端。这是使用树莓派摄像头类项目最基本的合规底线。第六模型文件尽量使用官方或可信渠道下载。不要从不明网站拿来历不明的.pt权重这类文件本质上是可执行代码恶意权重可以在加载时执行任意命令安全风险极高。11. 总结与下一步这个“铁盒树莓派”项目最值得尝试的点不是某一个功能有多强而是把系统配置、散热结构、GPIO 控制、摄像头接入、AI 模型推理和 API 服务六个环节完整串起来最终得到一个可以长期通电、不吵不脏、能跑实际任务的边缘小主机。建议拿到树莓派后先按这个顺序验证先烧录系统并换源成功再用一个 LED 点灯验证 GPIO然后接摄像头拍一张照片最后在虚拟环境里跑通 YOLOv5 的图片检测。这四个节点全通过就可以放心装盒进入长期运行阶段。最容易踩的坑有三个一是树莓派 5 上用旧的 RPi.GPIO 库导致引脚不工作二是 CSI 摄像头排线方向插反导致花屏三是电源功率不够导致随机重启。这三类问题占了新人实操失败原因的绝大多数。后续可以扩展的方向很多给树莓派加一个 Home Assistant把温湿度数据上报成定时任务把 YOLOv5 检测结果写入 SQLite 做长期统计在 API 服务上加一个简单的 token 校验让其他设备安全调用或者用树莓派 Pico 做下位机树莓派主板做大脑组成一套完整的智能小车控制链路。箱子盖好风扇转起来然后让这台小机器在你桌角安安静静干活。
返回列表