TVリモコンの信号をマイコンで受信したかったので作りました。 受信したデータをLCDなどに出力するだけじゃ面白くないのでロボットを操作できるようにしてみました。二足歩行風ロボットです^^f 名前は、東芝のリモコンで動くので「RECZA」です。 |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
ロボットのパーツのほとんどは、高校時代に授業で製作した(工業高校なんで、、、)ライントレースカーの部品を再利用しています。電池ボックス、モーター、ギアボックス、タイヤ、モータドライバICなど全て再利用ですので製作にかかった費用は1000円くらいです。電池が一番高かった・・・ |
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
制御用の基板です。度重なる改良で配線がグチャグチャになってしまいました・・・ 真ん中の銀色の部品が受信機です。TVリモコンから赤外線によって送られてくる信号をマイコンが読める信号に変換してくれます。 左上のオレンジ色の部品が電源用コネクタです。電池ボックスとつなぎます。 この基板で2個のモーターを制御することができます。上の方についている2つのICがモータ制御専用のICで、正回転、逆回転、ブレーキなどの制御が可能です。とても便利なICです。 モーターが回転し始めるときに沢山の電流がモーターに流れてマイコンの電源が一瞬落ちてしまう現象(ブラウンアウト)が起こることが後で発覚してしまいました。対策方法をいろいろ調べた結果、ダイオードと容量が大きめのコンデンサを組み込むことで解決することができました。マイコンの電源が落ちそうなときはコンデンサに充電された電気が頑張って耐えてくれるのでマイコンの電源が落ちなくなる仕組みのようです。 組み立てたときに基板の一部がネジにあたるので、少し加工してあります。 TVリモコンから送られてくる信号には、NECフォーマット、SONYフォーマット、家電協フォーマットの3種類があるようです。それぞれ送られてくる信号の順番など細かいところが違うだけで、根本的なことを同じです。家にあったリモコンが東芝でNECフォーマットを使っているようなので、今回はNECフォーマット用にプログラムを作りました。NECフォーマットの概要は、こちらを参照してください。 タイマーで信号の時間を計るやり方だと、リモコンから送られてくる信号の誤差やマイコン内蔵の発振器の誤差で正常に受信できなくなると思い。変数のカウントアップで時間を計ります。こうすることで安定した受信が可能になると思います。多分・・・ |
|||||||||||||||||||||||||||
プログラム概要 | |||||||||||||||||||||||||||
NECフォーマットの赤外線リモコンからの信号を読み取り、押されたボタンに応じた動作をさせる。 main関数内は、IOポート、割込み用のレジスタの初期化を行った後に、リモコンから送られてくるデータに応じた動作をさせる無限ループに入る。ボタンごとの異なった動作をさせるために「switch文」を用いる。 何かしらの信号を検出した瞬間にピン変化割込みを発生させて、リーダーコード、メーカーコード、データコードの順に読み取り、最後にエラーチェックとメーカーコードが東芝かを確認し、問題がなかったら、グローバル変数として定義されている変数dataの値を更新しmain関数内のswitch文により判定をし、モーターの動作を変更させる。ピン変化割込みを使用するためリモコン受信機の出力ピンはINT1に接続しておく。 |
|||||||||||||||||||||||||||
ボタンごとの動作一覧(リモコン版)
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
走行映像(クリックで再生) |
|||||||||||||||||||||||||||
部品一覧
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |