トラ技2008年8月号付録マイコン「NEC 78K0」を用いた赤外線物体検出
こんばんは.
今回は78K0マイコンを用いた物体検出についてのメモ書きです.
ことの発端は研究室の鍵を閉まってあるキーボックスが別の階にあるので,今鍵があいているのかがわかるシステムが欲しいということでした.
まあFericaリーダをつけて,サーボモータを動かしてサムターンを回すというネタがありましたが,今回はそれには触れません.
鍵をしまう箱に赤外線LEDと赤外線リモコン受信モジュールを用いて,鍵検出(広くいえば,物体)を行います.
通信できれば,当然鍵はなく,通信できなければ鍵があるという風に認識します.
その間に別の物が入ってしまうということは考えないことにします.
仕様としては,物があるかないかをシリアル通信でPC側に1bitのデータを送るということにします.
PC側はWEBサーバを立て,携帯から見られる状態にします.
PC側でシリアル通信を行い,文字列を受信するにはPerlで実装するのが一番簡単なようです[1].
赤外線受信モジュール[2]は38KHzでPPM変調[3][4]したものでないと,きちんと出力してくれません.
なので,78k0マイコンでタイマ50を用いて方形波出力をすることに・・・.
自分がハマったこととしては,コンペア値を間違えていたこと.
ここで,38KHzなので,1/(38*1000)=26msec
なので,26msecになるようにコンペア値を設定しました.
すると,L(_)の時が26msecなので,LH(_ ̄)は52msecになります.
つまり周波数としては38/2 となり,半分になってしまいました.
かならずLH(_ ̄)の長さで26msecにならなければならないので,コンペア値は13msecになるように設定する必要があります.
今回はクロック周波数が16MHzで,プリスケーラで1/4にしているので,タイマの入力クロックは4MHz.
なので,1/(4*1000000)=0.25msec
13 (msec)/0.25 (msec)= 52
となり,コンペア値は52を設定しました.
間違えたときは,倍の104でしたorz
よく考えば当たり前のことで,タイマが比較一致した時点で,出力が反転されるというのを繰り返すわけです.
気持ちが焦るあまりに計算を間違えていたので,みなさんも気をつけましょう.
携帯で撮ったので画質が悪いのですが,作っているものを一応あげておきます.
ちなみに動作しているところの動画です.一応,それっぽく音もなります.
http://jp.youtube.com/watch?v=TcbSzBFR378
こちらはUSB通信でPCに鍵の有無を1bitで送っている様子です.(0:なし,1:あり)
http://jp.youtube.com/watch?v=jlNNcVXhMcE
そのうちトラ技付録マイコンでの割込みの仕方などをメモに残したいと思います.
では.
参考サイト
[1]TechMemo
Perlでシリアルポートからの文字列を受信して表示
[2]CPUを作ろう
赤外線リモコン受信モジュール
[3]なる研
赤外線リモコンの解析
トラックバック URI : http://tw.kairan.info/blog/2008/08/16/yeyeu2008c8iaeeoiythyyyoonec-78k0oinaoatheaidh/trackback/
コメント (0)