目次
前
次
ライントレーサを動かす
イントレーサは、床に引いた線に沿って
動き回るロボットです。
ブロック図で見ると、次のようになっています。
3つのブロックで利用するデバイスを
見ていきます。
- センサー 赤外線LED
- プロセッサ IchigoJam
- モータドライバ SN754410NE
センサーは、次の路面センサーを利用。
8ビット分の路面情報を出力してきますが
IchigoJamの入力は、4ビットしかないので
3ビットだけを利用。
- 1 Vcc
- 2 RS6
- 3 RS5 IN_3
- 4 RS4
- 5 Gate
- 6 RS3 IN_2
- 7 RS2
- 8 RS1 IN_1
- 9 RS0
- 10 GND
センサーからの情報取得のサブルーチンは
次のように書いておきます。
100 @GSEN
110 LET [0],IN(1),IN(2),IN(3)
120 A = [2]*2 + [1]
130 A = A*2 + [0]
140 S = A ^ 7
150 RETRUN
モータを動かすためのドライバICにSN754410NEを利用。
接続は、次のようにしておきます。
ドライバICを動かすサブルーチンを作っていきます。
2端子に論理値を与えて、回転させます。
300 @PMOT
310 OUT 2,L:OUT 1,R
320 WAIT 60
330 RETRUN
論理値が、L、Rの中に入っているとしています。
また、左右のモータは、OUT_2、OUT_1に接続して
いると想定。
路面センサーからの情報を取得して
モータに論理値を出力すればよいと
考え、動かし方をプログラムにして
みます。
センサーをコース上において、どんな値を
出力してくるのかを、見ておきます。
右に寄りすぎると、右側にあるLEDが点灯。
左に寄りすぎると、左側にあるLEDが点灯。
左に寄りすぎると、センサー値は4を
右に寄りすぎると、センサー値は1を
出力してくるので、センサー値で判断
するサブルーチンを書きます。
200 @JUDGE
210 L=1:R=1
220 IF S=1 L=0
230 IF S=4 R=0
240 RETURN
コンピュータの動作は、入力、判断、出力を
繰り返すだけなので、サブルーチンを使う
プログラムは、以下とすればよいでしょう。
10 ' test6
20 L=0:R=0:GSB @PMOT
30 @LOOP
40 GSB @GSEN:GSB @JUDGE:GSB @PMOT
50 IF BTN() GOTO @EXIT
60 GOTO @LOOP
70 @EXIT
80 L=0:R=0:GSB @PMOT
90 END
サブルーチンを合体すると、次のようになります。
10 ' test6
20 L=0:R=0:GSB @PMOT
30 @LOOP
40 GSB @GSEN:GSB @JUDGE:GSB @PMOT
50 IF BTN() GOTO @EXIT
60 GOTO @LOOP
70 @EXIT
80 L=0:R=0:GSB @PMOT
90 END
100 @GSEN
110 LET [0],IN(1),IN(2),IN(3)
120 A = [2]*2 + [1]
130 A = A*2 + [0]
140 S = A ^ 7
150 RETRUN
200 @JUDGE
210 L=1:R=1
220 IF S=1 L=0
230 IF S=4 R=0
240 RETURN
300 @PMOT
310 OUT 2,L:OUT 1,R
320 WAIT60
330 RETRUN
モータを回す時間を調整して
コースに合わせた動きにでき
ます。
目次
前
次