"Phisical Computing" を体験してみようと GAINER やら Processing を試している。PSoCマイコントレーニングキットを入手したのを機に Gainer I/O モジュールを仕立ててみた。ネタ元は "hwhack: Gainer clone on BreadBoard"。GAINER では詳しいドキュメントが用意されていて、I/O モジュールの回路図やファームも公開されているから、こうして簡単に製作することもできる。PC 側に RS232C が用意されていれば USB-シリアル変換は RS232Cレベル変換でも良いが、その場合は I/O モジュール側で電源を用意することが必須になる。
とか言いながらもホスト PC 側の環境は Flash だったり、MAX/MSP なのはどーよ、という気がしなくもないが、Java ベースの Processing 用ライブラリもあるし、その他にも多くのプラットフォームでサポートされるようになっている。写真は Processing から試しているところ。Flash 用のサンプルは Flash Player 上で実行できるが、プログラミングはできない。まぁ I/O モジュールとはシリアル通信だからどうにでもできる。まずはシリアルターミナルを用意して試してみることにした。レートは 38400 bps, stop 1, non parity. コマンドターミネータは '*' でエコーバックされないが、以下では判りやすいようにコマンド/応答を一行ずつ表示している。これらはファームウェアのアーカイブに含まれる io-module_protocol.xls に記載されている。I/O モジュールはひとつで複数のコンフィギュレーションを持っているから、最初にコンフィギュレーションの選択するまで I/O を使用することはできない。
[Query version information:版数確認] Q*/Q* - reboot ?*/?1.1.0b00 - version number, xx: build number [Initialize:初期化] Q*/Q* - reboot KONFIGURATION_1*/KONFIGURATION_1* - select configuration 1 [Button/LED 操作] h*/h* - turn the on-board LED on l*/l* - turn the on-board LED off (button pressed)/N* - the on-board button is pressed (no need to send a get command) (button released)/F* - the on-board button is released (no need to send a get command)
Processing 用の GAINER ライブラリでは直接シリアル通信をおこなっている。一方、Flash (ActionScript)ではシリアルポートの操作が出来ないため、ネットワーク通信プロクシ gsp を介している。他には Perl 用の Device::Gainer [Kawa.netブログ(川崎有亮)] を試したみた。こちらも gsp を使っているが、少し書き換えれば直接シリアルポートを操作することもできるだろう。
Posted by masato at 05:35 PMおそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。