4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

・VisualStudio2015RCで 新しいプロジェクト>テンプレート>Visual C#>Windows Univiersal>Blank App(Windows Universal)を選んでプロジェクトを作成します。
新規プロジェクト.PNG

・ソリューションエクスプローラーの参照を右クリックして追加を選びます。参照マネージャー>Windows Universal>拡張を選んでから、リスト内のWindows IoT Extemsion SDKにチェックを入れてOKをクリックします。
参照追加.PNG

・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);
            }
        }
    }
}

・ターゲットをARMにします。
プラットフォーム.PNG

・リモートコンピューターの設定をします。認証モードはなしに、アドレスはRPi2のIPアドレスです。
リモート接続.PNG

・リモートコンピューターをクリックしてデバッグを実行します。エラーが出る場合は一度RPi2を再起動してください。
debug.PNG

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

以上になります。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?