USB赤外線リモコンアドバンス(BitTradeOne)をRaspberry-Piで操作する

[進捗次第追記します]

以下参照しました
http://blue-black.ink/?p=2973
http://a-desk.jp/modules/mydownloads/singlefile.php?cid=3&lid=76
http://qiita.com/Kaz-su/items/93ec120b4bb90de7da2b

#### USB赤外線リモコンアドバンスって？
このサイトにあります: http://bit-trade-one.co.jp/product/module/adir01p/
メリットとしては

* いちいちラズパイ側で回路を組まなくてもUSB接続でできてしまうのでかなり手間が省けます
* 赤外線の到達範囲が広いので、単体で赤外線を買うよりも距離を離して制御できる
* コマンドラインツール等が用意されているのでセットアップがかなり楽

など色々あります。

## 1. 赤外線リモコンアドバンスのコマンドラインツールをRasPiにインストール

赤外線リモコンアドバンスはこのままだとWindowsからのみしか使用できないのでAssemblyDeskのコマンドラインツールをインストールする
コンパイルで必要なlibusb-1.0をインストール&パッケージアップデート

```

$ sudo apt-get install libusb-1.0.0
$ sudo apt-get update
```

 bto_advanced_USBIR_cmd.zipをhttp://a-desk.jp/modules/mydownloads/singlefile.php?cid=3&lid=7 からインストールしてきて、ローカル上で解凍、解凍後のファイルをscp等でラズパイ上にコピー

```
$ scp -r local/path/bto_advanced_USBIR_cmd yourRaspi@xxx.xxx.xxx: raspi/path #ディレクトリは好みの場所でOK
```
コンパイル

```
~/bto_advanced_USBIR_cmd $ make
cc -Wall -c bto_advanced_USBIR_cmd.c
cc -Wall -o bto_advanced_USBIR_cmd bto_advanced_USBIR_cmd.o -lusb-1.0
```

コンパイルに成功すると以下のコマンドが生成されていることが確認できる

`bto_advanced_USBIR_cmd`

ちなみに使い方は

```
./bto_advanced_USBIR_cmd -h
usage: ./bto_advanced_USBIR_cmd <option>
  -f <freq>	-dオプションまたは -rオプションを指定した場合のみ使用できます。
           	指定しない場合は38000になります。
  -t {AEHA,NEC,SONY,MITSUBISHI}
  -c <code>	家電協(AEHA)フォーマット、NECフォーマット、SONYフォーマット、三菱フォーマットの
           	コードデータをこの -cオプション引数として指定します。
           	書式は-dオプションと同じ 0xFF,0xFF,... です。必ず-tオプションとセットで指定します。
  -C <Code>	家電協(AEHA)フォーマット、NECフォーマット、SONYフォーマット、三菱フォーマットの
           	コードデータをこの -Cオプション引数として指定します。
           	書式は0xの付かない16進文字列 FFFF... です。必ず-tオプションとセットで指定します。
  -d <data>	受信設定または送信設定コンフィグレーションツールで、クリップボードに
           	コピーボタンでコピーしたデータ、または、-gオプションで取得したデータが、
           	この -dオプション引数として使用可能です。
           	-fオプションのみ追加で指定可能です。
  -r       	受信開始を指令します。
           	-fオプションのみ追加で指定可能です。
           	受信設定または送信設定コンフィグレーションツールで取得できるデータが、
           	本コマンドでも取得できます。
  -s       	受信停止を指令します。
  -g       	直前に受信を終えたデータが所得できます。
  --Plarail_StopA		このオプションは必ず単独で指定します。
  --Plarail_StopB		このオプションは必ず単独で指定します。
  --Plarail_Speed_UpAF		このオプションは必ず単独で指定します。
  --Plarail_Speed_UpAB		このオプションは必ず単独で指定します。
  --Plarail_Speed_UpBF		このオプションは必ず単独で指定します。
  --Plarail_Speed_UpBB		このオプションは必ず単独で指定します。
  --Plarail_Speed_DownA		このオプションは必ず単独で指定します。
  --Plarail_Speed_DownB		このオプションは必ず単独で指定します。
  --version
※ getopt_longモジュールの制限を回避する為、プラレール用のオプションは末尾まで正確に指定して下さい。

使い方の例
受信系
$ bto_advanced_USBIR_cmd -r         # (生データ)受信開始
$ bto_advanced_USBIR_cmd -s         # (生データ)受信停止
$ bto_advanced_USBIR_cmd -g | tee data.txt  # 生データ所得

送信系
$ bto_advanced_USBIR_cmd -d `cat data.txt`
$ bto_advanced_USBIR_cmd -t AEHA       -C 123456789ABC
$ bto_advanced_USBIR_cmd -t NEC        -C 08F6817E
$ bto_advanced_USBIR_cmd -t SONY       -C 08F6817E
$ bto_advanced_USBIR_cmd -t MITSUBISHI -C 08F6817E
$ bto_advanced_USBIR_cmd --Plarail_Speed_UpAF

```

最後に/usr/local/binにコマンドのパスを通す

```
~/bto_advanced_USBIR_cmd $ sudo make install
install -s -p -m 4755 bto_advanced_USBIR_cmd /usr/local/bin
```

## 2. 赤外線コードを記録させる
#### コードの学習方法について
`bto_advanced_USBIR_cmd`に関する以下のコマンドを用いる

* 受信開始: `bto_advanced_USBIR_cmd -r`  
* 受信停止: `bto_advanced_USBIR_cmd -s `
* 赤外線生データ取得: `$ bto_advanced_USBIR_cmd -g | tee data.txt`
* 送信: <code>$ bto_advanced_USBIR_cmd -d `cat data.txt`</code>
  (ただしdeamon processだとcat使えないので取り扱いには注意必要)