Online tutorial (日本語)
はじめに
パソコンで何かを動かしたり、あるいは計測結果を取得したい事ってありませんか? 制御・計測用ソフトウエアのSimple Transmission and Retrieval System (STARS)の導入は有力な選択肢となるでしょう。
STARSの主な特徴は以下の通りです。
- TCP/IP Socket とテキストベースのメッセージの送受を行うので、これらを知っている方には無茶苦茶簡単(それぞれのプログラミング言語用にライブラリーも用意)
- ネットワークを利用してシステムの分散化が可能
- STARS Server(Perl版あるいはPython版)は様々なOS(Windows、Linux、Macintosh等)上で動作可能
- STARS Clientの開発においてOSやプログラミング言語を自由に選択することができる
- 無料で使用可能(MIT License)
このTutorialではSTARS利用の基礎から各ライブラリの使用法などについて解説したいと思います。また、随時皆様のご意見や質問をもとに修正を加えてゆきたいと思います。
Why STARS?
ちょっと唐突ですが・・・、パソコンで光の強さを図り、記録したいなーって思ったことってありませんか。そんなに無いですよね。
そんなに無い事ではあるかもしれませんが、ここではこれを例にとります。
はじめの例として、以下のようなものを挙げます。
この例での光センサーは光の強度に応じた電圧を出力するもので、電圧をテスターで測れば光の強度が分かります。そしてこのテスターにはRS232Cのシリアルインターフェースが付属していているので、これを「RS232C⇐⇒USB」の変換器を通してパソコンに繋げば、ターミナルソフトウエアや自作のアプリケーションなどでデータを読み取ることができます。
このテスターは1秒間隔で測定データを送信してきますので、ターミナルソフトには随時測定値が表示されます。また、自作のアプリケーションでは毎回送られてきたデータをハンドリングする必要があります。
次の例はArduino UNOを使って自作した光センサーの場合です。
Arduino UNOとPCはUSBケーブルを使用して接続します。PC側からはシリアルポートとして見えますので、ターミナルソフトあるいは自作のアプリケーション等で操作可能となります。なお、Arduino UNOには“g”という文字を受け取ると光強さをルクスの単位で送信するようにプログラムしてあります。
更に、もう少し細かく値を読むためにデジタルマルチメータを使用した例です。
デジタルマルチメータは様々なメーカーから発売されており、RS-232C接続やLANに接続できるものなどがあります。デジタルマルチメータの機種ごとにコマンド等が違いますのでPC側ではその都度対応する必要があります。
以上のように、単に光の強度を測ると言っても様々なバリエーションが考えられます。そして、PCのアプリケーションはそれぞれの構成に対応する必要があります。
さてここで、デジタルマルチメータを使って、PC測定をしていたとします。しかし、突然この機器が壊れてしまって、代替えとしては他社の物しか手元にないとしたら・・・。プログラムの書き換えとか、ものすごーく面倒臭くないですか。変更箇所を探し出して、修正とか・・・。
STARSでは以下に示すように、単一のアプリケーションで制御や計測のシステムを構築するのではなく、機能ごとにアプリケーションを分けました。
そして、各アプリケーション間のやり取りはTCP/IP Socketで接続し(要はネットワークを介して接続が可能という事です。よくご存じない方は、とりあえずここでは「そんなものかぁ」と思ってください)テキストのメッセージでやり取りする事にしました。とにかく「シンプル」というのがSTARSの売りです。
アプリケーション作成においてはコマンド等が共通(例えばデータを取得するなら“GetValue”とか・・・)になるようにしておけば、機器の交換の際、デバイス操作部のアプリケーションを入れ替えるだけで済みます。なお、この入れ替えに際してはシステム全体を停止する必要はありません。