標籤:
入門指引
現在讓我們把LED串連到安裝了Windows10 IoT Core 的硬體裝置,並建立一個應用程式來讓它們閃爍。
在Visual Studio中載入工程
首先在這裡找到常式,這裡有C++和C#的版本可供選擇。本教程僅介紹使用C#的版本。將工程檔案夾拷貝到磁碟中,然後用Visual Studio開啟。
然後檢查你的Windows IoT裝置,確保開啟了遠端偵錯功能(Remote Debugging),可以參考這裡的Hello World程式。
請注意如果Windows 10找不到可用的GPIO介面,應用程式將不會工作。比如你將windows10安裝在了VM虛擬機器中。
將LED串連到 Windows 10 裝置
準備好下面的東西:
一個LED燈
一個阻值220歐姆電阻
若干杜邦線和麵包板
將LED的負極串連到Raspberry Pi2的GPIO 5引腳(Board編號29),正極串聯嗲足後串連到3.3v電源。(請務必注意極性,在直插型封裝的LED中,較長的引腳是正極+,較短的引腳是負極-)
部署應用程式
對於Raspberry Pi2來說,應該在architecture的下拉式功能表中選擇ARM。
以上的步驟都做好了以後。可以按下F5,程式會自動運行,然後就可以看到閃爍的LED和下面的類比介面。
可以通過改變滑塊的位置來調整LED閃爍的有效時間
代碼詳解
下面就是這個程式的代碼,基本工作原理是當定時器的時間達到後,呼叫事件Tick改變LED的狀態。
定時器代碼
這裡是設定定時器的C#代碼
public MainPage(){ // ... this.timer = new DispatcherTimer(); this.timer.Interval = TimeSpan.FromMilliseconds(500); this.timer.Tick += Timer_Tick; this.timer.Start(); // ...}private void Timer_Tick(object sender, object e){ FlipLED();}
初始化GPIO引腳
為了能夠驅動GPIO,首先需要對它進行初始化,這裡是初始化程式的C#代碼
using Windows.Devices.Gpio;private void InitGPIO(){ var gpio = GpioController.GetDefault(); // Show an error if there is no GPIO controller if (gpio == null) { pin = null; GpioStatus.Text = "There is no GPIO controller on this device."; return; } pin = gpio.OpenPin(LED_PIN); // Show an error if the pin wasn‘t initialized properly if (pin == null) { GpioStatus.Text = "There were problems initializing the GPIO pin."; return; } pin.Write(GpioPinValue.High); pin.SetDriveMode(GpioPinDriveMode.Output); GpioStatus.Text = "GPIO pin initialized correctly.";}
簡單的解釋就是:
~首先,使用GpioController.GetDefault()擷取GPIO控制許可權
~如果裝置不具有可用的GPIO資源,則返回null
~接下來通過調用GpioController.OpenPin()函數來開啟GPIO引腳
~當我們擷取了GPIO的控制許可權並開啟了GPIO引腳後,使用GpioPin.Write()函數來將LED關閉(參數設定High)
~這裡還使用了GpioPin.SetDriveMode()函數將GPIO引腳的工作模式設定為輸出模式。
改變GPIO引腳的狀態
使用GpioPinValue.Low參數開啟LED:
this.pin.Write(GpioPinValue.Low);
使用GpioPinValue.High參數關閉LED:
this.pin.Write(GpioPinValue.High);
因為我們將LED的正極串連到了3.3V電源,所以這裡通過將GPIO引腳置低電平來開啟LED。
本文來自:樹莓派實驗室
連結地址:http://shumeipai.nxez.com/2015/05/01/raspberrypi-develop-win10-samples-blinky.html
樹莓派 Windows10 IoT Core 開發教程