Top/Devel/電子工作/トラ技付録78K0 USBマイコン基板/赤外線学習リモコンR2-D2

赤外線学習リモコンR2-D2 の変更点はてなブックマーク


#ref(IR_R2-D2.jpg,right,around,50%)

布団でごろごろしながらPCをいじっていると、そのまま寝てしまうことが多い。

しかし、照明、TV、エアコンをONにしたまま寝てしまうと、疲れが全く取れない。

そこで、照明、TV、エアコンを自動的にON/OFFする仕組みを作ろうと考えた。

~
自動といえば、ドロイド、R2-D2。~
ということで、赤外線で色々な機器を操作するR2-D2を作ることに :)
#clear

*システム構成図
#ref(IR_R2-D2_SYSTEM.png,nothumb,nolink)

*処理スケジュール
|時刻|処理|h
|07:30|エアコンON、エアコン温度指定26度|
|07:55|照明ON、テレビON、テレビ音量指定10、テレビチャンネル指定NHK、ミニR2-D2暴れる|
|09:00|エアコンOFF、照明OFF、テレビOFF|
|10:00|DVDレコーダから動画を取得、iPod用にエンコード|
|02:00|エアコンOFF、照明OFF、テレビOFF|

*検討過程
#clear
#amazon(B001BKX0LO)

赤外線の制御は[[トラ技付録78K0 USBマイコン基板>../]]で行うこととした。

