RPi-Zero-PhotoPainter-ACCE 使用教程

说明

各项参数

显示尺寸160.0mm × 96.0mm
外形尺寸154.0mm × 214.0mm × 32.0mm
屏幕像素点距0.2mm × 0.2mm
屏幕分辨率800 × 480
显示颜色黑、白、绿、蓝、红、黄
灰度等级2
刷新时间12s
充电电压/工作电压5V
  • 刷新时间:刷新时间为实验测试数据,实际刷新时间会有误差,以实际效果为准。全局刷新过程中会有闪烁效果,这个是正常现象。

图片制作

  • 使用PS等工具制作散点图,请参考:使用Photoshop制作散点图
  • 使用我们编写的工具转换图片,应用程序及源代码:六色抖动图片转换工具
    • 该程序可将图片转换成合适的分辨率并使用抖动算法进行优化,支持绝大多数格式的图片,会识别图片的方向并自动拉伸和剪裁
    • 使用方法:直接将图片拖放到“convert.exe”上面可以进行单张转换图片,或者将所有图片放到文件夹中然后双击“converterTo6color_all.cmd”进行批量转换
    • 注意:该程序仅为了方便客户使用而开发并开源,不对其提供技术支持

Windows使用工具

  • 单张图片转换

将图片拖到 convert.exe 上即可

  • 批量转换图片

将图片、convert.exe、converterTo6color_all.cmd 放在一个文件夹里面,然后双击converterTo6color_all.cmd 即可

MAC使用工具

将图片、convert、converterTo6color_all 放在一个文件夹
打开终端,进入对应的文件夹

cd xxxx/xxx/xxx/
  • 单张图片转换

输入命令,给予convert可执行权限

sudo chmod +x convert

转换图片

./convert 图片名称
  • 批量转换图片

要先对 convert 文件进行权限操作给予后才行
输入命令,给予converterTo6color_all.sh可执行权限

sudo chmod +x converterTo6color_all.sh

转换图片

./converterTo6color_all.sh

AI模型搭建

参考 Dylan 在 GitHub 上开源程序进行搭建 https://github.com/dylski/PaperPiAI
搭建相对比较复杂,需要科学上网,国内客户建议使用我们已经搭建好的系统

硬件准备

  • 32GB 内存卡,搭建过程中,全程会新增约 20GB 的内容
  • 系统选择建议为:Raspberry Pi oS (64-bit)
  • Raspberry Pi Zero 2 W (PS:我直接使用这个进行安装的)
  • ETH/USB HUB HAT (可选,PS:主要用于接入网线,使用WiFi没有使用网线下载稳定)

软件搭建

  • 将系统烧录到内存卡中
  • 更新源,并更新软件(国内建议换源)
sudo apt-get update
sudo apt-get upgrade
  • 安装git,下载存储库
sudo apt install git
  • 下载参考存储库(可选)
git clone https://github.com/dylski/PaperPiAI.git
cd PaperPiAI
scripts/install.sh  # 国内用户不推荐直接使用安装脚本,一步一步执行 shlle 文件中的命令
  • 安装必要的工具
sudo apt-get -y install tmux vim
sudo apt-get -y install cmake
sudo apt-get -y install python3-dev python3-venv python3-pip
sudo apt-get -y install imagemagick
sudo apt-get -y install git git-lfs
sudo apt-get -y install libopencv-dev  python3-opencv
  • 创建一个文件夹,并进入(我这里是直接下载的存储库,因此直接使用这个)
cd PaperPiAI
  • 创建一个虚拟环境(只创建一次,如果后面在创建,需要重新下载一些软件包)
python3 -m venv venv
PS:为什么要安装虚拟环境
    在python官方的要求下,有些python库只能在虚拟环境下进行安装
    树莓派最新系统也跟着这样弄了
  • 进入虚拟环境(退出命令: deactivate)
. venv/bin/activate
  • 安装一些软件(国内用户推荐换源,基于原本的图像处理脚本,使用我们修改后的无需)
python -m pip install opencv_contrib_python
python -m pip install inky[rpi]==1.5.0
python -m pip install pillow

安装AI大模型

