Microsoft Windows Desktop 與 Arduino 完美結合:創客的夢想?

作者:歐洲編輯群

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

創客社群中充斥著各種新想法。大多數的新想法採用新的技術,並且以新穎的方式提供和交付服務。其他想法前所未見,亦開創了新的視野。這些新想法的挑戰在於,將產品的設計從草擬到實現,這可能十分艱鉅。初出茅廬的企業家意識到產品優先上市的重要性,因此需要快速的發展階段。嵌入式單板電腦 (SBC),例如 ArduinoRaspberry PiBeagleBone Black,已迅速成為多數創客的最佳平台選擇。大多數的 SBC 選擇使用 Linux 作業系統。 然而,儘管設計中已結合大量的彈性和功能,Linux 在初上手時仍需要相當程度的熟悉度,可能讓不太會使用開放原始碼作業系統的人望而卻步。Arduino 會是一項例外,因為它並未使用作業系統。然而,這並不會限制 Arduino 可輕鬆應對真實世界中與嵌入式設計介接的簡便性和編程方便性。Arduino 在創客社群中廣受歡迎,尤其對於電子產品的新手而言,被視為是針對愛好者電子產品重新燃起興趣,進而發揮許多新產品創意的功臣。

許多創客在開發新產品時,面臨的主要挑戰在於如何進行原型開發,以便將 Arduino 的最佳功能與 Microsoft® Windows 的使用者和應用程式熟悉度完美結合。本產品提供一系列連接選項,例如 SPI、I2C 和 UART,並且搭配 GPIO、PWM 和 ADC 等周邊裝置,Arduino 無庸置疑提供了非常可靠且有效的方式,讓設計連接並感測真實世界。從應用程式開發角度來看,您可能更熟悉使用採行 C#、Java 和 Python 等程式語言的 Microsoft Visual Studio IDE 開發桌上型電腦應用程式,而非 Linux。直到近期,才有一種簡單的方式整合 Windows Desktop 和 Arduino 的不同領域。如今,DFRobot 提供了一款名為 LattePanda 的 SBC,承諾可以達到整合 (圖 1)。

DFRobot 的 LattePanda 的圖片

圖 1:DFRobot 的 LattePanda。

LattePanda 本質上是一款預先安裝 Microsoft Windows 10 家用版作業系統的超小型單板 Windows 電腦,採用 1.8 GHz 的 Intel® Cherry Trail Atom Z8350 四核心微處理器以及 Arduino 相容的 Atmel ATmega32u4 協同處理器。請注意,此為完整版 Windows 10 系統,並非簡化的物聯網 (IoT) 版本。共有兩種型號可供選擇,分別為 32 GB e-MMC 儲存裝置和 2 GB RAM 板,或是 64 GB 儲存裝置和 4 GB RAM 板。LattePanda 亦提供不具有已啟動 Windows 10 金鑰的版本。LattePanda 的標準連接選項包含 USB 2.0 和 USB 3.0、一個 100 Mbps 乙太網路連接埠、HDMI 輸出、一個 3.5 mm 音訊插槽、一個 microSD 插槽、Bluetooth 4.0 和 Wi-Fi。圖 2 顯示了 LattePanda 的主要元件和介面。此板透過一個 micro USB 插槽以單一 5 VDC、2.5 A 的電源供應器供電。請確保電源配接器在運作過程中提供至少 2.3 A 的電流,以避免 LattePanda 在啟動過程中重置。 LattePanda 的尺寸僅 88 mm x 70 mm (3.46" x 2.76"),此小巧體積足以整合進空間受限的設計中。為了協助您放置在外殼中,您可從 LattePanda 的論壇中取得其機械規格和 3D 模型檔案。將此板安裝在狹小的空間時,建議加上風扇進行強制冷卻,並採用合適的散熱片,因為此板在正常運作時溫度會較高。提供一組客製的銅散熱片,可與 LattePanda 搭配使用。板上搭載一個 5 VDC 的風扇電源供應器。

LattePanda 的主要元件和介面圖

圖 2:LattePanda 的主要元件和介面。

除了 Windows 作業系統外,該板已預先載入 Microsoft Visual Studio 與 Arduino IDE。透過使用適合的虛擬網路計算 (VNC) 終端應用程式 (例如 TightVNC),或是將 LattePanda 1074 x 600 7 in LCD 顯示面板與其對應的觸控式面板連接,該板便能進行無頭操作。顯示器與電容式觸控面板均是透過 FFC 纜線與 ZIF 插槽連接至 LattePanda。

若要使用各種周邊裝置 IO,Windows 和 Arduino 的組合已有完善的考量。圖 3 顯示可用的引腳配置。可使用來自 Atom 和 ATmega32u4 的訊號,主要是透過來自 Arduino 的一個 24 引腳雙列插槽。可於圖 3 中的 U1 區域中找到 Atom IO。所有 20 個 GPIO 引腳 (類比 A0 至 A5 和數位 D0 至 D13) 均使用 5 V 邏輯,並可作為輸入或輸出,其中 12 個可個別設定為類比輸入使用。請參閱圖 3 中的 U2 區域。當連接任何感測器或裝置至 IO 時,請確保這些裝置也使用 5 V 邏輯。若使用 3.3 VDC 裝置,則需要使用邏輯位準轉換器。每個類比引腳皆具有 10 位元解析度,可自 0 至 5 VDC 的輸入電壓範圍提供 1024 個值。引腳 D3、D5、D6、D9、D10 和 D13 可以作為 8 位元 PWM 輸出。此外,D7、D3、D2、D1 和 D0 可在多種不同條件下觸發外部中斷。與傳統的 Arduino 一致,具有一個連接至 D13 的 LED,可與標準的閃爍 LED 草稿碼搭配使用。

LattePanda – 周邊裝置引腳配置的圖片

圖 3:LattePanda – 周邊裝置引腳配置

請注意,部分 Arduino 引腳 D9、D10、D11、A0、A1 和 A2 同時存在於核心 Arduino 連接器中,供 DFRobot Gravity 感測器使用。

可以從在 ATmega32u4 核心上運行的應用程式和從 Atom 存取引腳。除了標準的 GPIO IO 之外,也可自排針座透過 I2C 和 SPI 進行序列通訊。此外,還提供 6 位元 ICSP 連接器。Windows 應用程式能夠輕鬆使用 Arduino GPIO 引腳,這要歸功於搭配 Visual Studio 使用的 LattePanda Firmata 開放原始碼程式庫。這能讓任何應用程式都能夠以類別函數存取和控制任何引腳。您可以在此處找到可用的程式庫函數的詳細說明以及可供個別下載的 Visual Studio C# 範例檔案。

用於讓板載 LED 閃爍的 Visual Studio 程式碼的螢幕截圖 (按一下可檢視全圖)

圖 4:用於讓板載 LED 閃爍的程式碼的 Visual Studio 螢幕截圖。

為了確保一切運作正常,圖 4 中顯示用於調用 Firmata 類別程式庫的 Visual Studio C# 程式碼。執行時,板載 LED 會開始閃爍。熟悉 Arduino 的 C 語言型程式碼結構和函數的讀者將會注意到類別函數與 Arduino 草稿中所使用函數的相似性。

提供專為此板所設計的一組感測器,讓使用 LattePanda 建立應用程式變得更加容易。Gravity 感測器入門套件包含 14 個感測器及其連接纜線,包括溫度、光、氣體和火焰感測器、類比旋轉感測器、數位按鈕、各種顏色的 LED 和繼電器模組。這些均插入板上的一排六個的 3 引腳 Gravity 連接器中,其引腳如圖 3 所示。

此板的 I2C 匯流排提供為連接感測器、致動器和顯示器提供另一種便捷方式。Firmata 程式庫提供必要的類別函數,可使用 wireBegin、wireRequest 和 didI2Cdatareceive 函數直接向 Visual Studio 應用程式傳送與接收資料。以下範例展示使用 AdafruitI2C 3 軸加速計評估板。此板使用 Analog Devices 的 ADXL345 超低功率、高解析度的 3 軸 MEMS 感測器。MEMS 感測器連接至 LattePanda,如圖 5 所示。

將 Adafruit 的 ADXL345 3 軸 MEMS 感測器配線至 LattePanda 的圖片

圖 5:將 Adafruit ADXL345 3 軸 MEMS 感測器配線至 LattePanda

電源是由引腳 22 (5 V) 和 21 (GND) 提供,而 I2C 連接至引腳 6 (黃線 SDA) 和引腳 8 (藍線 SCL)。

圖 6 中的原始碼顯示使用預設感測器位址 0x53 和預設測量範圍 0x2D (2 G) 寫入感測器板。然後再自感測器持續回讀資料,並解析成 X、Y 和 Z 軸讀數,顯示在控制台螢幕上。

顯示設定和讀取 ADXL345 3 軸 MEMS 的 C# 程式碼的圖片 (按一下可檢視全圖)

