mbedですが、ピンにEthernetがあるのが気になっていました。だって、Arduino Duemilanove 328 (3,200円くらい)とイーサネットシールド (4,200円くらい)を足した値段より、mbed (6,000円くらい)のほうが安いのですよ。ちょいちょいとTCP/IPを喋らせられるとなると、放ってはおけません。
調べてみたところ、パルストランスを接続してやればEthernetケーブルに接続できるらしいということが分かりました。秋月で売ってないかなーと調べてみたところ、300円でパルストランス内蔵のRJ-45モジュラージャックがありました。( 通販コード P-00819 )
早速秋月で買ってくると、秋月で売っていたのは、Pulse Jackという会社のJ0011D21Bという製品でした。
こいつのTD+, TD-, RD+, RD-を接続してやれば良いはずなのだけれども、ピンが千鳥配列なために、2.54mmピッチの基板では使えない。1.27mmピッチのユニバーサル基板を買いに行くのが面倒だったので、基板を加工してみました。

で、加工した基板にパーツを合わせてみると、こんな感じです。ちょっと削りすぎましたが、まぁいいでしょう。

はんだ付けして、配線も済ませました。2列x4の8ピンのピンヘッダを使っていますが、ブレッドボードに刺したときに安定させたかっただけで、4pin(1列)しか使っていません。ピン配置はmbedと合わせてあります。
ここで、使った基板が両面じゃないことに気付いたのですが、表側からピンヘッダのピンを押し込んで、できるだけブレッドボードに刺す長さを確保しつつ、裏面ではんだ付けをしてあります。

パルストランス側からは8pin出ているのでどうしようかと思いましたが、どうやら前記の4本の信号線だけ接続すれば良いみたいです。(GNDとかCTをどうすればいいのだろう、と思ったのですが特に接続しなくても良いみたいです。)
で、mbedと共にブレッドボードに刺して、こんな感じに組んでみました。

あとはソフトウェアですが、例によってmbedのサイトでテストコードを書いてコンパイルしてやればOKです。
mbedのサイトにあったサンプルコードをそのままいただいてきただけなのですが、DHCPでのIPアドレス取得がうまくいかなかった様なので、とりあえずIPアドレスを固定で指定するようにしてあります。
まず、コードはHTTPClientというライブラリを使うので、ProgramにLibraryをImportしてやります。Programの名前のところを右クリックすると、”Import Library…”というメニューがあるので、そいつを選んでやって、次のように指定をします。

するとライブラリをインポートしてくるので、あとはコードをmain.cppに書き込んでやるだけです。
こんなコードを書きました。
main.cpp
#include "mbed.h"
// import Library from http://mbed.org/projects/cookbook/svn/EMAC/lwip/trunk
// Name: HTTPClient
#include "HTTPClient.h"
DigitalOut led(LED1);
// see http://mbed.org/projects/cookbook/api/EMAC/lwip/trunk/HTTPClient/HTTPClient#HTTPClient.HTTPClientd
HTTPClient http("mbed", // Brings up the device with static IP address and domain name.
IPv4(192,168,1,100), // IPv4 address
IPv4(255,255,255,0), // netmask
IPv4(192,168,1,1), // default gateway
IPv4(192,168,1,1)); // dns server
LocalFileSystem local("local");
int main(void) {
char url[256];
// Open a file to write.
FILE *fd = fopen("/local/hello.htm", "w");
// Insert the search term into the URL
sprintf(url, "http://www.google.co.jp/search?hl=en&q=%s&btnG=Search&meta=", "HelloWorld");
// Request a page and store it into a file.
http.get(url, fd);
// Close the file.
fclose(fd);
// The file is written on the local disk.
// "/hello.htm" Have a look.
// Work is done!
while(1) {
led = !led;
wait(0.2);
}
}
これだけのコードを書くだけで、googleにhttpでアクセスをして、結果をローカルのファイルに書き出してくれます。素晴らしい。
Compileボタンを押して、バイナリをダウンロード、それをUSBでmbedにコピーしてやるだけで実行されます。
実行が終わるとLEDがチカチカするので、USBマスストレージでmbedを除いてやると、ファイルができているではありませんか。
こんな感じでmbedでの開発は完了です。
あ、mbedのサイトというか開発環境には、自分が書いたコードをpublishする機能があります。
ここで、今回のコードを落としてくることができます。 http://mbed.org/users/ytsuboi/programs/HTTP_Client/5ydty/
なかなか素晴らしい機能で、開発者コミュニティを作ることを考えてるなーと思いましたが、mbedしたこと無い人に雰囲気を知ってもらうためにも、とりあえず↑にコードを貼っておきますね。
とりあえずTCP/IPが簡単に使えることが分かったので、また何か試作してみたいと思います。

すごい!
ちょっとトライしてみようと思います!