
一、創意方案簡介
手機微信是我們日常生活中使用越來越多的通信工具之一,手機微信在給我們帶來便利的同時,也帶來很多煩惱。特別對于小朋友們,長時間看手機微信導致眼睛視力受損。用手機微信會養成過度玩游戲等不良習慣等。怎樣使得小朋友們在能獲取微信消息的同時,又不受沉迷手機的危害,本創意則運應而生。即通過手機端家長可以把重要信息轉發到一個桌面終端上,小朋友通過桌面信息終端能夠閱讀微信通知信息。
墨水屏具有無輻射,依靠自然光反射顯示圖像的綠色健康使用特性,又具有斷電內存保持的有點,因而它適合作為文字圖片類的信息顯示設備。它適合作為本創意的顯示器件。
瑞薩電子RA6M5芯片是32位高性能微控制器(MCU)產品。它具有支持TrustZone的高性能Arm? Cortex?-M33內核。結合片內的SecureCryptoEngine(SCE)配合使用,可實現安全芯片的功能,適合安全信息場景的應用。RA6M5采用高效的40nm工藝,由靈活配置軟件包(FSP)支持開放且靈活的生態系統。
FSP基于FREERTOS構建,并能夠進行擴展,以使用其他實時操作系統(RTOS)和中間件。RA6M5適用于物聯網應用的需求,如多樣化的通信功能、面向未來應用的安全功能、大容量嵌入式RAM和較低的運行功耗(從閃存運行CoreMark?算法時功耗低至107μA/MHz)。其優異的性能和低功耗安全的特點。本創意項目選擇該MCU作為主控組件。
二、項目創意與特點
本項目名稱為《瑞薩RA6M5電子墨水屏微信桌面信息站》,在需要微信面向如小朋友使用的場景下,需要一個環保健康的設備,以及減少使用手機微信帶來的傷害,以及小朋友使用手機時的不良習慣。而瑞薩RA6M5電子墨水屏微信桌面信息站則可以讓小朋友無害的閱讀微信內容。微信的消息內容通過微信服務機器人自動轉發或者由家長手動發送。
本項目利用野火瑞薩RA6M5開發板具備聯網通信能力,與驅動顯示墨水屏顯示輸出能力,以及按鍵交互的功能。使用野火瑞薩RZ6M5開發板SPI 總線連接墨水屏顯示器件,通過板載ESP8266模塊連接云端消息數據處理服務,完成微信圖文信息通過網絡向瑞薩RA6M5電子墨水屏微信桌面信息站發送與消息閱讀確認的回復功能。
本項目完成RA6M5開發板使用SPI連接6寸大屏電子墨水屏,并移植開發墨水屏顯示驅動,以及在線數字,日期顯示到內存位圖的功能,實現墨水屏消息站終端的顯示功能。使用nginx和python圖像處理腳本在云端完成微信圖片與文字轉換成墨水屏能夠顯示的單色點陣圖,再通過socket傳送到RA6M5 終端上顯示輸出。同時消息站用戶按下按鍵,將會將按鍵消息回傳,已示確認消息收到,實現消息站消息接收顯示以及用戶對消息已閱讀的確認。
該項目涉及到如下技術內容:
三、項目所涉及的材料
四、方案整體技術架構
瑞薩RA6M5電子墨水屏微信桌面信息站如下圖所示,服務端主要有Nginx服務作為H5頁面的WEB服務,OpenCV服務使用opencv-pyton啟動一個圖像處理服務進程,通過socket與web服務連接完成文字圖片的轉換,微信機器人是一個消息轉發服務,將文字消息發送到opencv服務上再與web通信。服務端均部署在互聯網公網服務器上,移動端通過移動網絡訪問圖文消息轉發的編輯頁面,完成手動消息的發送。野火RA6M5開發板和墨水屏組成的信息終端通過wifi連接路由器,完成通信的硬件聯通。

