BeagleBone Black 賦予嵌入式 Linux 簡便的 Arduino 樣式連接能力

作者:歐洲編輯群

資料提供者:DigiKey 歐洲編輯群


Raspberry Pi 自從去年推出後,為電子產業帶來重大貢獻。 原本的定位是教育用途的低成本電腦,但其吸引力迅速拓展到主流電子市場,成為專業工程師的原型開發與評估平台。 除了用於教學運算外,Pi 也擁有廣大的電子熱衷族群與業餘喜好者,這是許久未見的榮景。 在 Pi 所引起的「迴響」下,很容易認為以往都沒有類似的產品。 然而,Arduino 等板件其實早就存在,也擁有眾多使用者,更有熱門的網路編程資源社群能輔助開發。 當然,這兩種板件在基礎層面上也有一些不同。 Arduino 採用 8 位元 Atmel AVR 微控制器,並提供足夠的 IO,能連接實際應用。此外,也具有超容易使用的整合式開發環境 (IDE)。 Arduino 提供理想的基礎,不僅能學習透過類 C 程式語言針對嵌入式微控制器進行編程,亦可瞭解基本電子知識。 相較之下,Raspberry Pi 採用 32 位元 ARM® 架構 SoC,並且著重在協助學校與其他高等教育機構教導高階運算語言和 Linux 等作業系統的基礎知識。 許多嵌入式開發板皆具有 Linux 支援,相較於較低階的 8 位元板,提供更多優勢。 此外也能在執行中的多重程式與任務之間共用處理器。 BeagleBoard-XM 是 Linux 架構的一個範例,此真正開放原始碼開發板具有 Texas Instruments 的支援。 但這卻是 Texas Instruments 最近期一款能引起廣泛討論的 Linux 開發板。 BeagleBone Black 在 2013 年 4 月推出,被視為 Raspberry Pi 的強勁對手。 不僅結合學習 Linux 運算的理想平台,也能透過實際應用的介接與互動學習基礎電子知識。 BeagleBone 規格初次推出是在 2011 年末,不但在如同信用卡的小型封裝中納入 BeagleBoard-XM 絕大多數的功能,亦建立兩個雙列 46 引腳連接器的標準覆蓋區,可用於一系列名為「擴充罩 (Cape)」的子板擴充模組。 如同 Arduino 所用的「擴充板 (Shield)」,這些擴充罩能連接多種插入板,提供更多進階 I/O。

CircuitCo BeagleBone Black

圖 1:BeagleBone Black – 主要元件佈局。

BeagleBone Black 採用 TI 的 Sitara™ AM3359 ARM Cortex™-A8 微處理器,運作頻率為 1 GHz (2000 DMIPS),Raspberry Pi 則採用 720 MHz 元件。 最值得注意的是,Black 除了 400 MHz 的 512 MB DDR3 記憶體外,還具有 2 GB 板載快閃記憶體。 此板件具有 micro D 型 HDMI 連接器、乙太網路和 USB 連接埠,並由單一 5 VDC 電源供電。 此板件最多僅消耗 250 mA,因此亦可透過 USB 供電。

在軟體層面上,Black 預載一整套軟體並且隨時能開機。 僅需連接電源、HDMI、乙太網路以及 USB 鍵盤/滑鼠,此板件就能啟動 Angstrom Linux 發行版本,接著進入 Gnome 桌面。 在開機期間,四個一組的使用者 LED 燈(USR0 至 3)會閃爍指示活動狀態。 可自行選擇隨附的三種瀏覽器:Chromium、Firefox 和 Epiphany,迅速瀏覽網際網路。 初次運作 Raspberry Pi 時,無需新增 SD 快閃記憶卡,也不用擔心要下載系統發行版本。 對於多數開發人員和熱衷者來說,Angstrom Linux 已經足夠,但 Black 採用的 ARM v7 架構(用於 Cortex-A8 架構裝置),亦可執行 Ubuntu 或 Android 系統。 在開發板上採用 Linux 的另一項考量在於乙太網路介面可提供額外的連線能力。 因此即可使用 FTP、SSH、Telnet 以及其他遠端存取服務所帶來的連線靈活性,並且能連線到 Black 自己的網路伺服器。

CircuitCo BeagleBone Black 方塊圖

圖 2:BeagleBone Black 方塊圖。

在開發工具層面,Black 也相當完善。 預載 Python 解譯器和 C/C++ 編譯器,並具有 Cloud9 IDE 的本機複本,並且已經預先配置能執行 Node.js。 此外也含有 Node.js 架構的 Bonescript 函式庫,提供多種類似 Arduino 的功能可介接硬體。 熟悉 Arduino「digitalWrite」函數的讀者對於 Bonescript 內的此函數與相似函數將迅速上手。 beagleboard.org 社群資源亦提供實用的範例專案庫、論壇,以及硬體/軟體說明文件。

CircuitCo BeagleBone Black GPIO 引腳配置

圖 3:BeagleBone Black GPIO 引腳配置。

