OrangePi-ONEを使ってみる

リモコンでの操作

OrangePi-ONEで一番不便な点は、赤外線受信機が付いていない事です。
基板上に赤外線受信機のためのピンホールは空いているので、
ここに赤外線受信のための回路を加えたりする人もいるようですが、私にはそんな技術は有りません。

そこでもっと安全なやり方を紹介します。
このページでATtiny85を使った赤 外線受信を紹介しています。
そこで、赤外線受信はATtiny85に任せて、ATtinyで受信したコードをUART経由でOrangePi-ONEに取り込みます。
回路を見れば大体想像がつくと思います。
OrangePi-ONEのパーツ図が無かったので、同じピン数のRaspberry TypeB+のパーツを流用しています。
ATtinyを3Vで駆動すればレベルシフトの抵抗は不要なのですが、3Vで駆動すると赤外線を受信できませんでした。
そこで、ATtinyは5Vで駆動して、ATtinyのTXをレベルシフトしています。


ATtinyのスケッチはこちらのページ で紹介しています。

ATtinyにスケッチを書き込み、ATtinyとOrangePi-ONEを結線したら、このプ ログラムを実行します。
起動すると以下の画面となります。


ここで赤外線リモコンを発射すると、そのコードが画面に表示されます。


最初の1文字目は1=リピート、0=非リピートを示すコードです。
2番目のコードがリモコンコードになります。
この2番目のコードを控えておいてください。

<補足>
家中のリモコンを片っ端から試してみましたが、NECフォーマットのリモコンだけ識別します。
NECフォーマットは32ビット(4バイト)のコードで、1バイト目がデータコード、
2バイト目は1バイト目の反転コード、3バイト目と4バイト目がメーカー識別コードです。
以下のようにメーカーコード(末尾4文字)が0xE084 0xFF00 0x5284 0x53ACのコードは、全てこの規則に則っています。
メーカーコードが0xFF00は、KODACのフォトフレームに付属していたリモコンで、おそらくどこかのOEMでしょう。
それでもNECフォーマットの規則通りになっています。

</補足>

次に環境定義ファイル(config)を作ります。
configの中身は、リモコンコードと対応するコマンドです。
以下に例を示します。
#ok
EA15FF00,uname -a
#menu
BC43FF00,ls /boot

リモコンのokボタンを押したら「uname -a」を、menuボタンを押したら「ls /boot」を実行します。
環境定義ファイル(config)ができたら今度はこのプログラムを実行します。
起動すると以下の画面となります。


ここで赤外線リモコンを発射すると、そのコードに対応するコマンドを実行します。


これでOrangePi-ONEでも、リモコンを使って操作することができるようになります。

このツールを使ってsudoコマンドを実行する場合は、ユーザがパスワードなしでsudoできるようにしておく必要があります。
これをしないと、sudoコマンドを実行したときにパスワード入力待ちになってしまいます。
/etc/sudoersの末尾に、
ユーザ名 ALL=(ALL) NOPASSWD: ALL
を加えます。
なお、/etc/sudoersの修正には専用のコマンドを使います。

$ sudo visudo

例えば、orangepiユーザにこの権限を与える場合は

orangepi ALL=(ALL) NOPASSWD: ALL

を追加します。

sirexecを/etc/rc.localに組み込むときは、以下の注意が必要です。
・configファイル名はフルパスで指定してください。
・最後の引数「debug」は外して下さい。