小白程序员对墨水屏项目PaperPI的改造之路
小白程序员对墨水屏项目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
}
这样布局中只保留一个 Image 元素。
(3)编写插件代码
创建demo_plugin_pistatus.py。我主要使用 AI生成代码(chatgpt网页版)。
基本提示词如下: slotpix a5game.app pragmaticplay a5game.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 | 插件 | 数据源 |
| 成语解释 | 本地 JSON格式 成语库 | |
| 慢电影 | 随机抓取MP4视频文件帧 | |
3 | 山水画 | 生成矢量山水画的网站截图 |
4 | 14天天气 | 调用Open-Meteo API |
5 | 豆瓣书籍 | 预先生成的豆瓣图片库 |
6 | 电影资料 | 调用TMDB API |
| 24小时降水预报 | 中央气象台天气网站 | |
| 日历 | AI绘制 | |
9 | Unsplash图片 | 调用Unsplash API |
10 | 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)。 电影小宝影院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
30目录 0