眼睛遥控器
本项目基于 Quectel Pi H1智能主控板开发,充分利用其强大的计算能力和多媒体处理能力,实现了低延迟、较高准确率的眼部追踪功能。
眼睛遥控器是一个智能控制系统,通过检测用户眼部状态来控制视频播放:注视屏幕时继续播放,闭眼或离开屏幕时自动暂停。
核心功能:
- 当检测到用户眼睛睁开并注视屏幕时,系统会自动播放或保持视频播放状态。
- 当检测到用户闭眼、转移视线或离开屏幕时,系统会立即暂停当前播放的视频。
开发资源汇总
开发配件只是作为参考,不同的开发环境可能会有所差异,比如通过ssh远程连接进行开发,可以不使用USB扩展坞,显示屏也可以根据需要进行替换。
开发配件清单
| 配件名称 | 数量 | 规格参数 |
|---|---|---|
| Quectel Pi H1 智能主控板 | 1块 | Quectel Pi H1智能生态开发板 |
| USB-C 电源线充电器 | 1个 | 27W USB Type-C接口充电器 1.2米线长中规电源PD电源 适用于树莓派5代 |
| Micro HDMI 线 | 1根 | 规格:Micro HDMI 2.0;线长:1m;接口:HDMI-A(公头)-HDMI-D(公头) |
| 网线 | 1根 | 线长:1m;传输速率:千兆; |
| CPU 散热风扇 | 1个 | 树莓派5代官方原装散热器带导热贴 |
| 2PIN PH1.25接口喇叭 | 1个 | 2030腔体喇叭8Ω 2W方形喇叭高音质小体积扬声器 2PIN PH1.25接口 |
| 扩展坞 | 1个 | 绿联 USB3.0扩展器扩展坞 |
| USB摄像头模块 | 1个 | OV5693 USB摄像头模块 |
| 显示屏 | 1个 | 24英寸HDMI显示器 |
配件实物参考
快速上手
开发准备
Quectel Pi H1智能主控板出厂默认搭载 Debian 13 系统镜像,因此无需再次烧录镜像,仅需按照如下步骤操作即可。
硬件连接
散热风扇安装
先将散热风扇的排线插入智能主控板的FAN插槽中,然后将散热器上的两端固定在智能主控板预留的插孔中,如下:
显示连接
将 Micro HDMI 线一端接入智能主控板的 Micro HDMI 接口,另一端接入显示器的HDMI 接口。
输入设备连接
将 USB 键盘、鼠标接入扩展坞的USB接口,再将扩展坞接入智能主控板的USB接口,若用无线输入设备,将接收器插入扩展坞的USB口即可。
网络连接
将网线一端接入智能主控板的千兆网口,另一端接入路由器的网口(确保路由器已联网)。
跳线帽连接
智能主控板左上角标有AUTO_POWER_ON丝印的排针,确保已经用跳线帽短接。
供电连接
将 USB-A 电源线的 USB-A 端接入电源适配器,USB-C 端接入智能主控板的电源口(通常标注POWER IN)。
扬声器连接
将2PIN PH1.25接口的喇叭连接到智能主控板的SPK插槽中。
摄像头连接
将OV5693摄像头模块接入智能主控板的USB接口即可。
连接完成参考
项目实现
1.在智能主控板终端下新建eye-remote-control文件夹存放项目代码。
mkdir eye-remote-control
cd eye-remote-control
2.使用git命令克隆项目代码。
sudo apt update
#安装git
sudo apt install -y git
#克隆项目代码
git clone https://github.com/Quectel-Pi/demo-eye-remote-control.git
3.在智能主控板的终端下依次执行下面命令。
cd demo-eye-remote-control
#设置脚本权限
sudo chmod 755 install.sh
#执行脚本
./install.sh #终端显示"Deployment complete"则说明部署完成
#重新打开终端,验证python版本
python3 --version #输出“Python 3.10.15”则表示安装成功
运行程序
在demo-eye-remote-control路径下输入./start.sh执行程序启动脚本。
cd eye-remote-control/demo-eye-remote-control/
./start.sh
使用说明
基本操作流程
- 启动程序: 程序启动后会自动开启摄像头并开始检测。
- 加载视频: 点击"选择视频文件"按钮加载想要播放的视频。
- 开始观看: 系统会根据您的视线状态自动控制播放/暂停。
- 切换模式: 可使用全屏播放模式获得更好的观看体验。
界面功能说明
- 全屏模式: 点击"F11"或界面上的全屏按钮进入全屏化界面。
- 全屏播放模式: 全屏播放视频,并根据实时识别结果控制视频播放。
- 摄像头开关: 可随时开启或关闭摄像头。
- 检测开关: 可手动启用或禁用眼部检测功能。
- 标记点显示: 可视化显示眼部关键点和检测结果。
控制逻辑详解
| 状态 | 行为 | 说明 |
|---|---|---|
| 注视屏幕 + 眼睛睁开 | 继续播放 | 系统检测到您正在观看 |
| 闭眼或视线移开 | 自动暂停 | 离开或闭眼时暂停播放 |
| 人脸离开摄像头 | 自动暂停 | 超过1秒未检测到人脸 |
常见问题及解决方案
摄像头无法识别
现象:
No available camera device found
解决方案:
检查摄像头是否正确连接到USB接口。
使用命令检查摄像头是否被识别:
# Linux ls -la /dev/video* # 使用v4l2-ctl列出摄像头 v4l2-ctl --list-devices尝试使用其他USB接口。
如果还是不行,使用USB集线器并连接电源。
重新插拔USB摄像头。
应用演示
技术支持与贡献
如在使用过程中遇到问题,欢迎在移远官方论坛 提交技术咨询,我们的技术支持团队将及时为您解答。
项目开源地址:https://github.com/Quectel-Pi/demo-eye-remote-control
欢迎提交 Issue 反馈问题或 Pull Request 贡献代码改进!