このページは、下記の参考ページを元に掲載しています。ご了承願います。
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 に切り替わるはずです。
▫️参考ページ
NETMF : OutputPortの使い方とGR-PEACH / GR-SAKURAでの LED 点灯のコード例
NETMF : InputPortの使い方とGR-PEACH / GR-SAKURAでのボタン操作のコード例
GR-PEACH (PinKit) が届いたので .NET Micro Framework を使った開発を試してみた
コメントをお書きください