摘要:主页:时间显示,温湿度显示电子书架:支持256本txt文本,仅支持GB2312编码章节&导航:支持查看章节目录,搜章节,一键跳转章节,保留最新搜索记录,最大支持搜索5000章阅读设置:支持调节字体,字体大小,字间距,行间距,内置6款字体(可自行更换/增加字体)
做了一个墨水屏阅读器!
持续使用,续航长达1个月!
它有什么功能&亮点?软硬件怎么设计?制作成本是多少?下文一一为你解答~
主页:时间显示,温湿度显示电子书架:支持256本txt文本,仅支持GB2312编码章节&导航:支持查看章节目录,搜章节,一键跳转章节,保留最新搜索记录,最大支持搜索5000章阅读设置:支持调节字体,字体大小,字间距,行间距,内置6款字体(可自行更换/增加字体)续航达1个月以上:低电压、定时无操作自动关机其他:开关机提示声、过渡灯效,按键灯效演示一下!
以上图片均进行了倍速处理
整个系统由——供能电路、下载电路、主控及外设电路三部分组成。
拓扑结构
原理图
PCB图
(1)硬件参数
主控:STM32F103VGT6存储:W25Q128JVSIQ屏幕:大连佳显GDEQ0426T82串口:CH340X体感:SHT30-DIS时钟:RX8025T-UC电池:1000mAh/3.7V(中顺芯255464)尺寸:114x72x7.4mm功耗:约6.08mWh(2)设计说明
本系统提供两种程序下载方式:
SWD串口ISP串口这里主要讲一下ISP自动下载电路的设计。
这部分电路参考了野火mini开发板,并以此为基础,更换芯片为CH340X。供电为外部供电,以减少功耗。同时增加了一个上拉电阻R79,拉高S8550电压,防止MCU出现工作异常(别问我怎么知道的,说多了都是泪~)
阅读器的核心原理:
通过[FatFs文件管理系统]的API接口读取SD卡内容调用外设,获取时间、温湿度等信息对数据进行处理后,显示在墨水屏上以实现阅读功能本章将分享——串口下载、更换字体、代码烧录步骤。
(1)串口下载
①首先打开阅读器程序编译生成hex文件
②使用数据线将阅读器与电脑相连
③打开FlyMcu软件
④选择生成的hex文件+对应的串口COM
⑤最下列选择DTR低电平复位,RTS高电平进Bootloader如下图所示:
⑥开始编程
⑦长按阅读器电源键不放,等待右下角提示进度100%后再松开电源键!!!注意点击下载后一定等待下载完成后才可松开电源键,否则会下载失败!如图:
(2)如何更换系统字体?
①网上相应的字体.ttf格式文件
②双击安装
③打开GTFontLab软件(自行去高通官网下载)
④右侧字体栏下拉找到刚刚安装好的字体
⑤选择编码格式为GB2312_80,排置方式-字节横置,字节方式-高位在前。勾选bin文件,使用水平偏移,垂直偏移微调字节居中,黑白阈值调节饱满度,字号16、点阵宽度16、点阵高度16。如图所示:
生成字库注意名称不要带中文,全英文名称也不必过长,否则会导致字库写入失败,别问我怎么知道的!!!
⑥再重复上述步骤更改字号、点阵宽度、点阵高度分别为24、32,生成24x24和32x32大小字体文件。
一种字体需要3个文件以支持阅读器字体大小设置功能,一套字体的正确示例文本如下:
⑦将需要替换的字体生成后存放在SD卡下的srcdata内,具体路径如下:
然后替换一种已有的字体,并且使用已有字体的文件名,
⑧以上操作都完成后,将SD卡插入阅读器
⑨将“刷外部FLASH字库”工程的程序编译下载
⑩手动按下阅读器复位按键进行系统复位
⑪USB口连接电脑,打开串口软件
⑫根据串口输出信息提示操作即可,字体写入完成后界面如下:
写入完成后,再重新烧录阅读器程序,字体就更换完成啦~(注意:更换字体会导致阅读器系统设置、文本阅读进度等数据丢失,介意的谨慎更换!!!)
(3)代码烧录顺序
焊接完成后需要先手动校准年月日,然后写入字库,最后再写入系统主程序才可以正常使用。
那怎么手动校准呢?
首先打开“手动校时”工程,根据实际时间修改下列参数,注意星期部分对应的数值!
if(KEY_NoDithering_Scan(KEY_100_PORT,KEY_100_PIN)==Click) // 下翻页按键被按下{ printf("\r\n下翻页键被按下!\r\n");// 星期日 星期一 星期二 星期三 星期四 星期五 星期六// 0x01 0x02 0x04 0x08 0x10 0x20 0x40 Set_Time.year = 25; // 年Set_Time.month = 0x01; // 月Set_Time.day = 0x07; // 日Set_Time.week = 0x04; // 星期Set_Time.hour = 17; // 时Set_Time.minute = 30; // 分Set_Time.second = 00; // 秒 RX8025T_Set_Time(&Set_Time); // 设置时间 printf("时间设置完毕\r\n"); }复刻成本大约250+
对于DIY来说,这个成本貌似不算很高?你还有更好的想法吗?
如果是你的话?你会选择购买一个,还是DIY一个,体验其中的原理和乐趣呢?
开源资料参考:https://oshwhub.com/hmgs271828/book_reader
来源:嘉立创EDA