ライントレーサの製作U                                      H21.12.13
                                                    ライントレーサの製作  
kunioホームページに戻る
   
  
  前回のものは、まだチューニングの余地はあるけれど初期の目的は達したので、今度はもっと簡素で小型のものを作ることにしました。
   
   1号機と比較すると約半分の大きさ

概要
 
CPU     AVRTiny13A 8ピンでありながら、8bitPWM出力が2つあり、A/Dコンバータも実装 4.8MHz動作
 センサー部 フォトTr2つと高輝度LED1つで、フォトTr出力をA/D変換しラインを読む(詳細は後述)
 モータ    振動モータではトルク不足だったので、マブチ社製小型DCモーター FF-M20VK-09140を使用、ネットショップ(オークション)で入手
 タイヤ    今回は、駆動系の部品探しや製作に時間がかかった。後輪は、3mmの軸にベアリング3x8φを固定しそれに、内径8x外径24mmの水道用パッキンを
         つけモータ軸を押し付けた。 前輪はタミヤのボールキャスター
 Tr       モータ駆動用のTrは、電流容量が適当で手持ちのデジタルTrのUN7231(0.7A定格)を使用した。(同等の一般Trでもスペース的に問題なさそう)
 電源     初めは、一つの電源で制御と駆動系を動かそうとしたがやはり電圧変動が大きく、高輝度LEDへの影響が大きいため2電源とした。
         制御:単5x2、駆動:単4x2、重量的に厳しかったが何とか動いた。また、スペースがなかったので無理やり基板上に固定した。
回路図
 
いたってシンプルです。
 高輝度LEDは、順方向電圧(Vf)が約3Vのものなので、抵抗なしで電源に接続しています。新品の電池だと3.2V程度ありますが、Ifは15mA程度であり、
 AVRのI/Oピンでダイレクトにドライブしています。 (Vfが小さいものをピンから直接ドライブすると過電流でAVRが壊れることがあります。)
 
 

ライン読取
 
高輝度LEDの左右にフォトTrを配置し、各フォトTrの出力を使用してラインに対する偏差量を検出することを目指した。
 具体的に、左右の入力がどのような値となるか確認した。前回コースで使用したライン上を左右に移動させ、入力値
 をプロットしてみた。(A/D入力をそのままPMW出力させ、そのデューティ比からA/D入力を逆算)
   試作機でのテストの様子

 
 個々の特性は、バスタブのようなカーブで線の太さだけずれている。これを、1つのカーブとするため2つのカーブを加算する。
 そして、もとの左右を比較して右が大きい場合は負の値とすると、グラフのようなほぼリニアな特性が得られる。
 この値を1/32にして偏差とする但し、白紙上の左右の検出感度差で左右判定が正しくできないことがあるので、最大値にリミットを
 掛ける。(10以下) また、ライン上のレベルは完全にゼロとならないので、あるレベル以下は偏差を0とする。(A/Dレベルで40以下)

ソフト処理(ソース)
 偏差の検出方法が異なるだけで、基本的に1号機と同様の処理でPD制御。
 PMM周波数 18750Hz(53us)、A/D変換周波数 150kHz(変換時間約87us)
 制御量は、偏差が出た分だけ片方を減速(デューティ比を小さく)する。

コースは、1号機用に作ったけど半径が小さすぎて使えなかったものです。(比例ゲイン:16、微分ゲイン:8)

まとめ
 
材料集めや、メカ系を作りあげるのに苦労しました。
 センサー2つで、うまくラインをとらえられるか半信半疑でしたが、意外とうまくいきました。
 ただ、光源は高輝度LED1つで、周囲の明るさの影響を受けやすく、読み取り感度がやや不安定となることがあります。
 (読み取り精度は周囲を明るくしたほうがいいので、LEDを増やした方がいいかも知れない)

改良
 
・モータ軸がタイヤと滑りやすかったので、回転方向で噛みこむようにモータ取り付けを裏面にした。
  また、滑り防止のためモータ軸にゴムをかぶせた。
 ・LEDを2つにして読み取り感度を上げた。(LEDは常時点灯)
  それに伴って偏差検出処理を見直した。(比例ゲイン:20、微分ゲイン:8)
 ・空きピンを利用して、駆動電源の変動によって、スピードが変わるのを防止するため、駆動電圧によってPWM幅の上限を
  調整するようにした。

  

  回路図ソース

 ライントレーサの製作