PinKit ( GR Peach )で.NET Micro Frameworkを動かす
ルネサス製ARM9 CPUが載ったGR-PEACHで、.NET Micro Frameworkを使ってC#やVisual Basicでプログラムする方法を解説します。
ESEC2015で予約販売中のPinKit、勿論、.NET Micro Frameworkが動きます。
セットアップは簡単。
先ず、https://netmf.github.io からリンクをたどって、.NET Micro Framework SDK 4.3(QFE2-RTM)をダウンロード&インストールします。Visual Studioは2012、2013、2015が利用可能です。
※Visual Studio 2015は、https://www.visualstudio.com/ja-jp から無償版のCommunity 2015をインストール可能です。
ZIPファイルを解凍し、MicroFrameworkSDK.msiを実行します。その後、Visual Studio 2012の場合はnetmfvs2012.vsix、Visual Studio 2013の場合はnetmfvs2013.vsixを、Visual Studio 2015の場合はnetmfvs14.vsixを実行します。
※Visual Studio 2015の場合は、自動的に4.4にアップロードする設定がデフォルトでなされているので、SDKをインストールした後、メニューの”ツール”→”拡張と更新プログラム”で、.NET Micro Framework project systemの”この機能を自動的に更新する”のチェックを外してください。
次に、https://netmf4mbed.codeplex.com/ の右上の”download"タブから最新版のファームウェアをダウンロードし、適当な場所に保存します。ダウンロードしたZIPファイルは、プロパティでブロックを外してから、解凍しておいてください。
GR PEACHの端のUSBポートにマイクロUSBケーブルをつないでPCに接続します。
すると、ファイルエクスプローラーが開きます。そこに、https://netmf4mbed.codeplex.com/ からダウンロードしてきたZIPファイルの解凍後の中身をコピー&ペーストします。
これで完了。Windows 8.1以降のWindows PCならそのまま、GR PEACHの真ん中のUSBポートにつなぎかえれば、Visual Studioを使って、.NET Micro Framework上で動作する、C#、VBのプログラムを動かせます。
Wiindows 8.1より前のOSが入っているPCでは、https://aka.ms/IoTKitHoLPDD からZIPファイルをダウンロードし、ブロックを解除して、ZIPファイルを解凍。中に入っているINSTALL.cmdを実行してから、USBケーブルでPCに接続してください、
アプリケーションは、Visual Studioで作成します。以下、Visual Studio 2015で例を示しますが、操作方法は、2012/2013でも同じです。
先ず、Visual Studio 2015を起動します。起動したら、メニューの”ファイル”→”新規作成”→”プロジェクト”を選択します。
左のパンでVisual C#の下の、Micro Frameworkを選択し、”Window Application”を選択し、”OK”ボタンをクリックします。
ソリューションエクスプローラーで、作成したプロジェクト(”MFWindowApplication1”)を右クリックして、”追加”→”クラス”を選択します。
表示されたダイアログの左のパンで、Visual C#→Micro Frameworkを選択して、”クラス”を選択し、”名前”に”BoardFullColorLED”と入力し、”追加”ボタンをクリックします。
出来上がった、BoardFullColorLED.csを開いて、以下のコードで上書きします。
using System;using Microsoft.SPOT;using Microsoft.SPOT.Hardware; namespace MFWindowApplication1{ class BoardFullColorLED { private const Cpu.Pin pinRed = (Cpu.Pin)0x6d; private const Cpu.Pin pinGreen = (Cpu.Pin)0x6e; private const Cpu.Pin pinBlue = (Cpu.Pin)0x6f; private OutputPort portRed; private OutputPort portGreen; private OutputPort portBlue; public BoardFullColorLED() { portRed = new OutputPort(pinRed, false); portGreen = new OutputPort(pinGreen, false); portBlue = new OutputPort(pinBlue, false); } public void SetRgb(bool redOn, bool greenOn, bool blueOn) { portRed.Write(redOn); portGreen.Write(greenOn); portBlue.Write(blueOn); } public void SetColor(Colors color) { int redFlag = (int)color & (int)Colors.Red; int greenFlag = (int)color & (int)Colors.Green; int blueFlag = (int)color & (int)Colors.Blue; portRed.Write(redFlag != 0); portGreen.Write(greenFlag != 0); portBlue.Write(blueFlag != 0); } public enum Colors { Black = 0, Red = 1, Green = 2, Yellow = 3, Blue = 4, Magenta = 5, Cyan = 6, White = 7 } }} |
簡単に説明しておくと、ボード上のLEDの赤、緑、青は、それぞれ、GPIOのピン、0x6d、0x6e、0x6fにマップされていて、trueにすると点灯、falseにすると消灯するようになっていて、今追加したクラスは、アプリケーションからLEDの色を指定して点灯消灯する機能を実装しています。
次に、Program.csを開いて、25行目の
private Window mainWindow;
の直後に、
private BoardFullColorLED led;
という行を追加します。
そして、Button.Focus(mainWindow);という行と、return mainWindow;という行の間に、以下のコードを挿入します。
led = new BoardFullColorLED(); BoardFullColorLED.Colors[] colors = { BoardFullColorLED.Colors.Red, BoardFullColorLED.Colors.Green, BoardFullColorLED.Colors.Yellow, BoardFullColorLED.Colors.Blue, BoardFullColorLED.Colors.Magenta, BoardFullColorLED.Colors.Cyan, BoardFullColorLED.Colors.White }; int turnOnIndex = 0; bool turnOn = true; new Thread(() => { while (true) { if (turnOn) { led.SetColor(colors[turnOnIndex]); if (++turnOnIndex >= colors.Length) { turnOnIndex = 0; } } else { led.SetColor(BoardFullColorLED.Colors.Black); } turnOn = !turnOn; Thread.Sleep(1000); } }).Start(); |
さらに、7行目に
using System.Threading;
という行を追加します。
これでコードの編集は完了。
ソリューションエクスプローラーで、プロジェクトを右クリックして、コンテキストメニューの”プロパティ”を選択します。
.NET Micro Frameworkタブで、Transportを”USB”に変更すると、”Device”にGR_PEACH_GR_PEACHと表示されます。この設定で、GR-PEACHにプログラムが転送されるようになります。
メニューの”▶開始”をクリックすると、ソースコードのビルド、ボードへの配置、ボード上でのアプリ実行が順次行われます。
一秒おきに点滅し、順次色が変わっていきます。
簡単ですね。色々試してみてくださいね。
GR-PEACHへの.NET Micro Framework移植は、IoTあるじゃんというコミュニティで実践しています。興味のある方は是非、ご参加ください。https://www.facebook.com/groups/ioytjp/
作業が終わったら、https://aka.ms/IoTKitHoL をチャレンジ‼
Comments
- Anonymous
September 19, 2016
The comment has been removed- Anonymous
October 07, 2016
時間がたってからの返答で申し訳ないです。既にhttp://aka.ms/IoTKitHoLV3On のコンテンツは更新されているので、最新版のページで書いていきます。Page29に記載のDevice Managerで、GR-PEACHは正しく表示されていますでしょうか?ユニバーサルシリアルバスデバイスとして認識されていないようでしたら、USBのポートを差し替えてみるなど試してみてください。他にWindows 8.1以降のPCがありましたら、そちらにつないで、Device Managerで表示されるかも確認してみてください。正しく表示されないよいうなら、P23~24に従ってファームウェアを更新してみてください。ファームウェアは、https://1drv.ms/u/s!Aihe6QsTtyqcsv5XAXnp9LlJoIlLyg です。ファームウェア更新後、P30を参考に、MACアドレスの設定とSSLのSEEDを更新してください。- Anonymous
November 06, 2016
ご回答ありがとうございます。確認が遅くなり申し訳ありません。Device Managerでは正しく表示されていましたが、ファームウェアを更新したら「MFDeploy.exe」で、GR_PEACH_GR_PEACHが表示されるようになりました。ありがとうございました!!。
- Anonymous
- Anonymous