cd  ~/PaperPiAI
git clone https://github.com/google/XNNPACK.git
cd XNNPACK
git checkout 1c8ee1b68f3a3e0847ec3c53c186c5909fa3fbd3
mkdir build
cd build
cmake -DXNNPACK_BUILD_TESTS=OFF -DXNNPACK_BUILD_BENCHMARKS=OFF ..    # 这里需要从 github 上下载一些相应的存储库,国内客户需要科学上网
cmake --build . --config Release    # zero 2W 编译超过三小时 
  • 进入之前创建的目录并下载并安装 OnnxStream
cd ~/PaperPiAI
git clone https://github.com/vitoplantamura/OnnxStream.git
cd OnnxStream
cd src
mkdir build
cd build
cmake -DMAX_SPEED=ON -DOS_LLM=OFF -DOS_CUDA=OFF -DXNNPACK_DIR="${INSTALL_DIR}/XNNPACK" ..      # 这里需要从 github 上下载一些相应的存储库,国内客户需要科学上网
cmake --build . --config Release      # zero 2W 编译在十几分钟 
  • 下载大模型资源
cd ~/PaperPiAI
mkdir models
cd models
git clone --depth=1 https://huggingface.co/vitoplantamura/stable-diffusion-xl-turbo-1.0-anyshape-onnxstream
# 下载约 9G

AI模型使用

自行搭建的模型

  • 下载我们的程序包
wget https://www.waveshare.net/w/upload/e/e6/RPi_Zero_PhotoPainter.zip
unzip -o RPi_Zero_PhotoPainter.zip -d RPi_Zero_PhotoPainter
cd RPi_Zero_PhotoPainter
cp -r Waveshare_E-Paper ~/PaperPiAI     # PaperPiAI 为之前搭建大模型的路径
cd cd ~
  • 运行大模型
cd PaperPiAI 
python Waveshare_E-Paper/generate_picture.py --steps 1  # 使用默认配置随机指令生成图像
python3 Waveshare_E-Paper/display_picture.py -m epd7in3e

下载我们配置好的系统

  • 运行大模型
cd PaperPiAI 
python Waveshare_E-Paper/generate_picture.py --steps 1  # 使用默认配置随机指令生成图像
python3 Waveshare_E-Paper/display_picture.py -m epd7in3e

命令解析

generate_picture.py

  • 默认输出路径(如果要修改,需要将目录放到最后面)
PaperPiAI/output_dir
  • 默认json获取(图片的生成词)
Waveshare_E-Paper/flowers.json
  • 其他
