GR SAKURAで.NET Micro Frameworkを使おう


先日行ったデブサミでのハンズオン、それから、最近各地方で開催しているIoT Kitハンズオンで使っているGR SAKURAを.NET Micro Frameworkデバイスとして使うためのセットアップ方法を解説します。
GR SAKURAを既に持っている方、是非、お試しください。

※本説明は、2015年3月31日現在の情報に基づいて記載しています。

GR SAKURAの.NET Micro Framework化は、TinyCLRという.NET Micro Frameworkの実行エンジンファームウェアをGR SAKURAに書き込むことで行います。

この作業を行うために、ルネサスさんから提供されているFDTというツールをまず、PCにインストールしてください。

 
こちらからツールが公開されているので、このページの記載をよく読んで、インストールしてくださいね。
それから、
 
の”DOWNLOAD”ページから最新のファームウェアが入ったZIPファイル(最新版はhttps://aka.ms/GRSakuraFW )をダウンロードします。ダウンロード後ZIPファイルのプロパティでブロックを外しておいてください。ZIPファイルを解凍すると、tinyclrmbl.mot という名前のファイルが入っています。これが.NET Micro Frameworkのファームウェアが格納されているファイルです。
では、セットアップを開始しましょう。
 
1. ボードをPCにつなぐ
図に示されているようにボードのスイッチをセットして、USBケーブルでPCに接続します。
2. FDTを起動
ルネサスさん提供のFDTを起動します。FDT.exeは、
64Bit OSの場合、
c:¥Program Files(x86)¥Renesas¥FDT4.09 ※最後の数字は違うかも
32Bit OSの場合
c:¥Program Files¥Renesas¥FDT4.09 ※最後の数字は違うかも
にあります。FDT.exeをダブルクリックして実行してください。
FDTが起動して、最初に表示されるダイアログはそのまま”OK”をクリックし、次に表示されるダイアログの”Workspace Name”もしくは、ワークスペース名は、適当な文字列(SAKURAとか)を入力してOKをクリックしてください。
 
3. ボードの接続設定
図に説明されている通りに操作を行ってください。
 
 
 
これでFDTアプリ上での、ボードの接続作業が完了しました。
 
4. ファームウェアの焼付け
メニューの”File”→”Open Data File”を選択し、CodeplexからダウンロードしたMOTファイルを選択します。
 
 次に、メニューから”Device”→”Download Active File”を選択します。これでボードへのファームウェアの転送が始まります。転送が完了すると、図の様に”Image written to device”と表示されます。
 
転送&書き込みが終わったら、ボードをDisconnectします。メニューの”Device”→”Disconnect”を選択します。表示されたダイアログは”OK”をクリックします。
ケーブルはつないだまま、ボードのスイッチをRUN側に切換えて、リセットボタンを押します。
 
これで、ボード側のセットアップは完了です。
次に、PC側のドライバーをインストールします。
 
ドライバーは、https://netmf4rx.codeplex.com/releases/view/612666から、USB Driver for Windows 7/8.1をクリックして”GRPEACH-NETMF-Driver.zipファイルをダウンロードしてください。
ダウンロードしたZIPファイルは、右クリック→プロパティ表示で、右下の”ブロック解除”をクリックしてブロックを解除することをお忘れなく。
ZIPファイルを展開し、INSTALL.BATファイルを実行します。
 
 
ドライバーのインストールが終了したら、PCにUSBケーブルでSAKURAを再度接続します。
デバイスマネージャーで、ユニバーサルシリアルバスデバイスの下にGR_SAKURAが表示されていればOK.。
 
この作業が終われば、PCにSAKURAを接続すると、いつも、.NET Micro Framework対応版SAKURAとしてPCにつながるようになります。
あとは、Visual Studioで、.NET Micro Frameworkのプロジェクトテンプレートを使ってアプリを開発できるようになります。
あ、Visual Studio使ったことない人、https://www.visualstudio.com/ からVisual Studio 2013 Community Editionという無償版が公開されているので、それを使ってください。既に有償版やVisual Studio Express fro Windows Desktopをインストール済みの人も開発可能です。
Visual Studioをインストールしたら、http://netmf.codeplex.com/ の右側の”DOWNLOAD”からダウンロードしたZIPファイルに入ったMSIとVSIXを実行してSDKをインストールすればセットアップはおしまい。
例えば、エルチカは、Visual C#のMicro FrameworkのConsole Applicationテンプレートを使ってプロジェクトを作成し、参照に、Microsoft.SPOT.Hardwareというアセンブリを追加して、

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

            var program = new Program();
            program.LChika(500);
        }

        Program()
        {
            LED = new OutputPort(LEDpin, false);
        }

        public void LChika(int msec)
        {
            bool status = false;
            while (true)
            {
                status = !status;
                SetLED(status);
                Thread.Sleep(msec);
            }
        }
        public void SetLED(bool on)
        {
            LED.Write(on);
        }

        static Cpu.Pin LEDpin = (Cpu.Pin)80;                            // PA0 – GPIO 80: LED
        OutputPort LED;

    }

