2010年11月7日日曜日

KOF2010:関西オープンソース2010

 昨日関西オープンソース2010に行ってきました。Gadget1も同時開催されていて、組み込み系の展示もありましたが、セミナーはWeb系のほうが盛況な印象でした。
 しかしながら、坂井弘亮さんの講演『組込みOSを作ってみよう!』は組み込みを知らない人にでも
「いっちょやってみようか」
 と思わせる(そもそもプロジェクト自体が、そう思わせることを目的とされているそうですが)、いい内容でした。
 著書12ステップで作る組込みOS自作入門の紹介もありましたが、その中で感心したのは(坂井さん自身が強調しておられましたが)、ブートローダの作り方から解説しているということです。

 最近のフィジカルコンピューティングの流行には目を瞠るものがあります。それは、安価なマイコンキットと、あらかじめ用意されたペリフェラルのドライバ類、書き込み済みのブートローダなどに支えられており、「キットを買ってきて、自分のやりたいロジック部分だけをチャッチャとプログラミングして、USB(やシリアル)で転送したら動く」環境に支えられていることは間違いありません。

 各種センサで取得した外部環境の情報をtwitterでつぶやく機器、なんてものをいとも簡単に作れてしまう。たいへんよいことだと思います。

 しかしながら、それらの環境は、(スケッチという単語が示唆しているように)やりたいことが「すばやく」できることを目的としているので、多くの部分をブラックボックスとして扱っています。

 趣味・嗜好は人それぞれですが、その「ブラックボックス」の理解に足を踏み入れようとしたとき、やはりつまづきやすいのは、「どうやってプログラムが動き出すか」という点であり、そのためにはブートローダーの理解が避けられません。

 普段、存在することも意識しない(キットの解説書には、ブートローダーがxxバイト食っていますと書いていますが、そのとき目にして後は忘れてしまうことも多いでしょう)、しなくてよいブートローダー。その部分をきっちり書かれているというのは大変好感が持てます。

2010年10月11日月曜日

Beagleboard

8cm角基板上でlinuxが動作するBeagleboard。149USDでちょっと高いなーと思いながらも興味津々。

しかし冷静に考えてみると、ChumbyのDIYキット(129USD)をいじり倒したほうが、周辺デバイスもいっぱいあって気軽に楽しめるんじゃないかとか、いや、そもそもchumby oneがキットより9.05USD安い119.95USDで売ってるからこれをばらして遊べばいいのでは、という話も。

何をしたいかによりますね。
Beagleboardは元からDVIがついているのがいいなあって思います。

2010年10月10日日曜日

デジタルカメラを作りたいなぁ

Arduinoで遊んでいたら、最近はmbedやらSTBeeやら、高機能なブツが出てきて心惹かれます(まあArduinoもArduino Unoが出ましたけど、プロセッサ自体の性能差はいかんともしがたい)。

ROM/RAM多くてクロックも高速、となれば何ができるかな……と考えていて、ふと思ったのが自作デジタルカメラ。Toyデジカメなんていくらでもあるけれど、いいじゃん! 動いたら楽しいじゃん! ということで。

まずは調査。すでに取り組んでいる人もいるはず。


1. Arduino+VGA CMOS JPEGカメラ

ArduinoでGPSつきのデジタルカメラを作っているサイトを発見。日本語サイトだとここ(なんでも作っちゃう、かも)。Sparkfunで取り扱っているUART接続のVGA CMOSカメラ(OmniVision OV7640/8)をArduinoにつなげている。

このカメラモジュールはJPEGコーデックを内蔵している。つまりJPEG圧縮された画像がモジュールから出てくるということ。それならArduinoでも動かせる。けれど、JPEGエンコードされたデータしか出てこないので、LCDをつけてスルー画を見ることはできない。

Arduinoとは簡単につながるので、非常にいいなあって思うけれど、やっぱりスルー画は見たい。
と思っていたら、そもそもこのモジュールは現在(2010年10月10日)Sparkfunでデッドストック。

しかし同じようなJPEGカメラがサイレントシステムさんで取り扱われている(C1098 SS。5,800円)。こちらはOmniVision 7725。解像度は同じくVGA。興味があればどうぞ。


2. ARM9+1.3Mpx CMOSカメラ

AMTELのARM9ベースのマイコンAT91SAM9260を使って、1.3メガピクセルのCMOSカメラを制御されている方のサイト(マイコン工作実験日記)。香港にあるTechToysというところから、カメラモジュールと、LCD(タッチパネルつき!)を購入して使用している。AT91SAM9260に搭載されているImage Sensor Interfaceというインタフェースを活用し、カメラのスルー画をほとんどハード処理でLCDへと流しており、ソフトに負担のかからない処理を実現している。更にはlibjpgをARM9で動かしてJPEG圧縮もされている。すばらしい……。

TechToysのカメラはこれまたOmniVisionのOV9650。119USD(送料6USD)。カメラモジュールにJPEGエンコード機能は搭載されていない。

SDカードスロットもつけているし、この構成がズバリと言ってもいい。

しかしこのTechToys、至れり尽くせりのサイトになっていて、実はカメラをつなげられるイメージプロセッサ(JPEGコーデック+LCD制御+SDIO)+タッチパネルつき3.5" QVGA LCDの開発ボード、そして、更にそこに接続するPIC24/32ベースのマイコンが載った開発ボードも販売しているのだった。

その上サンプルプロジェクトで、カメラ制御のコードもダウンロード可能。

現時点でTechToysからカメラを買うなら、つべこべ言わずにすべて買ったほうが、簡単に目的を達成できる(カメラ19.9USD, イメージプロセッサ49USD, LCD 59USD)。でもそれって楽しいのか??

おっとしかし、マイコンボードは売り切れの模様。
まあ別のマイコンをつなげたらいいんだけど……。

頭が下がります……。
僕もマイコン工作実験日記さんと同じ構成にしたいけれど、ARM9の開発キットは2万円くらいするのでちょっと手が出ません。

ちなみに、aitendoさんのカメラモジュールはFPGAで使っている方も(FPGAの部屋)。


で、結局どうしよう?

 色々調べた結果、今のところ、オーストラリアの4D SystemsからカメラとLCDを取り寄せようと考えている。
カメラは、1.のArduino+カメラで調べたカメラモジュールと同じOmniVisionの7640。けれどこのμCamは、スルー画を出すモードとJPEG圧縮データを出すモードを切り替えられるらしい。ここがポイント。

これでJPEGコーデック処理に悩むことなく、デジタルカメラを作製できるのでは!? と期待している。