小白程序员对墨水屏项目PaperPI的改造之路

2026-04-13
小白程序员对墨水屏项目PaperPI的改造之路 关注 新手上路 关注 新手上路 关注 新手上路 关注 新手上路 04/07 09:34

引言: slotsdemo a5game.app

PaperPi(项目地址:https://github.com/txoof/PaperPi)是一款用于电子墨水屏的信息轮播显示软件,目前版本为 V0.5。它可以定时轮询显示不同插件提供的信息界面,例如漫画、新闻或图片等。

电子墨水屏(E-Ink)由于其特殊的显示原理,具有许多传统屏幕不具备的优势:

  • 无背光、无频闪
  • 显示效果接近纸张
  • 光线越强越清晰
  • 可视角度接近 180°
  • 长时间观看不易产生视觉疲劳

因此,电子墨水屏非常适合用于低刷新频率的信息展示场景,例如天气信息屏、日历或资讯展示终端。

PaperPi 的运行方式非常简单。只需在配置文件中设定插件和轮播时间,它便会按照设定周期自动轮询信息页面,非常适合摆放在书桌或客厅中。 小寶影院电影xiaobaotv.video 爱亦凡yfsp.app

一、我的硬件环境 slotpix a5game.app

我使用以下硬件搭建了 PaperPi: pg a5game.app iyifanyfsp.app

  • Raspberry Pi 4
  • Waveshare 9.7 寸黑白电子墨水屏,分辨率:1200*825,16级灰度
  • 控制芯片:IT8951

系统运行后,PaperPi 会按照插件设定的时间默默轮询各种信息页面。

不过,项目自带的插件(例如 XKCD 漫画、Reddit 信息等)不太适合国内使用环境。因此我决定重新设计页面,并对 PaperPi 进行一次“本地化改造”。

二、EpdLib 的设计理念与局限 ifun yfsp.app 小寶影院xiaobaotv.video

PaperPi 的页面布局由 EpdLib (项目地址:https://github.com/txoof/epdlib)创建。EpdLib 的布局结构采用三层架构:Block → Layout → Screen。设计理念是构建分辨率无关的模块化界面系统。 一帆视频yfsp.app

但在实际使用中,我发现它存在一些问题: fortunedragon demo a5game.app

1. 布局代码冗长:每一个显示元素的坐标、对齐方式、布局关系都需要完整定义,导致布局文件非常长。 a5game a5game.app

2. 所有元素的坐标都需要手动计算,对于复杂页面来说非常低效。

3. EpdLib 没有实时预览功能,每次修改布局都必须运行完整程序才能确定是否修改到位,调试效率低。

4.错误提示不友好,当布局冲突时,系统通常只会抛出异常,很难定位是哪个元素出错或者哪个布局冲突,调试体验不友好。 jogosdemopg a5game.app 爱壹帆寻秦记yfsp.app

三、页面设计思路 爱壹帆影视yfsp.app

为了简化布局,我采用了一种非常直接的方案:

每个页面只使用一个 Image 元素。 fortuneoxdemográtis a5game.app

也就是说: demo a5game.app

Layout
            └── Image

所有信息都提前绘制到一张图片中。这样做具有几个明显优点:

  • 不需要计算布局坐标
  • 布局文件极其简洁
  • 可以自由设计界面
  • 调试效率高

这样页面逻辑就变成:采集信息 → 绘制图片 → 显示图片,然后借助 AI 编程工具(如 ChatGPT),可以很快生成绘图代码。

四、如何增加一个页面插件(示例) pgslotgacor a5game.app

这里以 树莓派运行状态页面为例。

插件功能是显示当前树莓派系统运行状态(图1)。 pragmatic a5game.app

 

图1 树莓派运行状态 爱壹帆国际版 yfsp.app

(一)页面信息布局: 小宝影院xiaobaotv.video

  • 左上角:树莓派硬件信息、CPU类型、系统版本
  • 右上角:CPU 温度
  • 中部:CPU、内存、SD 卡、Swap占用率
  • 左下角:IP 地址、下载上传速率、读取写入速率等信息
  • 右下角:页面刷新时间

(二)插件创建步骤

(1)复制插件模板

进入:/usr/local/paperpi/plugins/

创建目录:demo_plugin_pistatus

然后复制一个原有插件:如slideshow下所有文件作为模板。

(2)修改布局文件

编辑 layout.py: 爱壹帆yfsp.app aiyifan yfsp.app

my_layout_one = {

    'image': {

        'type': 'ImageBlock', fortunetigerdemográtis a5game.app 爱一帆 yfsp.app

        'image': True,

        'mode': 'L',

        'width': 1,

        'height': 1, sweetbonanza1000demo a5game.app

       'abs_coordinates': (0, 0),

        'random': False, tigrinhodemo a5game.app

        'relative': False, ifuntvyfsp.app

        'hcenter': True, pragmaticplay a5game.app plataformademográtis a5game.app

        'vcenter': True,

        'bkground': 'BLACK',

        'rgb_support': True

    } fortunetigerbônusgrátissemdepósito a5game.app

}

这样布局中只保留一个 Image 元素。

(3)编写插件代码

创建demo_plugin_pistatus.py。我主要使用 AI生成代码(chatgpt网页版)

基本提示词如下: 爱壹帆电影yfsp.app 小宝影院电影xiaobaotv.video

 

生成一张 1200×825 的仪表盘图片,用于电子墨水屏显示。 sugarrush1000demo a5game.app

图片布局要求: 爱一番yfsp.app 一帆yfsp.app

左上角:树莓派硬件信息、CPU类型、系统版本 爱壹帆电影 yfsp.app

右上角:CPU 温度(温度表,下面为温度值)

中部:CPU、内存、SD 卡、Swap占用率(四个圆环图) slot a5game.app

左下角:IP 地址、下载上传速率、读取写入速率等信息

右下角:页面刷新时间 xiaobao xiaobaotv.video

 

生成绘图代码后(一般需进行微调,譬如字体大小、显示坐标等),再把 slideshow.py 的结构提供给 AI,让其把代码改造成 PaperPi 插件结构。因为插件最终需要返回Tuple类型,以适配 PaperPi 框架。

(4)修改插件名称 小宝影院在线视频xiaobaotv.video

编辑constants.py,修改: plataformademo a5game.app

name = demo_plugin_pistatus

(5)修改配置文件

编辑:home/pi/.config/com.txoof.paperpi/paperpi.ini,新增:

[Plugin: A Demo Plugin pistatus]

layout = layout

plugin = demo_plugin_pistatus

min_display_time = 600

refresh_rate = 600

max_priority = 2 demotigrinho a5game.app tigrinho gratis a5game.app JogodoTigrinho a5game.app iyf yfsp.app

各参数说明可参考 PaperPi 项目文档。

(6)重启 PaperPi

重新启动paperi服务即可加载插件。 华人影视xiaobaotv.video

五、目前已开发的插件 免费在线影院xiaobaotv.video

目前我已经制作了 12 个插件,基本替代原有插件。

序号

插件数据源

1 爱壹帆在线yfsp.app pgdemo a5game.app

成语解释本地 JSON格式 成语库

2 Caça-níqueis a5game.app

慢电影随机抓取MP4视频文件帧

3 iyf yfsp.app

山水画生成矢量山水画的网站截图

4 海外华人视频网xiaobaotv.video pgslot a5game.app

14天天气调用Open-Meteo API

5 demo a5game.app

豆瓣书籍预先生成的豆瓣图片库

6 iyftvyfsp.app

电影资料调用TMDB API

7 slots a5game.app

24小时降水预报中央气象台天气网站

8 pglucky88 a5game.app

日历AI绘制

9 电影爱壹帆yfsp.app 电影小宝影院xiaobaotv.video

Unsplash图片调用Unsplash API

10 ifvodyfsp.app jogodotigrinhodemo a5game.app

Wiki地理调用Wikipedia API

11

树莓派状态调用树莓派系统API

12

印象派图片调用Wikimedia API

其中几个插件效果如下:

  • 慢电影

从电影文件(.MP4)中随机截取一帧,并在左上角显示电影名,右下角显示播放进度(图2)。

 

图2 慢电影(类似: https://github.com/TomWhitwell/SlowMovie

  • 山水画

来自项目:https://lingdong-.github.io/shan-shui-inf/,该项目完全使用 JavaScript 生成中国山水画,并输出 SVG 矢量图(图3)足球比分 a5game.app

图3 随机山水画

  • 14天天气趋势

使用Open-Meteo API。展示未来14天的温度、雨量和降水概率(图4)。 nba比分 a5game.app

图4 14天天气预报图 pragmatic a5game.app

六、提高调试效率:配置编辑器 爱壹帆免费版yfsp.app

随着插件越来越多,手动编辑 paperpi.ini 变得很麻烦。于是我又用 AI 写了一个PaperPi 配置编辑工具(图5),大大提高了管理效率。

主要功能:

  • 可视化插件列表
  • 拖拽调整插件顺序
  • 快速启用/禁用插件
  • 自动生成 paperpi.ini
  • 自动备份功能,防止系统崩溃

图5 paperpi.ini可视化编辑器 pgslot a5game.app

七、一些心得 slotdemo a5game.app

(一)AI 编程确实提升效率

对于 略懂编程的人来说,AI可以快速生成基础代码、提供优化建议、帮助调整结构,效率较完成重构插件有极大提升。 Cassinos a5game.app

(二)AI 更适合“辅助开发” 寻秦记爱壹帆yfsp.app

AI 生成的代码通常需要手动微调,特别是涉及调整UI元素,基本不可能一步到位,但它仍然可以大幅减少重复编码工作。

 

40目录 0
    讨论 我来说一句 发布发表评论 发布4等 4 人为本文章充电 还没有介绍自己 关注