目次
前
次
ハードウエアテスト(その7)
IchigoJamがVersion1.1になったので、DCモータの
スピード制御が簡単になりました。
次のTwin Gear Box motorsで動作確認してみます。
IchigoJamのピンで、PWMの波形を生成できるのは
OUTで2、3、4、5なので、PWM2、PWM3を使います。
直進させると、壁や物体に衝突することがあるので
その場回転させることにします。
右回転の場合、左のモータを回転させて、右のモータを
停止させます。左回転の場合は、その逆にすればよいで
しょう。
左はPWM3、右はPWM2を使います。
サブルーチンを作って対応することにします。
100 ' rotate
110 LET L,[1] : LET R,[0]
120 PWM 2,L,100 : PWM 3,R,100
130 RETURN
140 ' stop
150 PWM 2,0,100 : PWM 3,0,100 : WAIT 60
160 RETURN
左右のモータを交互に回転させて、Turtle Graphicsの
ようなことをやらせてみます。
直進、左回転、直進、右回転、直進と動かします。
10 ' test turtle graphics
20 GOSUB 150 : LET W,1200
30 LET [0],50,50 : GOSUB 100 : WAIT W : GOSUB 140
40 LET [0],50, 0 : GOSUB 100 : WAIT W : GOSUB 140
50 LET [0],50,50 : GOSUB 100 : WAIT W : GOSUB 140
60 LET [0], 0,50 : GOSUB 100 : WAIT W : GOSUB 140
70 LET [0],50,50 : GOSUB 100 : WAIT W : GOSUB 140
80 IF BTN() GOTO 95
90 GOTO 30
95 ? "Exit" : END
まとめると、以下。
10 ' test turtle graphics
20 GOSUB 150 : LET W,1200
30 LET [0],50,50 : GOSUB 100 : WAIT W : GOSUB 140
40 LET [0],50, 0 : GOSUB 100 : WAIT W : GOSUB 140
50 LET [0],50,50 : GOSUB 100 : WAIT W : GOSUB 140
60 LET [0], 0,50 : GOSUB 100 : WAIT W : GOSUB 140
70 LET [0],50,50 : GOSUB 100 : WAIT W : GOSUB 140
80 IF BTN() GOTO 95
90 GOTO 30
95 ? "Exit" : END
100 ' rotate
110 LET L,[1] : LET R,[0]
120 PWM 2,L,100 : PWM 3,R,100
130 RETURN
140 ' stop
150 PWM 2,0,100 : PWM 3,0,100 : WAIT 60
160 RETURN
ラベル利用で、次のようにも書けます。
10 ' test turtle graphics
20 GSB @STP:LET W,1200
30 @LOOP
35 LET [0],50,50:GSB @ROT:WAIT W:GSB @STP
40 LET [0],50, 0:GSB @ROT:WAIT W:GSB @STP
50 LET [0],50,50:GSB @ROT:WAIT W:GSB @STP
60 LET [0], 0,50:GSB @ROT:WAIT W:GSB @STP
70 LET [0],50,50:GSB @ROT:WAIT W:GSB @STP
80 IF BTN() GOTO @EXIT
90 GOTO @LOOP
92 @EXIZT
94 ? "Exit"
96 END
100 @ROT
110 LET L,[1] : LET R,[0]
120 PWM 2,L,100:PWM 3,R,100
130 RTN
140 @STP
150 PWM 2,0,100:PWM 3,0,100:WAIT 60
160 RTN
目次
前
次