' MIWM - Part 16

'

' Micromite Programmable Robot Buggy

'

' Demo software



Box 0,0,240,320,5,RGB(green),RGB(blue)

SetPin 22,dout

Pin(22)=1

'Print "Pin 22 = HIGH"

endbeep



Text 120,30,"MICROMITE",cm,1,2,RGB(brown),RGB(blue)

Text 120,70,"ROBOT",cm,1,3,RGB(yellow),RGB(blue)

Text 120,110,"BUGGY",cm,1,3,RGB(yellow),RGB(blue)

SetPin 9,dout

SetPin 10,dout



d=750



Start:

  Input "(F)orward, (B)ack, (L)eft, (R)ight, (O)FF ? ",a$

  Select Case a$

    Case "F","f"

      M1D=0

      M2D=0

      Dir$=" FORWARD "

    Case "B","b"

      M1D=1

      M2D=1

      Dir$="   BACK   "

    Case "L","l"

      M1D=1

      M2D=0

      Dir$="   LEFT   "

    Case "R","r"

      M1D=0

      M2D=1

      Dir$="  RIGHT  "

    Case "o","O"

      Pin(22)=0

    Case Else

      Print "What do you mean??"

      Print

      Dir$=" INVALID "

      Text 120,180,Dir$,cm,1,3,RGB(red),RGB(blue)

      Text 120,220,"         ",cm,1,3,,RGB(blue)

  End Select



If Dir$=" INVALID " Then GoTo start



D_Enter:

  Input "Duration (1-100)?";d

  If (d>100) Or (d<1) Then

    Print "INVALID!"

    GoTo D_Enter

  End If

  Text 120,180,Dir$,cm,1,3,RGB(green),RGB(blue)

  Text 120,220,"   "+Str$(d)+"   ",cm,1,3,RGB(cyan),RGB(blue)

  Select Case a$

    Case "l","L","R","r"

      M1S=85

      M2S=85

    Case Else

      M1S=100

      M2S=100

  End Select

  M1_pwm=(100*M1D)-(2*M1D*M1S)+M1S

  M2_PWM=(100*M2D)-(2*M2D*M2S)+M2S

  Pin(9)=M1D

  Pin(10)=M2D

  PWM 1,1000,M1_PWM,M2_PWM

  Pause d*100

  PWM 1,stop

  Pin(9)=0

  Pin(10)=0

  EndBeep

GoTo Start



Sub EndBeep

  Pause 120

  PWM 2,1000,50

  Pause 80

  PWM 2,stop

  Pause 50

  PWM 2,1200,50

  Pause 80

  PWM 2,stop

End Sub