Eye Remote Control

This project is developed based on the Quectel Pi H1 single-board computer, leveraging its powerful computing and multimedia processing capabilities to achieve low-latency, high-accuracy eye tracking functionality.

The Eye Remote Control is an intelligent control system that manages video playback through user eye state detection: continues playback when eyes are open and focused on the screen, and automatically pauses when eyes are closed or looking away.

Core Features:

  • Automatically plays or maintains video playback when user's eyes are open and focused on the screen
  • Immediately pauses current video playback when user closes eyes, looks away, or leaves the screen

Development Resource Summary

Component List

The listed development accessories are provided for reference only. Different development environments may vary. For example, if you are developing via SSH remote connection, the USB expansion dock may not be necessary, and the display monitor can also be replaced as needed.

Component Name Quantity Specifications
Quectel Pi H1 smart single-board computer 1 Quectel Pi H1 Smart Ecosystem Development Board
USB-C Power Cable Charger 1 27W USB Type-C Interface Charger 1.2m Cable Length China Standard Power PD Power Suitable for Raspberry Pi 5
Micro HDMI Cable 1 Specification: Micro HDMI 2.0; Cable Length: 1m; Interface: HDMI-A (male)-HDMI-D (male)
Ethernet Cable 1 Cable Length: 1m; Transmission Rate: Gigabit
CPU Heat Sink Fan 1 Raspberry Pi 5 Official Active Cooler with Thermal Pad
2PIN PH1.25 Interface Speaker 1 2030 Cavity Speaker Type B, 8Ω 2W, High-quality Sound, Compact Size, 2PIN PH1.25 Connector
USB Hub 1 UGREEN USB 3.0 Hub
USB Camera Module 1 OV5693 USB Camera Module
Display 1 24-inch HDMI Monitor

Component Physical Reference

Quick Start

Development Preparation

The Quectel Pi H1 single-board computer comes pre-installed with Debian 13 system image, so no additional image burning is required. Follow the steps below to get started.

Hardware Connection

Heat Sink Fan Installation

First, insert the cooling fan's ribbon cable into the FAN slot of the single-board computer. Then, fix the two ends of the heatsink into the pre-drilled holes on the single-board computer, as follows:

Display Connection

Connect one end of the Micro HDMI cable to the Micro HDMI port on the single-board computer and the other end to the HDMI port on the monitor.

image-20251017144027933

Input Device Connection

Connect USB keyboard and mouse to the USB ports on the hub, then connect the hub to the USB port on the single-board computer. For wireless devices, insert the receiver into the hub's USB port.

image-20251017144124363

Network Connection

Connect one end of the Ethernet cable to the Gigabit Ethernet port on the single-board computer and the other end to the router's port (ensure the router is connected to the internet).

Jumper Connection

Make sure the header pins marked AUTO_POWER_ON in the upper left corner of the single-board computer are shorted with jumper caps.

image-20251017144330473

Power Connection

Connect the USB-A end of the power cable to the power adapter and the USB-C end to the power port on the single-board computer (usually labeled POWER IN).

image-20251017172353513

Speaker Connection

Connect the 2PIN PH1.25 interface speaker to the SPK slot on the single-board computer.

Camera Connection

Connect the OV5693 camera module to the USB port on the single-board computer.

Completed Connection Reference

Project Implementation

  1. Create the eye-remote-control folder on the board's terminal to store the project code.
mkdir eye-remote-control
cd eye-remote-control
  1. Clone the project using git.
sudo apt update
# Install git
sudo apt install -y git
# Clone the project
git clone https://github.com/Quectel-Pi/demo-eye-remote-control.git
  1. Run the following commands in sequence on the board's terminal.
cd demo-eye-remote-control
# Set script permissions
sudo chmod 755 install.sh
# Execute the script
./install.sh  # "Deployment complete" in the terminal indicates successful deployment
# Reopen the terminal and verify the Python version
python3 --version  # Output "Python 3.10.15" indicates successful installation

Run Program

Execute the startup script in the demo directory:

cd eye-remote-control/demo-eye-remote-control/
./start.sh

Usage

Basic Workflow

  1. Start the program: the application will automatically open the camera and start detection.
  2. Load a video: click the "Select Video File" button to load the video you want to play.
  3. Watch: the system will automatically control play/pause according to your gaze state.
  4. Switch modes: use fullscreen playback for a better viewing experience.

UI Features

  • Fullscreen: press F11 or click the fullscreen button on the UI to enter fullscreen mode.
  • Fullscreen playback mode: plays the video in fullscreen and controls playback based on real-time recognition.
  • Camera toggle: turn the camera on or off at any time.
  • Detection toggle: enable or disable eye detection manually.
  • Landmark display: visualizes eye keypoints and detection results on the screen.

Control Logic

State Behavior Description
Eyes open + looking at screen Continue playback System detects user watching
Eyes closed or looking away Automatically pause Pauses playback when user closes eyes or looks away
Face leaves camera Automatically pause Pauses if no face detected for more than 1 second

Common Issues and Solutions

Camera not recognized

Symptom:

No available camera device found

Solutions:

  • Check the camera connection to the USB port.

  • Verify device nodes with:

    ls -la /dev/video*
    
  • Use v4l2-ctl to list camera devices:

    v4l2-ctl --list-devices
    
  • Try other USB ports.

  • If the camera still fails, use a powered USB hub and connect external power.

  • Re-plug the USB camera.

Application Demonstration

Technical Support and Contributions

If you encounter any issues during use, please submit technical inquiries on the Quectel Official Forum. Our technical support team will respond promptly.

Project open-source repository: https://github.com/Quectel-Pi/demo-eye-remote-control

We welcome you to submit Issues to report problems or Pull Requests to contribute code improvements!