IoT Kit ハンズオントレーニングをエミュレータで行う
https://aka.ms/IoTKitHoL から公開中のハンズオントレーニング、現在はGHI Electronics社製FEZ Spiderを使った内容になっています。もうすぐGR PEACH+センサーボードを使った場合の内容も追加する予定ですが、ハードウェアが無くてもとりあえずやりたい、という方もいるかなと思うので、Emulatorによる実習方法を解説します。
Emulatorでの開発環境は、Visual Studio 2013 (有償版、Community版どちらでも可)に以下の二つのSDKをインストールします。
- .NET Micro Framework SDK(https://netmf.codeplex.com/のdownloadからZIPファイルをダウンロードし、MSIとVSIXファイルを実行)
- .NET Gadgeteer Core SDK(https://gadgeteer.codeplex.comのdownloadからGadgeteer Core SDKをダウンロードし、MSIファイルを実行)
次に、https://aka.ms/IoTKitHoL の”事前準備”ページから公開されているIoT Kit Emulatorのエミュレーターインストーラーをダウンロード&MSIファイルを実行してEmulator本体をインストールします。同じページの”エミュレーター用ライブラリ一式”をダウンロードしてファイルのプロパティでブロックを解除し、解凍しておきます。
これで準備は完了。
次に、IoT Kitハンズオントレーニングを実施するためのプロジェクト作成方法を説明します。
Visual Studio 2013を起動し、メニューの”ファイル”→”新規作成”→”プロジェクト”を選択し、”Visual C#”の”Micro Framework"カテゴリの”Console Application”で、新規にプロジェクトを作成します。
プロジェクト作成時にできた、ソリューションの場所をファイルエクスプローラーで開きます。(ソリューションビューで、ソリューションを右クリックして”エクスプローラーでフォルダーを開く”を選択)
その場所に”Library”という名前でフォルダーを作成し、エミュレータ用ライブラリ一式でダウンロードしたZIPファイルの中身を丸ごとコピーします。
ソリューションビューで、”参照設定”を右クリックし、”参照の追加”を選択します。表示されたダイアログの".NET”タブで、”Gadgeteer”を先ず追加します。次にもう一度参照設定のダイアログを表示させ、”参照”タブを選択して、”Library”フォルダーにコピーした、”EGIoTKit.dll"と”EGIoTKitEmulator.Modules.dll”を選択して、追加します。
これで、Emulatorに実装されている温度センサーや加速度センサーを使えるようになります。
さて、プロジェクトに、”EmulatorInitializer.cs”という名前で、C#ソースファイルを追加します。そして、その中身を、
using System;
using Microsoft.SPOT;
namespace ProjectName
{
public partial class Program : Gadgeteer.Program
{
public static void Main()
{
Program.Mainboard = new EGIoTKitEmulator.Modules.EGIoTKiTEmulatorMainboard();
var program = new Program();
program.InitializeModules();
program.ProgramStarted();
program.Run();
}
private void InitializeModules()
{
//
}
protected new static EGIoTKitEmulator.Modules.EGIoTKiTEmulatorMainboard Mainboard
{
get
{
return ((EGIoTKitEmulator.Modules.EGIoTKiTEmulatorMainboard)(Gadgeteer.Program.Mainboard));
}
set
{
Gadgeteer.Program.Mainboard = value;
}
}
}
}
とします。※"ProjectName"は、プロジェクト作成時に指定したプロジェクト名です。
次に、プロジェクトを作成した時に自動的に出来上がるProgram.csファイルのProgramクラスを以下の様に変更します。
public partial class Program
{
public void ProgramStarted()
{
var accelerometer = Mainboard.AccelerometerSensor;
var temperature = Mainboard.TemperatureSensor;
}
}
ProgramStartedメソッドの中では、Emulatorの加速度センサーと温度センサーを取り出すコードを書いています。この二つの変数を使えば、IoT KitハンズオントレーニングのStep2~5を実施できます。※Relayは、インテリセンスを駆使して自分で調べてみてください。
後は、ソリューションエクスプローラーで、プロジェクトを右クリックして”プロパティ”を選択し、”.NET Micro Framework”タブをクリックして、”Device:”を”EGIoTKitEmulator”に選択し直します。これで、F5実行で、以下の様なEmulatorが起動します。
右上のTemperatureは、Room Tの値にホワイトノイズが乗った値を供給します。Touchのチェックを入れると、Figure Tの値まで漸近していき、指でセンサーを触った状態をエミュレートします。チェックを外せば、Room Tに漸近していきます。
左下のAccelerometerは、デフォルトでは、Zのマイナス方向に1Gがかかった状態でホワイトノイズが乗った値を供給します。Shakeにチェックを入れるとボードを揺らした状態をエミュレートします。ピンク色の板をマウスで動かすと、ボードの角度が変わり、それに合わせて加速度のX、Y、Zの値が変わります。元の状態(Z軸のマイナス方向に1G)に戻したい場合はResetボタンをクリックします。
Emulator本体やライブラリは、https://github.com/ms-iotkithol-jp/Emulator や、https://github.com/ms-iotkithol-jp/Gadgeteer から公開しているので興味のある方はご参照ください。