~
ガワは市販の[[R2-D2 USBハブ>http://www.amazon.co.jp/exec/obidos/ASIN/B001BKX0LO/cubic9com-22]](右)にしようかと思ったが、7000円と値段が高く、ちょっと大きい。そこで、ヴィレッジヴァンガードで見つけた[[R2-D2スピーカー>http://pt.afl.rakuten.co.jp/c/010792ea.c0e2d3ca/?url=http%3a%2f%2fitem.rakuten.co.jp%2fauc-sunny%2f10000817%2f]]に、[[小型のUSBハブ>http://www.amazon.co.jp/exec/obidos/ASIN/B001LF3HSU/cubic9com-22]]を埋め込むことにした。

~
また、照明、TV、エアコンのON / OFFだけでは動きがなく、面白みに欠ける。そこで、賑やかしとして、赤外線で操作できる[[マイクロドロイド R2-D2>http://www.amazon.co.jp/exec/obidos/ASIN/B001QFYQ5I/cubic9com-22]]を購入。

~
さらに、通勤中の楽しみとして自動的にお笑い動画をDVDレコーダから取得、mp4に変換し、iPodに入れるようにした。

~
したがって上記のようになった。

*構成物 - ハードウェア

-[[タイトー R2-D2スピーカー>http://pt.afl.rakuten.co.jp/c/010792ea.c0e2d3ca/?url=http%3a%2f%2fitem.rakuten.co.jp%2fauc-sunny%2f10000817%2f]]
--ボディとして使用するために中身をくりぬいた。
-[[CQ出版 USBマイコンでパソコンI/O! (トラ技付録78K0 USBマイコン基板 同等品が付属)>http://www.amazon.co.jp/exec/obidos/ASIN/4789842126/cubic9com-22]]
--赤外線制御のためにボディに埋め込んだ。
-[[ELECOM これハブ プラス。 U2H-TM400Bシリーズ>http://www.amazon.co.jp/exec/obidos/ASIN/B001LF3HSU/cubic9com-22]]
--iPod - R2-D2間接続のためにボディに埋め込んだ。
-[[トミー マイクロドロイド R2-D2>http://www.amazon.co.jp/exec/obidos/ASIN/B001QFYQ5I/cubic9com-22]]
--賑やかしのために周囲に配置した。
-[[PARA Light 赤外線リモコン受信モジュール PL-IRM0101>http://akizukidenshi.com/catalog/g/gI-00622/]]
--赤外線受信のためにレーダーアイ部分*3に埋め込んだ。
-[[東芝 赤外線LED TLN233>http://www.semicon.toshiba.co.jp/openb2b/websearch/productDetails.jsp?partKey=TLN233%28F%29]]
--赤外線送信のためにホロプロジェクター部分に埋め込んだ。
-[[Linkman フルカラーLED LA509UGBMAA1>http://www.marutsu.co.jp/user/shohin.php?p=927]]
--装飾のためにPSIライト部分に埋め込んだ。
-[[OPTOSUPPLY 超高輝度青色LED OSUB5111A>http://akizukidenshi.com/catalog/g/gI-01267/]]
--装飾のためにロジックディスプレイ部分に埋め込んだ。

#rakuten(http://pt.afl.rakuten.co.jp/c/010792ea.c0e2d3ca/?url=http%3a%2f%2fitem.rakuten.co.jp%2fauc-sunny%2f10000817%2f,http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fhavikorotoy%2fcabinet%2fnewprize%2fprizetaito%2fsw-doroidspeaker.jpg%3f_ex%3d128x128&m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fhavikorotoy%2fcabinet%2fnewprize%2fprizetaito%2fsw-doroidspeaker.jpg%3f_ex%3d80x80,left)
#amazon(4789842126,left)
#amazon(B001LF3HSU,left)
#amazon(B001QFYQ5I,left)
#clear

*構成物 - ソフトウェア
時刻起動はWindows標準のタスクスケジューラを使用した。((赤外線の時刻起動のみならら、マイコンのタイマーで実現できるが、今回はmp4のエンコードも行うため、タスクスケジューラを使用した。))
**トラ技付録78K0 USBマイコン基板用赤外線制御プログラム
[[諏訪工房>http://www.suwa-koubou.jp/turedure/20080819/trg08_furoku.html]]様のソースを元に下記修正を加えた。
-[[マイクロドロイド R2-D2>http://www.amazon.co.jp/exec/obidos/ASIN/B001QFYQ5I/cubic9com-22]]、東芝エアコン(RAS-2217D)、東芝DVDレコーダ(RD-S301)、Panasonicテレビ(TH-36FG15)、
KOIZUMIシーリングライト(GHN6141D)の信号を扱うために、データコード長を16bit固定から8bitの倍数に拡張した。((東芝エアコンがカスタムコードも含め?、8bit*9という奇数バイトのデータを送信していた。))
-キャリア信号を送信するフォーマットに合わせて変更できるようにした。
-あらかじめ設定した信号をキーボードの1234567890キーで送信できるようにした。
-キーボードのEnterキーで受信済み/送信済みの信号を送信できるようにした。
-NECフォーマットではリピートコードのoff幅はリーダコードのoff幅の半分のはずなので、そのように修正。
-装飾用LEDを制御するようにした。

他者の著作物の修正版なので、実物のここでの公開は控える。

**赤外線制御プログラム転送&実行マクロ
マイコン初心者なので、上記プログラムをフラッシュメモリに書き込むのはちょっと怖い。そこで、RAMを使うことにする。

ただ、毎回転送すると非効率なので、転送済みかを判定し必要時のみ転送、実行するようなTera Termマクロを作った。((F000番地が"9B"なのはプログラムによらないため、新しいプログラムを転送したいときはUSB端子を引き抜く等の作業が必要。))

#code(,nonumber){{
; COM5を開く
connect '/C=5'
if result<>2 goto end

timeout=5

; プログラムロード、実行
setsync 1
sendln ''
sendln 'dump f000 1'
result=1
while result=1
recvln
result=1
while result=1
recvln
result=1
while result=1
recvln
strscan inputstr '9B'
if result=0 then
  sendln 'load'
  waitln 'Drop a HEX file.'
  sendfile 'C:\video\rmc.hex' 1
endif
setsync 0
sendln 'jmp f000'

; TV電源OFF
wait '=>'
send 's'
wait 'send data='
sendln '40 04 01 00 BC BD'

; 照明電源OFF
wait '=>'
send 's'
wait 'send data='
sendln '01 76 00 FF'

; エアコン電源OFF
wait '=>'
send 's'
wait 'send data='
sendln 'F2 0D 03 FC 01 B0 07 00 B6'

wait '=>'

:end
; COM5を閉じる
disconnect

; Tera Term終了
closett
exit
}}

タスクスケジューラに "C:\Program Files\teraterm\ttpmacro.exe" c:\video\tv_light_aircon_off.ttl というように設定する。

**DVDレコーダ(VARDIA(RD-S301))からMPEGを取得してMPEG4にエンコードするスクリプト
#ref(GetMpgAndEncodeToMp4.js)

動作には下記が必要。
-[[pdlmsget>http://cid-23d230fef2480b61.skydrive.live.com/self.aspx/pub/PDLMSGET/pdlmsget-0.2.1.zip]]
-[[ffmpeg>http://blog.k-tai-douga.com/category/359294-1.html]]

タスクスケジューラに cscript GetMpgAndEncodeToMp4.js というように設定する。

なお、デジタル放送は取得不可。あらかじめアナログ放送のみを保存するフォルダをVARDIA側に作る必要がある。

*写真
まさにquick-and-dirty :p
#ref(IR_R2-D2_01.jpg,around,25%)
#ref(IR_R2-D2_02.jpg,around,25%)
#ref(IR_R2-D2_03.jpg,around,25%)
#ref(IR_R2-D2_04.jpg,around,25%)
#clear
#ref(IR_R2-D2_05.jpg,around,25%)
#ref(IR_R2-D2_06.jpg,around,25%)
#ref(IR_R2-D2_07.jpg,around,25%)
#clear

*参考
-[[トラ技付録78K基板を使おう>http://www.nahitech.com/nahitafu/trg78k/index.html]]
-[[リモコン | デバイス共通 | マイクロコンピュータ | FAQ | サポート | NECエレクトロニクス>http://www.necel.com/faq/ja/mi_com/f_com_remo.html]]
-[[トラ技(2008.8)付録基板「USBマイコン」で遊ぶ>http://www.suwa-koubou.jp/turedure/20080819/trg08_furoku.html]]
-[[LAN赤外線学習リモコンKTIの紹介 サンプル・資料・応用>http://www.anchorsystems.jp/anchor/ashp/irrckit/sample.html]]

*関連
-[[Devel/電子工作/Arduino/赤外線学習リモコンR2-D2]]
-[[Devel/電子工作/RaspberryPi/ホームオートメーションシステム]]

*Amazon
#amazon(4789842126,left)
~
~
オススメ!~
この価格でUSB接続できるマイコンが付いてくる。~
本当に手軽にPCからマイコンへプログラムを転送できますし、マイコンのポート数も多いので、結構遊べます。ウェブ上にも情報が沢山あるし、オススメです :)

#clear
#amazon(B00AXVHQLC,left)
#clear

差分 一覧