ホストとの接続はシリアルポートでの接続に抽象化されますので、シリアルドライバを導入後にシリアルポートを叩くための準備が必要になります。動作確認用にターミナルソフトを設定します。ターミナルソフトでの動作が確認できたら、これらに共通して使えるように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 」が表示されます。問題なく、操作できれば、そのリモコン信号は使えることになります。