Windows10 IoT CoreをインストールしたRPi2だけでLチカをしてみます。
GPIOの基本的な使い方の説明になります。
・VisualStudio2015RCで 新しいプロジェクト>テンプレート>Visual C#>Windows Univiersal>Blank App(Windows Universal)を選んでプロジェクトを作成します。
・ソリューションエクスプローラーの参照を右クリックして追加を選びます。参照マネージャー>Windows Universal>拡張を選んでから、リスト内のWindows IoT Extemsion SDKにチェックを入れてOKをクリックします。
・MainPage.xaml.csを開いて次のようにプログラムを記述します。
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);
}
}
}
}
・リモートコンピューターの設定をします。認証モードはなしに、アドレスはRPi2のIPアドレスです。
・リモートコンピューターをクリックしてデバッグを実行します。エラーが出る場合は一度RPi2を再起動してください。
無事プログラムが動作すればACT LEDが点滅することが確認できます。
LED_PINを47から35へ変更するとPWR LEDを点滅させることができます。
以上になります。