科技改變生活 · 科技引領未來
本內容來源于@什么值得買APP,觀點僅代表作者本人|作者:BigBubbleGum逛閑魚的時候發現了這樣一種墨水屏——電子價簽,大家在盒馬、7Fresh、小米之家等互聯網線下店里面應該見到過,用電子價簽替代傳統的紙質價簽,可以統一管理顯示價
本內容來源于@什么值得買APP,觀點僅代表作者本人 |作者:BigBubbleGum
逛閑魚的時候發現了這樣一種墨水屏——電子價簽,大家在盒馬、7Fresh、小米之家等互聯網線下店里面應該見到過,用電子價簽替代傳統的紙質價簽,可以統一管理顯示價簽內容,并給消費者營造出一種科技感、高端感。
常見的價簽尺寸有 2.13 寸、2.9 寸和 4.2 寸,海鮮市場上價格分別為幾塊錢、十幾塊錢和二三十塊錢。電子價簽個人是沒法直接更改其顯示內容的,需要有專門的基站才能改寫。電子價簽的內部就是單片機驅動板+電子墨水屏,于是我研究了下如何讓這塊墨水屏顯示自定義圖案。
內容比較多,我將分為上下兩篇,本文將介紹下電子墨水屏的工作原理、價簽拆解、各種硬件驅動方案。下一篇將介紹墨水屏驅動板故障排除、通訊協議和驅動程序相關的內容。
我也是從零開始接觸的電子墨水屏,各種 QQ 群潛水、論壇找資料,學習途中遇到了不少坑,相信這將是你能找到最詳細的電子價簽 DIY 攻略。
一、電子墨水屏簡介
電子墨水屏也叫電子紙,常見的電子紙采用“微膠囊電泳顯示”技術(EPD)。其基本原理是懸浮在液體中的帶電納米粒子受到電場作用而產生遷移。電子墨水涂布在一層塑料薄膜上,再貼覆上薄膜晶體管(TFT)電路,經由驅動 IC 控制,形成像素圖形。
電子墨水由數百萬個微膠囊所構成,微膠囊的大小約等同于人類頭發的直徑。每個微膠囊里含有電泳粒子──帶負電荷的白色以及帶正電荷的黑色粒子,懸浮于透明液體中。
利用正負相吸的原理,當電場接通時,該區塊對應的黑或白粒子會移動至微膠囊的頂端,使用者在該區塊上,就能看見白色或黑色。
常見的電子紙是黑白色的,電子價簽還有一種三色電子墨水屏,系統運作原理與雙色系統類似,施加不同的電壓,使不同顏色的粒子移動至上層,看見不同的顏色。
電子墨水屏易于閱讀:電子紙顯示屏是靠反射環境光來顯示圖案的,它具有紙張印刷般的效果;
輕薄靈活 : 因為結構上比較簡單外,加上電子紙本身是基于柔軟的塑料薄膜的材料,造就了它天生柔韌、可彎曲的特點,可以根據需要任意裁切成各種形狀。
省電節能 :當顯示靜態圖像的時候,電子紙可以完全不耗電,就是即使斷開所有電源,電子紙顯示器依然能夠保留最后一幅畫面。
比如下面這款應用了電子紙技術的智能卡,就具備了顯示余額的功能。
還有這種 NFC 無源智能吊牌,可以通過手機 NFC 刷新顯示內容,可以用作電子「狗牌」、電子行李牌,放在店里展示收款二維碼,放在車上顯示挪車電話啥的。
二、價簽拆解
言歸正傳,首先來拆解這塊 2.13 寸的電子價簽,2.9 寸和 4.2 寸方法一樣。
價簽背面是電池倉,可以用拆機撬棒撬開,里面是兩枚 CR2450 鋰電池并聯。(不拆電池倉不影響下面的步驟)
2.13 寸價簽的型號為 Stellar-M;2.9 寸型號為 Stellar-L;4.2 寸型號為 Stellar-XL。
價簽正面的塑料面板是膠水固定,無法無損拆解。
用刀片以四周邊緣為突破口,刀片插入部分后就能輕松撬開整個面板。
過程一定要注意安全,千萬小心別割到手指,血與淚的教訓!
取下蓋板,就能掀開墨水屏,主板是卡在塑料外殼中的,輕輕一撬就能取下。
2.9 寸/4.2 寸墨水屏與主板是插座連接,可以輕松取下;
2.13 寸墨水屏跟主板是粘在一起的,首先刮除表面白色軟膠,用 180 度熱風槍(吹風機應該也可以的)邊吹邊撕,別用力,就能取下屏幕。
2.9 寸/4.2 寸屏幕是 24P 的,2.13 寸屏幕是 34P,都是 2015 年產的。
最后看一下主板,左側為墨水屏驅動電路,中間是一顆德州儀器的單片機 MSP4302553,頂上有一顆兆易 SOP8 存儲器芯片 25VQ21BT,右側是 2.4G 射頻收發芯片 A7106,負責與基站通訊。
三、墨水屏驅動基礎
1. 墨水屏驅動原理
墨水屏內置驅動器 IC,采用 COG 封裝, IC 厚度 300um,根據 FPC(柔性電路板)寬度的不同,分為 24P 和 34P。墨水屏正面朝向自己,排線朝左邊,從上往下分別是引腳 1-24。
24P 墨水屏比較常見,一些驅動板的排座也是 24P 的。
2.13 寸電子墨水屏的排線寬度是 34P 的,實際引腳數量是 26 個,裁剪時需要將上下兩個沒有連接的引腳一并減掉,就變成 24P 了。
電子價簽里面墨水屏絲印 HINK-E0213A04,跟大連佳顯公司(Good Display)的“ GDEH0213B73”屏幕型號一樣,可以在他們的網站上查詢到詳細的信息,或者去資料更齊全的微雪(Waveshare)家查看更多內容。電子墨水屏通用驅動電路如下。(24P 引腳定義和驅動電路原理詳解放在下一篇)
單片機的話推薦使用 ESP8266 模塊,比較常用的是 12E 和 12F。網絡上有豐富的例程,使用 Arduino 的開發環境,簡單易上手。
ESP8266 模塊加上串口通訊電路和電源電路就是 NodeMCU 開發板,直接用杜邦線連接墨水屏驅動板就行。
墨水屏與單片機采用 SPI 協議通訊(原理見下一篇),墨水屏的 9-14 號引腳與單片機連接,加上 3V3 和 GND,需要使用 8p 的排線將墨水屏驅動板和 NodeMCU 開發板連接。
其中引腳 10 和引腳 12、13、14 這四個墨水屏引腳 ESP8266 的連接一般是固定的,不同人寫的程序里面 BUSY 和 DC 引腳與 ESP8266 的連接會有不同,在燒錄程序的時候需要注意在源程序里面修改相關定義。
微雪家的墨水屏產品功能引腳定義如下表。
2. 24P、34P、上接、下接
剛接觸墨水屏時,被上接還是下接搞得比較迷糊,這里對這些概念做一個詳細的解釋。
24P 和 34P 是指墨水屏 FPC 排線的寬度,比如 2.9 寸和 4.2 寸以及微雪自家的墨水屏是 24P 的,排線引腳數量也是 24P;而 2.13 的價簽墨水屏排線寬度是 34P 的,排線引腳數量是 26 個,修剪掉兩旁空白部分和上下兩個引腳就是 24P 了。24P 和 34P 墨水屏引腳定義是一樣的,驅動電路通用。
對應插排線的座子叫做 FPC 母座,因為 FPC 排線只有一面有引腳,如果 FPC 座子的上面跟排線接觸就是 FPC 上接,FPC 座與排線的接觸面在下面的話就是 FPC 下接。
通常上接的 FPC 座子是抽拉式的,下接的座子是翻蓋式的,24P 還有上下面都有觸點的 FPC 座。
一般 DIY 的話屏幕跟主板平放在桌面上,排線朝上與 FPC 座子相連,用抽拉上接的座子。
2.9 寸價簽里的屏幕是翻折到 PCB 頂部,用的是 24P 翻蓋下接母座。
24P 的墨水屏的排線比較厚,跟 FPC 母座連接較緊。2.13 寸電子價簽里的 34P 墨水屏是粘貼在 PCB 上的,排線很薄,在 FPC 座子里壓不緊,可以用膠帶增加厚度。
四、墨水屏驅動方案
1. 破解通訊協議,直接驅動
真正的大佬可以不用管上面的驅動電路,自己 DIY 一個基站,連價簽外殼都不用拆,直接給墨水屏傳圖。
比如 CSDN博主 @myfish3 使用一塊伊拉克成色的 STM32 開發板和 A7105 射頻芯片在廉價的電木洞洞板上搭建了一個簡單電路,在 PC 機運行上位機,使用串口和 STM32 通信,STM32 使用 A7105 和價簽的 A7106 通信,MSP430 從 A7106 獲取并執行命令。
技術大牛往往就是這么樸實無華。
2. 下載器直接寫入程序
如果你懂 MSP430 單片機開發的話,可以用 430 launchpad 直接往電子價簽主板上的單片機燒錄程序,這個相對來說會簡單一點,網上也有很多的例程。
3. 原生墨水屏驅動電路板
對于普通的 DIYer,使用墨水屏驅動板+ESP8266 更加簡單易學。
第一種方案可以利用電子價簽 PCB 板上的原有驅動電路,首先將 msp430 和 A7106 拆下,防止干擾,節約電能。
雖然板子上留有測試點,但是與墨水屏沒有關系,不能直接利用。
經過測試,驅動電路的 9-14 號通訊引腳如下圖所示,分別接在了 430 單片機的左上部分 6 個引腳,BS 引腳要接地,方框里面有一個 MOS 管,原用于控制墨水屏的電源通斷,拆除后把紅點處的兩個引腳相連即可。
用細導線將焊盤引出,與 ESP8266 開發板相連。
3V3 和 GND 可以從背面的電池正負極上引線,這樣無需拆下電子墨水屏,也不用單獨購買驅動板,利用價簽原來的驅動電路,直接就能刷入程序改寫顯示畫面。
4. 墨水屏驅動板
上面的飛線操作過于繁瑣,建議買一個墨水屏驅動板,也就幾塊錢,用排線跟 ESP8266 相連也更加穩定。
5. ESP8266 墨水屏驅動開發板
微雪有款墨水屏開發板,將 ESP8266 和墨水屏驅動電路集成到一起,省去了排線的連接,開發更方便。
但是這種成品開發板的墨水屏跟 8266 的引腳是固定的,比如微雪開發板的引腳定義如下,網上一些墨水屏應用程序只提供固件,沒有源代碼,如果引腳定義跟微雪不一樣的話就不能使用了。
而且微雪開發板的 FPC 座是 24P 的,34P 的 2.13 寸墨水屏使用時需要裁減排線,開發板的價格也比較貴,要六七十元。
五、DIY 墨水屏驅動板
于是我自己畫了一個 ESP8266 墨水屏驅動板,畢竟嘉立創的羊毛不薅白不薅,成本只要十幾塊錢,墨水屏引腳與 8266 的連接根據自己需求修改(圖中是微雪定義),此外還有以下優點:
電路中有兩個地方可供選擇,一是 BS 接地(0)為默認的 4 線 SPI,接 3V3(1)為 3 線 SPI;二是 RESE 電阻通過撥動開關選擇,1.54/2.13/2.9 寸墨水屏選擇 3R,2.7/4.2 以及三色墨水屏選擇 0.47R。
PCB 已打樣驗證能用,電路里面用到的電阻電容電感、三極管 MOS 管都可以從價簽 PCB 上獲取。16P 的 Type-C 和 0.5mm 間距的 FPC 插座引腳密集,對于新手來說可能有些難焊,建議大量使用助焊劑。
PCB 四周留有螺絲孔,可以加上鋰電池。3D 打印個外殼,做一個墨水屏時鐘。
PCB 留有 8 個墨水屏通訊排針接口,可以只焊接墨水屏驅動電路部分,當做獨立的驅動板使用。
原理圖和 PCB 都是基于立創 EDA 設計,已開源,可以自行打樣。
國產的立創 EDA 和嘉立創免費打印真是太好用了,讓我來繼續安利一下。
PCB打樣全免費!手把手教你在嘉立創0元下單創作立場聲明:種草免費PCB打印網站-嘉立創我最早接觸電子電路設計是剛上大學那會,加入了一個叫做「電信科協」的學校社團學習51單片機,部長手把手教我們焊接最小系統板,后來焊接技術有了長進,陸續將數碼管、點陣、按鍵、各種傳感器全都焊接了上去,把一塊15x10cm的洞洞板焊的滿滿當當。幾年下來單片機編程BigBubbleGum|贊15評論7收藏71查看詳情
六、上傳自定義圖片
ESP8266 墨水屏驅動的硬件部分搞定后,就可以往里面上傳程序,顯示自定義圖案,這里以 2.13 電子價簽墨水屏為例,使用的是上面我自己做的 ESP8266 墨水屏驅動板。
軟件部分使用的是 Arduino IDE 環境,下載和安裝可以看我之前的教程。
1. 微雪本地例程
在微雪官網下載示例程序。
進入 example 文件夾中,把 esp8266-waveshare-epd 文件夾整個復制到 %LOCALAPPDATA%Arduino15packagesesp8266hardwareesp82662.7.1libraries,其中“2.7.1”需要根據安裝的 ESP8266 支持包版本進行相應更改。
打開 IDE,選擇正確的開發板和端口號。
打開”文件-示例-NodeMCU 1.0-waveshare-e-Paper“,找到 2.13 屏幕驅動程序。
如果你是按照微雪的引腳定義設計的驅動板的話,直接編譯下載,墨水屏就能顯示圖案了。
如果你是其他的引腳定義,需要修改下 DEV_Config.h 里的引腳定義。
新手估計很難一次性成功點亮墨水屏,我也翻車了好多次。下一篇中將介紹下硬件電路常見問題以及故障排除思路。
2. 自定義圖片上傳程序
微雪的示例程序作為出廠測試用的,我精簡了下,只保留了自定義圖片上傳功能。
墨水屏斷電后能保持最后顯示的畫面,可以當做電子相冊或者挪車電話牌。
拆解電子價簽,獲得墨水屏并成功點亮,相信沒有比這更全面的新手教程了。
ESP8266 電子墨水屏驅動電路原理圖與 PCB、取模軟件與示例程序,已發布到立創開源廣場。
下一篇將進一步介紹電子墨水屏驅動電路原理、DIY 注意事項、故障排除,SPI 通訊,驅動程序講解等內容,敬請期待。
作者聲明本文無利益相關,歡迎值友理性交流,和諧討論~
李熙東