相机+二维舵机云台的人员追踪

主要需要的电子器件:

MaixPro 相机:视觉处理

ESP32-S3 单片机:系统的控制与通信,处理坐标偏差

二维舵机云台:调整其相机位置

视觉检测:使用 MaixPy 内置的 face_detect

核心代码:

import sensor import image import lcd import time # 初始化LCD、摄像头 lcd.init() sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) # 320x240,平衡帧率和清晰度 sensor.run(1) sensor.skip_frames(time=2000) # 跳过初始模糊帧 # 初始化串口(与ESP32-S3通信,波特率要与ESP32-S3保持一致,比如115200) from machine import UART uart = UART(3, 115200, tx=Pin(4), rx=Pin(5)) # 对应MaixPro的引脚,需实际核对 while True: img = sensor.snapshot() # 采集一帧图像 faces = img.find_face() # 检测人脸 if faces: for face in faces: img.draw_rectangle(face.rect(), color=(255, 0, 0)) # 画框标记人脸 # 计算人脸中心坐标 face_x = face.x() + face.w() // 2 face_y = face.y() + face.h() // 2 img.draw_cross(face_x, face_y, color=(0, 255, 0)) # 标记人脸中心 # 计算与画面中心的偏移量(画面中心:160, 120,对应QVGA分辨率) offset_x = face_x - 160 offset_y = face_y - 120 # 发送偏移数据给ESP32-S3(格式:"X:xxx,Y:yyy\r\n",方便ESP32-S3解析) send_data = f"X:{offset_x},Y:{offset_y}\r\n" uart.write(send_data.encode()) # 显示画面到LCD lcd.display(img) time.sleep_ms(10) # 轻微延时,稳定帧率

通信:UART通信

云台位置矫正:

控制算法:

  • 设定舵机初始位置
  • 接收 MaixPro 传来的偏移量 offset_x、offset_y。
  • 计算舵机目标角度:目标角度 = 当前角度 + 偏移量 × 比例系数(比例系数需实际调试,避免云台抖动或响应过慢)。
  • 限制舵机角度范围( 0°~180°)
相关推荐
高升说34 分钟前
无人机吊舱相机选型:稳定、变焦与画质的工程权衡
数码相机·无人机
QYRese1 小时前
CAGR3.1%!抗辐射相机市场迎替换潮,核设施数字化、水下场景带来增量
大数据·数码相机
unicrom_深圳市由你创科技19 小时前
多相机GigE Vision:触发与图像网段怎么分?
数码相机
FLJwu20 小时前
运动相机采购实战|第四篇(终章):一张清单走完选型全流程,把风险拦在源头
c语言·开发语言·数码相机·运动相机·oem 量产
光电的一只菜鸡20 小时前
鱼眼镜头需要考虑color shading吗
数码相机
小蒋观天下1 天前
太阳能低功耗AI相机专项:AOV值守、唤醒时序、ISP启停时序BUG
深度学习·数码相机·算法·机器学习
奇树谦1 天前
Qt | 基于 GVCP 协议的 GigE 工业相机 IP 配置工具
数码相机·qt·tcp/ip
机器视觉知识推荐、就业指导1 天前
线扫相机拍出来的圆,怎么变成椭圆了?
数码相机
Software攻城狮2 天前
8 【 entity ,primitive,3D tiles 3者的含义和区别】
数码相机·3d
数字融合2 天前
透明化数字孪生:以空间计算赋能全域智能决策
人工智能·数码相机·pygame