remote = Remote()

while True:
    # api events
    for event, kwargs in api.events:
        if event == "wave":
            wave(**kwargs)
        if event == "set":
            servo.set(0.75-float(kwargs["position"])*0.5)
        if event == "set_speed":
            motor.duty_cycle = kwargs['position']
    api.events = []


    if not remote.wm:
       motor.tick()
       continue

    # remote events
    if remote.pressed('a'):
        remote.rumble(True)
    else:
        remote.rumble(False)
    print remote.angle()
    if remote.pressed('b'):
        accel = remote.accel()
        steer = accel[0] * -1
        steer = 0.5 if steer > -1 and steer < 1 else (steer + 25)/50.0
        speed = accel[1]
        speed = (speed + 15)/25.0