拿到平头哥RVB2601已有数月,当然其间发生过什么硬件损坏之类的暂且不提,目前拿到手上的这款,至少显示是很不错的。
大家都知道,平头哥RVB2601采用的屏是一块64*128的单色屏,其demo是基于lvgl的,lvgl最大问题就是没有中文字库(别提 lv_font_simsun_16_cjk,常用字不全不说,还是繁体的),基于此,我制作了一个字模工具(见附件)。
这里,我先介绍一下unicode吧。
Unicode是universal和code合并而成的一个单词,一般中文翻译为万国码,当然你非要说uni是唯一(unique)或者大学(university)的缩写,也是有的(我见过有称其为统一码的),它的作用是可以使用唯一的数字标识各种语言(数字、英文、中文、德文、日文……),好处是不会发生冲突,但缺点就是没有一个font文件能涵盖所有unicode。上文提到的cjk(不是仓老师)就是unicode中一个子集,为Chinese、Japanese、Korean的缩写。更多相关知识自己到网站上去学习(https://www.unicode.org/)。
大家在使用聊天工具或是邮件中,有时候会插入一个小图片,来活跃气氛。在unicode的定义中,一般把0~0xFFFF的unicode叫做BMP(Basic Multilingual Plane,基本多文种平面),包含了绝大多数文字,又称为0平面,这也是电脑中常用字符集的可以支持的范围。再其之上,人们也定义了部分数值超过0xFFFF的字符含义,比如0x1F600,定义为笑脸,这也是致敬最早通信所用字符的扩展,用U+1F600标识,其中笑脸一类的小图片,被称为“表情符号emoji”。
当然表情符号并不是只有表情,广义的说各种常用的图案都可以称之为“表情符号”,例如
图片来自unicode官网
这些可以被大量重复使用的图片,被简化以后,纳入unicode,都统一称之为“表情符号”。
表情符号“似乎”还没有被任何一个嵌入式开发工具所集成进来(当然lvgl更没有),基于此,我做了本工具(当然现在只能叫做原型机),它是一个字模工具,可以提取“AndroidEmoji.ttf”中特定的表情符号生成数组,并存入头文件myfont.h中,在程序中可以通过序号直接引用。
用在RVB2601上的效果如下:
附录:animal.txt里面的文字可以按照uincode的规范修改,只要font文件能够识别就行。
https://download.eeworld.com.cn/detail/tobot/623315
|