曲を変更したり、次の PowerPoint スライドにスキップしたりするためにコンピューターに向かうのは理想的ではありません。代わりに、LIRC を使用して、Linux または Windows PC 上のアプリケーションを赤外線リモコンで制御します。
カバーしましたさまざまなアプリやリモコンで XBMC を制御するただし、ユニバーサル リモコンをすでにお持ちで、XBMC センター以外の制御を行いたい場合は、いくつかのカスタマイズを行う必要があります。ここで LIRC が役に立ちます。LIRC は、ほぼすべての赤外線リモコンを使用できるようにするツールのセットです。 PCと通信します。 XBMC などのメディア プログラムのサポートが組み込まれているだけでなく、Amarok でトラックを切り替えたり、OpenOffice でプレゼンテーションを行ったり、MPlayer でビデオを視聴したりするなど、特定のプログラムでほぼすべてのことを実行できるように設定できます。マウスとキーボードの近く。
LIRC はもともと Linux 用でしたが、Windows ポートも利用できます (WinLIRC として知られています)。この特定のハウツーは Linux 向けですが、必要に応じて、Windows ユーザーが理解できるように Windows バージョンと Linux バージョンの違いについても説明します。私のフィールド テストはすべて Linux バージョンで行っているため、WinLIRC を試している Windows ユーザーは次のことを行う必要があります。結果とヒントを以下のコメント欄に投稿してください。
Linux 上で LIRC をセットアップする場合は、多くのコマンド ライン作業が必要になることに注意してください。ほとんどの Linux ユーザーはこれに精通していると思いますが、これは私が 1 つの特定のプロジェクトに対して行ったコマンド ラインと構成ファイルの編集作業の中で最も多くの作業であると言えるので、準備をしてください。
ハードウェアを揃える
LIRC は自作の IR 受信機で非常に人気がありますが、電子工作に詳しくない場合でも、いくつかの選択肢があります。これを Linux 上で実行している場合、ホームエレクトロニクスの IRA-3私にとっては非常にうまく機能し、ほとんどの受信者が行うカーネルの再コンパイルは必要ありません。 Windows のアプローチを選択する場合は、通常、単体のレシーバーが販売されているのを見つけるのが難しいため、多かれ少なかれ自作のレシーバーを使用することになります。最善の策は、eBay でシリアル IR 受信機を検索する—過去に、実際に、WinLIRC で動作するかどうかを教えてくれる、見栄えの良いオプションをいくつか見つけました。
また、WinLIRC では、IR レシーバーがシリアル デバイスである必要があることにも注意してください。USB は、直接またはアダプターを使用しても機能しません。コンピュータに空きシリアル ポートが必要か、または次のような互換性のある内蔵 IR レシーバを使用する必要があります。ホーポージ TV チューナー カード(Linux でもこれを実行できますが、カーネルを再コンパイルする必要がありますが、前述の IRA-3 を使用する場合は不要です)。
リモコンに関して言えば、ほとんどすべての赤外線リモコンが正常に動作するはずです。私は、テレビ、メディア センター、その他の関連デバイスに、ワン・フォー・オール urc6131n、これは非常に安価な素晴らしいリモコンです。デバイスを制御するためのリモコンをまだ持っていない場合は、これはシンプルですが素晴らしいものです。
LIRC のインストールと接続の確認
LIRC (この記事の執筆時点ではバージョン 0.8.6) は Ubuntu リポジトリにあるはずなので、Ubuntu を使用していると仮定すると、Synaptic から lircd をインストールするだけで済みます (それ以外の場合は、Web から lircd を手動でダウンロードしてインストールする必要があります)サイト)。さらに、Irman デバイス (上記で提案した IRA-3 など) を使用している場合は、libirman-dev もインストールする必要があります。 Windows では、zip ファイルをダウンロードしてどこかに解凍するだけです。
まず、デバイスがどのポートに接続されているかを把握する必要があります。Linux PC の最初のシリアル ポートは /dev/ttyS0、2 番目のシリアル ポートは /dev/ttys1 などです。正しいポートに接続されているかどうか、およびリモコンと通信しているかどうかを確認するには、ターミナルを開いて次のように入力します。cat /dev/ttyS0
、ttyS0 を接続しているシリアル ポートに置き換えます。デバイスの赤いライトが点灯するのが確認できます。運が良ければ、リモコンのいくつかのボタンを押すと、以下に示すように、端末が意味不明な音声を発するはずです。
私のリモコンでは、実際にこの問題が発生したのは 1 つまたは 2 つのボタンだけでした。そのため、ボタンを連打するだけで機能しなくても、心配する必要はありません。リモコンのすべてのボタンを注意深く確認して押してください。おそらく、そのうちの 1 つが意味不明な文字列全体でターミナル ウィンドウを埋め尽くす可能性があります。それが私たちが探しているものです。つまり、正しいポートが定義されており、すべてが適切に通信していることを意味します。
次に、hardware.conf と lircd.conf を設定する必要があります。これを行うには root 権限が必要なので、次のように入力します。sudo gedit /etc/lirc/hardware.conf
ターミナルで編集します)。 /dev/ttyS0 に接続された Irman デバイスの hardware.conf は次のようになります。
REMOTE="Irman / UIR"
REMOTE_MODULES-""
REMOTE_DRIVER="irman"
REMOTE_DEVICE="/dev/ttyS0″
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""
START_LIRCD="true"
START_LIRCMD=""
LOAD_MODULES=""
LIRCMD_CONF=""
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
もちろん、私が提案したものとは異なるものを使用する場合は、デバイスの場所、デバイスの種類、および上記のドライバーを独自のハードウェアの属性に置き換える必要があります。
Windows ユーザーの場合、構成はすべて WinLIRC の GUI 内で行われます。 WinLIRC を起動すると、失敗したことを知らせるポップアップが表示されます。[OK] をクリックすると、メイン ウィンドウが表示されます。インストールされている COM ポートを選択し、残りの設定はデフォルトのままにしておいて問題ありません。 config 行の横にある参照ボタンをクリックして、WinLIRC に付属のsample.cf を選択すると、それが動作しているかどうかをテストできるはずです。 Raw Codes ボタンを押して、リモコンを受信機に向けます。コードが表示されたら準備は完了なので、先に進むことができます。
リモコンでLIRCを設定する
次に、リモート用の lircd.conf ファイルを作成する必要があります。これは、プロセスの最も重要な部分です。これは、リモコンのボタン コードを他のソフトウェアが解釈できるコマンドに変換するものです。 lirc の Web サイトには、さまざまなリモートに対応する lircd.conf ファイルのリストがありますが、私はこれらのファイルをうまく使用できませんでした。私は、以下を使用して独自のファイルを作成することを好みます。irrecord
(Windows を使用している場合は、WinLIRC に組み込まれているプロセス)。私は自分でやってみて、はるかに良い結果が得られました。事前に作成された構成ファイルでは常にエラーが発生しました。
おそらく実行する必要がありますirrecord
何を使用しているかを示すいくつかのオプションがあります。 /dev/ttyS0 に接続された Irman デバイスの場合、それを起動するためのターミナル コマンドは次のようになります。
irrecord -H irman -d /dev/ttyS0 lircd.conf
もう一度交換すると、irman
そして/dev/ttyS0
独自のハードウェアを使用している場合は、それぞれのドライバーとポートを使用してください。後は指示に従うだけです。 LIRC の新しいバージョンでは、事前に作成されたリストからボタン名を使用する必要があります。ここ。どのボタンにどれを使用するかは特に重要ではありません。これは、LIRC がコードを英語に変換して、目的のソフトウェアと通信できるようにするための単なる方法です。
リモコンのほとんどのボタンには、そのリストに対応する明らかなボタンがありますが、そうでない場合は、持っていないボタンに対応する他の名前の 1 つを使用するだけで済みます (たとえば、私のリモコンには「ガイド」が付いています) " ボタンはリストに似た名前がなかったので、KEY_YELLOW を使用しました)。終わったらirrecord
, lircd.conf ファイルはホームフォルダーにあります。これを root 権限で /etc/lirc にコピーします (次のように入力します)。sudo cp ~/lircd.conf /etc/lirc/lircd.conf
ターミナルで)、そこにあった古い lircd.conf を置き換えます。また、それを開いて、「name」の横にある「lirc」をリモコンの名前に置き換えることもできます (この例では、リモコンの名前である「urc6131n」を使用します)。以下は、一般的な lircd.conf ファイルの図です。
設定が機能するかどうかをテストするには、次を実行します。irw
ターミナルで。端末がハングアップしたような錯覚を覚えますが、リモコンのボタンを押すと、ボタンの名前が吐き出されるはずです。そうであれば、おめでとうございます。あなたは UNIX を支配することになります。
Windows ユーザーはほぼ同じプロセスに従います。 WinLIRC のメイン ウィンドウから [学習] ボタンを押して、WinLIRC の組み込みバージョンの irrecord を起動します。指示に従ってください。最初の 2 つのステップ (許容誤差 25 を与え、カスタム ギャップの長さを空白のままにする) と、ボタンには好きな名前を使用できるという点を除いて、上記と同じである必要があります。 LIRC の新しい命名システムを使用する必要はありません (そのため、必要に応じて電源ボタンに「早送り」と入力するだけで済みます)。すべてのボタンを操作したら、入力ボックスを空白のままにして Enter キーを押します。すべての作業が完了したら、メイン ウィンドウで [OK] をクリックすると、タスクバーに最小化され、入力を待ちます。
LIRC が選択したソフトウェアと通信できるようにする
リモコンのセットアップは方程式の半分にすぎません。残りの半分は、制御したいソフトウェアと LIRC が通信できるようにすることです。一部のソフトウェア (お気に入りのメディア センター ソフトウェア、XBMC など) には、もう少し設定を加えるだけで LIRC のサポートが組み込まれています (XBMC のプロセスは非常に詳しく説明されています)ここ、なので私自身はやりません)。ただし、ほとんどのプログラムでは、グローバル .lircrc ファイルを作成し、それをキーボード ショートカットまたはアプリケーション コマンドにマップして、必要な動作をさせる必要があります。例として Amarok を使用しますが、その気になれば可能性はほぼ無限にあります。
ホーム ディレクトリに .lircrc というテキスト ファイルを作成し、gedit で開きます。基本的な形式は次のようになります。
begin
prog = irexec
remote = urc6131n
button = KEY_PLAY
config = dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Play
end
begin
prog = irexec
remote = urc6131n
button = KEY_STOP
config = dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Stop
end
begin
prog = irexec
remote = urc6131n
button = KEY_PAUSE
config = dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Pause
end
機能を持たせたいボタンごとにそのブロックを繰り返します。基本的に、プログラムを制御する特定の端末コマンドにボタンをマッピングします。この場合、dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Pause
は、Amarok が音楽を一時停止するための端末コマンドです (機能しない場合は、kdelibs4c2a のインストールが必要な場合があります)。もう少し複雑なコマンド (複数のボタン、遅延などを組み込む) を作成することもできます。詳細については、こちらをご覧ください。ここ。この方法で構成することを選択した場合は、リモートが機能するためにバックグラウンドで irexec を実行する必要があります (事前にターミナルで起動するか、システム > 環境設定 > スタートアップ アプリケーションでコンピュータの起動時に実行するように設定することができます) Ubuntu を実行しています)。
これに対処するもう 1 つの方法は、irexec (Linux で X アプリケーションを制御するため) の代わりに irxevent を使用してキーボード コマンドを使用することです。まず lirc-x (Ubuntu リポジトリでも入手可能) をインストールしてから、次のように .lircrc ファイルを作成する必要があります。
begin
remote = urc6131
prog = irxevent
button = KEY_PLAY
config = Key space CurrentWindow
end
キーボードの組み合わせを行うには、バッチ スクリプトに関するより詳しい知識が必要ですが、多くのプログラムには、設定できるローカルのワンキー ショートカットがあるため (Amarok で以下に示すように)、特定の機能を割り当てるだけの方が良いでしょう。アプリケーション内でキーに。上の例では、リモコンの再生ボタンを押したときに現在のウィンドウでスペースバーを押します。つまり、それが最前面のウィンドウであれば再生するように Amarok に事実上指示しています。複数のことを同時に実行したい場合には完璧ではありませんが、その時点で PC を積極的に使用していない場合にはかなりうまく機能します (ただし、リモートで通信するには irxevent を実行する必要があることに注意してください)上の例で irexec を行うのと同じように、問題のプログラムを使用します)。
Windows の場合、Lifehacker のお気に入りのキーマッピング ユーティリティ AutoHotKey を使用して、基本的に同じことを行うことができます。 AutoHotKey スクリプトのテンプレートを取得できますここ、中央のセクションを好みに合わせて編集します。スクリプトには命令が含まれているため、AutoHotkey に少しでも慣れている場合は、プログラミングに問題はありません。セットアップ プロセス中に定義したボタン名を使用する点を除けば、キーボード キーのマッピングと同じです。 AutoHotKey を使用したキーのマッピングの詳細については、ガイドを参照してください。あらゆるアクションをキーボード ショートカットに変換する。
これらは、LIRC を使用してお気に入りのプログラムを制御する方法のほんの一部です。これは非常に自由度が高いので、ここではいくつかの基本的な例しか紹介しませんでしたが、少し調べれば、ほとんどすべてのことを行う方法を理解できます。 LIRC の詳細と、構成ファイルを使用してより高度な操作を実行する方法、および LIRC と連携して動作するその他のソフトウェアについては、LIRC の Web サイトを参照してください。Webサイトそしてドキュメント。 Windowsユーザーは必ず読んでくださいWinLIRC の Web サイト同じように。
特定のプログラムをマッピングする場合、可能であれば irexec メソッドを使用するのが最善の策です。そのため、そのプログラムのドキュメントを調べるか、Google で調べて、そのプログラム内の関数に対応するターミナル コマンドを見つける必要があります。
LIRC または WinLIRC のお気に入りの使用方法がある場合は、それが何であるか、またどのように機能するかをコメントでお知らせください。