極客感十足的電子胸牌?ART-Badge?V2.0開(kāi)發(fā)記錄!
前言
ART-Badge是什么?
首先附上兩張渲染圖↓
再來(lái)看視頻↓
功能設(shè)計(jì)篇
首先讓我們看一下,今年的電子胸牌比較去年款有哪些升級(jí),增加哪些功能?
-
微信小程序使用藍(lán)牙推送開(kāi)發(fā)者信息(姓名、公司職稱)
-
軟件 RTC 同步時(shí)間
-
首界面展示時(shí)間 手機(jī)推送的信息
-
兩個(gè)app demo:藍(lán)牙傳輸助手 使用說(shuō)明
-
自主設(shè)計(jì)的電路硬件,PSRAM 擴(kuò)大為8M,電池?fù)Q用300mAh鋰電池,可反復(fù)充電。
-
使用體積更小巧的 SC7A20 替換原有的 mpu6050。
-
添加了ADC采樣電路,可以采集電池電量信息。
-
整體界面煥然一新,默認(rèn)采用暗黑色主題背景。
-
使用最新發(fā)布的 湃心OS V4.1開(kāi)發(fā),開(kāi)發(fā)工具全新升級(jí)為基于VSCode插件模式的Persim Studio。
-
增加游戲、音樂(lè)播放器、電子相冊(cè)…等等豐富小程序 app。
-
小程序全新升級(jí):藍(lán)牙推送用戶 、城市天氣信息。
-
支持使用最新湃心OS小程序進(jìn)行二次開(kāi)發(fā)。
結(jié)構(gòu)設(shè)計(jì)篇
-
其一是該方案的“視覺(jué)極客感”最強(qiáng),由于直接使用透明蓋板將PCB電路展現(xiàn)出來(lái),顏值方面化繁為簡(jiǎn),符合審美哲學(xué)
-
其次是如果使用封閉式設(shè)計(jì)的話按鍵誤觸,鋰電池的插拔就變成需要考量的因素了,而夾層式的開(kāi)放設(shè)計(jì)則在這方面完全無(wú)需擔(dān)心
-
最后一個(gè)原因是,高性價(jià)比
電路設(shè)計(jì)篇
-
半反半透明屏幕,分辨率 240 X 240,顏色格式 RGB565,在關(guān)閉背光的情況下依舊能有出色的可視度。
-
APS6404L-3SQR,PSRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器),用于動(dòng)態(tài)加載圖形資源,8M的容量十分富裕。
-
ch340e,USB轉(zhuǎn)串口芯片,也很常用,通過(guò) USB 線把 ART-Badge 連接電腦之后,就可以直接用串口控制臺(tái)使用shell了,后面的二次開(kāi)發(fā)也是使用到了串口工具 UDB 下載。
-
BS814A-1,電容觸摸 IC,用于 ART-Badge 正面的按鍵交互。
-
SC7A20,士蘭微出的一款高精度12bit數(shù)字三軸加速度傳感器芯片,內(nèi)置功能豐富,功耗低,體積小,測(cè)量精確。
補(bǔ)充一點(diǎn):為了兼顧美觀,正面是看不到走線的,(所以這是單面板?不)全部藏在屏幕背面了
PCB投板回來(lái)之后就是焊接技能施展階段了,主要用到的工具有:熱風(fēng)槍、烙鐵、鑷子、錫漿、吸錫帶、助焊劑等。與直插元件不同,貼片的器件由于焊盤太小(大部分的是 0402 阻容),器件分布太密集,手工焊接采用的方法主要是風(fēng)槍吹焊。
進(jìn)行焊接的第一步是制作鋼網(wǎng),也就是器件焊盤的掩模,這個(gè)在設(shè)計(jì)好PCB之后把相關(guān)的加工文件發(fā)給廠家就可以進(jìn)行激光切割制作了。
軟件實(shí)現(xiàn)篇
硬件搞定之后就開(kāi)始移植軟件啦,ART-Badge 運(yùn)行的是基于 RT-Thread 的湃心穿戴 OS。
湃心穿戴 OS 有幾大特色:
-
GUI采用可用于MCU上的第四代柿餅 GUI,具備類 Android 界面交互,支持多點(diǎn)觸摸,效果更加炫酷,同時(shí)支持矢量圖形庫(kù),具備增強(qiáng)的圖形處理能力。
-
小程序的開(kāi)發(fā)模式。采用類微信小程序開(kāi)發(fā)模式,上手極快,應(yīng)用輕量級(jí),支持應(yīng)用商店,極速安裝體驗(yàn),支持多國(guó)語(yǔ)音。
-
提供 MVVM 應(yīng)用開(kāi)發(fā)框架。應(yīng)用的界面開(kāi)發(fā)和業(yè)務(wù)邏輯是互相解耦的,貼合前端工程師習(xí)慣。
-
跨平臺(tái)能力。軟件一次開(kāi)發(fā),即可在任一硬件 CPU、MCU 及 MPU 平臺(tái)上運(yùn)行;
-
湃心穿戴 OS 還具備一些創(chuàng)新性的組件,如消息管理引擎(EMQ)、數(shù)據(jù)管理組件(DCM)、KVDB 及 TSDB 數(shù)據(jù)庫(kù)、DIY 開(kāi)發(fā)套件。
-
GUI模塊(Graphical User Interface,圖形用戶界面),用于人與設(shè)備進(jìn)行交互
-
BLE模塊(Bluetooh Low Energy,語(yǔ)音合成),通過(guò)廣播方式與小程序連接接受信息
-
AUDIO(音頻播放解碼模塊),用于無(wú)源蜂鳴器對(duì)音樂(lè)的解碼、播放
-
EMQ(Enhance Message Queue,發(fā)布訂閱式的消息隊(duì)列組件),能夠打通 C 到 JS ,JS 到 JS ,C 到 C 的消息鏈路,能夠很方便的將消息發(fā)到任意一個(gè)地方
-
DCM(Data Cache Management,數(shù)據(jù)管理組件),主要用于 JS 與 C 之前數(shù)據(jù)的交互,統(tǒng)一管理和控制系統(tǒng)中的數(shù)據(jù)統(tǒng),確保各模塊間數(shù)據(jù)傳輸?shù)男阅?/span>
-
支持一發(fā)多收。一個(gè)生產(chǎn)者生產(chǎn)消息可被多個(gè)消費(fèi)者使用
-
支持多個(gè)消息綁定。一個(gè)消費(fèi)者可以綁定多個(gè)不同的通道,接收不同生產(chǎn)者發(fā)送的消息。
-
發(fā)布消息系統(tǒng)開(kāi)銷小,效率高。
-
不同模塊間低耦合。
-
超輕量級(jí)的整數(shù)類型消息
-
全鏈路可達(dá)
-
支持 Value Change 模型
-
支持存取任意類型數(shù)據(jù)
-
支持多實(shí)例功能,解耦不同模塊間數(shù)據(jù)處理;
-
全鏈路打通,JS 與 C 均能訪問(wèn)同一內(nèi)存池
-
支持訂閱發(fā)布模型,可用于消息推送和通知
-
支持?jǐn)?shù)據(jù)持久化保存功能;
在本項(xiàng)目中,像一些參數(shù)需要數(shù)據(jù)持久化存儲(chǔ)、js 端對(duì) adc 采集電量數(shù)據(jù)的監(jiān)聽(tīng)、獲取屏幕亮度,小程序推送的信息等等都是用到了 dcm 組件。