« oF - openFrameworks SolutionSetting for VC++ | トップページ | Pandaの到着 »

netduinoはじめてみました

なんだか久しぶりですが、先日SwitchScienceさんにて限定でお安くなっていたnetduinoをちゃっかり購入しました。

黒のボディが格好イイのですが、コネクタが青いのがイマイチ…

netduino_title

 

netduino.com - netduinoサイト(英語)

.NET Micro Framework Platform SDK – MSDN .NET Micro Framework(英語)

 

本体の入ったパッケージとUSBケーブルが1本付属します。USBは通常のミニBタイプとは異なり、マイクロBタイプになります。

netduino_package

 

パッケージの中身は、netduino本体とゴム足、そして何やら紙切れが入っているのですが、これは何でしょう?

netduino_body

RAM60Kは凄いです。

 

ハードウェア仕様

  • Atmel 32-bit microcontroller : AT91SAM7X512
  • Speed: 48MHz, ARM7
  • ROM: 128 KB
  • RAM: 60 KB
  • LED: Power(white)x1, User(blue)x1
  • Button: User(Reset=default)x1, GPIO

I/O機能

  • Digital pins 0-1: UART 1 RX, TX
  • Digital pins 2-3: UART 2 RX, TX
  • Digital pins 5-6: PWM, PWM
  • Digital pins 7-8: UART 2 RTS, CTS
  • Digital pins 9-10: PWM, PWM
  • Digital pins 11-13: SPI MOSI, MISO, SPCK
  • Analog pins 4-5: I2C SDA, SCL

電源

  • Input: 7.5 - 12.0V DC or USB powered
  • Output: 5V DC and 3.3V DC regulated
  • Analog reference: 2.6 - 3.3V DC
      only required when using ADC features
  • Max current: 8mA per pin
      Digital pins 2, 3, 7: 16mA per pin
      Analog pins 0-3: 2mA per pin
      microcontroller max current: 200mA total
  • Digital I/O: 3.3V - but 5V tolerant

 

開発環境のインストールについては下記のMakeサイトに詳しく日本語にて解説されています。

Maker Shedの新製品 Netduino - .NETベースのオープンソースエレクトロニクスプラットフォーム

 

Arduinoみたいに接続したUSBケーブルでシリアル通信が出来ると思ったのですが、netduinoは専用ドライバとなっているようで、仮想COMポートとしては機能しません。

そこで秋月電子の「FT232RL USBシリアル変換モジュール」(AE-UM232R) を利用して、PCとシリアル通信する簡単なサンプルを作成してみようと思います。
※予めAE-UM232Rを利用出来るようにしておいて下さい。

コードの土台としてnetduinoサイトの projects からサンプルをダウンロードして下さい。

advanced tutorials にある advancedbuttonapp.zip サンプルコードをダウンロードします。ボタン割り込みをイベントハンドラで処理するサンプルです。

 

適当な場所へ解凍し、ソリューションを開きます。

プロジェクトを選択して、「参照の追加…」を実行します。

.NETタブから Microsoft.SPOT.Hardware.SerialPort を選択します。

netduino_ide

上図のように追加されていれば正常です。

 

無駄なとこもありますが、以下がプログラムです。

Program.cs

まず System.IO.Ports を名前空間に追加。

serialPort というシリアルポートのインスタンスを追加し、COM1(Digital 0-1 pins)、9600baud、N81等の通信設定をします(使用する環境に合わせて下さい)。

Main()関数で、シリアルポートからデータ受信時に発生するイベントハンドラ DataReceived() を追加し、ポートを開きます。

DataReceived()ハンドラで、PCから送信したデータに基づいてLEDのON/OFFをします。PC側のターミナルソフトから’1’をタイプするとLEDが点灯し、’0’で消灯します。

ボタン押下による割り込みハンドラ OnInterrupt()で、ボタンの状態によって文字列を送信します。押下で’ON’を、離したら’OFF’をPCへ送ります。

 

netduinoのデジタル0番にAE-UM232RのTXD、デジタル1番にRXDを接続しておきます。

Arduinoと違って3.3Vなので、AE-UM232RのジャンパJ1を3.3V側にセットしておいて下さい。

netduino_FT232R

 

netduinoへプログラムをダウンロードし、ターミナルソフトを起動します。通信設定を合わせておいて下さい。

netduinoのボタンを押したり離したりすると、ターミナルにONやOFFの文字列が表示されます。

また、ターミナル側で 1 か 0 を押すと、netduinoのLEDが点いたり消えたりします。

teraterem-netduino ※TeraTerm 4.66

シリアルポートの通信設定でCOM2を指定すると、netduinoのデジタル2-3番で送受信することになります。COM3以上はエラーとなります。

netduinoはIDEから直接トレース実行が出来るので、デバッグに至ってはとても楽です。なのでわざわざシリアル通信もどうかというところですが、Firmataみたいなものを搭載すればProcessingやMaxなどとの連携も出来るかと思います。

 

今回の例の場合、Arduinoと違ってPCとの接続には手間が掛かりますが、名前とは裏腹にその中身は似て非なるもので、仕方のないところでしょうか。

但しC#が分かっている方は、VisualStudioのIDEの便利な機能をそのまま利用出来て、簡潔なコーディングが可能となっているのは嬉しい限りです。Cの方にとっては中身が分かり難くモヤモヤするかと思いますが、、、

細かな時間制御をしたい場合もちょっと心配です。

 

IDEから実行した後、出力ウインドウにメモリー容量などのメッセージが流れますが、これらの意味わかる方いらっしゃいますでしょうか?

|

« oF - openFrameworks SolutionSetting for VC++ | トップページ | Pandaの到着 »

電子工作」カテゴリの記事

コメント

こんばんわ。レビューお疲れさまです。
時々拝見させて頂いておりました。(自分もPrimer2壊したので)
netduinoのSecretLabsのスタッフから日本語用フォーラムを作ってあげようか?というメッセージを頂きましたので取り急ぎ報告までさせて頂きました。
今度リリースの新ファームではFAT対応予定との事です。
詳しい事判明しましたら、またお伝え致します。
失礼致しました。


投稿: Lynx-EyED | 2010-08-23 00:40

Lynx-EyEDさん、はじめまして~

日本語用フォーラムですか!資料が少ない現状でそれは大変助かりますね~
FAT対応も楽しみです。
詳細わかりましたら宜しくお願い致しますm(_ _)m

投稿: SatE-O(サテヲ) | 2010-08-23 01:52

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/204580/49217132

この記事へのトラックバック一覧です: netduinoはじめてみました:

» Twitter Trackbacks []
[続きを読む]

受信: 2010-08-23 08:02

« oF - openFrameworks SolutionSetting for VC++ | トップページ | Pandaの到着 »