第 3 章 ツール・キットGainerと開発環境Processingを使う

加速度センサ出力のグラフィカル表示器の製作
小林 茂
本誌 2008 年 5 月号の付属 ARM 基板「CQ-STARM」には，USB ケーブルでパソコンと接続するだけですぐに利用できるように，サンプルのファームウェアが書き込まれている．この④ 複数のコンフィグレーションの中から目的にあったものを選択できる⑤ ソフトウェアとハードウェアがオープン・ソースで公開（1）というツール・キットのサブモードの一つとして，「Gainer」されているセットが実装されている．5 月号では Flash Player 上で動作当初のターゲットは，「プログラミングはある程度できするコンテンツ「カエルがぴょん」が紹介されたが，今月号ではてもハードウェアはあまり経験がない．でもパソコンの画もう少し内容に踏み込んで紹介する．また，Processing（2）と面だけで完結しないコンテンツを作ってみたい」というデいう開発環境でのプログラミングについても紹介する．（筆者）

ザイナやアーティスト向けのツールでした．最近では情報系の学部などでハードウェアを扱うためのツールとしても

1．ツール・キット Gainer

普及してきているようです．また，ハードウェアをオープン・ソースにしたことで，日本以外に米国でも独自にデザ

Gainer はIAMAS（情報科学芸術大学院大学と岐阜県立国インし直したものが販売されています（右掲のコラム参照）．

際情報科学芸術アカデミーの総称）で2005 年度から3 年間活動した PDP（Programmable Device Project）という学内プ

2．ARM 基板のファームウェアロジェクトがきっかけとなって開発がスタートしました．現
在では，さまざまなデベロッパによるライブラリが公開さ

ARM 基板がサポートしているコマンドは表 1 にある 5 種

れたことにより，ActionScript 2/3，Processing，Max/類です．通常のGainer I/O モジュールがサポートしているMSP 以外に，.NET，Perl，PureData，Python，Ruby，コマンドは全部で 25 個ほどありますが，ARM 基板のSqueak といったプログラミング環境からも利用できるようファームウェアではサブセットを実装しています．になっています．

コマンドは ASCII 形式で，「*」（ASCII コード 42）がコマ

Gainer の特徴は以下の通りです．
① プロトタイピングの段階から最終形まで用いることがでンド・ターミネータです．例えば，I/O モジュールをリセットする場合には「Q*」を送信します．

きる② ブレッドボードと組み合わせて試行錯誤しながら進める

3．シリアル通信ツールでの動作確認ことができる③ 自分自身のモジュールを部品レベルから組み立てて理解を深めることができる（キットで入手した場合）

Keyword56

通常，ソフトウェア・ライブラリが行っている I/O モ
ジュールとの通信を，手動で行ってみましょう．手動で行Gainer，Processing，オープン・ソース，仮想 COM ポート，静的加速度，動的加速度，加速度センサ

Design Wave Magazine 2008 June

ARM基板を使ったシステム開発の基礎
コラム オープン・ソース・ソフトウェアとオープン・ソース・ハードウェア
オープン・ソースという言葉はソフトウェアに関してはかなり普及

これにより，上級のユーザは既存のハードウェアを自由に改変してしてきました．ハードウェア開発で利用するツールの中にも，オープ自分自身のプロジェクトのために新しいものを作ったり，それを公開ン・ソースのソフトウェアは増えてきており，特別に意識することなすることができます．

く利用する場合が多いと思います．

EAGLE などの安価で高性能なプリント基板 CAD が普及したこと

これに対して，オープン・ソース・ハードウェアは比較的新しい概により，こうした流れが自然に行えるようになりました．最近では，念です．ソフトウェアの場合，オープンにされるのはソフトウェアのARM プロセッサと組み込み Linux を搭載した Chumby（www.

設計図であり実装であるソース・コードですが，ハードウェアの場合chumby.com）のようなオープン・ソース・ハードウェアもリリースには回路図とレイアウトで，EAGLE（3）などのディジタル・データがされており，今後要注目の流れだと思います．

01

そのまま公開される場合がほとんどです．

2
うことにより，ASCII ベースのインタラクティブな通信が① Q*実感できるでしょう．このためのツールにはシリアル通信

② ?*

3

ア ク ノ リ ッ チ

4③ KONFIGURATION̲1*ツールである Acknowrich を用います．
Acknowrich は chuchu 氏が開発し，無償で利用できる④ i*

よう公開しているツールです．ASCII およびバイナリの両図 1 はこの順序でコマンドを入力した時の表示例です．

モードで利用できるシリアル通信ツールで，マイコンなど最後の「i*」を入力すると通信ログ・エリアに「i8287A800*」を用いた開発ではとても重宝しています．下記の URL でのような文字列が次々と表示されます．これは，アナログ入手できます．

入力の値であることを示す「i」の後に 16 進数で 4 バイト分

http://www.biwa.ne.jp/˜chu2/software/ack/

を続けたもので，先頭から X 軸，Y 軸，Z 軸の値を 8 ビット

配布ファイルは LHA 形式のアーカイブになっているので表したものになります．4 個目の値はダミーで常に 00hで，ダウンロード後，適当な解凍ツールで解凍します．イになります．値の取得を止めるには，「E*」と入力します．

ンストールに関して特別な手順はないので，解凍が終わっ

なお，STM32F103VBT6 内蔵の A-D コンバータは 12ビットの分解能がありますが，Gainer のプロトコルではシたらそのまま起動できます．
起動の前に ARM 基板を USB ケーブルでパソコンに接続

リアル通信のトラフィックとのバランスなどの理由により8ビットになっています．もともと12 ビットのデータは8 ビッしておきます．
起動後，「ファイル」→「シリアルデバイス」で STM32 の仮想 COM ポートを選択します．仮想 COM ポートは5 月号特集で設定したものを使います．指定した COM ポートのトに切り捨てられ，2 けたの 16 進数として送信されます．
ライブラリはASCII 形式でこのようなコマンドを送信し，その結果を受け取って処理しています．

通信ウィンドウが開いたら，次の順序でコマンドを入力し次に，プログラミング環境 Processing と，Processingます．それぞれのコマンドはウィンドウ上部の送信データ用のライブラリを組み合わせて，加速度センサの出力をモ入力エリアに入力した後，リターン・キーの入力により送ニタする方法を紹介します．

信されます．
表1

ARM 基板のファームウェアがサポートしているコマンド

コマンド

リプライ

説 明Q

Q

I/O モジュールをリセットする?

?1.0.0.00

ファームウェアのバージョンを問い合わせる

KONFIGURATION̲1

KONFIGURATION̲1

I/O モジュールをモード 1 に設定する

iixxxxxxxx

アナログ・ポート 0 〜 3 までの値を連続で取得する

E

E

値の連続取得を終了する

図 1 Acknowrich でGainer の初期化コマンドを入力したときの画面例

Design Wave Magazine 2008 June

57

56