项目摘要:这份报纸的文章由 Raspberry Pi 采集,经过 ChatGPT 编辑,修剪和调色后格式化显示到13.3寸电子墨水屏上。
软件工程师Eike Hein使用OpenAI的ChatGPT大型语言模型(LLM)制作了一份客制化报纸,该报纸自动更新显示在由乐鑫 ESP32芯片所驱动的电子墨水屏面板相框(13.3英寸,分辨率为1600×1200,150PPI)上。Hein解释道:"Hyepaper是一份在相框中自动更新的报纸,旨在作为装饰品,它每天会从深度睡眠中唤醒一次,从而获取并更新一张新报纸图片。"
在这个ePaper项目中,Hein使用OpenAI的ChatGPT服务总结多个可配置新闻来源的文本。它针对他和妻子喜欢的一些网站,通过ChatGPT API对文章进行修剪以缩小规模,统一风格并生成适当简短的标题以进行布局。它还从OpenWeatherMap API中获取天气预报,这个信息显示在标题的右上角——这个显示的布局是受New York Times的头版启发。有了这些内容,结果看起来和读起来就像一份报纸,包括黑色字体、图像和格式,但完全是客制化的。
Hyepaper硬件电路板的核心是 ESP32 MCU 板,带有 8MB 的 PSRAM,可轻松处理大型图像缓冲区。在优化构建以实现低功耗和最长电池寿命时,绕过了 MCU 分线板上的电压转换器和 BMS,并在 1100 mAh LiPo 电池和 MCU 板之间使用了不同的部件(例如 MT3608 DC-DC 转换器)。ESP32 每天由超低功耗的RV-3028-C7 实时时钟(RTC)唤醒。进一步连接到MCU的是具有ITE IT8951 EPD控制器的电子墨水屏驱动板。由于电子墨水显示面板是双稳态的,不需要在两次刷新之间通电,因此驱动板位于 5V 继电器后面,以避免空闲功耗。
总体而言,前端大部分时间都处于深度睡眠状态。在清晨,它醒来,连接到WLAN,从我家庭网络(运行我大部分家庭IT)上的Raspberry Pi 4B获取新的报纸图像,打开控制器板的电作者这个项目的目的之一是在微控制器上尝试 Rust,作者在 Rust 中编写了 ESP32 的所有板载业务逻辑,包括 IT8951 EPD 控制器的自定义驱动程序。
在 Pi 上运行的后端是用 Python 编写的。它包括针对作者和妻子喜欢的一些网站的基于 lxml 的文章抓取工具,然后通过 OpenAI 的 ChatGPT API 运行内容,以修剪文章的大小,执行轻型风格转移并为布局生成适当简短的标题。它还从 OpenWeatherMap API 获取天气预报,该预报位于标题的右上角 - 布局当然深受《纽约时报》头版的启发。有了这些内容,它就会使用 Jinja2 模板库生成一个 LuaTeX 输入文件。
LuaTeX 从这个输入文件生成一个 PDF,然后使用 Ghostscript 将其栅格化为 PNG。ImageMagick用于对图像执行几个后处理步骤,包括从纹理添加纸张规格,在随机选择的位置(在可读性的某些范围内)进行效果的咖啡渍,色彩空间转换,最后生成可以直接进入IT8951的帧缓冲存储器的原始位图。
该文件使用 Python 的内置 HTTP 服务器库通过 HTTP 提供给嵌入式前端。报纸生成器作业和服务器都使用 systemd 用户服务单元安装在 Raspbian OS 上。
项目主要器件:
该项目已经实现基本功能,有需求可以私信合作~
关注公众号“嵌入式杂谈”,了解更多有趣好玩的嵌入式项目信息,感谢大家的点赞,在看~
本文暂时没有评论,来添加一个吧(●'◡'●)