自動運転カーをプログラムしよう

10.サンプルプログラム2

JAMCARの動きを8の字走行にして、障害物があれば回避するプログラムです。

10 @ARUN:’JAMCAR 8-shaped running 2020/12/27
20 POKE#700,114,182,0,32,3,73,10,104,64,28,0,42,251,209,64,9,98,182,112,71,0,16,0,80
30 Q=-6:C=4:E=0:CLT

100 @JAMCAR

  ’LEDフラッシャーの発光
110 FOR I=0 TO 23:[I]=[I]/2:NEXT
120 Q=Q+1:IF Q>7 Q=-6
130 LET[ABS(Q)3],C&1*50,C>>1&1*50,C>>2&1*80:WS.LED8

  ’超音波センサの測定
140 WAIT10:OUT6,1:OUT6,0:U=ABS(USR(#700,0))

  ’接触センサの測定
150 B=ANA()/100

  ’障害物の判断
160 IF U<190 OR B<10 GSB@ESCAPE ELSE E=0

  ’8の字走行
170 T=TICK()
180 IF T<250 OUT2,1:PWM4,500 ELSE PWM2,350:OUT4,1 190 IF T>515 CLT
200 GOTO @JAMCAR

  ’脱出走行
800 @ESCAPE
810 ?A,B,E
820 E=E+1:IF E<3 RTN
830 BEEP100,30
840 LET[0],00,50,00:WS.LED1,8
850 OUT 2,0:OUT 4,0:WAIT60
860 OUT 20 :WAIT50
870 LET[0],20,20,20:WS.LED1,8
880 OUT 0 :WAIT60
890 OUT RND(2)*6+12:WAIT30
900 OUT 0 :WAIT60
910 RTN


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