專為創(chuàng)客社區(qū)設(shè)計(jì)的微處理器板不僅吸引了渴望進(jìn)入電子領(lǐng)域的發(fā)明家們的目光,也吸引了專業(yè)工程師們的目光。獨(dú)立顧問、新創(chuàng)公司和大型工程組織內(nèi)的團(tuán)隊(duì)在開發(fā)新產(chǎn)品時(shí),都面臨著巨大的時(shí)間和成本壓力。通過使用經(jīng)濟(jì)實(shí)惠的開發(fā)板、擴(kuò)展模塊以及創(chuàng)客社區(qū)中不斷完善的代碼示例,可以化解這些壓力。
利用現(xiàn)成的硬件可以快速配置試驗(yàn)臺(tái),實(shí)現(xiàn)像無(wú)線連接這樣的基本功能。通過消除讓射頻電路正常工作或編寫底層驅(qū)動(dòng)程序等挑戰(zhàn)性的工作,工程師可以快速將他們的注意力轉(zhuǎn)移到為其應(yīng)用開發(fā)更高層次的差異化功能上。
市面上有眾多廠商提供各種各樣的擴(kuò)展板,可以利用像Arduino這樣的既有生態(tài)系統(tǒng),以一種簡(jiǎn)單的方法添加特殊功能,例如運(yùn)動(dòng)或環(huán)境感應(yīng)、人體檢測(cè)、接近感應(yīng)、MEMS 麥克風(fēng)、GPS 接收器或其他功能。這些資源可幫助工程師加快概念驗(yàn)證的建立和運(yùn)行速度。
創(chuàng)建專業(yè)的用戶界面
典型的創(chuàng)客方式是構(gòu)建基于試驗(yàn)板的簡(jiǎn)單項(xiàng)目,使用機(jī)械開關(guān)和 LED 演示主要功能。要獲得外觀更專業(yè)的用戶界面,可設(shè)計(jì)導(dǎo)入 LCD 模塊或圖形 TFT 顯示屏設(shè)計(jì),并結(jié)合按鈕、小鍵盤或觸摸屏傳感器。
有多種彩色圖形 TFT-LCD 適合與流行的創(chuàng)客板搭配使用。根據(jù)具體型號(hào),它們可能是使用單獨(dú)的電線連接的分線板,也可能設(shè)計(jì)為直接插入主板的擴(kuò)展針座。有多個(gè)品牌提供了合適的顯示屏,其中包括像Adafruit、DFRobot和Mikroelektronika這樣的創(chuàng)客們非常熟悉的品牌,以及像FTDI這樣的可能在專業(yè)工程師的圈內(nèi)更為熟悉的品牌。常見的產(chǎn)品包括尺寸小于 1 英寸的微型彩色 TFT,到類似2.8 英寸 Adafruit 1770這樣的觸摸屏,以及 5 英寸以上的更大觸摸屏。這些顯示屏通常還提供 SD 卡插槽,適用于存儲(chǔ)將在屏幕上顯示的位圖圖像。
將板和屏幕組裝到一起
顯示屏可能設(shè)計(jì)成與單獨(dú)的驅(qū)動(dòng)器板配合使用,這會(huì)帶來復(fù)雜的連接挑戰(zhàn)。如果無(wú)法將顯示屏直接插入驅(qū)動(dòng)器,則可能需要適配器。另一方面,如果驅(qū)動(dòng)器已集成到顯示屏中,則可免除用戶的接線任務(wù)。
有些顯示屏(例如 DFRobotDFR0387)設(shè)計(jì)成直接插入常用開發(fā)板的擴(kuò)展針座,從而構(gòu)建出可以輕松內(nèi)置到前面板或便攜式外殼的簡(jiǎn)潔組件。這種 3.5 英寸觸摸屏顯示屏具有 320 x 480 像素的分辨率,并附帶三個(gè)串行接口、一個(gè) I2C 端口,以及一個(gè)可選擇 5 V 或 3.3 V 輸出的 5 V 電源,可與 ArduinoDUE 板一起使用。
正確連接硬件后,顯示屏很快便可以正常運(yùn)行。通??赏ㄟ^調(diào)整配套軟件庫(kù)附帶的代碼示例,來自定義包含按鈕或滑塊的 GUI,確定按鈕或滑塊的屏幕位置,選擇顏色,以及定義觸摸坐標(biāo)。還有一種替代方法,即使用圖形工具來設(shè)計(jì) GUI,然后使用開源工具或?qū)S泄ぞ邉?chuàng)建相應(yīng)的代碼,以簡(jiǎn)化該任務(wù)。
方法 1.GUI 編碼
要在屏幕上實(shí)現(xiàn)一些基本的觸摸感應(yīng)按鈕,設(shè)計(jì)應(yīng)該考慮按鈕的形狀、大小和位置、顏色,以及向用戶確認(rèn)已檢測(cè)到觸摸操作的可見響應(yīng)。合適的響應(yīng)可能包括短時(shí)或永久更改按鈕的顏色,將按鈕周邊更改為其他顏色,隱藏按鈕,或在屏幕上展示其他用戶界面或圖像。觸摸屏區(qū)域需要映射到相同的總體顯示屏區(qū)域,并且需要編寫代碼來檢測(cè)這些按鈕區(qū)域內(nèi)的觸摸操作,以及生成相應(yīng)的響應(yīng)。
通??赏ㄟ^檢查創(chuàng)客模塊附帶的示例應(yīng)用來化解編碼挑戰(zhàn)。其中一個(gè)示例應(yīng)用是 Adafruit 的 graphicstest,該應(yīng)用可在顯示屏上繪制線條、圓點(diǎn)、圓形和文本等對(duì)象。通過檢查這些示例的源代碼,可以獲得關(guān)于如何創(chuàng)建用于展示圖形或圖像的自定義應(yīng)用的基本信息,例如控制硬件所需的庫(kù)、用于激活 SD 卡控制器或 TFT 驅(qū)動(dòng)器 IC 的正確片選引腳編號(hào),等等。
用于電容式觸摸顯示屏的 Adafruit FT6206 庫(kù)包含示例程序 CapTouchPaint,該程序會(huì)創(chuàng)建五個(gè)觸摸感應(yīng)按鈕,供用戶選擇使用紅色、黃色、綠色、青色、藍(lán)色或品紅色進(jìn)行著色。屏幕的剩余部分可用于著色,并在觸摸后會(huì)呈現(xiàn)所選顏色的圓點(diǎn)或線條。
CapTouchPaint 源代碼顯示了如何在指定的位置創(chuàng)建一組具有指定大小、形狀和顏色的觸摸感應(yīng)按鈕。圖 1 中的代碼顯示了如何在屏幕上繪制彩色選擇框。默認(rèn)選擇設(shè)為紅色,并指示為方框周圍的白色邊沿。
圖 1:用于在 TFT 顯示屏上繪制彩色選擇框的 Adafruit 演示代碼。
CapTouchPaint 示例還顯示了如何檢測(cè)觸摸點(diǎn)。圖 2 中的代碼摘錄描述了觸摸檢測(cè)如何更改選定顏色的按鈕。
圖 2:通過檢測(cè)觸摸點(diǎn)來控制按鈕。
開源代碼有許多優(yōu)勢(shì),其中一點(diǎn)是,用戶可以自由地使用和調(diào)整自己程序內(nèi)的代碼。使用開源代碼可以占得先機(jī),然后就可以比較輕松地強(qiáng)化特性,例如通過添加文本來描述每個(gè)按鈕的功能(例如開始/停止、前進(jìn)、倒退或菜單選擇)等。
另一種方法可用于創(chuàng)建功能更強(qiáng)大的控制面板,即,以圖形方式將用戶界面描述為將要寫入到顯示屏的位圖??梢栽?a target="_blank">控制器板存儲(chǔ)器(例如 Arduino 板載閃存或 SD 卡)中存儲(chǔ)一個(gè)或多個(gè)描述各種用戶界面屏幕的 .bmp 圖像文件。圖 3 顯示了如何通過將 SD 卡中的 .h 庫(kù)文件添加到“include”列表中,使代碼能夠檢索卡中的數(shù)據(jù)。
圖 3:使應(yīng)用能夠與 SD 卡通信。
可使用多個(gè)示例來演示如何從存儲(chǔ)器檢索 .bmp 文件,并在顯示屏中展示該圖像。圖 4 顯示了 Adafruit spitftbitmap 示例中的一段代碼摘錄,該代碼專為1.44 英寸 2088和其他類似尺寸 Adafruit TFT 顯示屏中使用的控制器而編寫??稍诰€獲取許多替代位圖查看器程序。
圖 4:用于顯示位圖文件的 TFT 控制器代碼。
方法 2.使用圖形設(shè)計(jì)工具
Memory Imprint Studio 發(fā)表的一篇博客中建議了如何將圖形設(shè)計(jì)方法與編程混合使用,幫助創(chuàng)建復(fù)雜的用戶界面。該博客建議使用開源的 Inkscape 編輯器等矢量圖形編輯器來創(chuàng)建表示為圖形 SVG 文件的用戶界面的外觀和風(fēng)格。將畫板大小設(shè)為與所選 TFT LCD 相同的大小,這將確保在顯示屏上精確地復(fù)制按鈕、滑塊或其他物件的位置。
該博客還建議使用 EMACS 開源文檔操作工具,從 SVG 文件提取坐標(biāo)。EMACS 可以自動(dòng)生成代碼,描述圖形布局,然后將其上傳到 Arduino。此處描述的方法還參考了以下事實(shí):矢量圖形編輯器這類應(yīng)用使用 24 位色,而一些創(chuàng)客板不支持標(biāo)準(zhǔn)的 24 位色,但可能支持 16 位或 18 位色深。為幫助開發(fā)人員確保以所需的顏色渲染屏幕上的圖形,Memory Imprint Studio 提供了一個(gè) RGB 5:6:5 計(jì)算器,針對(duì)任意所需顏色,以兼容 Arduino 的 5:6:5 格式生成正確的等效十六進(jìn)制代碼。
Jeremy Saglimbeni 是許多 Adafruit 用戶熟悉的一位創(chuàng)客,他在使用 Adafruit 彩色 TFT 顯示屏和 Arduino 板為一個(gè)簡(jiǎn)單家庭自動(dòng)化系統(tǒng)開發(fā)菜單型用戶界面時(shí),也解決了8:8:8 到 5:6:5 的顏色轉(zhuǎn)換問題。此演示包含多個(gè)不同的屏幕,以便家庭自動(dòng)化用戶能夠控制房屋內(nèi)的各種系統(tǒng),并且允許調(diào)整亮度和休眠時(shí)間等主要用戶界面偏好。設(shè)置休眠時(shí)間,在保持非活動(dòng)狀態(tài)幾秒鐘后關(guān)閉顯示屏背光,這有助于節(jié)省電池供電型應(yīng)用的電能。它還顯示了如何通過定期監(jiān)測(cè)電池電壓來構(gòu)建作為充電狀態(tài)指標(biāo)器的電池電量計(jì)。當(dāng)電壓跌至閾值水平時(shí),填充電池圖標(biāo)的剩余像素的顏色將變?yōu)榧t色,以向查看者發(fā)出可視化警告。
在 Instructables 這樣的創(chuàng)意分享網(wǎng)站可找到在受 ILI9341 芯片控制的 TFT 顯示屏(如Adafruit 1770和其他顯示屏)上繪制圖形的更多幫助。此示例顯示了如何顯示在 Arduino 的板載閃存中存儲(chǔ)的而不是在顯示屏模塊的 SD 卡中存儲(chǔ)的圖像,且基于Adafruit_ILI9341庫(kù)中的示例。
FTDI 通過在其網(wǎng)站提供演示程序,為類似的開發(fā)方法提供支持。這些程序可以與CleO50A等 FTDI 顯示屏配合使用,該顯示屏還提供了其他硬件接口,例如攝像機(jī)輸入接口和 I2S 及 CAN 總線接口。
自動(dòng)生成代碼
由于開源軟件可以自由地使用和修改,因此可通過利用現(xiàn)有的代碼示例和其他創(chuàng)客分享的經(jīng)驗(yàn),無(wú)需任何花費(fèi)便可開始開發(fā)圖形用戶界面。
圖 5:MikroElektronika Visual TFT 幫助創(chuàng)客使用拖放操作創(chuàng)建復(fù)雜的 GUI。
如果開發(fā)預(yù)算中可以騰出一些工具預(yù)算,則可采用類似Mikroelektronika Visual TFT(圖 5)這樣的環(huán)境,它為設(shè)計(jì)人員提供了一種低成本的方法,通過向項(xiàng)目中拖放所需的可視化元素來創(chuàng)建 GUI。這些元素可能是按鈕、滑塊、時(shí)鐘、標(biāo)簽、動(dòng)畫或其他物件。用戶可以同使用矢量圖形編輯器一樣創(chuàng)建圖層、組合組件,以及定義驅(qū)動(dòng)底層嵌入式系統(tǒng)的事件。作為統(tǒng)一工作流的一部分,GUI 以 mikroC、mikroBasic 或 mikroPascal 自動(dòng)完成編碼,并且可在編譯器 IDE 中對(duì)代碼進(jìn)行任何修改。Visual TFT 本身支持所有 Mikroelektronika 板和控制器,以及 FTDI 的 EVE GUI 平臺(tái)和圖形控制器。Visual TFT 最近還集成了編譯器,從而允許用戶順利完成以圖形方式構(gòu)思創(chuàng)意到最終完成 GUI 代碼的完整過程。
總結(jié)
網(wǎng)絡(luò)上存在廣泛的創(chuàng)客硬件及相關(guān)開源代碼選擇,為專業(yè)工程師提供了快速啟動(dòng)項(xiàng)目的寶貴資源。除了提供建立快速概念驗(yàn)證的部件之外,還有機(jī)會(huì)創(chuàng)建外觀和風(fēng)格均與最終產(chǎn)品預(yù)期非常接近的復(fù)雜原型。
市場(chǎng)上有眾多廠商在提供觸摸感應(yīng)彩色圖形顯示屏,都能讓工程師快速實(shí)現(xiàn)具有專業(yè)外觀的用戶界面。具體可操作的方法很多,如利用示例程序直接編寫簡(jiǎn)單的功能代碼,或使用免費(fèi)的在線圖形工具或 Visual TFT 這類專有環(huán)境來構(gòu)建定制 GUI。許多可靠的社區(qū)項(xiàng)目都提供在線訪問服務(wù),通過這些項(xiàng)目可幫助專業(yè)工程師們與創(chuàng)客社區(qū)建立聯(lián)系,并為社區(qū)的持續(xù)成功做出貢獻(xiàn)。
-
TFT
+關(guān)注
關(guān)注
10文章
387瀏覽量
112009 -
GUI
+關(guān)注
關(guān)注
3文章
671瀏覽量
40584 -
Arduino
+關(guān)注
關(guān)注
188文章
6485瀏覽量
189712
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
電機(jī)檢測(cè)快速安裝試驗(yàn)臺(tái)軌跡研究
輪胎動(dòng)態(tài)試驗(yàn)臺(tái)在線測(cè)控系統(tǒng)的研制
步進(jìn)電機(jī)扭矩測(cè)量試驗(yàn)臺(tái)系統(tǒng)的設(shè)計(jì)
基于LabVIEW的直流伺服電機(jī)試驗(yàn)臺(tái)設(shè)計(jì)
無(wú)線遠(yuǎn)傳抄表系統(tǒng)基本功能
Modbus TCP轉(zhuǎn)Profinet網(wǎng)關(guān)連接電機(jī)驅(qū)動(dòng)器快速配置
ESP BLE MESH快速配置問題求解
螺栓擰緊試驗(yàn)臺(tái)的研制
振動(dòng)試驗(yàn)臺(tái)/單向電磁振動(dòng)臺(tái)/振動(dòng)試驗(yàn)機(jī)
振動(dòng)試驗(yàn)臺(tái)使用說明書

評(píng)論