目次

ハードウエアテスト(その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


目次

inserted by FC2 system