Last updated : 06/07/2008
Written by Yasuhiro ISHII(石井 康寛) projectc3@gmail.com

はじめに・概要

赤外線学習リモコンを使用して、簡単なコードで動作シーケンスを組み、周囲のリモコン使用機器の制御自動化や、特定のシステムの動作検証を実施する事を目的としたライブラリを公開します。

ここでは、上記の目的を手軽に実現する為、Rubyのクラスライブラリとして実現させることにしました。

制御ドライバには、PC-OP-RS1-CONTROL.DLLを使用する為、Windowsベースシステム専用です。

ダウンロード

クラスライブラリ RemoController.rb

このスクリプトは、ユーザーがPC-OP-RS1を使用して自在に赤外線コマンドのシーケンスを組むために、Rubyを使用する際のインタフェースです。

サンプルコード

require 'RemoController'

# インスタンスの作成
remo = RemoController.new()

# モジュールのバージョン取得
v_maj,v_min = remo.GetModuleVersion
printf("DLLバージョン : %d.%d\n",v_maj,v_min)

# ポートのオープン(COM2)
remo.Open(2)

if(remo.Led() == RemoController::RET_OK) then
	printf("コール成功\n")
else
	printf("コール失敗\n")
end

# 格納用バッファを確保
buff = remo.GetIrBuff()

# リモコンコードを受信する
remo.Receive(buff)

# 送信をするループ
while(1)
	printf("Press any key to transmit")
	gets
	# Ch.0の出力ポートから出力する
	remo.Transmit(0,buff)
end
remo.Close()

RemoControllerメソッド一覧

Open

Led

Receive

GetModuleVersion

Close

SetTimeOut

Transmit

GetIrBuff?

Ruby上で240バイト長のリモコンコマンドデータ格納用バッファを取得するインターフェースです。

戻り値一覧

全てのメソッドは以下の戻り値を持ちます。

RemoController::RET_OK		正常終了
RemoController::RET_ERR		異常終了
RemoController::RET_TIMEOUT		タイムアウト

サンプルコード

サンプルコードは、COM2を使用する事を前提にコーディングしています。
各自の環境に合わせてポート番号を変更して下さい。

sample01.rbリモコンのデータを受信し、その次にそのまま受信したバッファ内容を使用してリモコンコマンド送出を行います
sample02.rbリモコンのデータを受信し、その後データ列としてRubyソース中に埋め込む為のハッシュ定義形式にて表示する。この表示コードをソース中に張り付けることで、予め記録しておいた赤外線コマンドを任意のタイミングで送出する事ができます
sample03.rbsample02.rbを使用して取得したテーブルを元に、リモコンコードの送出を行う。サンプルでは、ソニーのDVDプレーヤーの電源を制御しています
sample04.rb別なハッシュテーブルとして定義した、コイズミの照明器具とパナソニックのテレビをシーケンス制御するサンプルです

アクセスカウント(累計) : 4637 アクセスカウント(本日) : 3 アクセスカウント(昨日) : 1


添付ファイル: filepc-op-rs1-ruby.zip 909件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-21 (日) 14:03:59 (3738d)