Exemplo n.º 1
0
 def motor_brake(self, motor):
     if motor == KMotor.MOTOR_1:
         pin8.write_digital(1)
         pin12.write_digital(1)
     else:
         pin0.write_digital(1)
         pin16.write_digital(1)
Exemplo n.º 2
0
    def motor_on(self, motor, direction, speed=100):
        """
        Turn motor with the given direction and speed
        :param motor: KMotor.MOTOR1 or KMotor.Motor2
        :param direction: KMotor.FORWARD or KMOTOR.REVERSE
        :param speed: 0 - 100
        :return:
        """
        # make sure the speed is within range
        if not 0 <= speed <= 100:
            # not display a "NO" and return
            display.show(Image.NO)
            return

        # speed needs to be scaled from 0-100 to 0-1023
        speed = self._scale(speed)

        # Move Motor Forward
        if direction == KMotor.FORWARD:
            if motor == KMotor.MOTOR_1:
                pin8.write_analog(speed)
                pin12.write_digital(0)
            elif motor == KMotor.MOTOR_2:
                pin0.write_analog(speed)
                pin16.write_digital(0)

        # Move Motor In Reverse
        else:
            if motor == KMotor.MOTOR_1:
                pin12.write_analog(speed)
                pin8.write_digital(0)
            elif motor == KMotor.MOTOR_2:
                pin16.write_analog(speed)
                pin0.write_digital(0)
Exemplo n.º 3
0
def removePowerFromSwitches():
    pin0.write_digital(0)  # switch 1, coin 1
    pin1.write_digital(0)  # switch 1, coin 2
    pin2.write_digital(0)  # switch 2, coin 1
    pin3.write_digital(0)  # switch 2, coin 2
    pin4.write_digital(0)  # switch 3, coin 1
    pin6.write_digital(0)  # switch 3, coin 2
    pin7.write_digital(0)  # switch 4, coin 1
    pin9.write_digital(0)  # switch 4, coin 2
Exemplo n.º 4
0
 def motor_brake(self, motor):
     """
     Brake the selected motor.
     :param motor:
     :return:
     """
     if motor == KMotor.MOTOR_1:
         pin8.write_digital(1)
         pin12.write_digital(1)
     else:
         pin0.write_digital(1)
         pin16.write_digital(1)
Exemplo n.º 5
0
 def Light(colour, illuminate):
     if colour == "Red":
         if illuminate == "On":
             pin0.write_digital(1)
         elif illuminate == "Off":
             pin0.write_digital(0)
     elif colour == "Yellow":
         if illuminate == "On":
             pin1.write_digital(1)
         elif illuminate == "Off":
             pin1.write_digital(0)
     elif colour == "Green":
         if illuminate == "On":
             pin2.write_digital(1)
         elif illuminate == "Off":
             pin2.write_digital(0)
Exemplo n.º 6
0
 def motor_on(self, motor, direction, speed=100):
     if not 0 <= speed <= 100:
         display.show(Image.NO)
         return
     speed = self._scale(speed)
     if direction == KMotor.FORWARD:
         if motor == KMotor.MOTOR_1:
             pin8.write_analog(speed)
             pin12.write_digital(0)
         elif motor == KMotor.MOTOR_2:
             pin0.write_analog(speed)
             pin16.write_digital(0)
     else:
         if motor == KMotor.MOTOR_1:
             pin12.write_analog(speed)
             pin8.write_digital(0)
         elif motor == KMotor.MOTOR_2:
             pin16.write_analog(speed)
             pin0.write_digital(0)
Exemplo n.º 7
0
 def State(state):
     if state == "stop":
         pin0.write_digital(1)
         pin1.write_digital(0)
         pin2.write_digital(0)
     elif state == "getReady":
         pin0.write_digital(1)
         pin1.write_digital(1)
         pin2.write_digital(0)
     elif state == "go":
         pin0.write_digital(0)
         pin1.write_digital(0)
         pin2.write_digital(1)
     elif state == "readyToStop":
         pin0.write_digital(0)
         pin1.write_digital(1)
         pin2.write_digital(0)
Exemplo n.º 8
0
    try:
        message = radio.receive()
    except ValueError:
        radio.off()
        sleep(100)
        radio.on()
        message = None

    direction = None
    if message is not None:
        data = message.split(":")
        if data[0] == "move":
            direction = data[1]

    if direction is not None:
        display.show(ARROWS[direction])
        pins = DIRECTIONS[direction]
        # to avoid shorting motors
        # first turn everything off then turn on the ones that need to be
        for value in range(2):
            for index, pin in enumerate([pin0, pin1, pin2, pin8]):
                if pins[index] == value:
                    pin.write_digital(value)
        sleep(50)
    else:
        pin0.write_digital(0)
        pin8.write_digital(0)
        pin1.write_digital(0)
        pin2.write_digital(0)
        display.show(Image.NO)
Exemplo n.º 9
0
 def led(illuminate):
     if illuminate == "On":
         pin0.write_digital(1)
     elif illuminate == "Off":
         pin0.write_digital(0)
Exemplo n.º 10
0
def flipSwitch(switch):
    global switch1Pos, switch2Pos, switch3Pos, switch4Pos
    if switch == 1:
        if switch1Pos == 1:
            pin1.write_digital(1)
            sleep(500)
            pin1.write_digital(0)
            switch1Pos = 2
            panelLEDs(0,(0,55,100))
            flipSignalPoleLEDs(0, 2)
        else:
            pin0.write_digital(1)
            sleep(500)
            pin0.write_digital(0)
            switch1Pos = 1
            panelLEDs(0,(55,100,0))
            flipSignalPoleLEDs(0, 1)
    elif switch == 2:
        if switch2Pos == 1:
            pin3.write_digital(1)
            sleep(500)
            pin3.write_digital(0)
            switch2Pos = 2
            panelLEDs(1,(0,55,100))
            flipSignalPoleLEDs(2, 2)
        else:
            pin2.write_digital(1)
            sleep(500)
            pin2.write_digital(0)
            switch2Pos = 1
            panelLEDs(1,(55,100,0))
            flipSignalPoleLEDs(2, 1)
    elif switch == 3:
        if switch3Pos == 1:
            pin6.write_digital(1)
            sleep(500)
            pin6.write_digital(0)
            switch3Pos = 2
            panelLEDs(2,(0,55,100))
            flipSignalPoleLEDs(4, 2)
        else:
            pin4.write_digital(1)
            sleep(500)
            pin4.write_digital(0)
            switch3Pos = 1
            panelLEDs(2,(55,100,0))
            flipSignalPoleLEDs(4, 1)
    elif switch == 4:
        if switch4Pos == 1:
            pin9.write_digital(1)
            sleep(500)
            pin9.write_digital(0)
            switch4Pos = 2
            panelLEDs(3,(0,55,100))
            flipSignalPoleLEDs(6, 2)
        else:
            pin7.write_digital(1)
            sleep(500)
            pin7.write_digital(0)
            switch4Pos = 1
            panelLEDs(3,(55,100,0))
            flipSignalPoleLEDs(6, 1)
Exemplo n.º 11
0
from microbit import pin0, display, Image
import music

pin0.is_touched()

pin0.write_digital(1)

music.play(music.BA_DING)