手势遥控器

本项目是一个基于 Quectel Pi H1 智能主控板实现的手势识别远程视频控制示例。

系统通过摄像头采集手部图像,结合 AI 手势识别算法,实现隔空控制视频播放、进度与音量的自然交互体验。

开发资源汇总

开发配件清单

开发配件只是作为参考,不同的开发环境可能会有所差异,比如通过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 系统镜像,因此无需再次烧录镜像,仅需按照如下步骤操作即可。

硬件连接

完成以下所有硬件连接操作,序号与接口示意图保持一致:

  1. 显示连接:将Micro HDMI线一端接入智能主控板的Micro HDMI接口,另一端接入显示器的HDMI接口。

  2. 网络连接:将网线一端接入智能主控板的千兆网口,另一端接入路由器的网口(确保路由器已联网)。

  3. 输入设备连接:将USB键盘、鼠标接入扩展坞的USB接口,再将扩展坞接入智能主控板的USB接口;若用无线输入设备,将接收器插入扩展坞的USB口即可;然后把OV5693摄像头模块接入智能主控板的另一个USB接口。

  4. 供电连接:将USB-A电源线的USB-A端接入电源适配器,USB-C端接入智能主控板的电源口(通常标注POWER IN)。

  5. 散热风扇连接:先将散热风扇的排线插入智能主控板的FAN插槽中,再将散热器两端固定在主控板预留插孔中。

  6. 喇叭连接:将 2PIN PH1.25 接口的喇叭连接到智能主控板的SPK 插槽中。

连接完成参考

完成上述连接后,后续关机或重启过程中无需断开摄像头、扬声器、显示器等已连接配件,保持连接状态即可。

项目实现

  1. 在智能主控板上打开终端,使用git克隆项目代码。
sudo apt update
sudo apt install -y git
git clone https://github.com/Quectel-Pi/demo-gesture-remote-control.git

执行完成后,当前目录下应生成demo-gesture-remote-control文件夹。

  1. 在智能主控板的终端下依次执行下面命令,终端显示Deployment complete则说明部署完成。
cd demo-gesture-remote-control
sudo chmod 755 install.sh
./install.sh

如果执行./install.sh过程中报错,或终端未显示"Deployment complete",请先不要继续执行后续步骤。建议先确认网络连接正常,再返回项目根目录重新执行一次install.sh

  1. 重新打开终端,验证 Python 版本,输出Python 3.10.15则表示安装成功。
python3 --version

运行程序

src路径下执行main.py启动脚本;若程序正常启动,会打开摄像头画面窗口。

cd demo-gesture-remote-control/src/
python3 main.py

手势映射

请确保摄像头正对用户操作区域,并具备稳定光照条件。

手势动作 控制功能
张开手掌(5 指) 播放 / 暂停
手指向右滑动 快进 5 秒
手指向左滑动 快退 5 秒
手指向上滑动 音量 +5%
手指向下滑动 音量 -5%

常见问题及解决方案

摄像头无法识别

现象:

No available camera device found

解决方案:

  • 检查摄像头是否正确连接到USB接口。

  • 使用命令检查摄像头是否被识别:

    ls -la /dev/video*
    
  • 尝试使用其他USB接口。

  • 如果还是不行,使用USB集线器并连接电源。

  • 重新插拔USB摄像头。

运行main.py提示No module named cv2

现象:

ModuleNotFoundError: No module named 'cv2'

解决方案:

该问题通常表示install.sh未安装成功,请先返回项目根目录重新执行安装脚本:

cd demo-gesture-remote-control
./install.sh

应用演示

技术支持与贡献

如在使用过程中遇到问题,欢迎在移远官方论坛 提交技术咨询,我们的技术支持团队将及时为您解答。

项目开源地址:https://github.com/Quectel-Pi/demo-gesture-remote-control

欢迎提交 Issue 反馈问题或 Pull Request 贡献代码改进!