KRITSADA

Multi Function menu for micro:bit and iBit

Sep 6th, 2018
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let Status = false
  2. let R = 0
  3. let L = 0
  4. let R2 = 0
  5. let RefR = 0
  6. let L2 = 0
  7. let RefL = 0
  8. let Menu = 0
  9. function Program2()  {
  10.     while (true) {
  11.         basic.pause(1000)
  12.         L2 = iBIT.ReadADC(ibitReadADC.ADC0) + 300
  13.         R2 = iBIT.ReadADC(ibitReadADC.ADC1) + 300
  14.         while (true) {
  15.             if (iBIT.ReadADC(ibitReadADC.ADC0) < L2 && iBIT.ReadADC(ibitReadADC.ADC1) < R2) {
  16.                 iBIT.Motor(ibitMotor.Forward, 50)
  17.             } else if (iBIT.ReadADC(ibitReadADC.ADC0) > L2 && iBIT.ReadADC(ibitReadADC.ADC1) < R2) {
  18.                 iBIT.Spin(ibitSpin.Left, 50)
  19.             } else if (iBIT.ReadADC(ibitReadADC.ADC0) < L2 && iBIT.ReadADC(ibitReadADC.ADC1) > R2) {
  20.                 iBIT.Spin(ibitSpin.Right, 50)
  21.             }
  22.         }
  23.     }
  24. }
  25. function Program3()  {
  26.     while (true) {
  27.         iBIT.Motor(ibitMotor.Forward, 50)
  28.         if (pins.digitalReadPin(DigitalPin.P2) == 0) {
  29.             iBIT.Motor(ibitMotor.Backward, 50)
  30.             basic.pause(500)
  31.             iBIT.Turn(ibitTurn.Left, 50)
  32.             basic.pause(Math.random(3001))
  33.         }
  34.         if (pins.digitalReadPin(DigitalPin.P1) == 0) {
  35.             iBIT.Motor(ibitMotor.Backward, 50)
  36.             basic.pause(500)
  37.             iBIT.Turn(ibitTurn.Right, 50)
  38.             basic.pause(Math.random(3001))
  39.         }
  40.     }
  41. }
  42. function Program4()  {
  43.     basic.showIcon(IconNames.Happy)
  44.     while (true) {
  45.         iBIT.Motor(ibitMotor.Forward, 50)
  46.         basic.pause(1000)
  47.         iBIT.Turn(ibitTurn.Left, 50)
  48.         basic.pause(600)
  49.     }
  50. }
  51. radio.onDataPacketReceived( ({ receivedNumber }) =>  {
  52.     if (receivedNumber == 3) {
  53.         iBIT.Motor(ibitMotor.Forward, 60)
  54.     } else if (receivedNumber == 1) {
  55.         iBIT.Spin(ibitSpin.Left, 50)
  56.         basic.pause(150)
  57.         iBIT.MotorStop()
  58.     } else if (receivedNumber == 7) {
  59.         iBIT.Motor(ibitMotor.Backward, 50)
  60.     } else if (receivedNumber == 2) {
  61.         iBIT.Spin(ibitSpin.Right, 50)
  62.         basic.pause(150)
  63.         iBIT.MotorStop()
  64.     } else if (receivedNumber == 8) {
  65.         iBIT.Motor(ibitMotor.Forward, 100)
  66.     } else if (receivedNumber == 5) {
  67.         iBIT.Spin(ibitSpin.Left, 70)
  68.         basic.pause(150)
  69.         iBIT.MotorStop()
  70.     } else if (receivedNumber == 6) {
  71.         iBIT.Spin(ibitSpin.Right, 70)
  72.         basic.pause(150)
  73.         iBIT.MotorStop()
  74.     } else {
  75.         iBIT.MotorStop()
  76.     }
  77. })
  78. function Program5()  {
  79.     basic.showIcon(IconNames.Pitchfork)
  80.     while (true) {
  81.         pins.digitalWritePin(DigitalPin.P8, 1)
  82.         pins.digitalWritePin(DigitalPin.P12, 0)
  83.         basic.pause(500)
  84.         pins.digitalWritePin(DigitalPin.P8, 0)
  85.         pins.digitalWritePin(DigitalPin.P12, 1)
  86.         basic.pause(500)
  87.     }
  88. }
  89. function Program1()  {
  90.     basic.showIcon(IconNames.Heart)
  91.     RefL = 2100
  92.     RefR = 2150
  93.     while (true) {
  94.         L = iBIT.ReadADC(ibitReadADC.ADC7)
  95.         R = iBIT.ReadADC(ibitReadADC.ADC6)
  96.         if (L > RefL && R > RefR) {
  97.             iBIT.Motor(ibitMotor.Forward, 60)
  98.         } else if (L < RefL && R > RefR) {
  99.             iBIT.Spin(ibitSpin.Left, 60)
  100.         } else if (L > RefL && R < RefR) {
  101.             iBIT.Spin(ibitSpin.Right, 60)
  102.         } else if (L < RefL && R < RefR) {
  103.             iBIT.Motor(ibitMotor.Forward, 60)
  104.             music.playTone(587, music.beat(BeatFraction.Half))
  105.             iBIT.Spin(ibitSpin.Left, 50)
  106.             basic.pause(550)
  107.             Status = false
  108.         }
  109.     }
  110. }
  111. Menu = 0
  112. radio.setGroup(50)
  113. basic.forever(() => {
  114.     if (pins.digitalReadPin(DigitalPin.P2) == 0) {
  115.         if (Menu < 5) {
  116.             Menu += 1
  117.             basic.showNumber(Menu)
  118.         } else {
  119.             Menu = 1
  120.             basic.showNumber(Menu)
  121.         }
  122.     }
  123.     if (pins.digitalReadPin(DigitalPin.P1) == 0) {
  124.         if (Menu == 1) {
  125.             Program1()
  126.         } else if (Menu == 2) {
  127.             Program2()
  128.         } else if (Menu == 3) {
  129.             Program3()
  130.         } else if (Menu == 4) {
  131.             Program4()
  132.         } else if (Menu == 5) {
  133.             Program5()
  134.         }
  135.     }
  136. })
Advertisement
Add Comment
Please, Sign In to add comment