自己做墨水屏阅读器

2023-08-21 11:56:12 234点赞 683收藏 218评论

看到大尺寸的墨水屏阅读器实在是太贵了。正好有时间就想,能不能用开源的硬件自己做一个。这两年玩开源硬件开发,发现价格便宜,耗时长,还非常有成就感(家里的珊瑚缸的LED灯光控制、造流泵、滴定泵控制,还有一些关键指标的测量都是自己动手做的)。

马上动手,先搞个简单的使用串口墨水屏。先寻找硬件,很快就在小黄鱼全部选定。

1、10.2寸,黑白双色局刷,分辨率960*640,SPI总线 24PIN排线, 160元

自己做墨水屏阅读器

2、ESP32墨水屏开发板支持tf卡,锂电池充放电 60元

自己做墨水屏阅读器

3、1000毫安锂电池15.1元

10.2墨水屏阅读器,整体硬件成本一共160+60+15.1=235.1元,感觉有点贵,心疼。

计划实现的功能:

1、 电子说阅读(这个开发板上的ESP32有16MB存储,所以这个阅读器支持本机存储和TF卡存储);

2、 图片显示(完成功能验证,直接读取显示jpg文件,速度太慢。暂停);

现在跟大家聊一下计划做的这个电子阅读器,开发班使用的.ESP32-WROVER-E模块 8MB内存,16MB 存储,USB-C充电。

自己做墨水屏阅读器

