亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino DIY 人脸追踪云台:OpenCV + 双舵机 + 串口通讯

项目背景

作者受启发于 3D 打印同事头像,设计了一款“会盯着人看”的桌面云台。摄像头连接 PC 运行 Python+OpenCV 人脸检测,检测到人脸后通过 USB 串口发送舵机角度指令给 Arduino,驱动双舵机 (Pan/Tilt) 将人脸保持在画面中心。项目开源了 3D 打印模型、Arduino 固件与 Python 检测端,极易复刻与二次开发。

核心硬件

系统架构

┌──────────────┐     USB/Serial (115200)     ┌──────────────┐
│  PC (Win10)  │ ◀──────────────────────────▶ │  Arduino UNO │
│  Python+OpenCV│   指令:  │  双舵机驱动   │
└──────────────┘                              └──────────────┘
       ▲                                               │
       │ 摄像头视频流                                   │ PWM
       ▼                                               ▼
┌──────────────┐                              ┌──────────────┐
│  USB Camera  │                              │  Pan/Tilt    │
│  (UVC)       │                              │  Servos      │
└──────────────┘                              └──────────────┘

Arduino 固件要点

通讯协议

帧格式:<pan_angle,tilt_angle,led_state>,例如 <90.5,45.0,1>

核心循环

void loop() {
  getDataFromPC();   // 非阻塞串口解析
  replyToPC();       // 回传当前舵机角度供 PC 校验
  moveServo();       // 写入目标角度
  setLED();          // 更新状态灯
}

启动自检序列

上电后舵机回中 (90°,90°),RGB 灯跑马灯自检,最后发送 <Hasta la vista baby> 就绪消息。

Python 人脸检测端 (GitHub 开源)

仓库:LittleFrenchKev/face_tracking_camera

核心流程

  1. cv2.VideoCapture(0) 打开摄像头
  2. cv2.CascadeClassifier('haarcascade_frontalface_default.xml') 加载 Haar 级联分类器
  3. 每帧检测人脸,取最大面积人脸中心点 (cx, cy)
  4. 计算偏差:err_x = cx - frame_w/2, err_y = cy - frame_h/2
  5. 比例控制:pan += Kp * err_x, tilt -= Kp * err_y (Kp 经验值 ~0.05)
  6. 限幅 0–180°,打包发送串口指令
  7. 无人脸时随机游走或回中

可配置参数 (config.json)

3D 打印与组装

接线原理图

见 Schematics 部分 (PNG)。关键点:

扩展创意

常见问题

舵机抖动/卡顿
供电不足:舵机单独供电,加 470μF 电解电容;软件端加平滑滤波 (EMA)。
串口通讯乱码/丢帧
波特率统一 115200;Python 端 serial.write() 后 flush();帧头帧尾校验。
人脸检测频繁丢失
环境光不足 → 补光;Haar 级联对侧脸弱 → 换 DNN/SSD/MediaPipe;分辨率过高导致延迟 → 降至 320×240。
云台运动范围不足
检查 3D 打印件干涉、舵机物理限位、代码角度限幅设置。

制造工艺

  1. 树莓派实时人脸追踪云台:OpenCV + 舵机 + ServoBlaster 实战
  2. 定制 4×4 井字棋名片 PCB – 设计、制作与代码指南
  3. 多位置温度传感器系统,助力智能家居集成
  4. 862D+ 电烙铁 DIY 智能温控器:精准可靠,低成本替代方案
  5. MotionSense:基于 Arduino 与 ESP8266 的智能入侵检测系统
  6. 3D 打印机防火卫士:智能传感器安全系统
  7. 基于 Arduino、Yaler 与 IFTTT 构建 Web 化 IoT 仪表盘
  8. Arduino 简易排斥式磁悬浮:电路与 DIY 指南
  9. 进阶遥控夹爪机器人:精密抓取 DIY 指南
  10. 高性能 Arduino 气象气球数据记录器
  11. Arduino Nano + OpenCV 人脸追踪自主机器人小车
  12. CoroFence 热成像检测器:Panasonic GridEye + PIR + IoT 集成