Все остальные элементы схемы на обороте модуля экрана буду располагать, как придёт платка.
…Интересно, как попробовать сделать навигацию по фоткам, если их будет много?
с dithering поиграйся, с разными алгоритмами. Понаряднее картинки будут на inkpaper. Или в фотошопе, при конвертации цветной или grayscale в битмапу, поиграйся с dithering, или в той программе-конвертере, если она это позволяет.
Я вот подумал, в принципе можно и самому написать всё как хочется и в 4 цветах если использовать экранный буфер из ОЗУ на 30 кб. То есть по аналогии с умными пикселями…
… Попробовал пока простенькую функцию на раскраску экрана заданным цветом:
#include <SPI.h>
#include "epd4in2_V2.h"
#include "imagedata.h"
unsigned char bufer[30000];// массив для данных цвета пикселей экрана
Epd epd;
void setup() {
/////////////////////
epd.Init_4Gray();
epd.Set_4GrayDisplay(gImage_4in2_4Gray4, 0, 0, 400, 300);
delay(2000);
Dis_Cvet(3);
delay(2000);
Dis_Cvet(2);
delay(2000);
Dis_Cvet(1);
delay(2000);
Dis_Cvet(0);
delay(2000);
// epd.Clear();
////////////////
epd.Sleep();
}
void loop() {
// put your main code here, to run repeatedly:
}
/////////////////////
void Buf_Ris(){//
epd.Buf_4GrayDisplay(bufer,0,0,400,300);// самописная функция на основе штатной epd.Set_4GrayDisplay(gImage_4in2_4Gray4, 0, 0, 400, 300);
}
/////////////////////
void Dis_Cvet(int cvet){//раскраска экрана заданным цветом
for(int k=0;k<30000;k++){
if(cvet==3){bufer[k]=0b00000000;}//белый цвет
if(cvet==0){bufer[k]=0b11111111;}//чёрный цвет
if(cvet==2){bufer[k]=0b01010101;}//светло-серый цвет
if(cvet==1){bufer[k]=0b10101010;}// тёмно-серый цвет
}
Buf_Ris();
}
/////////////////////
В моём случае трудности, видимо, будут с сопоставлением координат пикселей и адресацией бит в байты массива-буфера.
Я, наверное, уже безнадёжен. Кто что видит в этой “Бумажной электронике”, а я на 11-й секунде надпись на обороте: “Вы держите в руках необычную подделку”.