Mon 04/14, 2008

GAINER with DWM ARM board [Electronics ]

ARM Cortex-M3 北海道でもようやく入荷した Design Wave Magazine。 早速、付属の ARM 基板を試してみた。 この基板は USB コネクタまで実装済みであるため、USB-UART ドライバを Windows PC にインストールして接続するだけで直ちに動作確認できる。 書き込み済みのサンプルプログラムは GAINER アプリケーションとなっており、そのままで 3 軸加速度センサ付 GAINER I/O モジュールとして機能する。PC 側のサンプルは Flash のプログラムだが、手っ取り早く試すにはシリアルターミナルを用意するだけでよい。 シリアルポートの接続パラメータは 38400bps/8bit/non-parity だ。 ファームウェアは GAINER I/O モジュールとしてのコマンドと汎用の加速度センサデータ出力に対応している。 CD-ROM 中のソースコード(/articles/0805_a02/Acc3_V5_gainer/source/main.c)を見れば判るが、対応コマンドは次の通り。とりあえず '*' をタイプすれば xxx,xxx,xxx 形式でセンサ出力を観察できる。

[汎用データ出力用コマンド]

  • '*' : 3 軸加速度センサデータ - xxx,xxx,xxx 形式
    ('Q*' コマンドで出力が停止する。)

[GAINER 用コマンド]

  • Q*/Q* : reboot - select GAINER mode / reset (*1)
  • i*/ixx..xx* : get all analog inputs (continuous mode), xx: 3 軸加速度センサ出力データ
  • E*/E* : exit continuous mode
  • KONFIGURATION_1*/KONFIGURATION_1* : configuration - supports only configuration 1
  • ?*/?1.0.0.00* : version number (*1)
  • V0*/V0* : verbose mode - dummy / エコーバックだけで良い (*1)
(*1) GAINER I/O モジュールとして機能するための必須コマンド。その他に最低ひとつの KONFIGURATION_n と付随する I/O コマンドが必要。

2 文字以上のコマンドを入力する場合には、直接キー入力せずに他のエディタなどからコピー・ペーストすること。 ファームウェアが入力データをバッファリングしておらず、1 文字ずつタイプした 'Q*' のような入力は 'Q' と '*' と個別に識別されるために 1 文字目の 'Q' は無効なコマンドで無視され、2 文字目の '*' がコマンドと解釈されて xxx,xxx,xxx 形式の汎用形式での出力になってしまう。 そのためかどうかは未確認であるが、Processing から GAINER ライブラリ経由で使おうとするとモジュールの初期化でエラーとなり、動作の確認ができなかった。 gsp 同様のプロクシを使う funnel 経由だと問題ない。安定動作させるためには、エンドポイントからの入力データをバッファリングし、'*' をコマンドターミネータとして処理するようにファームを変更するのが良いだろう。

写真の基板には RTC 用の水晶(Citizen CM200S)だけを半田付けしてある。SD カードコネクタは秋月電子通商から購入したヒロセ電機のものがあったが、指定の製品とは型番が異なり、半田付け用端子のピッチが合わない。結局部品セットを DEPO TSUKUMO で注文した。

[2008.04.15]
Gainer ライブラリの 1.1.0rc4 がリリースされました[アナウンス]。ダウンロードは http://gainer.cc/Download/Download から。Processing からこのボードを認識できない問題が解決されています。

Posted by masato at 07:54 PM
このエントリーのトラックバックURL: http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1558
コメント

> 2 文字以上のコマンドを入力する場合には、直接キー入力せずに他のエディタなどからコピー・ペースト

やはりバッファリングなり、タイマーを掛けてデリミタ-を待つなりしていないんですか。
ありえんプロトコルだな。

それはそれとして、FLASHとマイコンの接続はシリアルで行えそうなので、ならこのARM基板ではなく、手持ちの加速度センサーを付けたHCS08から送ってやろうと思ったのですが、gspがARMの仮想COMポート以外を上手く認識してくれない。

難しいなぁ。
最終的にはXBeeから飛ばしたかったのに。

Posted by: せくすぃ部長 at 04/14, 2008 10:22 PM

当初、GAINER ということでシリアルコンソールからコマンドを叩いても '*' を打った直後に xxx,xxx,xxx 形式でデータが出力されるばかりなので、ちょっと悩みました。プロトコルの問題ではなく、ファームの実装をちょっとばかり端折った、というところでしょうか。

XBee については funnel で小林さん(http://www.yapan.org/diary/)が試されていますね。

gsp というか、Java のシリアルポート操作ライブラリはどうも安心して使えないような気がしています。Gainer の Flash (AS) ライブラリや funnel での IO モジュールの操作は TCP 経由なので適当なゲートウェイを用意すればシリアルでなくとも構わない筈です。

Posted by: masato at 04/14, 2008 11:26 PM

こんにちは。

ターミナルでの動作確認の件ですが、Acknowrichを使うと入力した文字列をまとめて送信する使用のため大丈夫なようです。

http://www.biwa.ne.jp/~chu2/software/ack/index.html

Processingからの認識ですが、手元のマシンでは認識できているのですが、まだ見落としている要素があるのかもしれません。もしよろしければ、Processingのコンソールに出力されるログを送っていただけると大変助かります。

Posted by: 小林茂 at 04/15, 2008 06:39 AM

小林さんに提供していただいた新しい Processing 用ライブラリで動作を確認できました。ありがとうございます。
現在のリリース版(v1.1.0rc3)ではいくつか問題があるようです。
sourceforge (http://sourceforge.net/projects/gainer/) から最新版のソースを取得できます。

Posted by: masato at 04/15, 2008 12:57 PM

gspからシリアルポートの認識できました。
//./COM1と書くんですね。

ちゃんと動かせるかどうかは、これからです。
その前にMake:の準備をしなければ。

Posted by: せくすぃ部長 at 04/15, 2008 10:32 PM

そう言えば Make: Tokyo Meeting はこの週末ではないですか。
私は行くことができませんが、「ウダー」に注目してます。

Posted by: masato at 04/16, 2008 09:35 AM
コメントする

おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。










名前、アドレスを登録しますか?