2016年

3月

11日

GR-PEACH オンボードLEDのボタン動作

このページは、下記の参考ページを元に掲載しています。ご了承願います。

 

GR-PEACH (Visual Studio 2015 C#) のオンボードLED ボタン動作点灯の検証をしています。

Visual Studio 2015を起動

新規作成 --> プロジェクトを選択 --> Visual C# --> Micro Framework 
”Console Application”を選択 --> OK選択

コンパイルするには、Microsoft.SPOT.Hardware の参照を追加する必要があります。

[参照]を右クリックし参照の[追加(R)...]を選択クリック

Microsoft.SPOT.Hardwareを選択追加

■ InputPort

InputPort はセンサーなどのデバイスのデータを入力するためのポートです。ボタンも入力デバイスの一つです。

InputPort は以下のように宣言します。

var button = new InputPort(<ポート番号>, <グリッチフィルターの設定>, <プルアップ/ダウン抵抗>);

第一引数でどのポートを InputPort として使用するかを指定します。
グリッチフィルターとは、ボタンオン/オフなどの際に、入力値が一時的にパタパタと切り替わるのを防ぐフィルターのこと。true を指定するとグリッチフィルターが有効になります。
プルアップ/ダウン抵抗は、デバイスによって指定が異なります。Port.ResistorMode.Disabled を指定すると、プルアップ抵抗もプルダウン抵抗も使用しないことを意味します。

InputPort は Read メソッドを持っています。
文字通り、ポートの信号を読み出すメソッドです。メソッドを呼びだした時に同期的に信号を読み出すものなので、繰り返しポートの信号を読みたい時にはポーリングする必要があります。

■ GR-PEACH のボタン

GR-PEACH ではボタンは 0x60 番ポートに接続されています。

組込みに慣れていない方、普段は業務アプリ開発をしている方には直感的に分かりづらい点としては、Read メソッドで取得できる値は負論理である点です。つまりボタンが押されていれば false、離されていれば true が返されます。

■ GR-SAKURA のボタン

GR-SAKURA ではボタンは 0x57 番ポートに接続されています。

■ InputPort のコード例 ~ GR-PEACH / GR-SAKURA のボタン操作 ~
ボタンを押すとユーザー LED が点灯します。
GR-SAKURA ではコメントを参考に一部書き換えてください。

Visual Studio 2015 C# のソース記述

GRPeachInputPort

 

using System;
using Microsoft.SPOT;
using System.Threading;
using Microsoft.SPOT.Hardware;

namespace GRPeachInputPort
{
    public class Program
    { 
        // GR-PEACH
        private const Cpu.Pin ButtonPin = (Cpu.Pin)0x60;    // ボタン
      private const Cpu.Pin UserPin = (Cpu.Pin)0x6c;      // ユーザーLED

        // GR-SAKURA
        //private const Cpu.Pin ButtonPin = (Cpu.Pin)0x57;    // ボタン
        //private const Cpu.Pin UserPin = (Cpu.Pin)0x56;      // LED4


        public static void Main()
        {
            //Debug.Print(Resources.GetString(Resources.StringResources.String1));


            var button = new InputPort(ButtonPin, true, Port.ResistorMode.Disabled);
            var led = new OutputPort(UserPin, false);

            (new Thread(() =>
            {
                while (true)
                {
                    var isPressed = !button.Read();

                    led.Write(isPressed);
                    Thread.Sleep(100);
                }
            })).Start();
        }
    }
}

後は Visual Studio から実行するだけですが、デフォルトの設定だとエミュレータが起動するようになっているので、プロジェクトのプロパティから GR-PEACH を使うように変更しておきます。

正常に GR-PEACH が認識されている場合、USB を選択すると GR-PEACH に切り替わるはずです。

 

目 次