開源地址:https://github.com/ART-Badge
前言
關注 RT-Thread 的同學肯定知道,RT-Thread為了向眾多開發者展示RT-Thread的最新開發和生態建設成果,每年都會舉辦一場開發者大會(簡稱:RDC — RT-Thread Developer Conference),在 2020 年度的開發者大會上,我們 RT-Thread 給到現場的每個開發者們都發放了一個電子胸牌,胸牌的名稱起名為 ART-Bagde。另外,特此感謝在電子胸牌制作過程中REALTEK、創凌對我們的支持!
ART-Badge是什么?
首先附上兩張渲染圖↓
ART-Badge反面圖片
功能設計篇首先讓我們看一下,今年的電子胸牌比較去年款有哪些升級,增加哪些功能?
先看一下 2020 款 ART-Badge 的主要功能:
今年,我們在去年的胸牌的基礎上進行了大幅度的升級與優化,廢話不多說,下面直接貼一張功能設計和擬用技術路線的導圖↓
思維導圖
開發流程圖
概括一下,ART-Badge v2.0主要有以下新特點:
- 自主設計的電路硬件,psram 擴大為8M,電池換用300mAh鋰電池,可反復充電。
- 使用體積更小巧的 SC7A20 替換原有的 mpu6050。
- 添加了ADC采樣電路,可以采集電池電量信息。
- 整體界面煥然一新,默認采用暗黑色主題背景。
- 使用最新發布的 湃心OS V4.1開發,開發工具全新升級為基于VSCode插件模式的Persim Studio。
- 增加游戲、音樂播放器、電子相冊…等等豐富小程序 app。
- 小程序全新升級:藍牙推送用戶 、城市天氣信息。
-
支持使用最新湃心OS小程序進行二次開發。
結構設計篇
由于去年的電子胸牌并沒有外殼,胸牌背面的電子元器件都是裸露在空氣中的,拿到手上會有明顯的突出感,同時暴漏在空氣中容易對電容觸摸芯片產生干擾,影響用戶使用效果,再加上今年的鋰電池電路進行了調整:將紐扣電池更新為了鋰電池,不使用膠帶粘在背后無法固定。
綜上,今年的電子胸牌決定使用亞克力作為 ART-Badge V2.0 的外殼設計。
選擇亞克力作為外殼結構有幾個原因:
- 其一是該方案的“視覺極客感”最強,由于直接使用透明蓋板將PCB電路展現出來,顏值方面化繁為簡,符合審美哲學
- 其次是如果使用封閉式設計的話按鍵誤觸,鋰電池的插拔就變成需要考量的因素了,而夾層式的開放設計則在這方面完全無需擔心
-
最后一個原因是,高性價比
電路設計篇
RTL8762D 作為主控芯片,MCU 主頻為90MHZ,運行 RT-Thread 操作系統,并整體使用睿賽德科技的湃心穿戴OS,外擴了8M的PSRAM,以及16M 的片外 flash 。
ART-Badge 主要使用到串口(用于調試和控制臺輸出),GPIO(用于驅動按鍵、蜂鳴器和ADC采集),I2C接口(用于和板載的 SC7A20 三軸加速度傳感器通信)。
底板的PCB采用2層Layout。板載的IC主要有:
- 半反半透明屏幕,分辨率 240 X 240,顏色格式 RGB565,在關閉背光的情況下依舊能有出色的可視度。
- APS6404L-3SQR,PSRAM(動態隨機存取存儲器),用于動態加載圖形資源,8M的容量十分富裕。
- ch340e,USB轉串口芯片,也很常用,通過 USB 線把 ART-Badge 連接電腦之后,就可以直接用串口控制臺使用shell了,后面的二次開發也是使用到了串口工具 UDB 下載。
- BS814A-1,電容觸摸 IC,用于 ART-Badge 正面的按鍵交互。
-
SC7A20,士蘭微出的一款高精度12bit數字三軸加速度傳感器芯片,內置功能豐富,功耗低,體積小,測量精確。
補充一點:為了兼顧美觀,正面是看不到走線的,(所以這是單面板?不)全部藏在屏幕背面了
PCB投板回來之后就是焊接技能施展階段了,主要用到的工具有:熱風槍、烙鐵、鑷子、錫漿、吸錫帶、助焊劑等。與直插元件不同,貼片的器件由于焊盤太小(大部分的是 0402 阻容),器件分布太密集,手工焊接采用的方法主要是風槍吹焊。
進行焊接的第一步是制作鋼網,也就是器件焊盤的掩模,這個在設計好PCB之后把相關的加工文件發給廠家就可以進行激光切割制作了。
上一步貼片完成之后就需要用風槍進行吹焊回流了。吹焊溫度大概控制在250-300度,風槍的吹嘴去掉以增大風口便于均勻加熱。
軟件實現篇
硬件搞定之后就開始移植軟件啦,ART-Badge 運行的是基于 RT-Thread 的湃心穿戴 OS。
這里科普一下 湃心穿戴OS,它是一個超輕量級、已量產的產品級穿戴操作系統平臺。中間層的模塊包括 GUI 引擎、通訊組件、NFC、存儲類工具等。中上層是由 JavaScript 搭建的應用程序框架,最上層則是輕量級系列眾多的小程序。
湃心OS
湃心穿戴 OS 有幾大特色:
- GUI采用可用于MCU上的第四代柿餅 GUI,具備類 Android 界面交互,支持多點觸摸,效果更加炫酷,同時支持矢量圖形庫,具備增強的圖形處理能力。
- 小程序的開發模式。采用類微信小程序開發模式,上手極快,應用輕量級,支持應用商店,極速安裝體驗,支持多國語音。
- 提供 MVVM 應用開發框架。應用的界面開發和業務邏輯是互相解耦的,貼合前端工程師習慣。
- 跨平臺能力。軟件一次開發,即可在任一硬件 CPU、MCU 及 MPU 平臺上運行;
-
湃心穿戴 OS 還具備一些創新性的組件,如消息管理引擎(EMQ)、數據管理組件(DCM)、KVDB 及 TSDB 數據庫、DIY 開發套件。
軟件主要分為以下幾個模塊:
- GUI模塊(Graphical User InteRFace,圖形用戶界面),用于人與設備進行交互
- BLE模塊(Bluetooh Low Energy,語音合成),通過廣播方式與小程序連接接受信息
- audio(音頻播放解碼模塊),用于無源蜂鳴器對音樂的解碼、播放
- EMQ(Enhance Message Queue,發布訂閱式的消息隊列組件),能夠打通 C 到 JS ,JS 到 JS ,C 到 C 的消息鏈路,能夠很方便的將消息發到任意一個地方
-
DCM(Data Cache Management,數據管理組件),主要用于 JS 與 C 之前數據的交互,統一管理和控制系統中的數據統,確保各模塊間數據傳輸的性能
GUI 最上層的開發使用 JS 語法,這個就比較有意思了,使用過 Android Studio 的小伙伴們可能很熟悉,安卓UI的應用開發是可以進行拖拽式的,這里和柿餅UI的設計器十分相似,Persim Studio 和 Android Studio 一樣也是通過 .xml 的方式對界面進行管理。所以熟悉或者有過安卓開發的小伙伴會有莫名的親切感。
BLE 使用的是 RealTek自帶的藍牙協議棧,通過 BSAL 抽象層進行管理,BSAL (Bluetooth Stack Abstract Layer)軟件包是由 RT-Thread 針對不同 藍牙協議棧接口實現的,目前支持的協議棧有:nimble,realtek 等協議棧。
Audio (音頻)設備是嵌入式系統中非常重要的一個組成部分,負責音頻數據的采樣和輸出。Audio 設備通常由數據總線接口、控制總線接口、音頻編解碼器(Codec)、揚聲器和麥克風等組成。
RT-Thread Audio 設備驅動框架是 Audio 框架的底層部分,主要負責原生音頻數據的采集和輸出、音頻流的控制、音頻設備的管理、音量調節以及不同硬件和 Codec 的抽象等。在本系統中就將蜂鳴器設備注冊到了 Audio 框架中,從而實現對蜂鳴器的開、關、音樂的解碼、播放功能。
EMQ 消息隊列具有以下功能:
- 支持一發多收。一個生產者生產消息可被多個消費者使用
- 支持多個消息綁定。一個消費者可以綁定多個不同的通道,接收不同生產者發送的消息。
- 發布消息系統開銷小,效率高。
- 不同模塊間低耦合。
- 超輕量級的整數類型消息
-
全鏈路可達
DCM 數據緩存管理框架主要功能特性:
- 支持 Value Change 模型
- 支持存取任意類型數據
- 支持多實例功能,解耦不同模塊間數據處理;
- 全鏈路打通,JS 與 C 均能訪問同一內存池
- 支持訂閱發布模型,可用于消息推送和通知
-
支持數據持久化保存功能
在本項目中,像一些參數需要數據持久化存儲、js 端對 adc 采集電量數據的監聽、獲取屏幕亮度,小程序推送的信息等等都是用到了 dcm 組件。
結束語
看到這里你是不是對今年的電子胸牌產生了更多的期待呢?那么告訴大家一個好消息,到場參會人人都可以領取電子胸牌哦~
不論風云變幻,RT-Thread通過不斷迭代和生態的完善,與開發者共成長。Beyond.RDC 2021,我們在深圳等你!
快來報名參會領取屬于你的電子胸牌 V2.0 吧!
https://yingsheng.elecfans.com/share/live/LGpT8swkvwXdnxzFHAHziQ
邀請你參加 2021 RT-Thread 開發者大會的七大理由
1、刷新RT-Thread最新技術動態和產業服務能力
2、聆聽行業大咖分享,洞察產業趨勢
4、豐富的技術和產品展示,前沿技術發展和應用
5、絕佳的實踐機會:從MCU、AIOT、MPU、RISC-V、安全總有一個應用場景滿足你
6、現場揭曉開發者專屬紀念胸牌升級和新玩法
7、互動區體驗掌握技術帶來的魅力
-
RT-Thread
+關注
關注
31文章
1285瀏覽量
40094 -
開發者大會
+關注
關注
0文章
309瀏覽量
10201
發布評論請先 登錄
相關推薦
評論