Windows10 IoT Core for RPi2 Lチカサンプル（RPi2のみで出来る）

Windows10 IoT CoreをインストールしたRPi2だけでLチカをしてみます。
GPIOの基本的な使い方の説明になります。

・VisualStudio2015RCで 新しいプロジェクト>テンプレート>Visual C#>Windows Univiersal>Blank App(Windows Universal)を選んでプロジェクトを作成します。
![新規プロジェクト.PNG](https://qiita-image-store.s3.amazonaws.com/0/62606/20221a76-da34-0765-2eda-0f8df468ec2d.png)

・ソリューションエクスプローラーの参照を右クリックして追加を選びます。参照マネージャー>Windows Universal>拡張を選んでから、リスト内のWindows IoT Extemsion SDKにチェックを入れてOKをクリックします。
![参照追加.PNG](https://qiita-image-store.s3.amazonaws.com/0/62606/df91d40d-2f33-2862-a31e-4e0f7f0be4a4.png)

・MainPage.xaml.csを開いて次のようにプログラムを記述します。

```C#:MainPage.xaml.cs
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using System.Diagnostics;
using Windows.Devices.Gpio;


// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

namespace LChika
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        private const int LED_PIN = 47;     //ボード上ACT_LED(GPIO47)
        private GpioPin pin;
        private GpioPinValue pinValue;      //Pinの状態(High/Low)
        private DispatcherTimer timer;      //点滅用タイマー

        public MainPage()

        {
            this.InitializeComponent();

            //タイマーの準備
            timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromMilliseconds(500);    //500ミリ秒毎
            timer.Tick += Timer_Tick;       //タイマーイベントの登録
            InitGPIO();                     //GPIO初期化
            if (pin != null)
            {
                timer.Start();
            }
        }

        private void InitGPIO()
        {
            var gpio = GpioController.GetDefault();     //GPIOを制御とするためのクラスを取得

            if (gpio == null)
            {
                pin = null;
                Debug.WriteLine("GPIOを初期化できません.");
                return;
            }

            pin = gpio.OpenPin(LED_PIN);
            pinValue = GpioPinValue.High;
            pin.Write(pinValue);                        //GPIO47をHighに設定
            pin.SetDriveMode(GpioPinDriveMode.Output);  //GPIO47を出力モードに設定

            Debug.WriteLine("GPIOを初期化しました。");
        }

        private void Timer_Tick(object sender,object e)
        {
            if (pinValue == GpioPinValue.High)
            //GPIOがHighの時
            {
                pinValue = GpioPinValue.Low;
                pin.Write(pinValue);             
            }
            else
            //GPIOがLowの時
            {
                pinValue = GpioPinValue.High;
                pin.Write(pinValue);
            }
        }
    }
}
```

・ターゲットをARMにします。
![プラットフォーム.PNG](https://qiita-image-store.s3.amazonaws.com/0/62606/eeee91ec-6700-94df-5300-031c10b8c9a3.png)

・リモートコンピューターの設定をします。認証モードはなしに、アドレスはRPi2のIPアドレスです。
![リモート接続.PNG](https://qiita-image-store.s3.amazonaws.com/0/62606/9261bd0d-ab21-763f-9a1d-8a158cf5045c.png)

・リモートコンピューターをクリックしてデバッグを実行します。エラーが出る場合は一度RPi2を再起動してください。
![debug.PNG](https://qiita-image-store.s3.amazonaws.com/0/62606/849f65e3-aec0-6039-18f6-1bc7a858ba3b.png)

無事プログラムが動作すればACT LEDが点滅することが確認できます。
LED_PINを47から35へ変更するとPWR LEDを点滅させることができます。

以上になります。