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