Black 具備這些工具並可使用豐富的 GPIO,因此成為 IT 教育與基礎電子學習的理想平台。 BeagleBone Black 透過兩個雙列排針座 P8 和 P9 提供總共 92 個可使用引腳。 這些排針座提供遠比 Arduino 或 Raspberry Pi 更多的 GPIO,亦可連接擴充罩。 這些引腳能提供多種不同的功能,包括 IO 控制、感測器讀取、繼電器操作到 LED 驅動等。 在眾多第三方供應商支援下,這些擴充罩提供多種配置,包括簡易的麵包板區域、LCD 螢幕,以及能用來控制水中車輛專案的完善擴充罩。 BeagleBone Black 製造商 CircuitCo 提供的 beagebonecapes.com 社群網站,含有經過測試且完全符合規範的相容擴充罩清單。 技術上來說,只要 GPIO 使用上沒有衝突,每個擴充罩上方可堆疊最多四個擴充罩。 此外請注意,GPIO 具有多種設定和多工方法。 不同的作業系統可能會以不同的模式操作 GPIO。 Angstrom Linux 的預設多工模式為模式 7。 Linux 針對特定引腳的訊號名稱與板件所標示的引腳編號並不相同。

目前最簡易的 GPIO 實驗方式就是使用 Cloud9 IDE。 Cloud9 會在開機時自動啟動,並可透過 Black 自己的網路伺服器進行存取。 Epiphany 瀏覽器會在啟動時自動尋找 IDE,但任何瀏覽器皆可指定到 BeagleBone Black 的 IP 位址埠號 3000。 使用方式與 Arduino 的 IDE 相似,差別在於無需將程式碼上傳到板件;程式碼自動儲存在檔案系統內。 Black 自己的網路伺服器提供便利的頁面組合,能讓使用者存取 Cloud9 IDE 以及一些簡易的 Bonescript 程式碼範例,以便與板件進行互動。

Cloud9 整合式開發環境

圖 4:Cloud9 整合式開發環境。

如同多數嵌入式應用的傳統 IDE,Cloud9 也具有工作區可進行程式碼編輯、驗證、偵錯以及測試。 寫入程式碼是一項涵蓋變數與語法檢查的互動流程,在輸入時就會進行。 偵錯流程比 Arduino 更複雜,完整使用斷點、觀察變數以及單步驟執行。 Cloud9 在 node.js JaveScript 中寫入多種簡易範例,並且納入 Bonescript 函式庫。 「blinkd.js」程式碼範例(參閱圖 5)能針對使用者 LED 燈 (USR3) 進行控制。 此範例可延伸到 GPIO 引腳的使用,將 LED 和上拉/限流電阻接至所需的 GPIO 引腳,並將 ledPin 的配置變更成相關 GPIO,例如 bone.P8_3。 Cloud9 屬於入門級 IDE,能快速簡便地撰寫簡短程式碼專案,然後執行並偵錯。 雖然開/關 LED 看似直覺的任務,但卻是重要的首要步驟,有助於建立自信並熟悉板件,對首次嘗試介接實際應用的軟體開發人員而言更是如此。

「blinked.js」程式碼範例

圖 5:「blinked.js」程式碼範例。

使用 node.js JavaScript 是編程 BeagleBone Black 的偏好方式。 對於不熟悉編程或高階程式語言的人而言,這是較簡單的入門方法,也是快速建立原型的方式。 但對於有編程經驗且需要進行更複雜設計的人員來說,也支援 Python 和 C 語言。 Bonescript 也在 node.js 中加入 Arduino 樣式的數位與類比 IO 命令,而 Python 開發人員亦可使用稱為 PyBBIO 的函式庫。

GPIO 亦可在 Linux 作業系統中直接定址。 可直接在板件上,或透過 SSH 遠端連線即可完成。 首先,須使用指定 GPIO 引腳識別正確的 Linux 訊號名稱,接著要具備 Linux 命令列層面的操作知識。 每個 GPIO 引腳在使用期間,會在 /sys/class 主目錄下具有以 Linux 訊號名稱為名的目錄名稱。 因此在使用一或多個擴充罩時,就可判別可能的訊號/GPIO 衝突。 連接器 P8 - 引腳 16 會判別成 GPIO46(參閱圖 6)。 您可在畫面截圖中看見,gpio46 目錄並不存在,因此訊號可供使用。 驅動接至引腳的 LED 時,寫入一個 1-to-Linux 值檔案,即可用 0 將其開啟或關閉。 使用後,不要忘記「解除匯出」目錄,以便清除引腳的使用。 這些殼層命令亦可納入到 Python 指令中。

範例命令可透過 SSH 控制 GPIO 引腳

圖 6:範例命令透過 SSH 控制 GPIO 引腳。

無論您是想要透過說明完善且開放式原始碼的平台加速新專案的資深嵌入式開發人員,或是想要找點樂趣的電子熱衷者,BeagleBone Black 皆是奠定設計基礎的絕佳選擇。
 
DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

歐洲編輯群

關於出版者

DigiKey 歐洲編輯群