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

9.サンプルプログラム1

障害物の状態の応じて、回避方法を変えながら動き回るプログラムです。

10 @ARUN:’JAMCARevolution V1.0 2020/09/20
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 OUT6,1:OUT0:A=0
40 A=A+1:IFA>999BEEP5,100:?”Sensor error”:END
50 IF IN(1) GOTO40
60 E=0:F=0:Q=0:C=4

100 @EVO

‘LEDフラッシャー発光(近:赤、黄、青:遠)
110 FORI=0TO23:[I]=[I]/2:NEXT
120 Q=Q+1:IFQ>7Q=-6
130 LET[ABS(Q)*3],C&1*50,C>>1&1*50,C>>2&1*80:WS.LED8

‘超音波センサの検知
200 WAIT10:OUT6,1:OUT6,0:A=ABS(USR(#700,0))
210 C=(A>100)+(A>300)+2
220 IF A<150 BEEP2:OUT RND(2)*6+2:WAIT30:GOTO@ESC

‘接触センサ(バンパー)の検知
800 B=ANA()/100
810 IF B=0 BEEP3,1000:OUT0:?”Emergency stop”:END
820 IF B=2 BEEP4:GOTO@ESC
830 IF B=3 BEEP5:OUT8:WAIT30
840 IF B=4 BEEP6:OUT2:WAIT30
850 IF B>4 E=0:OUT10

‘障害物の回避走行
900 @ESC
910 ?A,B,E
920 E=E+1:IF E<3 GOTO@EVO
930 BEEP100,30:LET[0],20,20,20:WS.LED1,8
940 OUT0:WAIT60:OUT20:WAIT20
950 OUT0:WAIT60:OUT RND(2)*6+12:WAIT30:OUT0:WAIT60:GOTO@EVO