といったようなコードで実行できます。

また、HTTPでWebにアクセスしたい場合は、参照に、Microsoft.SPOT.Net、Sysmte.Http、System.IOの3つのアセンブリを追加し

string ipAddr = “”;
foreach (var ni in Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
{
    if (ni.NetworkInterfaceType == Microsoft.SPOT.Net.NetworkInformation.NetworkInterfaceType.Ethernet)
    {
        if (!ni.IsDhcpEnabled)
        {
            ni.EnableDhcp();
        }
        Thread.Sleep(1000);
        ipAddr = ni.IPAddress;
        if (ipAddr != “” && ipAddr != “0.0.0.0”)
        {
             if (!ni.IsDynamicDnsEnabled)
             {
                  ni.EnableDynamicDns();
             }
             break;
         }
     }
}
if (ipAddr != “0.0.0.0”)
{
    using (var request = HttpWebRequest.Create(“http://www.bing.com“) as HttpWebRequest)
    {
        try
        {
            using (var response = request.GetResponse() as HttpWebResponse)
            {
                Debug.Print(“Status – ” + response.StatusCode);
                using (var stream = new StreamReader(response.GetResponseStream()))
                {
                    string content = stream.ReadToEnd();
                    Debug.Print(content);
                }
           }
        }
        catch (Exception ex)
        {
            Debug.Print(ex.Message);
        }
    }
 }

こんなパターンでWebサービスとの通信可能です。

ただ、残念なことにメモリが少ないため、SSLはサポートされていません。
なので、https://aka.ms/IoTKitHoL から公開しているStep1~5までのハンズオンは全て実施することできませんが、Event Hubへの接続をASP.NET Webアプリに変えたり工夫すれば、Step4、5は実施できるので挑戦してみてください。
 

Comments (3)

  1. いちど より:

    こんにちは。

    デブサミ・ハンズオンに参加しました。あのとき、GR-SAKURAは.NET Micro Frameworkデバイスとして動作していたのではないのでしょうか?改めて、本記事に従ってインストールする必要がありますか?

  2. Hiroshi Ota MS より:

    いちどさん、ファームウェアのバグフィックス等、色々と改善が入っているので、最新版への更新をお勧めします。それから、あの時使ったDevSumiIoTKitというプロジェクトも色々と見直して修正しているので、http://1drv.ms/1ILAq74 から取り出して使ってみてください。

  3. btw より:

    こんにちは。

    http://1drv.ms/1ILAq74 にある GRSakuraIoTKit の中で、温度の計算をしている箇所のコメントアウトを解除すると、 Math.Log の 演算結果である double 型の変数が NaN となり例外が発生します。

    .NET Micro Framework で double 型を使用するためには何か設定などが必要なのでしょうか?

Skip to main content