2013年6月20日木曜日

.NetMicroFramework

諸事情でNetduinoを買いました。正確に書くとNetduino Plus 2となります。
STM32F405RGを使用し、Microsoftの.NetMicroFrameworkが入っているため、Visual C#で開発することができます。
端的に説明すると、Arduinoのような使いやすさで、mbedのような高性能を、Windowsと同じようにコーディングできる。という感じでしょうか。
NetduinoはArduino形状なのでmbedほど使いやすいわけではないですが、EthernetやmicroSDソケットが搭載されていたり、比較的使いやすい形となっています。
VisualC#が標準の開発環境となるため、mbed等のように見づらく操作しづらく使いにくいIDEではなく、非常に高性能な予測入力が使用でき、インデントなども自動で行われ、カスタマイズも容易です。
もちろんソースコード内に日本語を記述でき、printDebugでも日本語や漢字を使用することができます。VisualC#でソースコードレベルでデバッグが可能なのでバグの発見や駆除も容易でしょう。

タイマ割り込みを使用したLチカ
Lチカ程度なら簡単に記述でき、タイマ割り込みを使用するのも宣言を含めて1行でできます。C#なので多重定義も使用でき、簡単に使用したい場合やより高度な設定をしたい場合でも同じ方法で初期化できます。

欠点を挙げるとすれば、Arduinoやmbedほど日本で普及しているわけではなく、情報量がさほど多くないことや、コードを書き込む際の安定性の問題があります(mbedのようにファイルをコピペする形式ではなく、VisualC#から転送する 昔使っていた時に頻繁にエラーが出ていた 最近どうなったかは知らない)。


Timerを使用することによりタイマ割り込みを使うことができますが、.NetMFWのタイマ割り込みはハードウェア処理ではなく、ソフトウェア処理のため、CPUリソースの許す限りいくつでも可能という利点があります。これはコードの動作を短い時間に区切って割り当て、常に時間を監視して、ちょうどいいタイミングが来たら関数を呼び出す、という動作をしているためです。そのため時間の正確性については微妙なところがあります。ただミリ秒やマイクロ秒といったものすごく短時間の精度が要求される場合は普通のマイコンに直接コードを書き込んだほうが安心できるでしょう。

Netduinoの入手ルートは現時点ではスイッチサイエンスが簡単です。
少し遊ぶ程度ならNetduino2でもいいですが、SDカードへのアクセスやEthernetを使おうと思うならNetduinoPlus2が最良の選択だと思われます。
他にも.NetMFWが動くボードはありますが、僕は使ったことがないので評価出来ません。

0 件のコメント:

コメントを投稿