SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

小型/軽量/安価/オープンソース対応の赤外線リモコン「irMagician 」ファーストステップガイド

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

小型/軽量/安価/オープンソース対応の赤外線リモコン「irMagician 」ファーストステップガイド 後編

  • このエントリーをはてなブックマークに追加

 後編は実際に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 」が表示されます。問題なく、操作できれば、そのリモコン信号は使えることになります。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
プログラム例

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
小型/軽量/安価/オープンソース対応の赤外線リモコン「irMagician 」ファーストステップガイド連載記事一覧
この記事の著者

大橋 修(大宮技研合同会社)(オオハシ オサム)

大宮技研 エグゼクティブ・エンジニア。都立高専電気工学科卒業後、日本精工(株)でエアバッグの制御ソフトウェア開発、ボッシュ(株)にてエンジンマネージメントシステム開発、適合ツールの開発、プロジェクトマネージメント、ノキアにてシンビアンOS用ミドルウェアS60の開発などをおこなう。インテルを経て、首都大学東京...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7829 2014/06/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング