2011年6月3日金曜日

ドリトルのArduino対応を改善するたくらみ(まだ構想段階)

たまには自作の話も書かねばと。

以前のエントリでも書いたけれど、ドリトルのArduino対応の改善について。

1. シリアルデバイスの接続

GPSを想定しているけれど、シリアルLCDとかも入るかもしれない。

AVRのサポートする端子以外でのシリアル接続は、NewSoftwareSerialを使うのが定番みたい。関数は標準のSerial互換にしてあるようなので、
  1. シリアルポート作成(ついでにbegin()してしまおうか)
  2. available()
  3. read()
  4. write()
に対応する4つのコマンドを作ればいいような気がする。デジタル/アナログ入出力の設定コマンドで上書きしても壊れないように、ポート番号の管理と、上書きするときには作ったシリアルポートオブジェクトをdealloc()しないといけないかもしれない。

2. I2C, SPI対応

悩ましいのだが、そういうデバイスをたくさん持っているので使えるようにしなければならない。SPIは設定と転送の2つのコマンドだけでよさそう。I2CはWireライブラリを使うようだがちょっと面倒そうだ。今後検討。

3. 音命令

スピーカーから音が出ないと子どもが楽しくないだろうから、Toneライブラリを入れてみるつもり。所詮Arduinoなので、これ以上の機能は入れられないだろう。

5. SDカード

GPS使う場合、結構なデータ量になるのでSDカードは必要かなと。データロガーに徹するなら命令数は減らせそう。汎用にすると面倒そうだ。

6. EEPROM

AVR上の未使用のEEPROM領域にアクセスするライブラリが標準であるので、命令列をここに書きこんで、リセット時に何らかの操作で再生するようにすれば自律モードのできあがり。これでPCから切り離しができる。あるいは、簡易データロガーの領域にする手もあるかも。

ただ問題は、上記のライブラリを全部入れても168のArduino(Unoとか)に入るのかどうか。やってみないとわからない。