【Raspberry Pi】赤外線リモコンを作ってスマホで操作してみた(ハード制作偏)

そろそろ宿題がやばくなってまいりました(ェ

というわけで、自由研究にと、スマホで動かせる赤外線学習リモコンを作ってみます。

(追記:ソフト制作偏も出来ました)

何を動かしたいかというと、エアコンです。暑いです←

まず、

http://cubic9.com/Devel/%C5%C5%BB%D2%B9%A9%BA%EE/RaspberryPi/%C0%D6%B3%B0%C0%FE%B3%D8%BD%AC%A5%EA%A5%E2%A5%B3%A5%F3/

ここを参考にして、部品を調達します。というか、ハードはほぼ丸パクリなのでそのまま作ります。

送信部と受信部はそのまま使ってます。ただし、このままでは研究になってないので独自の操作部を組み入れることにします。

大阪に行って買ってきました。

IMG_20150726_104545

大体全部デジットで買いました。

デジット、店の兄ちゃんたちがすごい知識あるし、優しい人ばかりなのでいい店です。品揃えも変なものから色々売ってます。赤外線LEDはカウンターの中にあったので、ないもの探すときは聞いてみるといいかもしれません。

なんか、ついでにジャンクPCとかも見てみたんですが、PCNETとか以外に面白いジャンクないんですよね….

昔はいろいろあったらしいんだけどなぁ…

余談はともかく、早速ハード作ります。

買ったもの:

※型番とかわかってないです(覚えてない)

  • 赤外線センサー(100円ぐらい)
  • 赤外線LED(70円ぐらい)
  • オス→メスなジャンプワイヤ(500円ぐらい)
  • トランジスタ2SC1815(70円ぐらい)
  • 抵抗100オーム(10円)
  • 抵抗2.2kオーム(10円)
  • 抵抗10kオーム7個(70円)
  • ピンヘッダ(100円)
  • キャラクタLCD16x4文字(700円)
  • ユニバーサル基板2個(200円)
  • タクトスイッチ10個(300円)

覚えてるのはこれくらいです。

これに加えてArduinoが必要でした(別の方法に変えたため)

上のページ+コントローラーな部品たちです。

↓試行錯誤した図(今の機器じゃ使えなさそうな感じ…)

結果的に、ここで作ったハードを流用します。一応見てください…

※表を使った関係で画面が小さいスマホとかじゃレイアウト崩れるかもしれません。ゴメンナサイ

 
IMG_20150726_144935ハードを作ってみます。若干上のページの説明がわかりづらく、送信側の回路間違えてました。正直エアコン動かすだけだから増幅回路いらないような気がするけどとりあえず作りました。どこ間違えてたかというと、トランジスタの真ん中のところです。上の写真は間違ってます。アノードを真ん中につないでなおかつ5Vを抵抗挟んで流すのかと思いきや、5V→抵抗100Ω→赤外線LED(アノード,足が長い方)でした。トランジスタの真ん中にはカソード(足が短い方)だけつなぎます。

IMG_20150726_153807

IMG_20150726_153736

正しくはこんな感じ。なんか見難いなぁ…

センサーの方は、電源を+-間違わずにつなぐのとGPIOにピン間違わずにつなぐことぐらいしか注意するところはありません。

ハードのテストはこれだけで十分です。後で作り込みます←

次、

lircパッケージをインストールします。

モジュールに追記します。

エディタはお好きなものを

上のサイトでは

こうなってますが、lirc_devだけ書きます。どうやら最近使用変更があったらしいです。

dmesgにこんなエラーが残ります。

http://wbbwbb.blog83.fc2.com/blog-entry-189.html

なので、config.txtに設定を書きます。/etc/modulesにはlirc_devだけ書いといてください。

inがセンサーでoutがLEDです。

終わったら再起動します。

次、起動したら、エラーがなくなてることを確認します。

よし

lirc0ができてるかも確認します。

わーい

これで認識は大丈夫そうです。ピン変えたならちゃんと合わせてください。最初inがLEDだと思っててちゃんと動きませんでした…

ちゃんと読み取れてるか見てみます。

これをして、適当なリモコンで適当なボタンを押しながらセンサーに向けます。

テレビのリモコンで決定ボタン押してたらこうなりました

longpress-enter

若干ブレはあるけどちゃんと読み取れてます。

読み取りも問題なさそう。試しに適当なリモコンで学習させてみます。

最初に注意書きが出ますが読めないのでEnter2回押して進みます。適当にボタン押すと.が表示されるので、名前をつけろと言われるまで適当にまんべんなく押し続けます。

Screenshot_2015-07-26-16-10-23

↑学習の風景

終わったらファイルを見てみます。

中身はこんなかんじでした

リモコンのパルスを数値化して書いてあるだけみたいです。

で、ちゃんと記録できたっぽいのでパナソニック製のエアコンのパルスを記録しようとするとエラー…

ちゃんと適当にボタン押してたのに

って言われます。で、調べた感じ、パナソニック製のエアコンは一回のボタン操作で風量から風向きなどのデータをすべて送信しているっぽいです。なので、データ長に変化がなくGAPがねえんじゃボケって返してる模様。

LIRC使えねえじゃん…

一応、LIRCが使える人もいるかもしれないので消さずにとっときます(

というわけで、完全に信号を記録する方式で試してみたいと思います。

見つけたのはコチラ

http://shokai.org/blog/archives/8012

Arduinoを使った方法っぽいです。

まあ、送信部を分けて流せるし部品もそのまま流用が効きそうなので大丈夫。うん(涙目)

インスコします。が、若干罠踏みました

Ruby1.8.7以上が動くMacかLinuxマシンかRaspberry Pi

って書いてあるのですが、ただ単にrubyパッケージを入れるだけじゃダメだったんです。

ファッ!?

ruby-devも必要だったみたいです…

http://stackoverflow.com/questions/13767725/unable-to-install-gem-failed-to-build-gem-native-extension-cannot-load-such

てなわけでとりあえずインスコ完了。

試してみます。

–readで読み取りみたいです。2回同じ名前で記録すると上書きする?と聞かれるのでやり直し放題ですw

同じく–writeで送信みたいです。

ただ、光が弱いので、うまく反応してくれません。

そこで、watchを使って連続実行させます。このあたり、LIRCより普通に楽だと思った(小並感

これで1秒ごとに実行してくれます。

CIMG1919

↑ちゃんと切れた様子

ドヤァ()

正直ここに辿り着くまでに3日かかってます…

GPIOにつないでたところをArduinoのD12とD3に変えるだけなのですが、ほんとに光が弱い(抵抗強すぎかも)ので近づけてみてください。多分完全に記録してるので動くと思います。

次は、スマホで動かせるように操作部を作ります。

追記:スマホで動かしました!

【Raspberry Pi】赤外線リモコンを作ってスマホで操作してみた(ハード制作偏)” への2件のフィードバック

  1. lircにも、受信した生コードをそのままsendするraw_codeモードがありますよ~
    mode2コマンドで観測された数字を設定ファイルにコピペするだけです。
    http://wbbwbb.blog83.fc2.com/blog-entry-159.html

    エアコンの赤外線リモコンのコードは、一回のボタン押下で
    リーダーコードを二回出しているものが多いらしく、
    その場合はlircの「学習」は行えないみたいです。

    • そうなんですか!
      情報ありがとうございます。
      全く知りませんでした….もっと調べてからやるべきでしたね…
      なるほど〜
      GAPがないと言われる原因はそれでしたか…

umbrella にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です