--prompt     直接使用提示符,覆盖提示符文件(默认为空)
--prompts    提示配置文件路径(默认 Waveshare_E-Paper/flowers.json)
--seed	      随机种子繁殖
--steps      生成步骤数(更高=质量更好,但速度更慢,默认5,建议使用 1 步
                 zero2w :1 步约34分钟;5 步约 1.5小时
                 Pi5 :1 步约5分钟;5 步约34分钟
--width      图像的宽度(默认 800)
--height     图像高度(默认 480)
--sd         稳定扩散二进制路径(不建议动)
--model      稳定扩散模型路径(不建议动)
--overwrite  覆盖现有的输出文件
--no-copy    不复制到共享文件

display_picture.py

  • 默认图像输入路径
PaperPiAI/output_dir/output.png
  • 默认裁剪后图像输入路径
PaperPiAI/output_dir
# 输出名称为:  processed_当前时间.png
  • 其他:
-o  输出路径及名称
-p  纵向模式(强制旋转90°)
-c  中心裁剪,而不是智能裁剪
-r  只调整图像大小而不裁剪
-s  模拟显示,没有实际输出
-m  显示型号(如:epd7in3e)
--skip-fit  如果图像大小与显示完全匹配,则跳过调整

使用指定位置的图像数据(图片位置要放置在命令的最后面,无需输入对应的操作命令)

python3 Waveshare_E-Paper/display_picture.py -m epd7in3e ./output_dir/processed_20250729_122744.png

示例程序使用

墨水屏驱动

硬件连接

请注意,该电路的 PWR 脚与我们通用例程中使用 PWR 脚不一样,如果使用通用例程中的程序注意修改

树莓派连接引脚对应关系
e-PaperRaspberry Pi
BCM2835编码Board物理引脚序号
VCC3.3V3.3V
GNDGNDGND
DINMOSI19
CLKSCLK23
CSCE024
DC2522
RST1711
BUSY2418
PWR2713

开启SPI接口

  • 打开树莓派终端,输入以下指令进入配置界面:
sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口


  • 重启树莓派:
sudo reboot
  • 检查 /boot/config.txt,可以看到 'dtparam=spi=on' 已被写入


  • 为了确保 SPI 没有被占用,建议其他的驱动覆盖暂时先关闭。可以使用 ls /dev/spi* 来检查 SPI 占用情况,终端输出 /dev/spidev0.0 和 /dev/spidev0.1 表示 SPI 情况正常



运行C语言例程

  • 安装 lg 库
#打开树莓派终端,并运行以下指令:
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
make
sudo make install
# 更多的可以参考源码:https://github.com/gpiozero/lg

  • 安装 gpiod 库(可选)
#打开树莓派终端,并运行以下指令:
sudo apt-get update
sudo apt install gpiod libgpiod-dev

  • 安装 BCM2835(可选)
#打开树莓派终端,并运行以下指令:
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

  • 安装 wiringPi(可选)
#打开树莓派终端,并运行以下指令:
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行 gpio -v 会出现 2.52 版本,如果没有出现,说明安装出错。

#Bullseye 分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行 gpio -v 会出现 2.60 版本,如果没有出现,说明安装出错。
  • 下载程序(已下载可跳过)
wget https://www.waveshare.net/w/upload/e/e6/RPi_Zero_PhotoPainter.zip
unzip -o RPi_Zero_PhotoPainter.zip -d RPi_Zero_PhotoPainter
cd RPi_Zero_PhotoPainter/7in3_e-Paper_E
  • 编译程序(说明:-j4 为使用4线程编译,数字可自行修改)
# 此时在 RPi_Zero_PhotoPainter/7in3_e-Paper_E 位置
cd c
sudo make clean
sudo make -j4
  • 运行程序
sudo ./epd

运行python例程

  • 安装函数库
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install spidev

  • 安装函数库(python2)
sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install python-pil
sudo apt-get install python-numpy
sudo pip install spidev

  • 安装gpiozero库(系统默认已安装,如果没有安装请按照以下命令进行安装)
sudo apt-get update
# python3
sudo apt install python3-gpiozero
# python2
sudo apt install python-gpiozero
  • 下载程序(已下载可跳过)
wget https://www.waveshare.net/w/upload/e/e6/RPi_Zero_PhotoPainter.zip
unzip -o RPi_Zero_PhotoPainter.zip -d RPi_Zero_PhotoPainter
cd RPi_Zero_PhotoPainter/7in3_e-Paper_E
  • 运行程序
# 确保在 RPi_Zero_PhotoPainter/7in3_e-Paper_E 位置
cd python/examples/
python3 epd_7in3e_test.py

UPS监控

  • UPS的启停为硬件自动控制,该程序主要是监控电池电量,以及输入输出

开启I2C接口

  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 
选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动


然后重启树莓派:

sudo reboot

运行示例程序

  • 下载程序(已下载可跳过)
wget https://www.waveshare.net/w/upload/e/e6/RPi_Zero_PhotoPainter.zip
unzip -o RPi_Zero_PhotoPainter.zip -d RPi_Zero_PhotoPainter
cd RPi_Zero_PhotoPainter/UPS
python3 INA219.py

程序运行后会输出电池电压,电流,功率以及电池剩余电量百分比等数值。

注意:如果电流为负数则表示电池输出电流(可认为树莓派负载电流),电流为正数则表示电池充电电流。

RTC时钟使用

开启I2C接口

  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 
选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动


然后重启树莓派:

sudo reboot

C

  • 安装 lg 库
#打开树莓派终端,并运行以下指令:
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
make
sudo make install
# 更多的可以参考源码:https://github.com/gpiozero/lg

  • 安装 BCM2835(可选)
#打开树莓派终端,并运行以下指令:
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

  • 安装 wiringPi(可选)
#打开树莓派终端,并运行以下指令:
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行 gpio -v 会出现 2.52 版本,如果没有出现,说明安装出错。

#Bullseye 分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行 gpio -v 会出现 2.60 版本,如果没有出现,说明安装出错。
  • 下载程序(已下载可跳过)
wget https://www.waveshare.net/w/upload/e/e6/RPi_Zero_PhotoPainter.zip
unzip -o RPi_Zero_PhotoPainter.zip -d RPi_Zero_PhotoPainter
cd RPi_Zero_PhotoPainter/RTC
  • 运行程序
cd c
make clean
make -j8 
sudo ./main

Python

  • 安装函数库
sudo apt-get update
sudo apt-get install ttf-wqy-zenhei
sudo apt-get install python3-pip
sudo pip3 install spidev
  • 下载程序(已下载可跳过)
wget https://www.waveshare.net/w/upload/e/e6/RPi_Zero_PhotoPainter.zip
unzip -o RPi_Zero_PhotoPainter.zip -d RPi_Zero_PhotoPainter
cd RPi_Zero_PhotoPainter/RTC
  • 运行程序
 cd python
 #设置RTC时间,并循环显示时间、日期、温度
 sudo python3 main.py
 #将RTC时间同步至系统中,仅限于没有联网的系统使用
 sudo python3 Set_system_time.py
  • 树莓派启动时同步RTC时间:

注意:该过程不能联网。

添加内核方式驱动

注意使用这种方法,就不可以使用上面的示例程序
修改 /boot/config.txt 末尾添加

dtoverlay=i2c-rtc,ds3231
# 重启树莓派
sudo reboot

同步系统时钟 -> 硬件时钟

sudo hwclock -w

同步硬件时钟 -> 系统时钟

sudo hwclock  -s
 #需要关闭网络,或者关闭网络对时,否则会被改回去

设置硬件时钟时间:

sudo hwclock --set --date="9/8/2021 16:45:05"

查看硬件时钟

sudo hwclock -r

显示版本信息

sudo hwclock --verbose

WiFi连接

  • 这里提供一个比较方便连接WiFi的方式;主要供终端使用,如果有接HDMI的可以直接使用图形化界面操作
  • 输入命令
sudo nmtui
  • 按照下图所示,选择对应WiFi,输入密码等待连接,对应WiFi前出现 * 号表示连接成功



资料

已经搭建好的系统

待上传

文档

程序

相关文件

开发资料


FAQ

问题:我使用 7.3inch e-Paper (E) Wiki中的程序下载的代码,无法驱动墨水屏

PWR引脚使用的不一致,该PCB板使用的PWR脚为 BCM编号的27,需要再程序中修改后,重新进行编程

  • c 打开文件 RaspberryPi_JetsonNano/c/lib/Config/DEV_Config.c;按图示进行修改


  • python 打开文件 RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.py;按图示进行修改



这个是 OnnxStream 库当中的一个BUG,目前只有等待 Vito Plantamura 对其进行修复,没有其他更好的解决方式

售后

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841

TAG: 树莓派15.6寸LCD触摸FHD显示屏(C) 1080P电脑副屏Type-C/HDMI ESP32-S3开发板 1.85寸圆形LCD显示屏360×360 触摸屏 板载加速度与陀螺仪QMI8658传感器/SD卡槽/电池接口/麦克风/RTC/MP3喇叭音频 适用于Arduino 树莓派5 PCIE转MiniPCIe 4G USB HUB千兆RJ45以太网扩展板SIM7600G-H/EG25-G 树莓派5 POE PCIe转M.2 E KEY NGFF转接板WIFI7 WIFI6无线网卡PI5 Banana Pi 树莓派摄像头 2.7英寸无源NFC电子墨水屏模块 ESP32-S3 1.14寸LCD 树莓派OpenWrt入门教程2 UPS迷你不间断电源模块 支持边充边放 5V 2.5A输出 带3节10440电池 树莓派HDMI显示屏6.25寸LCD触摸屏720×1560 树莓派3.97寸e-Paper电子墨水屏 黑白四灰度 800x480适用于Arduino /Jetson /STM32 /ESP32 斑梨 树莓派热成像摄像头 树莓派Pico 2 RP2350-Matrix开发板8×8RGB LED点矩阵六轴传感器 树莓派RP2040 谷歌恐龙小游戏 树莓派CM5计算模块IO底板NANO B扩展底板Compute Module 5 树莓派5 8G XIAO ESP32S3 Sense超小SuperMini开发板含摄像头适用于Arduino