我使用Arduino开发,因为简单。我就是一个业余爱好者,怎么简单怎么来(项目开源地址https://gitee.com/vonteng/epdlangke开源地址)。下面介绍一个简单开发过程:

1、 搭建开发环境,此处省略一千字;

2、 WiFi上传书籍到本机或TF卡存储

3、 连接驱动墨水屏;

4、 读取书籍TXT文件,创建书籍目录索引文件;

5、 分页读取书籍TXT文件,并显示;

6、 使用EEPROM记录设备配置及阅读记录(书签);

2、WiFi上传书籍到本机或TF卡存储

简单修改使用Arduino安装配置后代的例程就可以运行了。使用的是例程(WebServer>>>SDWebServer)

因为要同时使用开发板自带的16MB存储和SD(TF)所以修改如下:

(参考例程FFat>>>FFat_Test);项目添加一个全局变量bool BooKFat,值为true使用FFat操作开发板自带的16MB存储使CURD。可以在初始化时,直接调用writeFile方法写一个index.htm文件,用于书籍文件上传页面。如果上传的文件名相同,会进行覆盖操作。

3、连接驱动墨水屏

使用的是开源的GxEPD2库,在Arduino下载安装完成GxEPD2库后,使用的是例程(GxEPD2>>> GxEPD2_SD_Example)因为使用SD和墨水屏都需要SPI。所以重要参加了例程的以下代码:

#if defined(ESP32) && defined(USE_HSPI_FOR_EPD)

hspi.begin(13, 12, 14, 15); // remap hspi for EPD (swap pins)

display.epd2.selectSPI(hspi, SPISettings(4000000, MSBFIRST, SPI_MODE0));

#elif defined(ESP32) && defined(USE_HSPI_FOR_SD)

SPI.begin(13, 12, 14, 15); // remap SPI for EPD

hspi.begin(SCK, MISO, MOSI, SS); // remap hspi for SD

#endif

墨水屏定义使用GxEPD2_BW< GxEPD2_1160_T91, GxEPD2_1160_T91::HEIGHT / 2>

4、读取书籍TXT文件,创建书籍目录索引文件,分页读取书籍TXT文件,并显示

仍然可以(参考例程FFat>>>FFat_Test),此处需要补充说明的是因为开发板自带的8MB的外部RAM,所以在读取操作文件时,尽量使用了外部RAM。

heap_caps_malloc(size,MALLOC_CAP_SPIRAM) ,还有使用file.seek(p)读取指定页码的文字内容。中文汉字的显示使用u8g2_wqy的字库

打开书籍文件后,逐页读取文字内容,使用Regexp库实现正则表达式,来查找章节文字,并记录章节所在的页码。

String sfindChapter(String str) {

MatchState ms((char *)str.c_str());

char result = ms.Match("(%第+[一二三四五六七八九十百千零]+%章)", 0);

if (result == REGEXP_NOMATCH) {

result = ms.Match("(%第%d+%章)", 0);

}

char cap[50];

return String(ms.GetMatch(cap));

}

给大家看看现在的进度

自己做墨水屏阅读器

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
218评论

  • 精彩
  • 最新
  • 撸主,我们要团购

    校验提示文案

    提交
    加一

    校验提示文案

    提交
    佳佳一

    校验提示文案

    提交
    还有38条回复
    收起所有回复
  • 众筹开模,实现墨水屏阅读器自由摔的中国梦。

    校验提示文案

    提交
    支持,插眼等开团

    校验提示文案

    提交
    收起所有回复
  • 撸主要是能搞一个手机页面同步显示在墨水屏的墨水屏便携屏的就好了

    校验提示文案

    提交
    这个可以有 [皱眉]

    校验提示文案

    提交
    这个好,墨水屏投屏 [高兴] 拼多多投屏神器和墨水屏组装一起?

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 牛!要是能耍安卓就更厉害了

    校验提示文案

    提交
    那弱鸡指令集处理器,不太行,需要上树莓派,香橙派一类的,成本立马翻倍

    校验提示文案

    提交
    用Zero的板子,成本就可以省不少。

    校验提示文案

    提交
    收起所有回复
  • 求开团

    校验提示文案

    提交
  • 不光是显示,要能装软件与手机互通传书才行。不然每次拷贝书上去太麻烦。还有支持pdf剪裁,多种电子书格式。

    校验提示文案

    提交
    成本估计高多了,反正我每次都是拷贝进去看,几分钟的事

    校验提示文案

    提交
    收起所有回复
  • 开团众筹,上链接

    校验提示文案

    提交
  • 有个问题为啥非得用esp32 感觉这个性能啥也干不了,难道就没有一些性能更好的平台吗?还是因为只有这个平台有墨水屏的开源库之类的?

    校验提示文案

    提交
    性价比最高的wifi模块 其他的都是附送的

    校验提示文案

    提交
    成本问题,esp32得30块钱。撸主用的esp8266,8块钱

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 牛人,想当初我的10.2寸的花了4000买的 [邪恶]

    校验提示文案

    提交
  • 团购啊,楼主

    校验提示文案

    提交
  • 我对珊瑚led很感兴趣啊有教程吗

    校验提示文案

    提交
  • 只能支持txt要是支持全格式已经卖爆了

    校验提示文案

    提交
  • 可以申请天使基金,然后上市

    校验提示文案

    提交
  • 160的10寸墨水屏根本买不了

    校验提示文案

    提交
    哪有那么便宜的10寸墨水屏,看了元太官方的售价,光10寸的屏幕组件换算人民币就要一千多了。

    校验提示文案

    提交
    收起所有回复
  • 我不需要什么智能系统 ,只要能够顺利传书过去,看书时候不要反应慢大半拍就行了

    校验提示文案

    提交
    对,我不需要智能系统,不需要连手机,不需要连wifi。
    能支持多种格式,能用tf卡就满足了。
    墨水屏最核心的功能是看,其余花里胡哨的功能我不用。

    校验提示文案

    提交
    +1。就是看书的时候那个行距大点。换个字体就好了。

    校验提示文案

    提交
    收起所有回复
  • 做13寸显示器不是更好吗

    校验提示文案

    提交
    我要15寸看漫画

    校验提示文案

    提交
    收起所有回复
  • 12寸的才是真的贵,也是看A4幅面动画爱好者的最爱 [捂嘴]

    校验提示文案

    提交
  • 厉害极了

    校验提示文案

    提交
  • 加一,团购

    校验提示文案

    提交
  • 厉害,请问怎么加外壳?3d打印吗?

    校验提示文案

    提交
    直接拼西西买点微积木颗粒拼一下,又好看有结实,形状随自己拼。我用它拼过便携显示器,好用

    校验提示文案

    提交
    手感不太行

    校验提示文案

    提交
    还有2条回复
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
683
扫一下,分享更方便,购买更轻松