如何制作一个带有电子墨水显示屏的数码相框

电子说

1.3w人已加入

描述

第1步:工具和材料

数码相框

工具:

烙铁

3D打印机(可选)

手锯

热胶枪

材料:

4.3英寸电子墨水显示模块

microSD卡

纽扣电池座/3节AAA电池座

arduino mini pro + USB转串口转换器

BC548晶体管

瞬时按钮

1k电阻

100k电阻

Pref board

相框9x13cm(或类似尺寸)

第2步:接线

数码相框

数码相框

数码相框

数码相框

数码相框

首先,测试你的组件是否是一个好主意工作。幸运的是,这很容易做到。只需将屏幕连接到Arduino,就像我的原理图一样,除了你不必使用的晶体管和按钮。只需将电源引脚直接连接到5V。您可以使用epd.h库中的示例草图。

原理图非常简单,因为只有几个组件。但是,电阻器,晶体管和按钮不能只是漂浮在半空中。最简单的解决方案是将它们焊接在一个小型的预制板上。准备好这块电路板后,它们都可以布局并永久连线。

当然,为了摆放零件,你需要准备相框。我选择了9x13cm的相框,可以舒适地容纳显示器和其他电子设备。同样大小的相框将完成这项工作。这只是为屏幕制作切口的问题。如果您有相同尺寸的框架,您可以像我一样3D打印背面,因为我无法在一块硬化纸板上切一个孔。..

您可能会注意到我正在使用Arduino nano我建议使用Arduino mini pro。您可以使用其中任何一个,但需要卸下电源调节器和LED。如果你正在使用nano,你还必须删除USB到串行芯片和任何其他不必要的组件。这是必要的,否则你的电池将在几天内耗尽。 Arduino mini pro没有那么多不必要的组件。

一旦将所有部件连接在一起,请将电线向下拉以保持低调。我还在玻璃框架的背面放置了纸张切口,以隐藏除屏幕之外的所有东西。

第3步:软件

该软件是用Arduino 1.8.5编写的。它需要两个库,epd和Arduino低功耗。这两个都应该在库管理器中。安装这两个库后,您应该能够编译并将代码上传到Arduino。如果你想配置它,实际上只有一个变量refreshRate。这是加载图片之间的时间。默认情况下,它设置为10800,即24小时。这意味着一个单位是8秒。因此将其设置为1,图片将每8秒更新一次。将其设置为2将为16秒,将其设置为10800为24h。

#include

#include

const int wake_up = 6;

const int reset = 5;

const int lcd_on = 4;

const int button = 3;

int refreshRate = 10800; //time between loading images. number you enter * 8 = seconds between refresh (10800 = 24h)

int counter = 1;

int refreshCounter = 0;

int ByteReceived;

bool errorFlag = false;

bool picSend = false;

bool picLoaded = false;

void(* resetFunc) (void) = 0;

void setup(void)

{

pinMode(lcd_on,OUTPUT);

pinMode(13,OUTPUT);

digitalWrite(13,LOW);

//LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

}

void loop(void){

DrawPic(counter);

counter++;

}

void wakeUp(){

refreshCounter++;

if(refreshCounter 《 refreshRate) enterSleep();

}

void DrawPic(int index){

pinMode(lcd_on,OUTPUT);

pinMode(13,OUTPUT);

digitalWrite(13,LOW);

//delay(2000);

digitalWrite(lcd_on,HIGH);

delay(300);

epd_init(wake_up, reset);

epd_wakeup(wake_up);

epd_set_memory(MEM_TF);

epd_clear();

digitalWrite(13,HIGH);

//int index = 7;

String indexStr = String(counter);

String str = ‘i’ + indexStr + “.BMP ”;

char character[str.length()] ;

str.toCharArray(character, str.length());

epd_disp_bitmap(character, 0, 0);

epd_udpate();

epd_enter_stopmode();

while(1){

ByteReceived = Serial.read();

if(ByteReceived == 13){

picSend= true;

}

if(ByteReceived == 69){

errorFlag= true;

//if(!picSend && counter == 1) noSDcard();

//if(picSend && counter == 1) noPic();

//resetFunc();

counter = 0;

//Serial.flush();

break;

}

if(ByteReceived == 75 && picSend && picLoaded){

break;

}

if(ByteReceived == 75 && picSend){

picLoaded = true;

}

}

digitalWrite(13,LOW);

digitalWrite(lcd_on,LOW);

picLoaded = false;

errorFlag= false;

picSend= false;

refreshCounter = 0;

enterSleep();

}

