Exemple #1
0
def moveCamera(msg):
    message_json = format(msg.payload.decode("UTF-8"))
    print(message_json)
    msg = json.loads(message_json)
    message = msg['msg']
    y_speed = msg['y']
    x_speed = msg['x']
    enginePowers = msg['enginePowers']
    formFactor = msg['formFactor']
    #if message == current_message:
    #    return
    #else:
    #    self.servo15.stop()
    #    self.servo14.stop()
    #    self.dcmotor.stop()

    #UltraSonic sensor
    #distanceObj = UltrasonicSensor()
    #dist = distanceObj.distance()
    #current_distance = dist

    #print ("Measured Distance = %.1f cm" % dist)

    if message == "sonic_left":
        servo15.moveForward()

    if message == "sonic_right":
        servo15.moveBack()

    if message == "sonic_down":
        servo14.moveForward()

    if message == "sonic_up":
        servo14.moveBack()

    # if message == "camera_left":
    #     servo13.moveForward()
    #     client2 = mqtt.Client()
    #     client2.on_connect = on_connect
    #     client2.on_message = on_message2
    #     client2.on_publish = on_publish
    #     client2.connect(MQTT_SERVER, 1883, 60)
    #     client2.publish(MQTT_PATH, '{"msg":"from python","x":0,"y":0,"status":'+str(current_distance)+'}')
    #     client2.disconnect()

    # if message == "camera_right":
    #     servo13.moveBack()

    if message == "camera_forward":
        servo15.init()

    if message == "ultrasonic_align":
        servo14.init(150)  #altitude
        servo15.init(120)  #horizon

    if message == "forward":
        dcmotor.setPower(rightEngine=rightEngine, leftEngine=leftEngine)
        dcmotor.forward(speed=y_speed)

    if message == "right":
        dcmotor.setPower(rightEngine=rightEngine, leftEngine=leftEngine)
        dcmotor.right(speed=x_speed)

    if message == "left":
        dcmotor.setPower(rightEngine=rightEngine, leftEngine=leftEngine)
        dcmotor.left(speed=x_speed)

    if message == "back":
        dcmotor.setPower(rightEngine=rightEngineBack,
                         leftEngine=leftEngineBack)
        dcmotor.back(speed=y_speed)

    if message == "stop":
        dcmotor.stop()

    if message == "robot_one":
        robot.robotIsRight = True
        robot.startProgram()

    if message == "toggle_light":
        ledObj = Led()
        if msg['status'] == 1:
            ledObj.lightsOn()
        else:
            ledObj.lightsOff()

    if message == "robot_mode_full_stop":
        robot.robotIsRight = False
        robot.motorStop()

    if message == "switch-motor-engine":
        relayObj = Relay()
        relayObj.switchRelay(status=msg['status'])