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

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

引言:

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

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

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

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

PaperPi 的运行方式非常简单。只需在配置文件中设定插件和轮播时间,它便会按照设定周期自动轮询信息页面,非常适合摆放在书桌或客厅中。 JogodoTigrinho a5game.app tigrinho gratis a5game.app

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

我使用以下硬件搭建了 PaperPi:

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

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

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

二、EpdLib 的设计理念与局限

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

但在实际使用中,我发现它存在一些问题:

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

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

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

4.错误提示不友好,当布局冲突时,系统通常只会抛出异常,很难定位是哪个元素出错或者哪个布局冲突,调试体验不友好。 fortunetigerbônusgrátissemdepósito a5game.app

三、页面设计思路 jogodotigrinhodemo a5game.app

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

每个页面只使用一个 Image 元素。

也就是说:

Layout
            └── Image

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

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

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

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

这里以 树莓派运行状态页面为例。 fortuneoxdemográtis a5game.app

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

 

图1 树莓派运行状态 爱一番yfsp.app

(一)页面信息布局:

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

(二)插件创建步骤 fortunetigerbônusgrátissemdepósito a5game.app

(1)复制插件模板 slot a5game.app ifvodyfsp.app fortunetigerdemográtis a5game.app

进入:/usr/local/paperpi/plugins/ demo a5game.app

创建目录:demo_plugin_pistatus plataformademo a5game.app

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

(2)修改布局文件

编辑 layout.py: ifuntvyfsp.app 足球比分 a5game.app

my_layout_one = {

    'image': {

        'type': 'ImageBlock', xiaobao xiaobaotv.video

        'image': True, 小寶影院电影xiaobaotv.video 爱壹帆寻秦记yfsp.app

        'mode': 'L', 一帆视频yfsp.app 爱壹帆yfsp.app

        'width': 1,

        'height': 1,

       'abs_coordinates': (0, 0),

        'random': False, Cassinos a5game.app

        'relative': False,

        'hcenter': True,

        'vcenter': True, 爱壹帆在线yfsp.app

        'bkground': 'BLACK', a5game a5game.app sugarrush1000demo a5game.app

        'rgb_support': True plataformademográtis a5game.app

    }

} 电影爱壹帆yfsp.app

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

(3)编写插件代码

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

基本提示词如下: slotpix a5game.app pragmaticplay a5game.app

  爱壹帆免费版yfsp.app

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

图片布局要求:

左上角:树莓派硬件信息、CPU类型、系统版本

右上角:CPU 温度(温度表,下面为温度值) 海外华人视频网xiaobaotv.video

中部:CPU、内存、SD 卡、Swap占用率(四个圆环图) pglucky88 a5game.app 电影小宝影院xiaobaotv.video

左下角:IP 地址、下载上传速率、读取写入速率等信息 一帆yfsp.app aiyifan yfsp.app

右下角:页面刷新时间 iyftvyfsp.app

  slotsdemo a5game.app Caça-níqueis a5game.app

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

(4)修改插件名称 pragmatic a5game.app jogosdemopg a5game.app

编辑constants.py,修改:

name = demo_plugin_pistatus

(5)修改配置文件

编辑:home/pi/.config/com.txoof.paperpi/paperpi.ini,新增: 爱壹帆影视yfsp.app

[Plugin: A Demo Plugin pistatus]

layout = layout 小宝影院在线视频xiaobaotv.video

plugin = demo_plugin_pistatus

min_display_time = 600

refresh_rate = 600

max_priority = 2

各参数说明可参考 PaperPi 项目文档。 tigrinhodemo a5game.app

(6)重启 PaperPi

重新启动paperi服务即可加载插件。

五、目前已开发的插件 slots a5game.app demotigrinho a5game.app

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

序号 爱一帆 yfsp.app

插件数据源

1 华人影视xiaobaotv.video 寻秦记爱壹帆yfsp.app pgslot a5game.app

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

2 小宝影院电影xiaobaotv.video

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

3

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

4

14天天气调用Open-Meteo API

5

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

6

电影资料调用TMDB API

7 pgslotgacor a5game.app

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

8 小宝影院xiaobaotv.video

日历AI绘制

9

Unsplash图片调用Unsplash API

10

Wiki地理调用Wikipedia API

11

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

12

印象派图片调用Wikimedia API

其中几个插件效果如下:

  • 慢电影

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

  小寶影院xiaobaotv.video

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

  • 山水画

来自项目:https://lingdong-.github.io/shan-shui-inf/,该项目完全使用 JavaScript 生成中国山水画,并输出 SVG 矢量图(图3)电影小宝影院xiaobaotv.video

图3 随机山水画

  • 14天天气趋势

使用Open-Meteo API。展示未来14天的温度、雨量和降水概率(图4)。 爱壹帆电影 yfsp.app

图4 14天天气预报图

六、提高调试效率:配置编辑器

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

主要功能:

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

图5 paperpi.ini可视化编辑器 sweetbonanza1000demo a5game.app 爱亦凡yfsp.app

七、一些心得

(一)AI 编程确实提升效率 pg a5game.app slotdemo a5game.app

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

(二)AI 更适合“辅助开发”

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

  免费在线影院xiaobaotv.video

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