学習リモコン作ってみた
「DIP品は高専で卒業だ!」という声が聞こえてきたので、表面実装にチャレンジしてみた。
Tiny13VのSOICパッケージを見つけて、この程度(8ピン1.27mmピッチ)なら練習にちょうどいい!と思って購入。
FT232Rを使ってみよう、という話もあったので、一緒にこれも買ってきた。
せっかくだから、この二つを組み合わせて何かつくってみよう!
FT232Rとの通信に2ピン。電源で2ピン。リセット端子が1ピン。残りは3ピン。
さあ、この3ピンでPCと通信してできる面白いこと・・・なんだろう?
で、思いついたのが、学習リモコン。
これなら赤外線の送受信2ピンあればできそう。
そんなわけで作ってみました。
あまり綺麗じゃないのは、半田付け1,2年ブランクがあるのと、表面実装初挑戦なのでご勘弁ください。
表にある足いっぱいのICがFT232R。裏のちっこいのがattiny13V。
赤外線LEDとリモコン用の赤外線受光器がついています。
回路図はこんな感じ。
CAD用のライブラリを探すor作るのが面倒だったので、手書きです。
手元にヘッダーピンが無かったので、プログラム書き込み用のISP端子は省略。
えっ?書き込みどうするの?
ライタが無くてもいいように、FT245R/FT232R で avrdude (2) (すzのAVR研究)の情報を元にFT232Rをライタとして活躍してもらうことにした。
ライタのタイプとしてft232r0を指定することで、別にライタを用意しなくても書き込み可能。
いや〜便利便利
実行時にCTS#を使ってフロー制御(attiny13VにはハードウェアUARTが無いのでソフトウェアUART。適当なタイミングで送られると困るんです。)したかったら、RTS#-PB2間に抵抗を挟んでみたけど、少し大きすぎたかな?時々書き込みに失敗する。手元にこれくらいしかなかったから10kにしたけど、ここの値は要検討。
そして、このままだと、FT232RのDTR#ピンがターミナルの起動と同時にLowとなるので、マイコンリセット・・・これじゃ通信できない・・・。
が、これもFT232Rなら簡単に解決。
そこで、FTDIのユーティリティダウンロードページからFT_PROGをダウンロード。起動してFT232Rと接続して、「Invert DTR#」にチェックをいれると、極性が逆になります。
ここでの設定はライタとして使う際に使用するBitBangモードとは無関係みたい。反転させていても、ライタとして正常に機能しました。
ターミナルを起動し「r」を押すと、受信開始。この状態で、リモコンを使うとターミナルに受信した信号が流れてきます。下の画像は部屋にあるSharp AQUOSの電源ボタンの解析結果。
ハイフンとアンダーバーが沢山並んでいますが、よく見るとアスキーアートっぽくなっているのが分かりますかね。「_」が受光部の出力がLow=赤外線が当たっている、「-」が出力High=赤外線があったって無いを表しています。一文字が400usに対応。この長さは設定で変えられます。
何かキーを押すと停止。
メモリの関係で、記憶できるキーは一つまで。「s」と入力したあとに、さっきのハイフンとアンダーバーの羅列を入力しエンター。「x」を押すと送信。
AVRのプログラムとC#で組んだ簡単な通信プログラムを上げといたから、詳しい使い方はソースを見てね!
miniir.zip
制作費は
・FT232R \420
・attiny13V \195
・赤外線受光素子 \168
・USB端子のついた線 \100
・ユニバーサル基板 \60の1/5位
・赤外線LED \52
・抵抗 \50
でだいたい1000円くらい。日本橋で揃えたら割高な印象。秋月で買うともう少し安くできるかも。
・表面実装なんて簡単簡単
・FT232RはUARTで通信できるのはもちろん、ライタにもなるすごい奴
FT232RをSHの書き込み・通信に使おう!とか話してたけど、AVRの書き込み・通信までできちゃうなんて・・・
ところで、こんなのを作っている人がいましたね→インターネット扇風機を作ってみた。
いつの間にか、先生になって娘がいることになってる・・・。
今回作った学習リモコンで同じことができそう。
そうだ、あと教室のエアコン制御にも使えるぞ。鞄にパソコンを忍ばせて、受光部だけ先生の持っているリモコンに向ければ・・・
なんか面白いことができたら、また報告します。