開(kāi)源地址:https://github.com/ART-Badge
前言
關(guān)注 RT-Thread 的同學(xué)肯定知道,RT-Thread為了向眾多開(kāi)發(fā)者展示RT-Thread的最新開(kāi)發(fā)和生態(tài)建設(shè)成果,每年都會(huì)舉辦一場(chǎng)開(kāi)發(fā)者大會(huì)(簡(jiǎn)稱:RDC — RT-Thread Developer Conference),在 2020 年度的開(kāi)發(fā)者大會(huì)上,我們 RT-Thread 給到現(xiàn)場(chǎng)的每個(gè)開(kāi)發(fā)者們都發(fā)放了一個(gè)電子胸牌,胸牌的名稱起名為 ART-Bagde。另外,特此感謝在電子胸牌制作過(guò)程中REALTEK、創(chuàng)凌對(duì)我們的支持!
ART-Badge是什么?
首先附上兩張渲染圖↓
ART-Badge反面圖片
功能設(shè)計(jì)篇首先讓我們看一下,今年的電子胸牌比較去年款有哪些升級(jí),增加哪些功能?
先看一下 2020 款 ART-Badge 的主要功能:
- 微信小程序使用藍(lán)牙推送開(kāi)發(fā)者信息(姓名、公司職稱)
- 軟件 RTC 同步時(shí)間
- 首界面展示時(shí)間+手機(jī)推送的信息
-
兩個(gè)app demo:藍(lán)牙傳輸助手+使用說(shuō)明
今年,我們?cè)谌ツ甑男嘏频幕A(chǔ)上進(jìn)行了大幅度的升級(jí)與優(yōu)化,廢話不多說(shuō),下面直接貼一張功能設(shè)計(jì)和擬用技術(shù)路線的導(dǎo)圖↓
思維導(dǎo)圖
開(kāi)發(fā)流程圖
概括一下,ART-Badge v2.0主要有以下新特點(diǎn):
- 自主設(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ì)篇
由于去年的電子胸牌并沒(méi)有外殼,胸牌背面的電子元器件都是裸露在空氣中的,拿到手上會(huì)有明顯的突出感,同時(shí)暴漏在空氣中容易對(duì)電容觸摸芯片產(chǎn)生干擾,影響用戶使用效果,再加上今年的鋰電池電路進(jìn)行了調(diào)整:將紐扣電池更新為了鋰電池,不使用膠帶粘在背后無(wú)法固定。
綜上,今年的電子胸牌決定使用亞克力作為 ART-Badge V2.0 的外殼設(shè)計(jì)。
選擇亞克力作為外殼結(jié)構(gòu)有幾個(gè)原因:
- 其一是該方案的“視覺(jué)極客感”最強(qiáng),由于直接使用透明蓋板將PCB電路展現(xiàn)出來(lái),顏值方面化繁為簡(jiǎn),符合審美哲學(xué)
- 其次是如果使用封閉式設(shè)計(jì)的話按鍵誤觸,鋰電池的插拔就變成需要考量的因素了,而夾層式的開(kāi)放設(shè)計(jì)則在這方面完全無(wú)需擔(dān)心
-
最后一個(gè)原因是,高性價(jià)比
RTL8762D 作為主控芯片,MCU 主頻為90MHZ,運(yùn)行 RT-Thread 操作系統(tǒng),并整體使用睿賽德科技的湃心穿戴OS,外擴(kuò)了8M的PSRAM,以及16M 的片外 flash 。
ART-Badge 主要使用到串口(用于調(diào)試和控制臺(tái)輸出),GPIO(用于驅(qū)動(dòng)按鍵、蜂鳴器和ADC采集),I2C接口(用于和板載的 SC7A20 三軸加速度傳感器通信)。
底板的PCB采用2層Layout。板載的IC主要有:
- 半反半透明屏幕,分辨率 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)行激光切割制作了。
上一步貼片完成之后就需要用風(fēng)槍進(jìn)行吹焊回流了。吹焊溫度大概控制在250-300度,風(fēng)槍的吹嘴去掉以增大風(fēng)口便于均勻加熱。
軟件實(shí)現(xiàn)篇
硬件搞定之后就開(kāi)始移植軟件啦,ART-Badge 運(yùn)行的是基于 RT-Thread 的湃心穿戴 OS。
這里科普一下 湃心穿戴OS,它是一個(gè)超輕量級(jí)、已量產(chǎn)的產(chǎn)品級(jí)穿戴操作系統(tǒng)平臺(tái)。中間層的模塊包括 GUI 引擎、通訊組件、NFC、存儲(chǔ)類工具等。中上層是由 JavaScript 搭建的應(yīng)用程序框架,最上層則是輕量級(jí)系列眾多的小程序。
湃心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ā)套件。
軟件主要分為以下幾個(gè)模塊:
- 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ù)男阅?br />
GUI 最上層的開(kāi)發(fā)使用 JS 語(yǔ)法,這個(gè)就比較有意思了,使用過(guò) Android Studio 的小伙伴們可能很熟悉,安卓UI的應(yīng)用開(kāi)發(fā)是可以進(jìn)行拖拽式的,這里和柿餅UI的設(shè)計(jì)器十分相似,Persim Studio 和 Android Studio 一樣也是通過(guò) .xml 的方式對(duì)界面進(jìn)行管理。所以熟悉或者有過(guò)安卓開(kāi)發(fā)的小伙伴會(huì)有莫名的親切感。
BLE 使用的是 RealTek自帶的藍(lán)牙協(xié)議棧,通過(guò) BSAL 抽象層進(jìn)行管理,BSAL (Bluetooth Stack Abstract Layer)軟件包是由 RT-Thread 針對(duì)不同 藍(lán)牙協(xié)議棧接口實(shí)現(xiàn)的,目前支持的協(xié)議棧有:nimble,realtek 等協(xié)議棧。
Audio (音頻)設(shè)備是嵌入式系統(tǒng)中非常重要的一個(gè)組成部分,負(fù)責(zé)音頻數(shù)據(jù)的采樣和輸出。Audio 設(shè)備通常由數(shù)據(jù)總線接口、控制總線接口、音頻編解碼器(Codec)、揚(yáng)聲器和麥克風(fēng)等組成。
RT-Thread Audio 設(shè)備驅(qū)動(dòng)框架是 Audio 框架的底層部分,主要負(fù)責(zé)原生音頻數(shù)據(jù)的采集和輸出、音頻流的控制、音頻設(shè)備的管理、音量調(diào)節(jié)以及不同硬件和 Codec 的抽象等。在本系統(tǒng)中就將蜂鳴器設(shè)備注冊(cè)到了 Audio 框架中,從而實(shí)現(xiàn)對(duì)蜂鳴器的開(kāi)、關(guān)、音樂(lè)的解碼、播放功能。
EMQ 消息隊(duì)列具有以下功能:
- 支持一發(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á)
DCM 數(shù)據(jù)緩存管理框架主要功能特性:
- 支持 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 組件。
結(jié)束語(yǔ)
看到這里你是不是對(duì)今年的電子胸牌產(chǎn)生了更多的期待呢?那么告訴大家一個(gè)好消息,到場(chǎng)參會(huì)人人都可以領(lǐng)取電子胸牌哦~
不論風(fēng)云變幻,RT-Thread通過(guò)不斷迭代和生態(tài)的完善,與開(kāi)發(fā)者共成長(zhǎng)。Beyond.RDC 2021,我們?cè)谏钲诘饶悖?br />
快來(lái)報(bào)名參會(huì)領(lǐng)取屬于你的電子胸牌 V2.0 吧!
https://yingsheng.elecfans.com/share/live/LGpT8swkvwXdnxzFHAHziQ
邀請(qǐng)你參加 2021 RT-Thread 開(kāi)發(fā)者大會(huì)的七大理由
1、刷新RT-Thread最新技術(shù)動(dòng)態(tài)和產(chǎn)業(yè)服務(wù)能力
2、聆聽(tīng)行業(yè)大咖分享,洞察產(chǎn)業(yè)趨勢(shì)
4、豐富的技術(shù)和產(chǎn)品展示,前沿技術(shù)發(fā)展和應(yīng)用
5、絕佳的實(shí)踐機(jī)會(huì):從MCU、AIOT、MPU、RISC-V、安全總有一個(gè)應(yīng)用場(chǎng)景滿足你
6、現(xiàn)場(chǎng)揭曉開(kāi)發(fā)者專屬紀(jì)念胸牌升級(jí)和新玩法
7、互動(dòng)區(qū)體驗(yàn)掌握技術(shù)帶來(lái)的魅力
-
RT-Thread
+關(guān)注
關(guān)注
31文章
1289瀏覽量
40140 -
開(kāi)發(fā)者大會(huì)
+關(guān)注
關(guān)注
0文章
310瀏覽量
10203
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論