Exemple #1
0
def task_time(t, mot, velo, f):
    global thread_end
    global thread_started
    global threads_num
    global result

    w.cmpc(mot)
    w.motor(mot, velo)

    # lock.acquire()
    # threads_num += 1
    # lock.release()
    thread_started = True
    print("wait {}s ...".format(t))
    while t > 0:  # wait till expected time
        print(t),
        sleep(1)
        t -= 1

    w.freeze(mot)
    print("\nstopping ...")

    thread_end = True
    # lock.acquire()
    # threads_num -= 1
    # lock.release()
    result = "motor {}\nruntime: {}\nmotor ticks: {}\nturns: {}".format(
        mot, runtime, w.gmpc(mot), f.get_result())
Exemple #2
0
def task_rotate(turns, mot, velo, f):
    global thread_end
    global thread_started
    global threads_num
    global result

    w.cmpc(mot)
    w.motor(mot, velo)

    # lock.acquire()
    # threads_num += 1
    # lock.release()
    thread_started = True
    print("wait {} turns ...".format(turns))

    #data = []
    last_val = f.get_result()
    while last_val < turns:  # wait till expected turns
        val = f.get_result()
        if val > last_val:
            print("%2.1f\t%i" % (last_val, w.gmpc(mot)))
            last_val = val

    w.freeze(mot)
    print("\nstopping ...")

    thread_end = True
    # lock.acquire()
    # threads_num -= 1
    # lock.release()
    result = "motor {}\nturns: {}\nmotor ticks: {}".format(
        mot, f.get_result(), w.gmpc(mot))
Exemple #3
0
def DEBUGwithWait():
    freeze(c.LMOTOR)
    freeze(c.RMOTOR)
    #print ('Program stop for DEBUG\nSeconds: ', seconds() - startTime)
    ao()
    msleep(5000)
    exit(0)
Exemple #4
0
def rotate_spinner(rotations, speed):
    full_rotation = 1400.0
    start = get_motor_position_counter(SPINNER)
    motor_power(SPINNER, speed)

    tries_remaining = 3
    previous = 0
    counter = 0

    while abs(get_motor_position_counter(SPINNER) - start) < abs(
            full_rotation * rotations) and tries_remaining > 0:
        if counter >= 10:
            counter = 0
            if tries_remaining > 0:
                motor_power(SPINNER, int(-speed))
                msleep(300)
                motor_power(SPINNER, speed)
            tries_remaining -= 1
        elif abs(get_motor_position_counter(SPINNER)) == previous:
            counter += 1
        else:
            counter = 0
            previous = abs(get_motor_position_counter(SPINNER))
        msleep(10)
    print "rotated {} out of {}".format(
        get_motor_position_counter(SPINNER) - start,
        abs(full_rotation * rotations))
    freeze(SPINNER)
Exemple #5
0
def DEBUG_WITH_WAIT():
    freeze(c.LMOTOR)
    freeze(c.RMOTOR)
    ao()
    msleep(5000)
    display('Program stop for DEBUG\nSeconds: {}'.format(seconds() -
                                                         c.startTime))
    exit(0)
Exemple #6
0
def DEBUG():
    freeze(c.LMOTOR)
    freeze(c.RMOTOR)
    ao()
    display('Program stop for DEBUG\nSeconds: {}'.format(seconds() -
                                                         c.startTime))
    display("NOTE: {}\t{}".format(seconds(), c.startTime))
    exit(0)
Exemple #7
0
def rotate_until_stalled(speed):
    counter = 0
    motor_power(SPINNER, speed)
    previous = abs(get_motor_position_counter(SPINNER))
    while counter < 10:
        if abs(get_motor_position_counter(SPINNER)) == previous:
            counter += 1
        else:
            counter = 0
            previous = abs(get_motor_position_counter(SPINNER))
        msleep(10)
    freeze(SPINNER)
    clear_motor_position_counter(SPINNER)
def task_rotate(turns, mot, velo, sens):
    global result

    w.cmpc(mot)
    w.motor(mot, velo)

    print("wait {} turns ...".format(turns))

    sens.update()
    last_val = sens.get_result()
    while last_val < turns:  # wait till expected turns
        sens.update()
        val = sens.get_result()
        if val > last_val:
            print(last_val),
            last_val = val

    w.freeze(mot)
    print("\nstopping ...")

    result = "motor {}\nturns: {}\nmotor ticks: {}".format(
        mot, sens.get_result(), w.gmpc(mot))
Exemple #9
0
def freeze_motors():  # Locks the motors to reduce drift.
    freeze(LMOTOR)
    freeze(RMOTOR)
Exemple #10
0
def shutdown():
    freeze(c.LMOTOR)
    freeze(c.RMOTOR)
    ao()
    display('Program stopped\nSeconds: {}'.format(seconds() - c.startTime))
    exit(0)
Exemple #11
0
def DEBUG():
    freeze(c.LMOTOR)
    freeze(c.RMOTOR)
    print('Program stop for DEBUG\nSeconds: ', seconds() - c.startTime)
    ao()
    exit(0)
Exemple #12
0
def rotate_to_safe(power):
    full_rotation = 1400.0
    motor_power(SPINNER, power)
    while abs(get_motor_position_counter(SPINNER)) % full_rotation > 50:
        pass
    freeze(SPINNER)
Exemple #13
0
def DEBUGwithWait():
    freeze(c.LMOTOR)
    freeze(c.RMOTOR)
    ao()
    print 'Program stop for DEBUG\nSeconds: ', seconds() - c.startTime
    msleep(5000)