这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 28BYJ-48机械臂实现人脸跟随

共1条 1/1 1 跳转至页

28BYJ-48机械臂实现人脸跟随

助工
2026-10-16 12:38:20     打赏

上一篇《给28BYJ-48三自由度机械臂加一个网页控制台》分享了28BYJ-48三自由度机械臂,本篇给机械臂加上视觉,借助电脑的摄像头,实现人脸跟随。

1、系统结构

视觉计算放在笔记本电脑上,ESP32只负责执行动作。笔记本的摄像头在电脑屏幕中心对着人,机械臂立在屏幕前:

角色设备职责
眼睛摄像头拍摄画面
大脑笔记本电脑人脸检测、解算角度、下发指令
小脑ESP32-P4接收角度,驱动步进电机
神经WiFi+HTTP传输指令

1792125041258374.jpg

2、跟随原理

参考https://forum.eepw.com.cn/thread/398324/1

人脸检测用的还是OpenCV,模型换成更小的YuNet(232KB),笔记本CPU单帧几十毫秒。整个跟随逻辑就五条:

①人脸检测:画面里有多张脸时取框面积最大的,也就是离镜头最近的那位。

②角度解算:每帧取人脸框中心的水平偏移,乘上灵敏度系数就是底座J1的目标角。脸在画面正中对应0°,偏得越多转得越多,全程只有J1会动。

③防抖闸门:人脸框每一帧都在抖,不能按帧下发——偏移小于死区不动,变化不够不下发,运动中不改目标。

④回正与追随:脸回到画面中心附近,目标角直接归0°,机械臂每次都精确回正;连续转头时目标一变远就直接改道,平滑跟上而不是走一步停一步。

⑤绝对指令:目标是绝对角度,不是在当前角度上累加,否则同一个偏移会被反复叠加,机械臂会匀速爬走停不下来。

3、软件介绍

文件位置作用
stepper3.py/server.py/index.htmlESP32上一篇的三轴驱动、服务器、控制页,原样复用
arm_client.py电脑HTTP客户端,把角度翻译成/api/move请求
face_follow.py电脑主程序:检测人脸、解算角度、下发指令

代码放在附件。

4、使用方法

笔记本电脑安装好Python和OpenCV(pip install opencv-python numpy requests),ESP32按上一篇跑起服务器。上电前把底座朝向摆正——0°就是上电中间位,脸在画面正中时机械臂指的就是这个方向。运行face_follow.py后按A摆位,让J3转到90°、末端有指向感,再按B开始或停止跟踪,h回中,z急停,q退出。

灵敏度和方向符号都在face_follow.py顶部,转角小了调大,方向反了改符号。

需要注意的是,YuNet只认正脸,转头太狠或移出画面会跟丢,这时候机械臂就停在原地等你回来。

28byj-48.zip





关键词: 人脸跟随     机械臂    

共1条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]