五、RA6M5墨水屏信息站開發
墨水屏信息站使用野火RA6M5開發板,通過板載的ESP8266 WIFI模塊連接WEB socket服務,接收服務端推送的顯示圖像的指令以及使用http get獲取服務端轉換好的電子墨水屏顯示圖像數據。
六、服務端WEB服務與
uWSGI應用框架搭建
使用云主機搭建web服務,主要用于手機端H5編輯頁面的發布服務,以及相關圖片資源上載和下載的服務功能。而WSGI(Web Server Gateway Interface)是Python Web應用程序和Web服務器之間的接口標準,它定義了一個簡單的API,使得Python Web應用程序可以被部署在多種Web服務器上,而無需修改應用程序代碼。uWSGI是實現WSGI協議的高效web應用服務器,他可以配合其它web服務器一起使用,可以讓服務應用開發非常簡單而又高效運行。
七、服務端OpenCV
電子墨水圖像處理
為了使終端上能夠顯示出圖文等復雜的內容,這里設計把消息發來的圖文信息在服務端轉換成為電子紙支持的圖像內容數據,其思路是對于手機編輯的圖文顯示內容,在前端編輯器上生成顯示內容結構描述文件,設計編輯頁面顯示內容結構如下所示:(左右滑動查看完整內容)
[{"id":"001","type":"text","property":{"content":"Thismessage for RA6M5 E-ink station!", "font": "Time newRomain", "size": 18, "cord": {"x": 20,"y": 50, "w": 0, "h": 0},"color":"#EE2020"}, "index":3},{"id":"002","type":"imge","property":{"res":"res/e28346rawe3.jpg" ,"cord": {"x": 20,"y": 90, "w": 600, "h": 360}}, "index":1},{"id":"003","type":"imge","property":{"res":"res/qifw34ddwe3.jpg" ,"cord": {"x": 40,"y": 120, "w": 400, "h": 300}},"index":2},{"id":"004","type":"chtxt","property":{"content":"背誦詩詞", "font":"msyh", "size": 20, "cord": {"x": 20,"y": 90, "w": 0, "h": 0},"color":"#EE2020"}, "index":4},{"id":"005","type":"chtxt","property":{"content":"Thisis test", "font": "refsan", "size": 18,"cord": {"x": 20, "y": 120, "w": 0,"h": 0},"color": "#EE2020"}, "index":5}]
八、手機微信客服機器人部署
為了使得該信息站更方便使用,那么最好的方式就是把這個信息站和我們日常生活中最常用的通信工具整合起來,形成簡單易用的一個操作體驗。日常最常用的消息通訊工具莫過于手機微信軟件了。由于微信的通訊是一個封閉的系統,外部的終端是無法和微信服務直接通信的,不過可以通過擴展功能的方式來達到同樣的目的,這里的方案就是,開發微信客服機器人。
九、整體功能測試與運行效果
在各部分開發完,由于涉及多個系統,包括微信客服機器人,后臺圖像轉換,以及消息的通知,終端收發消息以及終端下載圖像數據等環節,因此先對各部分分別做測試。
首先測試從微信發送消息,到服務端生成墨水屏圖片完成,這里通過向微信機器人發送一張圖片,查看服務端圖片資源:

然后再通過瀏覽器查看服務器HTTP下的資源文件是否生成:

能看到這個圖,說明服務端工作正常。
再查看終端是否收到了新發布信息的內容,并且發起http get請求,拉取圖片,顯示在終端電子紙屏幕上,在電子墨水屏清屏閃動幾次后,終于看到了在墨水屏顯示出圖像:

再連續發兩段帶有格式標記的信息發給微信機器人,看一下:

大約過十幾秒,終端屏幕上顯示出了文字內容,從文字顯示看,文字的位置有一點不正確外,內容顯示正常:

經過檢查,發現是在服務端繪制圖片時,對不同矢量文字的寬度計算有誤,導致計算每行的文字寬度小于實際寬度,而默認設計繪制消息框是居中顯示,導致圖像偏右。
在重新修正服務端繪制缺陷后,再由網頁頁面向終端模擬發起一個消息通知消息,觸發終端重新拉取服務端重新繪制的圖片后,顯示終于正確了:

十、項目講解演示
十一、項目開發后記
大約經過1個半月左右,斷斷續續的把這個以前一直想做的項目基本實現了。服務端設計時,考慮了多種屏幕的適配問題,這樣可以同時滿足LCD屏幕以及墨水屏屏幕的顯示需求,以及不同尺寸的變換。這樣通過服務端強大的圖形圖像處理,能夠實現較好的動態信息生成。滿足多種的信息發布和輸出。
同時因為時間比較緊,項目中有一些后續可以改進的地方,一是終端拉取圖像資源時,可以采用壓縮數據的方式傳輸,現在這種用傳輸占用通信較多,不過好在一張輸出圖片也在30K左右。二是微信和硬件信息終端沒有做綁定關系判斷,還沒有考慮多個微信機器人和多個終端間多對多的關系,因此目前且的開發僅作為技術驗證。三是需要考慮部分動態的數據以及時間等數據信息,不需要太多美術化的信息內容,能在終端內合成顯示或者使用局部刷新顯示的方式,這對將來智慧物聯的數據顯示,動態數據顯示是一個好的處理方式。
同時在開發RA6M5時,開始使用硬件SPI與墨水屏通信,但是經過多次調試未果,因為時間沒有深入探究,轉而采用了軟SPI的方式,好在RA6M5的IO速度足夠快,實測軟SPI的通信速度可穩定的達15Mbps,對本屏傳送一幀數據僅需要不到300毫秒。同時在開發ESP8266聯網功能是,參考了前面網友發布的ESP8266更新固件和測試的資料,這使得聯網功能得以順利的完成。
更多內容您可識別下方二維碼獲取源碼等資源:

您可識別下方二維碼或復制網址到瀏覽器中打開進入瑞薩中文論壇:

https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
1
END
1
推薦閱讀
【瑞薩RA MCU創意氛圍賽】項目27——小烏龜缸
【瑞薩RA MCU創意氛圍賽】項目28&29——OLED時間溫度顯示和溫度報警&基于阿里云的路燈控制系統
【瑞薩RA MCU創意氛圍賽】項目30——機械臂游戲創意制作