NXP LX2K/Cubox/HummingBoard
Marvell ClearFog/MACCHIATObin
  • ホーム
  • アーティクル
  • 製品情報
  • イベント情報
  • Petapico コラム
  • ダイレクトショップ
  • DL
  • 英徳社について
  • 問い合わせ
24日 1月 2015

CuBox-i/HB に小型赤外線リモコン irMagician をつなぐ

 irMagician は大宮技研(http://www.omiya-giken.com/)の開発による学習型赤外線リモコン・ボードです。ペタピコフォーラム(仮称)というイベントを通じて持ち込んでいただいたことをきっかけに CuBox-i/HummingBoard での接続実験を行ったところ、結果良好でした。電子工作についてもコラムを充実させていきたいという意向もあり、ペタピコダイレクトショップでの委託販売もはじめるはこびとなりました。

 

HummingBoadでも動作は同じと確認できています、ただしケースがないと設置が不安定になるおそれがあります
HummingBoadでも動作は同じと確認できています、ただしケースがないと設置が不安定になるおそれがあります

1.型破りな発想の irMagician

 

 赤外線(IR)学習リモコンは数多くありますが、 irMagicianが一味違っているのは「いさぎ良さ」です。ハードウェアスペックを極限まで切り落として極小ボードに仕上げているので、USBフレキシブルケーブルに挿せば「空中」に設置できてしまうことです。

それでは切り落としたスペックで使いものになるのか、ということが気になる点となります。

他の学習型リモコンでは、メモリをたくさん積んで学習した赤外コードを覚えておきます。このIrMagicianで型破りなのは、メモリが1つしかないことです。ここが一番のいさぎよさです。ちゃんとユースケースを考えてみたら、同時に必要なのは1つなので、これで十分だというわけです。その分、バッファが自由になるのでコードが長いエアコンのコードにも対応できるようにしていていて、その利口なやり方が目からうろこでした。

 irMagicianの第2のすばらしい点は、ボード製品なのにセンサのインタフェースではなく、ほとんどのCPU/OSで標準サポートされているcdc-acm(Class Definition for Communication)のlinuxカーネルモジュール(USB接続のモデム)にしていることにあります。 ホストPCのUSBに挿してみて、LEDの状態をみればボード上の黄色いLEDが点くのですぐに使えるかどうかを判断できます。コマンドから見るならば、 

 

# ls /dev/tty*

 

 

 

ttyACM0があればOK。非常にシンプルです。(逆にシステムですでにttyACM0がすでに割り当て済みの場合にはそれを一旦はずさなくてはいけないので面倒があります)

 

なお、リモコンといえば、本ペタピココラム

「GeeXboxをTVのリモコンで操作してみる」http://goo.gl/VDgkeA

で取り上げました。この時はCuBox-iの前面にある赤外受光を使い、Linuxの定番のlircライブラリを使って学習させるというものでした。対比の意味でも一度ご覧になると参考になります。

CuBox-i4Proでは、赤外の出力にも対応はしているので、読取り学習をさせるだけでなく、赤外信号を発信することも可能です。ただし、例えばエアコンをターゲットにするとなると、CuBox-iの前面窓からの小さな出力では置き場所を相当に選ばなくては届きません。置き場所が原因で実用にならなくなります。その意味でもirMagicianは「男前」なコンセプトと言えます。それではCuBox-i/HummingBoadでの検証を行ってみましょう。

 

TV用のリモコンを使って実験
TV用のリモコンを使って実験

2.操作方法と代表的な動作

 

 動作の検証には、debian* を用いました。今回の場合、CuBox-i側では何の設定も必要ありません。ハードウェア的には、フレキシブルマイクロUSBケーブルの先にirMagicianを取り付けただけ、となります。あとは、リモコンと、操作するターゲット(例えばTVやエアコン)があれば実験ができます。

(*) Debian Wheezy 7.5はペタピココラム でとりあげています

 (18) Debianでmicro-home-serverを作る(1)  http://goo.gl/X4OkBT

 

実際にコマンドを使って赤外線リモコンのデータを取得して再生してみます。ここでは参考例としてTOSHIBAのTV操作用のリモコンで検証しながら説明をします。  

すべての操作はSSHかシリアルで接続したターミナル(もしくはCuBox-i本体からのコンソール)で行うものとします。

 

# screen /dev/ttyACM0 9600 

 

 

 

… Ready

 

 

が表示されたら利用可能です。(ターミナルソフトの起動タイミングによっては表示されない場合があるようです。また、ホストやシステムの状態によって、エラーメッセージやゴミが表示されますが、通常使用では問題ありません、とのこと)

 

データの取得 

「C」コマンドを使って実際にデータを取得します 

irMagicianの赤外線受光部にキャプチャしたいリモコンを向けcを入力後、[return]を押下

… と表示されるのを確認してこのタイミングでキャプチャしたいリモコンのボタンを押します。正常に信号がキャプチャされると、80などの数値が表示されます。ボタンを押すタイミングが遅れた場合は Time Outが表示されます

 

データの再生

 取得したデータがきちんとつかえるかどうかを「P」コマンドにて確認します

irMagicianの赤外線LEDを対象となる機器に向けpを入力後、[return]を押下

対象となる機器のリモコン信号に応じた動作と緑LEDの点滅確認をします

 

うまく、学習出来てなかった場合はPostScaler値を変更すると、うまく学習できることがあります。全てうまくいくわけではありません。現在値は100になっていますが、これを200に変更します。k,200[return]。この値を変更しても、うまくいかない場合は本システムでは学習できないタイプのリモコンだと思われます。   

 

通常はさほど異例な長さのコードはないのですが、日立のエアコンなどではあり得ます。長さが問題でとりこぼしていないかを確認することができます。取得したい赤外線リモコンの信号の変化点の数を調べるには「S」コマンドを使います。 120を超えていると取り込めません。

基本的なやることは以上だけです。

 

 ここまでの確認ができたら上級コマンドです。取り込んだコードをセーブしておく、セーブしたコードをロードして発信してみます。取得したデータを表示する「D」コマンドやデータバンクにデータを書き込むための「W」を適宜利用して、リモートコントロールする対象物に合わせてデータをセーブ/ロードします。その為には一般的なシリアルターミナルソフトではなく、本システムに特化した専用アプリを組む必要があります。 通常使うコマンドは以下の通り。

 

 

R

リセット(Reset)コマンド システムのリセットを行う。

L

LED の点灯(LED)/消灯 コマンドに続いて、0か1を設定する L,0 or L,1

B

ダンプ時のバンク(Bank)設定 コマンドに続いてバンク番号を設定する。全部で10バンク B,n (n=バンク番号0-9)

C

赤外線信号を取得する(Capture)時に使う 表示される数字はバイト数

D

取得したデータのダンプ(Dump) D,n(メモリ番号) 16進数表示

M

赤外線 LED の変調(Modulation)周波数の設定 コマンドに続いて番号を指定する M,n (n = 0-2)  0 = 36KHz, 1 = 38KHz (default), 2 = 40KHz 

K

Set Post scaler 初期値は100 k,n (n=1-255)

P

取得した赤外線データの再生(Play)

S

赤外線リモコンの変化点の取得(Statics mode) 実際のキャプチャは行わずに、データの測定のみ行う

W

データバンクにデータを書き込む(Write) W,position(0-63),data

 

3. ユーティリティ irm.py を使ってみる

 

 ここでは、Twitter: @netbuffaloさんが、netbaffalo (http://netbuffalo.doorblog.jp/archives/4872290.html)

で公開されている実験的なPythonのスクリプトを紹介します。

netbaffaloに掲載の記事では、RaspberryPiでこのIrMagicianを使えるようにするため、大宮技研で公開しているサンプル・コードをPythonスクリプトでまとめ直したユーティリティとなっています。その irm.py を試してみたところ、無修正でCuBox-i/HBで動作しました。公開いただいている先人の業績に敬意をはらって利用させていただきましょう。

 

まず、pyserial ライブラリをインストールしておきます。

 

# sudo apt-get install python-pip

 

# sudo pip install pyserial

 

 

 

次にirm.pyをダウンロードしてきます。

irm.py ユーティリティ 

https://dl.dropboxusercontent.com/u/5966412/IR/irMagician/irm.py

 

使い方はhelp から見ることができます。

# python irm.py --help

usage: irm.py [-h] [-c] [-p] [-s] [-f FILE]

 

irMagician CLI utility.

 

optional arguments:

  -h, --help            show this help message and exit

  -c, --capture         capture IR data

  -p, --play            play IR data

  -s, --save            save IR data

  -f FILE, --file FILE  IR data file (json)

 

 

 

 

 

 

 

 

 

 

 

 

 

キャプチャーしてその信号をセーブしたり、セーブ済みの信号をプレイしてターゲットデバイスを動作させてみます。

 

緑LEDが点いた、きちんとキャプチャーできていそうだ
緑LEDが点いた、きちんとキャプチャーできていそうだ

まずリモコンを準備しておき、信号をキャプチャします。数字が返ってきたら取り込み正常。

 

# python irm.py -c

Capturing IR...

... 80

 

 

 

それを名前をつけてセーブしてみます。

# python irm.py -s -f ToshibaTV_Ponoff.json

Saving IR data to ToshibaTV_Ponoff.json ...

Done !

 

 

 

 

 

どんなファイルになったかを見てみます。

# more ToshibaTV_Ponoff.json

{"postscale": 100, "freq": 38, "data": [35, 136, 66, 9, 24, 9, 7, 9, 24, 9, 7, 9

, 7, 9, 7, 9, 24, 9, 7, 9, 7, 9, 7, 9, 24, 9, 24, 9, 24, 9, 24, 9, 7, 9, 24, 9,

7, 9, 24, 9, 7, 9, 7, 9, 24, 9, 7, 9, 7, 9, 7, 9, 24, 9, 7, 9, 24, 9, 24, 9, 7,

9, 24, 9, 24, 9, 24, 9, 91, 136, 33, 9, 134, 136, 33, 9, 134, 136, 33, 9], "form

at": "raw"}

 

 

 

 

 

 

このような各種の機器のJSONファイルは大宮技研のページで公開されています。ユーザーが持ち寄ったデータも再使用が可能なように置かれています。

 

セーブ(大宮技研のサイトからダウンロード)したファイルを使えばマイコン上の赤外線データ・バッファがリセットされてしまった後でもプレイが出来るということです。

# python irm.py -p -f ToshibaTV_Ponoff.json

Playing IR with ToshibaTV_Ponoff.json ...

... Done !

 

 

 

 

 

 

 

このirm.pyのソースを参考にアプリを作りこめば、いろいろなシーンでの利用が可能になりそうな予感がしてきます。

 今回、このようなアクセサリーでは稀なほど容易に使うことができた。もとのスジがいいこと、良質なユーザーがツールを積み重ねてくれていることだと思います。

実際にシステムに組み込んだレポートがブログなどで発表されるといいなあと思っています。発表記事のリンクOKならばpetapicoshop@petapico.bizまで連絡を是非お願いします。

次回は、このリモコンをWeb経由で操作できるようにして、外から制御することに挑戦してみます。

 

**本サイトのペタピコショップで販売しています。

tagPlaceholderカテゴリ: Cubox-i, HummingBoard, irMagician, コラム, 外付け

コメントをお書きください

コメント: 0

お問合わせフォームはこちら

メールはpetapicoshop@petapico.bizまで


英徳社ホームページはこちら


1 日本国内への配送に適用されます。その他の国についてはこちらをご参照ください
概要 | 利用規約 | 返金条件と返品取消申請書 | 配送/支払い条件 | プライバシーポリシー | サイトマップ
ログイン ログアウト | 編集
  • ホーム
    • ショップからのお得情報
    • CuBox-i Seriesの情報
    • MicroSDの作り方
    • HummingBoard Seriesの情報
    • HummingBoard Edge/Gateの情報
    • IntelSoliPCの情報
    • windows10 IOTの情報
    • ClearFogの情報
    • MacchiatoBinの情報
    • fromSolidRunWebsite
  • アーティクル
  • 製品情報
  • イベント情報
  • Petapico コラム
    • KODI
    • Cobox-i
    • HummingBoard
    • ソフトウェアTips
    • 外付け
    • カメラ
  • ダイレクトショップ
    • ダイレクトショップ iMX SoC
      • CuBox-Mセット
      • iMX8M Plus
      • iMX8M Plus Mate
      • CuBox-i1 OpenELECWiFi model
      • HummingBoard Pulseセット
      • CuBox-i1 OpenELEC セット
    • WAI WAIセール
      • Sheeva
      • D3
      • SMILE Plug
      • 第1世代CuBox|CuBox-PRO
      • CuBox-i1 セット
    • ダイレクトショップ LX2K
      • LX2160Aファミリー
    • ダイレクトショップ Marvell SoC
      • CEx7 CN9132
      • ClearFog
      • ClearFog Base
      • ClearFog Pro
      • MacchiatoBin Double|Single Shot
      • ClearFog GT 8K
      • MACCHIATObin ClearCloud 8K
      • SolidSense スターターセット
    • ダイレクトショップ intel SoC
    • ダイレクトショップ eRemote
      • eRemote
      • eSensor
    • 12V AC アダプター(PSE対応)
    • CuBox-i1 GeeXboXセット
    • CuBox-i1 OpenELEC+plugin
    • HummingBoard-Gate i1セット
    • HummingBoard-i2eX セット
    • HummingBoard-i4pro セット
    • CuBox-i2 セット
    • CuBox-i2 WiFiセット
    • CuBox-i2eX セット
    • CuBox-i2eX WiFiセット
    • CuBox-i4 Pro セット
    • HummingBoard-i2 セット
    • HummingBoard-i1セット
    • Application microSD Card for CuBox-i
    • Android microSD Card for CuBox-i
    • SolidPC
    • SolidPC SSD 32G
  • DL
    • Media Exposure
  • 英徳社について
  • 問い合わせ
閉じる