圖 6:顯示透過 I2C 介面設定和讀取 ADXL345 3 軸 MEMS 感測器的 C# 程式碼。

上述兩個範例不僅說明 LattePanda 如何快速建立應用程式,也說明此板是一個預先認證的平台,可協助快速開發應用程式並部署至市場。因此無需從無到有開發合適的嵌入式設計,免除了相關的 NRE 成本、風險和上市時間,採用 SBC 的設計在幾個星期內便可實現。設計一旦進入市場且客戶開始使用,便可保有先發優勢,若生產量可支援企業所需,工程團隊便可以為自訂設計準備物料清單,充分利用 LattePanda 論壇所提供的機械模型。

LattePanda 的許多可能應用,非常適合用於物聯網 (IoT) 解決方案。該板具有足夠的運算和連線資源,可即時從一系列有線和無線連接的感測器中讀取資料、彙總結果,並且透過 Wi-Fi 或乙太網路通訊將其轉送到雲端分析平台。此閘道器方法在工業物聯網 (IIoT) 應用當中越來越受歡迎。此方法被稱之為「霧運算 (fog computing)」,由於可在本機實現部分控制功能,無須等待雲端應用回應,因此對於持續雲端連線能力有較低的依賴性。比如說,當達到某個溫度點時便開啟空調設備。讓溫度感測器和設備致動器位於閘道器,便可滿足對冷空氣的要求,而不會產生通訊成本、控制延遲或需雲端計算資源。

Microsoft 的 Azure IoT 中樞平台是廣受歡迎的雲端計算平台,完整支援 LattePanda SBC。GitHub 儲存庫記錄該板與 Azure 平台通訊的相關流程。這是 LattePanda 所提供資訊以外的額外資訊。為使開發和測試程序更為順利,Microsoft 提供了可測試 IoT 中樞連線性的 Node.js 範例文件。下載這些範例之前,必須先從 Azure 入口網站設定 Azure 帳號及建立新的 IoT 裝置 (圖 7)。

Azure IoT 中樞入口圖片

圖 7:建立新的 Azure IoT 中樞入口。

圖 8 說明了如何設定中樞入口的詳細資訊和命名主機。此程序提供用於識別 LattePanda 之感測器並將其綁定至 Azure IoT 中樞的認證資訊 (連接字串和存取金鑰)。此程序一旦完成,便可以在構建和執行程式碼之前,編輯提供的「simple_sample_device.js」檔案並輸入連接字串。在 Azure IoT 中樞中,可透過 DeviceExplorer 公用程式功能觀察中樞自 LattePanda 接收的訊息。

Azure IoT 中樞 – 註冊新裝置的圖片

圖 8:Azure IoT 中樞 – 註冊新裝置。

一旦您確信通訊已經建立,便可以使用 Azure 的服務來處理您應用程式的設計。例如,您可以使用 Azure Storage 服務來建構感測器讀數表。Azure Stream Analytics 和 Azure Power BI 是 Azure 應用程式的其中兩個範例,可以解讀、分析和顯示感測器資料的數值和趨勢。

光線感測器 Node.js 範例的圖片

圖 9:顯示 Azure Storage 函數的光線感測器 Node.js 範例

圖 9 說明 Node.js 程式碼範例,該範例會從連接至引腳「A0」的 Gravity 光線感測器讀取數值,並儲存在 Azure Storage 表格中。與 Azure Storage 通訊的函數會以紅色底色標注。

於 LattePanda 上進行開發相當容易。這是一個具有完善支援的平台,擁有大量的供應商文件、線上社群論壇以及包含機械模型、程式庫和程式碼範例的專屬 GitHub 儲存庫。此外,核心作業系統 Microsoft Windows 10 在商業開發環境和應用程式方面也有完善的支援。Arduino 協同處理器還擁有大量刊物、開發人員和編程資源。Arduino IDE 可能是您所見最普遍的 IDE。Microsoft Visual Studio 是理想的 IDE 輔助工具,可支援各種熱門的程式語言進行開發,像是 C#、Python 和 F#/.Net。

結論

LattePanda 為創客社群引進嶄新的概念。可將 Arduino 介接真實世界的簡易性與大量 Windows 開發人員及其應用程式完美結合,擴展了嵌入式設計的涵蓋範圍,並開拓了無盡的全新產品商機。

DigiKey logo

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

關於作者

歐洲編輯群

關於出版者

DigiKey 歐洲編輯群