天天看點

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

開源位址: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 V2.0開發記錄!前言

ART-Badge正面圖檔

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

ART-Badge反面圖檔

功能設計篇

首先讓我們看一下,今年的電子胸牌比較去年款有哪些更新,增加哪些功能?

先看一下 2020 款 ART-Badge 的主要功能:

  • 微信小程式使用藍牙推送開發者資訊(姓名、公司職稱)
  • 軟體 RTC 同步時間
  • 首界面展示時間+手機推送的資訊
  • 兩個app demo:藍牙傳輸助手+使用說明

今年,我們在去年的胸牌的基礎上進行了大幅度的更新與優化,廢話不多說,下面直接貼一張功能設計和拟用技術路線的導圖↓

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

思維導圖

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

開發流程圖

概括一下,ART-Badge V2.0主要有以下新特點:

  • 自主設計的電路硬體,PSRAM 擴大為8M,電池換用300mAh锂電池,可反複充電。
  • 使用體積更小巧的 SC7A20 替換原有的 mpu6050。
  • 添加了ADC采樣電路,可以采集電池電量資訊。
  • 整體界面煥然一新,預設采用暗黑色主題背景。
  • 使用最新釋出的 湃心OS V4.1開發,開發工具全新更新為基于VSCode插件模式的Persim Studio。
  • 增加遊戲、音樂播放器、電子相冊…等等豐富小程式 app。
  • 小程式全新更新:藍牙推送使用者 、城市天氣資訊。
  • 支援使用最新湃心OS小程式進行二次開發。

結構設計篇

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

由于去年的電子胸牌并沒有外殼,胸牌背面的電子元器件都是裸露在空氣中的,拿到手上會有明顯的突出感,同時暴漏在空氣中容易對電容觸摸晶片産生幹擾,影響使用者使用效果,再加上今年的锂電池電路進行了調整:将紐扣電池更新為了锂電池,不使用膠帶粘在背後無法固定。

綜上,今年的電子胸牌決定使用亞克力作為 ART-Badge V2.0 的外殼設計。

選擇亞克力作為外殼結構有幾個原因:

  • 其一是該方案的“視覺極客感”最強,由于直接使用透明蓋闆将PCB電路展現出來,顔值方面化繁為簡,符合審美哲學
  • 其次是如果使用封閉式設計的話按鍵誤觸,锂電池的插拔就變成需要考量的因素了,而夾層式的開放設計則在這方面完全無需擔心
  • 最後一個原因是,高成本效益
極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

亞克力外殼成品

電路設計篇

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

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 阻容),器件分布太密集,手工焊接采用的方法主要是風槍吹焊。

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

pcb焊接

進行焊接的第一步是制作鋼網,也就是器件焊盤的掩模,這個在設計好PCB之後把相關的加工檔案發給廠家就可以進行雷射切割制作了。

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

上一步貼片完成之後就需要用風槍進行吹焊回流了。吹焊溫度大概控制在250-300度,風槍的吹嘴去掉以增大風口便于均勻加熱。

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

軟體實作篇

硬體搞定之後就開始移植軟體啦,ART-Badge 運作的是基于 RT-Thread 的湃心穿戴 OS。

這裡科普一下 湃心穿戴OS,它是一個超輕量級、已量産的産品級穿戴作業系統平台。中間層的子產品包括 GUI 引擎、通訊元件、NFC、存儲類工具等。中上層是由 JavaScript 搭建的應用程式架構,最上層則是輕量級系列衆多的小程式。

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

湃心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 的方式對界面進行管理。是以熟悉或者有過安卓開發的小夥伴會有莫名的親切感。

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

湃新os設計器

BLE 使用的是 RealTek 自帶的藍牙協定棧,通過 BSAL 抽象層進行管理,BSAL (Bluetooth Stack Abstract Layer)軟體包是由 RT-Thread 針對不同 藍牙協定棧接口實作的,目前支援的協定棧有:nimble,realtek 等協定棧。

Audio (音頻)裝置是嵌入式系統中非常重要的一個組成部分,負責音頻資料的采樣和輸出。Audio 裝置通常由資料總線接口、控制總線接口、音頻編解碼器(Codec)、揚聲器和麥克風等組成。

極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

嵌入式音頻系統組成

RT-Thread Audio 裝置驅動架構是 Audio 架構的底層部分,主要負責原生音頻資料的采集和輸出、音頻流的控制、音頻裝置的管理、音量調節以及不同硬體和 Codec 的抽象等。在本系統中就将蜂鳴器裝置注冊到了 Audio 架構中,進而實作對蜂鳴器的開、關、音樂的解碼、播放功能。

EMQ 消息隊列具有以下功能:

  • 支援一發多收。一個生産者生産消息可被多個消費者使用
  • 支援多個消息綁定。一個消費者可以綁定多個不同的通道,接收不同生産者發送的消息。
  • 釋出消息系統開銷小,效率高。
  • 不同子產品間低耦合。
  • 超輕量級的整數類型消息
  • 全鍊路可達
極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

EMQ 運作原理

DCM 資料緩存管理架構主要功能特性:

  • 支援 Value Change 模型
  • 支援存取任意類型資料
  • 支援多執行個體功能,解耦不同子產品間資料處理;
  • 全鍊路打通,JS 與 C 均能通路同一記憶體池
  • 支援訂閱釋出模型,可用于消息推送和通知
  • 支援資料持久化儲存功能;
極客感十足的電子胸牌 ART-Badge V2.0開發記錄!前言

dcm_framework

在本項目中,像一些參數需要資料持久化存儲、js 端對 adc 采集電量資料的監聽、擷取螢幕亮度,小程式推送的資訊等等都是用到了 dcm 元件。