動手玩 Windows for IoT - (1) 在 Intel Galileo 開發板上執行 Windows 以及第一個 IoT 程式
在 //Build/ 2014 的 Keynote 上,微軟宣佈了將會有 Windows for IoT (Internet-of-Things) 的計劃,這個計劃的相關內容都放在 https://windowsondevices.com 這個網頁中,相關專案也都會在 GitHub 上的 https://github.com/ms-iot 這個帳號下。
而在目前公開的成果中,首先支援的開發板是 Intel Galileo(一、二代都可以),由於這個開發板相容 Arduino,而且微軟也基於這個 Windows for IoT 出了一個 Galileo C++ SDK 也是相容 Arduino 的開發環境,所以完全可以利用現有 Arduino 生態系的資源,對於熟悉使用 Visual Studio 的開發人員來說,開發這類 IoT 的應用也更加方便了。
準備環境
要開始在 Intel Galileo 上玩 Windows IoT,就要做一些準備,以下分為要裝備的硬體及軟體。
準備硬體
這裡要準備最基本的硬體包含了:
- Intel Galileo 開發板(Gen 1 or Gen 2 都可)
- AC/DC 變壓器(12V/1.5A, 開發板內附)
- RJ-45 網路線
- micro SD 卡(最大 SDHC 32GB)
當然如果有想要連接的電子元件可以自行準備。
註冊 Windows IoT 開發計劃
要下載相關軟體之前,必須先加入 Windows IoT 的開發計劃,這部份很簡單而且完全免費,只要到這頁上註冊即可。
填寫好表單註冊之後,等到收到信之後便能存取這個計劃的 Microsoft Connect 網站,以下載需要的各種軟體。
準備 Galileo 的開機軟體
首先要弄來一張 micro SD 卡(最高支援到 SDHC 的 32GB),然後寫入可以在 Galileo 上開機的 Windows 作業系統:
在 Windows IoT 的 Microsoft Connect 網站上下載燒錄映像檔的程式以及作業系統映像檔,並且將這兩個檔案放在同一個目錄下(如:D:\Downloads)。
將 micro SD 卡插入電腦,將檔案系統格式化成 FAT32。
以系統管理員身份執行命令列提示字元。
在命令提示字元下執行下列指令將作業系統映像檔寫入 micro SD 卡中,其中也設定了用這個 micro SD 卡開機的主機名稱是
mygalileo
,而密碼是admin
(可自行變換)。D:\Downloads> apply-bootmedia.cmd -destination e:\ -image 9600.16384.x86fre.winblue_rtm_iotbuild.141114-1440_galileo_v2.wim -hostname mygalileo -password admin
這些都順利完成後,就準備好了可以開機的 Windows for IoT 的記憶卡了。
準備開發的電腦環境
只要安裝了 Windows for IoT SDK 後,就可以在 Visual Studio 中開發程式並部署到 Galileo 開發板上。
在 Windows IoT 的 Microsoft Connect 網站上下載 SDK 並安裝,目前僅支援 Visual Studio 2013(Community、Professional、Premium 或 Ultimate 版本)。
安裝好之後 Visual Studio 就有 Windows for IoT 的專案範本,以及相關的 API 函式庫。
接著開啟 Windows 的 Telnet 用戶端程式,以便能夠連接到開發板上進行一些操作,這只要開啟 [控制台] -> [解除安裝或變更程式] -> [開啟或關閉 Windows 功能] 將 Telnet 用戶端勾選起來。
全部一起來
如果準備工作都做完了,那接下來就可以把全部的東西兜起來,將 micro SD 卡插入 Intel Galileo,一邊將網路線接上開發機器,另一頭也接上電源,這時候 Intel Galileo 就會開始開機了,大概就像這樣:
插好準備好的 Windows 映像檔記憶卡,同時網路線與開發的電腦對接,再接上電源開機。接著,開啟 Windows IoT SDK 內附的 Galileo Watcher 應用程式,用它來找到 Galileo 的 IP 位址,以便我們能連接它做事。
確定 Galileo Watcher 找到開發板之後,可以在命令提示字元中使輸入 telnet mygalileo 來連接上開發板上的 Windows 作業系統,登入的使用者名稱是 Administrator,而密碼就是在製作映像檔時輸入的。
如果看到登入成功的畫面,就代表你已經準備好可以來寫 IoT 的應用程式了,而若要將 Galileo 關機,就輸入下列指令來關機,在 Galileo 的燈號都熄滅後就可以拔電源了。
shutdown /s /t 0
第一個 IoT 應用程式 - 讓 LED 燈閃爍
一般我們寫程式為了測試環境,很多人習慣會寫一行印出 "Hello, world" 字串的程式來確認開發與執行的環境沒問題,在這裡,我們試著可以接上一個 LED 燈,然後用程式去控制它,以確認我們可以後續開發很酷的應用。
開啟 Visual Studio 2013,如果已經安裝了 Windows IoT SDK 的話,在 Visual C++ 的分類下可以看到 Galileo C++ 的專案範本,建立一個專案,然後在 Main.cpp 裡放入這樣的程式碼:
#include "stdafx.h"
#include "arduino.h"
int _tmain(int argc, _TCHAR* argv[])
{
return RunArduinoSketch();
}
int led = 13; // This is the pin the LED is attached to.
void setup()
{
pinMode(led, OUTPUT); // Configure the pin for OUTPUT so you can turn on the LED.
}
// the loop routine runs over and over again forever:
void loop()
{
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
Log(L"LED OFF\n");
delay(1000); // wait for a second
digitalWrite(led, HIGH); // turn the LED on by making the voltage HIGH
Log(L"LED ON\n");
delay(1000); // wait for a second
}
然後記得將 LED 燈一端接在 GPIO 的 port 13(根據程式碼)、一端接地(GND)。
接下來執行程式,便會開始將這段程式碼編譯好,透過網路遠端部署到 Galileo 板子上執行(過程中會輸入登入 Galileo 的帳號密碼),順利的話,就會讓連接的 LED 燈閃爍,完成第一個 Windows for IoT 的應用程式。
Comments
- Anonymous
June 07, 2016
請問有支援 intel edison 的套件嗎?謝謝