墨水屏阅读器

本项目是一款基于 Quectel Pi H1智能主控板的智能电子墨水屏阅读器。系统结合电子墨水屏低功耗显示特性与基于摄像头的眼动追踪技术,实现了无需手动操作的自然翻页阅读方式。通过检测用户眼球视线变化完成翻页控制,并配合物理按键作为辅助输入,提升系统可靠性。

在显示方面,系统采用局部刷新与分区渲染策略,支持中英文本的自动排版与连续阅读,同时具备页面记忆与快速唤醒功能,适用于长时间阅读及嵌入式智能终端应用场景。

开发资源汇总

开发配件清单

配件名称 数量 规格参数
Quectel Pi H1 智能主控板 1块 Quectel Pi H1 智能主控板
USB-C 电源线充电器 1个 27W USB Type-C接口充电器 1.2米线长中规电源PD电源 适用于树莓派5代
HDMI 线 1根 规格:HDMI 2.0;线长:1m;接口:HDMI-A(公头)-HDMI-D(公头)
网线 1根 线长:1m;传输速率:千兆;
CPU 散热风扇 1个 树莓派5代官方原装散热器带导热贴
7.5英寸墨水屏 1个 7.5寸墨水屏 e-Paper 800×480分辨率 黑白带板
扩展坞 1个 绿联 USB3.0扩展器扩展坞
USB摄像头模块 1个 OV5693 USB摄像头模块
显示屏 1个 24英寸HDMI显示器

配件实物参考

快速上手

开发准备

Quectel Pi H1智能主控板出厂默认搭载 Debian 13 系统镜像,因此无需再次烧录镜像,仅需按照如下步骤操作即可。

硬件连接

散热风扇安装

先将散热风扇的排线插入单板电脑的FAN插槽中,然后将散热器上的两端固定在单板电脑预留的插孔中,如下:

显示连接

将 HDMI 线一端接入单板电脑的 HDMI 接口,另一端接入显示器的 HDMI 接口。

image-20251017144027933

输入设备连接

将 USB 键盘、鼠标接入扩展坞的USB接口,再将扩展坞接入单板电脑的USB接口,若用无线输入设备,将接收器插入扩展坞的USB口即可。

image-20251017144124363

网络连接

将网线一端接入单板电脑的千兆网口,另一端接入路由器的网口(确保路由器已联网)。

跳线帽连接

单板电脑左上角标有AUTO_POWER_ON丝印的排针,确保已经用跳线帽短接。

image-20251017144330473

供电连接

将 USB-A 电源线的 USB-A 端接入电源适配器,USB-C 端接入单板电脑的电源口(通常标注POWER IN)。

image-20251017172353513

墨水屏连接

选择用PIN排线连接,参考下方的引脚对应表格:

EPD 引脚 BCM2835编码 Board物理引脚序号
VCC 3.3V 3.3V
GND GND GND
DIN MOSI 19
CLK SCLK 23
CS CE0 24
DC 25 22
RST 17 11
BUSY 24 18
PWR 18 12

摄像头连接

将OV5693摄像头模块接入单板电脑或扩展坞的USB接口即可。

连接完成参考

项目实现

获取项目源码

1.在单板电脑的根目录下新建e-ink-reader文件夹存放项目源码。

2.点击下载源码

3.利用scp命令上传文件至e-ink-reader目录下,参考远程访问SCP文件拷贝章节

4.在该文件夹路径下打开终端运行以下命令修改文件权限。

sudo chmod -R 755 folder_path
例: sudo chmod -R 755 /home/pi/e-ink-reader

编译LG库

在e-ink-reader目录下依次执行下面命令。

cd lg-master
sudo apt update && sudo apt install python3-setuptools 
make
sudo make install

配置Python环境

目前系统默认的python版本为3.13,而我们使用的MediaPipe模型需要的开发环境在python3.9-3.12,需要重新指定python路径,系统中已经安装了python3.10,我们修改python默认路径即可。

#备份当前Python路径链接
sudo cp /usr/bin/python3 /usr/bin/python3.backup
#删除当前Python路径链接
sudo rm /usr/bin/python3
# 创建新的路径链接指向Python 3.10
sudo ln -s /usr/bin/python3.10 /usr/bin/python3
#验证修改
ls -l /usr/bin/python3
python3 --version
image-20251211175705335

激活Python虚拟环境

执行下面命令创建并激活Python虚拟环境.

python3.10 -m venv 文件夹名称
例: python3.10 -m venv ~/mediapipe_env
source ~/mediapipe_env/bin/activate

安装Python依赖项

  • e-ink-reader目录下安装Python依赖项。
pip install --upgrade pip
pip install -r requirements.txt
  • 单独安装evdev库。
sudo ln -s /usr/bin/aarch64-linux-gnu-gcc /usr/bin/aarch64-qcom-linux-gcc
CPPFLAGS="-I/usr/include/python3.13 -I/usr/include/python3.10" CFLAGS="-I/usr/include/python3.13 -I/usr/include/python3.10" pip3 install --no-binary evdev evdev==1.9.2

编译墨水屏驱动程序

e-ink-reader/src/c目录下编译墨水屏阅读器程序,若该目录出现epd文件则证明编译成功。

make CC=gcc EPD=epd7in5V2

创建udev规则文件

  • 先输入下面命令创建并打开udev规则文件。
sudo nano /etc/udev/rules.d/99-uinput.rules
  • 在文件中添加下面语句,按下"ctrl + o" + Enter保存编辑内容,然后按下"ctrl + x"退出编辑。
KERNEL=="uinput", MODE="0660", GROUP="input"

添加Input组

将用户添加至input 组。

sudo usermod -aG input pi 

开启SPI功能

在终端输入下面命令开启SPI功能。

sudo qpi-config 40pin set

验证配置

  • 重启系统后在终端输入下面命令验证用户是否在 input 组中以及udev规则配置是否生效。
ls -l /dev/uinput
groups
  • 验证SPI功能是否开启。
ls /dev/spi*

配置免密运行程序

在终端输入下面命令配置免密运行epd程序。

echo "pi ALL=(ALL) NOPASSWD: /home/pi/e-ink-reader/src/c/epd" | sudo tee /etc/sudoers.d/ebook-reader

准备书籍文件

将您的 .txt 文件放入e-ink-reader/src/tools/books目录下,并确保编码为 GB2312

Windows 用户操作路径:记事本 → 另存为 → 编码选"ANSI"(即 GB2312)。

运行程序

e-ink-reader文件夹下执行startup.sh脚本运行项目。

应用演示