USB接続型汎用赤外線リモコンアダプタ「irMagician」を使ったシステム構築の方法

CodeZine / 2014年6月27日 14時0分

Macintosh用常駐型クライアントアプリの例

 後編は実際にirMagicianをホストに接続し、実際のシステムを構築する方法について解説したいと思います。irMagicianはCDC-ACMを活用しているので、WindowsやMac OS X、LinuxなどのさまざまなホストOSに対応しています。

 ホストとの接続はシリアルポートでの接続に抽象化されますので、シリアルドライバを導入後にシリアルポートを叩くための準備が必要になります。動作確認用にターミナルソフトを設定します。ターミナルソフトでの動作が確認できたら、これらに共通して使えるようにPythonでリファレンスコードを記述してみたいと思います。

■Win/Macintosh/Linux/Androidへの接続確認と動作確認

 現在、PCで利用されているOSを思い浮かべると、Windows 7 or 8、Mac OS X、Linux(Android)になるかとおもいます。iOSは完全にモバイル用なので、このカテゴリから外します。iOSを外しているのに、同じモバイル目的のOSであるAndroidがなぜ入っているのかというとAndroidは自由度が高いので、運が良ければ使える場合があるからです。それでは順番に見ていきましょう。

●Windows

●接続確認

 とりあえず、irMagicianを接続します。筆者自身は事務処理以外はほとんどWindowsを使うことはありませんが、シェア的に最も大きいので外せません。irMagicianのリファレンスコードはMicrochipのコードになります。最新のWindows Updateにこのコードで参照されるMicrochipのpid/vidは反映されていますので、接続後、自動的にドライバがインストールされます。この後に、黄色のLEDが点滅することを確認します。

●動作確認

 Teratermなどのシリアルポートをハンドリングできるソフトを使い、通信パラメータ 9600bps, 8データビット, Non-parity, 1ストップビット(9600-8N1)で設定して、当該シリアルポートを選択し、オープンします。

●Macintosh(Mac OS X)

●接続確認

 Mac OS Xの取り扱いについては、多少複雑な所があります。irMagicianで利用しているCDC-ACMのフレームワークの制限により、現行のMac OS XのCDC-ACMドライバでは安定動作をしないため、ドライバを差し替える必要があります。ドライバの差し替えについては、こちらを参考にしてください。

ls /dev/tty.usb* [enter]
を行い、/dev/tty.usbmodemXXXXX(XXXXXは何かの数字:筆者の場合は01231)が表示されることを確認します。

●動作確認

 ターミナルを立ち上げ、以下のコマンドをタイプします。

screen /dev/tty.usbmodemXXXX 9600 [enter]
●Linux

●接続確認

 現状、最も手間がかからないのがLinuxです。接続すると、irMagicianは/dev/ttyACM0にマップされます。これに対してのオープン/クローズ、読み書きを行うことにより制御を行います。

●動作確認

 Mac OS Xの場合と同様に、screenコマンドを使います。ターミナルを立ち上げ、以下のコマンドをタイプします。

screen /dev/ttyACM0 9600 [enter]
 ラズベリーパイやインテルのガリレオもLinuxベースです。これらのシステムでの動作確認も取れています。

●Android

 現状、数種類のアンドロイド端末での動作確認もできています。ただし、端末自身のヴァージョンアップなどで使えなくなる可能性があるので、あくまでも as is 並びに自己責任でお願い申し上げます。

ASUS Nexus7(2013モデル) Android Ver4.4(KitKat) SONY SO-02E Android Ver4.2  CDC-ACMはカーネルドライバとして実装されていますので、比較的サポートされている場合が多いようです。

●共通処理

 各ホストシステムにおいて、ターミナルソフトによりirMagicianが接続できました。自宅のリモコン信号が利用できるかの確認をします。ターミナルソフトの接続後、「Ready ...」が表示されれば、OKです。環境によっては、「Done ...」や何かの数値が出てくる場合もあります。

●リモコン信号の学習

 リモコン信号の学習を行います。すでに大宮技研のwebにいくつかのリモコン信号のデータがアップされていますが、そこにない場合は自分で信号を学習させる必要があります。ターミナルから

c[enter]
をタイプします。エコーバックされません。2秒以内に基板中央のセンサに向かって、学習させたいリモコンから信号を送信します。

 信号が正常に学習できると、「... 数値」が表示されます。数値の範囲は70~600位になります。これはその赤外線信号のバイト数になります。エアコンの信号などは大きい数になります。

●リモコン信号の再生

 cコマンドにより、キャプチャした信号は「p」コマンドにより、再生できます。対象となる機器がいま、キャプチャした信号で制御できるかを確認します。irMagicianを対象となる機器に向けて、ターミナルから、

p[enter]
をタイプします。コマンドはエコーバックされません。信号の送信後、「... Done 」が表示されます。問題なく、操作できれば、そのリモコン信号は使えることになります。



CodeZine

この記事に関連するニュース

トピックスRSS

ランキング