【Raspberry Pi】Raspberry Piでテレビを動かしてみる~まずはON・OFFのみ~

はじめに

こんにちは、がんがんです。
以前研究室に来られた方が「Raspberry Piからテレビを操作できる」という話をされていました。
気になって調べてみるとHDMI接続したテレビであればcec-clientという技術で動かすことが可能なようです。

Chromecastを買ったことにより「OK, Google!」でテレビのON・OFFはできるものの、
別のチャンネルに切り替えられませんでした。
すべてのパターンの赤外線でどうにかするしか…と思っていたので、CECを知ることが出来たのはよかったです。

今回は実際に調査して、実験したときの備忘録になります。

目的

  • ラズパイでテレビを操作したい(今回のメイン)
  • OK, Google」でテレビの操作をしたい(次回のメイン)

STEP1 cec-clientのインストール

まずはcec-clientのインストールを行います。
コマンドは以下の通りです(gitvimはすでに入ってますが、一応です)

$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get install git vim cec-utils -y

STEP2 node.jsとnpmをインストール

後々のことを考え、こちらを参考にnode.jsをインストールしておきます。

今回はLTS版をインストールしましたが、sudo n stableでも大丈夫みたいです。

sudo apt-get update
sudo apt-get install -y nodejs npm
sudo npm cache clean
sudo npm install npm n -g
sudo n lts

それぞれのバージョンはこんな感じでした。

$ node -v
v8.11.1
$ npm -v
6.4.1

STEP3 動作確認

インストールが完了したので早速動かします。
実際はすぐに動きませんでしたけど、いろいろいじってたらどうにかなりました。

電源のONは

echo "on 0" | cec-client -s

で行えます。

電源のOFFは

echo "standby 0" | cec-client -s

で行えます。

試しに画面を消してみます。コマンドを入力し…
f:id:gangannikki:20190524125859j:plain

きちんと電源がOFFになってます!
f:id:gangannikki:20190524125849j:plain

これでチャンネル操作とかを追加していけます。

コマンド一覧(メモ)

自分用のメモなので、使ったやつは随時追加していきます。

ヘルプの表示

cec-client -h

電源のON

echo "on 0" | cec-client -s

CECの対話モード時であれば

on 0

でよい。

電源のOFF

echo "standby 0" | cec-client -s

電源ONと同様にstandby 0でも可。

電源状態の確認

echo "pow 0" | cec-client -s

テレビからの信号を確認したりする

-mがあることで、モニタモードになります。

cec-client -m -d 8 -b -r

メモ:エラーの対処

はじめは全然接続が出来ず、いろいろ解決策を探していました。
その時に見つけた記事です。

Chrome Castが普通に動作していたので、
今回は大丈夫でしたがまたエラったときのために残しておきます。
miya15.hatenablog.com

まとめ

今回はHDMI接続したRaspberry PiからテレビのON・OFF操作を行いました。
次はNode.jsなどを用いてWeb上から操作できるようにしていきます。最終的には「OK,Google」でいけるように頑張ります。