JAMCAR版 黒ラインを見つけろ!

8.プログラム3(アナログラインセンサー)

・アナログポートにライントレース用のフォトリフレクタを接続したプログラム例です
・プログラムエリアを2つ使用しますので、それぞれSAVE0とSAVE1にプログラムを保管してください

10 ?”2022 JAMCAR LINE TRACER OTARU (ANA11_init4)”
20 POKE#700,0,32,3,73,10,104,64,28,0,42,251,209,64,10,112,71,0,16,0,80
30 IF !IN(9)=0 LET[0],0,0,(TICK()/30%2)*20:WS.LED1,8:CONT
40 LET [50],0,0,2,4,8,12,18,24,31,40,49,59,83,96,110,125,142,159,177,196
50 ?”COURSE IN
60 G=255:K=9:E=400:OUT1,-1:W=0
70 OUT2,1:OUT4,1:PWM3,0,G:PWM5,0,G
80 IF IN(3)+IN(4)=0 GOTO70
90 WAIT6
100 LRUN 1




1 ‘2022 JAMCAR MAIN LOOP
2 GOTO90
3 @FWD_M
4 OUT2,1:OUT4,1:PWM3,P,G:PWM5,Q,G:RTN
5 @STOP_M
6 OUT2,1:OUT4,1:OUT3,1:OUT5,1:RTN
7 @REV_M
8 OUT2,0:OUT4,0:OUT3,1:OUT5,1:RTN
90 E=400
100 ‘MAIN
105 ‘?TICK();”.”;
110 ‘
115 K=K-1
120 IF K<0 GSB @AUTOSTOP:K=9:LET[0],20,0,0:WS.LED1,8 130 L=IN(3):R=IN(4)
140 IF L+R=0 GOSUB @C_OUT
150 S=ANA(2):U=ANA(5)
160 IF S-E<0 && U-E<0 GOTO 220
170 ‘
180 D=ABS(S-U)/25
190 IF D<20 X=[D+50] ELSE X=G
200 IF S-U>0 P=X:Q=0 ELSE Q=X:P=0
210 GOTO230
220 ?”E”;:IF P-Q>0 P=G:Q=0 ELSE P=0:Q=G
230 GSB @FWD_M
240 ‘
250 IF W WAIT W
260 GOTO 100
300 @AUTOSTOP
310 B=ANA(9)/100
320 IF B<10 GSB @STOP_M:?” B”;B;:LET[0],0,20,0:WS.LED1,8:GOTO 310
330 OUT6,1:OUT6,0:Y=ABS(USR(#700,0))
340 IF Y<5 GSB @STOP_M:?” Y”;Y;:LET[0],20,20,0:WS.LED1,8:WAIT 3:GOTO 330
360 RTN
500 @C_OUT
510 GSB @STOP_M:WAIT20:GSB @REV_M:WAIT10:GSB @STOP_M
520 GSB @AUTOSTOP
540 ‘
550 GSB @FWD_M
560 WAIT 2
570 IF IN(3)+IN(4)=0 GOTO 510
580 RTN

プログラム説明

プログラム1(SAVE0)
■初期化とスタート処理
・超音波距離センサー用のマシン語を準備する
・LEDバーを点滅してスタートスイッチが押されるのを待つ
・コースイン処理

プログラム2(SAVE1)
■メイン処理

 ー 執刀中 ー



この教材は「Creative Commons — CC BY-SA 4.0」の下に提供されています。