void noSDcard(){

epd_wakeup(wake_up);

//delay(5000);

epd_clear();

epd_set_ch_font(GBK32);

epd_set_en_font(ASCII32);

epd_disp_string(“Can‘t find SD card”, 0, 300);

epd_udpate();

delay(10000);

}

void noPic(){

epd_wakeup(wake_up);

//delay(5000);

epd_clear();

epd_set_ch_font(GBK32);

epd_set_en_font(ASCII32);

epd_disp_string(“Can’t find this picture”, 0, 300);

epd_udpate();

delay(10000);

}

void enterSleep(){

attachInterrupt(1, wakeUp, RISING);

LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

wakeUp();

detachInterrupt(1);

}

步骤4:准备照片

数码相框

数码相框

屏幕分辨率为800x600,有4种颜色,黑色,白色和两种灰度。屏幕还有一个我们将使用的读卡器。然而,仅仅上传卡上的图片是行不通的。显示器仅支持BMP文件,文件大小越小,加载速度越快,这将节省大量电池。

幸运的是,所有这些问题只需一个程序即可解决。 Adobe Photoshop。我知道不是每个人都有这个程序,但你可以随时使用GIMP或绘画。但我会告诉你如何在Photoshop中完成所有这些工作。

我建议观看这个视频,因为它更具描述性。基本上,首先将图像拖动到PS。转到图像 - 》图像大小。确保单位为像素并将高度设置为600.宽度将自动更改。如果宽度不是800,则需要移除图像的边以获得正确的分辨率。转到图像 - 》画布大小。再次将单位设置为像素并将宽度设置为800.按“确定”,然后按“继续”。您的图像现在应该是正确的尺寸。

电子墨水屏幕上的图像通常看起来有点暗,所以最好将亮度调高一点。单击右下角的月亮图标(带有黑色和白色半部的圆圈),然后选择“亮度/对比度”。我通常将亮度设置为30但你当然可以玩它。接下来,我们将其更改为4种颜色,以便我们可以预览它的外观。转到图像 - 》模式 - 》索引颜色。..。如果它要求您展平图层,请单击“确定”。在调色板中选择Local(自适应)。在颜色放4并单击确定。接下来转到图像 - 》模式 - 》颜色表。你应该看到你的4种颜色。将左侧的一个设置为黑色,将右侧的一个设置为白色。两者之间应该是灰色阴影。选择确定。接下来转到文件 - 》另存为。选择BMP作为类型。

文件的名称应为iX.BMP,其中X是图片的编号。如果它是第一个你将它命名为i1并点击保存.BMP将自动添加。第二十六张图片将是i26.BMP等。一旦你点击保存,你将获得BMP选项。将深度更改为4位并点击确定。

确保您的microSD卡格式化为FAT32格式。该卡应该是空的,你可以只复制你的照片。如上所述,它们应该从i1到i150命名,或者你的最后一张图像。例如,如果你错过了一个号码,你将拥有i21.BMP然后i23.BMP i23及更高版本永远不会被加载,因为它将在21之后回到1.

步骤5:完成

加载图像后,您只需插入存储卡即可并将电池放入。第一张图像应在几秒钟后加载,并且每24小时更新一次。尽管只有四种颜色,但图像看起来非常壮观。对于如此小的屏幕,分辨率非常高,自适应色彩扩散使其看起来至少有50种灰度。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分