树莓派 java 驱动 微雪 墨水屏 4灰阶 epaper

结果展示

  1. 4级灰度阶梯
    灰度阶梯
  2. 4灰阶做图展示,如果侵权,请帮忙告知,马上删除
    原图:
    在这里插入图片描述
    灰度图:
    4灰阶皮卡丘图片

B站视频指导

视频指导:视频地址
https://www.bilibili.com/video/BV1bQ4y1Z7xL

java驱动

回顾

  1. 本文承接之前的另一篇文章,如果还没看过,请优先了解学习一下——《树莓派 java 驱动 微雪 墨水屏 epaper

官方说明

  1. 关于这个4阶灰度,官网中是有明确提到驱动方式的,具体说明请访问**官方4.2寸墨水屏4灰阶驱动说明**
  2. 但是官方说明中的以下部分,说的应该是有问题的:
    1. 官网截图见下,这个介绍我感觉是错的,或者说如果有其他解释,请看得懂的同学也告知一下:
      官方4.2寸墨水屏4阶灰度说明
    2. 在实际的操作中,应该是如下这样,才能真正4阶展示:
      4级灰度像素定义

java驱动

具体代码已经上传只github,github代码地址

4级灰度阶梯

  1. 相当于把4.2寸的墨水屏分成4列,各列对应的0x10 0x13的数据依次为00、01、10、11.
  2. 关键方法代码见下,这里重点说一下,一定要专门设置四阶灰度对应的LUT波形——graySetLut()
     /**
     * 在屏幕上展示4个颜色阶梯(色阶)
     * @throws IOException
     * @throws InterruptedException
     */
    public void display4GrayScale() throws IOException, InterruptedException {
        System.out.println("display4GrayScale ===");
        for4in2Demo.sendCommand(0x92);
        for4in2Demo.sendCommand(0x10);
        for (int i = 0; i < WIDTH * HEIGHT / 8; i++) {
            int index = (i % 50) / 12; //每个颜色阶梯使用12 *8个像素展示
            if (index > 3) index = 3; //只展示0~3这4个色阶,大于3就展示第三个色阶
            if (index == 0 || index == 1) {
                for4in2Demo.sendData(0x00);
            } else if (index == 2 || index == 3) {
                for4in2Demo.sendData(0xFF);
            }
        }
        for4in2Demo.sendCommand(0x13);
        for (int i = 0; i < WIDTH * HEIGHT / 8; i++) {
            int index = (i % 50) / 12;
            if (index > 3) {
                index = 3;
            }
            if (index == 0 || index == 2) {
                for4in2Demo.sendData(0x00);
            } else if (index == 1 || index == 3) {
                for4in2Demo.sendData(0xFF);
            }
        }
        graySetLut(); //这里需要特别注意,必须要设置色戒对应的波形
        for4in2Demo.sendCommand(0x12);
        for4in2Demo.readBusy();
    }
    

4灰阶做图

  1. 原理很简单,初始化一个type为BufferedImage.TYPE_BYTE_GRAY的BufferedImage(初始化一个灰阶的图片,这样初始化出来的图片,是0~255级灰阶的图片),参考方法:com.chenqi.waveshare.for4in2.GetEpaperImg#getGrayImg
  2. 然后将以上得到的256级(0到0xff)灰阶的图片,适配为4阶灰度,比如0到0xff/4为第一阶,0xff/4到0xff/4x2为第二阶,0xff/4x2到0xff/4x3为第三阶,0xff/4x3到0xff为第四阶。
  3. 关键4级灰阶做图方法参考这个方法:com.chenqi.waveshare.for4in2.Epaper4in2_4GrayScale#displayImgWith4GrayScale

后记

  1. 4级灰阶已经初步可以展示图片,但是还是非常粗糙,不够细腻。展示一个实际的相片见下,简直看不出来是啥。
  2. 下一篇,我们来搞搞16灰阶,使我们的墨水屏能真正展示些图片内容。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值