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

主要需要的电子器件:

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_xoffset_y
  • 计算舵机目标角度:目标角度 = 当前角度 + 偏移量 × 比例系数(比例系数需实际调试,避免云台抖动或响应过慢)。
  • 限制舵机角度范围( 0°~180°)
相关推荐
浪里镖客16 小时前
RM65B睿尔曼机械臂与realsense d4354i相机眼在手外的手眼标定
数码相机
长江后浪博客19 小时前
陶瓷盘UV喷墨印刷中的Z轴高度测量与防碰撞技术方案
数码相机·uv·陶瓷盘uv打印·uv喷墨印刷·z轴测高·喷头防碰撞·激光位移传感器
挽安学长3 天前
浅谈一下,伟财工程水印相机的特点及优势!
数码相机
蓝宝石的傻话3 天前
因为MiBeeNVR,决定接 onvif-go 自己管理并重构
数码相机·重构·golang
格林威3 天前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
长江后浪博客4 天前
黑色滴灌带三角结构视觉检测光源设计方案——200mm高角度环光 + 低角度条形暗场补光
人工智能·数码相机·视觉检测·机器视觉·光源设计·暗场补光·环形光
长江后浪博客5 天前
陶瓷浮雕盘印刷视觉定位方案:8K线扫相机 + 暗场光源 + 旋转平台
人工智能·数码相机·机器视觉·视觉定位·线扫相机·暗场光源·陶瓷印刷
爱分享的康康5 天前
破解座舱数采五大痛点:DMS/OMS多路相机数采工程方案
数码相机·自动驾驶
k4m7v2pz5 天前
Godot 4 窗口拉伸黑边与变形:stretch 配置全解析
数码相机·游戏引擎·godot·2d游戏·黑边·stretch·画面比例
成都佳洋光电科技有限公司5 天前
一文了解工业相机是怎么实现触发的?
数码相机·工业相机·工业镜头·短波红外