2015年1月6日火曜日

6 ライントレースカーを作ろう

黒い線にそって前進する車を作ります。

センサが2つある場合、右のセンサが黒い線から外れたら左に曲がり、左のセンサが黒い線から外れたら右に曲がる、というプログラムを考えればできそうです。

今回はセンサが1つしかないので、少し工夫が必要です。

まっすぐラインに乗せて動かした場合、右に外れたのか左に外れたのかがわかりません。
ですから、最初はわざと左に外れるように斜めに車を置きます。

すると、初めてセンサが黒い線から外れたら右に曲がればOKということになります。

黒い線上にもどって次にセンサが黒い線から外れたら、左に曲がればよい・・・と、前回と逆の方向に曲がれば、ジグザグに黒い線上を進むと考えられます。



1   システム! "arduino"使う。
2   a=arduino!作る。
3   a!(システム! シリアルポート選択)ひらけごま。
4   赤外線センサ=a! 0 アナログ入力。

6   SW11=a!2 デジタル出力。
7   SW12=a!4 デジタル出力。
8   PWM10=a!3 アナログ出力。
9   SW21=a!7 デジタル出力。
10   SW22=a!8 デジタル出力。
11   PWM20=a!5 アナログ出力。
12   前回方向=0。
13   「
14      「(赤外線センサ!読む)>100」! なら
15         
16             「前回方向==0」!なら
17               
18                 PWM10!150 書く。
19                SW11!1 書く。
20                 a!3 待つ。
21                 SW11!0 書く。
22                 前回方向=1。
23              
24          そうでなければ
25              
26                PWM20!150 書く。
27                SW21!1 書く。
28                a!3 待つ。
29                SW21!0 書く。
30                前回方向=0。
31              」実行。
32      」実行。
33
34      PWM10!150 書く。
35      PWM20!150 書く。
36      SW11!1 書く。
37      SW21!1 書く。
38      a!1 待つ。
39      SW11!0 書く。
40      SW21!0 書く。
41
42   」!1000 繰り返す。
43
44   a! とじろごま。



20行目、28行目、38行目の「待つ」の秒数、PWMのスピードなど実際の走行に合わせた調整が必要ですが、とりあえずこのまま売って動作を確かめてみましょう。

(未完成なので続く)

0 件のコメント:

コメントを投稿