Skip to content

LuorixDev/NovelComicReader

Repository files navigation

ESP32 小说/漫画阅读器

基于ESP32和2.8寸LCD显示屏的小说/漫画阅读器,支持文件浏览和图片显示。

Tips: 1.烧录代码

2.可使用项目给的字库,常见标点和2000+中文。 使用tools文件夹中的sh(需要根据你的环境自己改下)生成font_data文件夹(这一步可以自定义生僻字字库),记得包含☐字符

注意:font_data中json和16x16_1.font是索引文件,加载极慢(20s一个字),cache子文件夹下的是生成的高速缓存,1s之内可以渲染一个字,适合常用字渲染,开机后如果不关机,有内存缓存25k,可以做到1s200+字,这才是真正的速度。

3.将生成的font_data文件夹放置在SD卡根目录下(注意debug文件夹不需要!!!,cache酌情删减,假如不删的话也就多耗点SD卡存储,还可以加快渲染速度)

4.将SD卡插入ESP板

5.开始使用

6.新建一个文件夹

7.如果文件夹下有.info文件并且内容为{"type":"comic"}并且有1.bmp,2.bmp......就会被视作漫画文件夹,esp点击该文件夹即可开始观看

8.点击下部1/4向下翻页,向上同理,中间点击通过内核报错大雾重启到文件夹,这个bug有空再修

9.小说阅读没写完,实现了个txt查看,勉强可以先用了

硬件要求

  • ESP32-32E开发板
  • 2.8寸LCD显示屏(ILI9341驱动)
  • XPT2046触摸屏
  • MicroSD卡槽

引脚连接

LCD屏幕

  • CS: GPIO15
  • DC: GPIO2
  • MOSI: GPIO13
  • SCLK: GPIO14
  • RST: EN (ESP32复位引脚)
  • MISO: GPIO12
  • 背光: GPIO21

触摸屏

  • CS: GPIO33
  • IRQ: GPIO36
  • MOSI: GPIO32
  • MISO: GPIO39
  • CLK: GPIO25

SD卡

  • CS: GPIO5
  • MOSI: GPIO23
  • MISO: GPIO19
  • SCK: GPIO18

安装步骤

  1. 安装Arduino IDE
  2. 安装ESP32开发板支持
  3. 安装以下库:
    • TFT_eSPI
    • XPT2046_Touchscreen
    • SD
  4. 配置TFT_eSPI库:
    • User_Setup.h复制到TFT_eSPI库目录中的User_Setup_Select.h同级目录
    • User_Setup_Select.h中注释其他配置,启用刚复制的配置文件

使用方法

  1. 准备SD卡:

    • 格式化为FAT32文件系统
    • 在根目录创建文件夹存放内容
    • 对于漫画文件夹,创建.info文件标记
  2. 功能说明:

    • 开机自动进入文件浏览界面
    • 显示SD卡中的文件夹
    • 支持分页浏览
    • 漫画文件夹会显示特殊图标
    • 点击返回按钮可返回上级目录
    • 使用左右箭头按钮翻页
  3. 操作说明:

    • 点击文件夹:进入该目录
    • 点击返回:返回上级目录
    • 点击箭头:翻页
    • 点击图片:进入图片查看模式
    • 图片查看模式下点击屏幕:返回文件浏览

代码结构

  • config.h: 硬件配置和常量定义
  • router.h/cpp: 页面路由系统
  • display.h/cpp: 显示控制
  • touch.h/cpp: 触摸控制
  • sdcard.h/cpp: SD卡文件系统操作
  • pages.h/cpp: 页面实现
  • NovelComicReader.ino: 主程序
  • User_Setup.h: TFT_eSPI库配置
  • library.json: 项目依赖配置

注意事项

  1. 确保SD卡正确格式化为FAT32
  2. 文件名请使用英文或数字
  3. 图片格式支持取决于使用的图片解码库(需另行实现)
  4. 如遇显示异常,可尝试重新校准触摸屏参数

扩展开发

该项目使用模块化设计,易于扩展新功能:

  1. 添加新页面:

    • 继承Page类
    • 实现display()和handleTouch()方法
    • 在Router中注册页面
  2. 添加新功能:

    • 可以在现有类中添加新方法
    • 或创建新的功能类
    • 遵循单一职责原则
  3. 自定义界面:

    • 修改UI常量在config.h中
    • 可以自定义文件夹图标样式
    • 可以调整字体大小和颜色

故障排除

  1. 显示不正常:

    • 检查LCD引脚连接
    • 确认User_Setup.h配置正确
    • 尝试调整SPI频率
    • 确保TFT_eSPI库版本 >= 2.5.0
    • 检查字体设置是否正确加载
  2. 文字显示问题:

    • 确保User_Setup.h中的字体定义正确启用
    • 尝试使用不同的字体(FONT2通常最稳定)
    • 调整文本大小和对齐方式
    • 如果中文显示异常,需要额外配置字体文件
  3. 触摸不响应:

    • 检查触摸屏引脚连接
    • 确认触摸参数校准正确
    • 检查中断引脚状态
  4. SD卡读取失败:

    • 检查SD卡格式是否为FAT32
    • 确认SD卡引脚连接正确
    • 尝试重新格式化SD卡

About

基于ESP的NovelComicReader

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published