rain_yukizoraが東京に来ていて、2人でスタバでmbedをいじったりした。
Basic StampやGainerのように、ブレッドボードに刺す事を前提にピンが裏に出ている。でもその時はブレッドボードを持ち歩いて無かったので、基板上のLEDとシリアル通信等を試した。ピンク色の物体は鞄の中でピンが折れないように基盤裏につけてる梱包材。
mbedはエディタとコンパイラがwebサービス側にあり、開発は全てwebブラウザ上で行う。そしてできたバイナリをダウンロードしてマイコンに書き込み、実行させるという謎の16bitマイコンボード。
開発言語はC++。どうやら高価な商用コンパイラとライブラリ群がサーバー側にあるらしい。
例えばHTTPClientのライブラリがあり、DNSなども解決してくれるのでtwitterに認証してtweetするとかが簡単にできたりする。40円ぐらいで売ってるEhternetコネクタをそのまま接続するだけでLANケーブルが刺せるようになるとか、既にいろいろ揃っている。Audio IOやリチウムポリマー電池を使うための回路もボード上にあるように見える。
mbed.orgのトップページに貼られているビデオを見れば雰囲気がわかる。40秒ぐらいで短くてわかりやすいし、センスがいい。
■購入
スイッチサイエンスで6000円台後半で買った。秋月では6000円で売ってるけど、スイッチサイエンスで物を買った事が無かったので買ってみた。注文した翌日に届いて驚いた。
秋月の方は「評価キット」という名前でCDや箱やケーブルなどが付いてきて得な様に見えるけど、スイッチサイエンスの方にもちゃんと付いてた。
しばらくの間は6000円ぐらいで、そのうち1万円ぐらいに値上げするらしい。
■アカウントを取る
mbedをUSBケーブルでMacに接続すると、USBドライブとしてマウントされる。(Windowsでも同様)
開くとMBED.HTMというファイルが入っている
webブラウザが開き、アカウント登録画面に行く。この画面は普通に誰でも見れるけど、USBデバイスとしてmbedが刺さっていないとsignupできないようになっている。どうやっているのかな・・・
アカウントを取るとこんなプロフィールページができる。publishしたnotebookやプログラムが見れる。
http://mbed.org/users/shokai/
■コードを書く
ログインして右上のcompilerのリンクから、IDEが開く。新規プロジェクト作成して、handbookを参考にしながらコードを書いてみた。
まず新規プロジェクト作成した時点でとりあえずLEDを一つ0.5秒間隔で点滅させるプログラムが書かれているので、ああこういう感じなのか〜とすんなり入れる。
main.cpp
#include "mbed.h"左上の「Compile」ボタンを押すとコンパイルされる。エラーが無い場合、いきなりプログラムがダウンロードされる。
Serial pc(USBTX, USBRX); // tx, rx
DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
int main() {
while(1) {
myled1 = 1;
myled2 = 0;
pc.printf("led 1 on\r\n");
wait(0.5);
myled1 = 0;
myled2 = 1;
pc.printf("led 2 on\r\n");
wait(0.2);
}
}
■プログラムを書き込み、実行する
USBドライブとしてマウントされてるmbedにbinを投げ込んで、基板上のリセットボタンを押すと実行される。
基板上のLEDが点滅すると同時に、シリアル通信もちゃんと来ていた。
1つのUSBコネクタだけど、USBストレージと /dev/tty.usbmodem622 の2つのデバイスとして同時に認識されている。
MacやLinuxではドライバは必要ない。WindowsもSerialPC – handbook – Tracにあるドライバをインストールすれば使えるらしい。
■プログラムを公開する
エディタ画面でプロジェクト名を右クリックして「publish」ができる。プロジェクト名に – (ハイフン)が入っているとHTTPステータスコード500でconnection errorというのが出て、publishできない。 _ (アンダーバー)を使った。
公開したプログラム
led_serial | mbed
コードがブラウザ上で見れない。まあそのうち改良されるだろう。
コメントや星を付けれるし、「import program into compiler」を押せば他人のプログラムでもすぐ自分で編集できる。
importは、他にもtarで固められたファイルかSVNのリポジトリのアドレスを指定する事もできる。
■感想
便利なライブラリが揃っていて、現状でもう十分面白いボードになっていると思う。
あとはネットワーク上にあってユーザアカウントがあるのだから、もっと色々できそう。組み込み系は開発効率よりもコミュニケーション効率の低さがまずいと思うので、web上にエディタがあるという事がそのへんをどうにかする手段になりそう。
人の作ったコードをimportするだけではなくライブラリとして使えるようになると思うので、何かRSSのparserとかjsonのシリアライザとかから作っていってみるとリソースが積み重なって面白い事になるかも。