Exemplo n.º 1
0
def play_note(note, beat=None, index=1):
    if not isinstance(index, (int, float)):
        return

    if isinstance(note, (int, float)):
        note = num_range_scale(note, 48, 72)

        freq = MIDI_NOTE_NUM0 * math.pow(NOTE_FREQUENCE_RATIO, note)

    elif isinstance(note, str):
        if note in node_table:
            freq = node_table[note]
        else:
            return

    neurons_request("m_speaker", "stop", (), index)

    if beat == None:
        neurons_request("m_speaker", "play_frequency", freq, index)

    elif isinstance(beat, (int, float)):
        beat = num_range_scale(beat, 0)
        if beat <= 0:
            return

        neurons_request("m_speaker", "play_frequency", freq, index)
        time.sleep(beat)
        neurons_request("m_speaker", "stop", (), index)
Exemplo n.º 2
0
 def send_remote_code(addr, data, index=1):
     if index != 0x01:
         return
     if not isinstance(addr, (int)) or not isinstance(data, (int)):
         return
     addr = num_range_scale(addr, 0, 255)
     data = num_range_scale(data, -128, 127)
     neurons_request("m_halobot", "ir_send_remote_code", (addr, data),
                     index)
Exemplo n.º 3
0
def set_led_rgb(r, g, b, index=1):  #设置RGB灯
    if (not isinstance(r, (int, float))) or (not isinstance(
            g,
        (int, float))) or (not isinstance(b, (int, float))) or (not isinstance(
            index, (int, float))) or (index <= 0):
        return
    r = num_range_scale(r, 0, 255)
    g = num_range_scale(g, 0, 255)
    b = num_range_scale(b, 0, 255)
    neurons_request("m_smart_camera", "set_led_rgb", (r, g, b), index)
Exemplo n.º 4
0
def move_with_torque(position, speed, strength, index=1):
    if (not isinstance(position, (int))) or (not isinstance(
            speed,
        (int, ))) or (not isinstance(strength, (int, ))) or (not isinstance(
            index, (int))) or (index <= 0):
        return
    speed = num_range_scale(speed, 1, 50)
    strength = num_range_scale(strength, 1, 255)
    neurons_request("m_smartservo", "move_with_torque",
                    [position, speed, strength], index)
Exemplo n.º 5
0
def set_fills_learn_mode(fills_id, t, index=1):  #设置学习色块模式
    if (not isinstance(fills_id, (int, float))) or (not isinstance(
            t,
        (int, float))) or (not isinstance(index,
                                          (int, float))) or (index <= 0):
        return

    # real index is 0 ~ 7
    fills_id = num_range_scale(fills_id, 1, 8)
    fills_id -= 1

    t = num_range_scale(t, 0, None)
    neurons_request("m_smart_camera", "set_fills_learn_mode", (fills_id, t),
                    index)
Exemplo n.º 6
0
def set_rgb(red_value, green_value, blue_value, index=1):
    if not isinstance(index, (int, float)):
        return

    if not isinstance(red_value, (int, float)):
        return
    if not isinstance(green_value, (int, float)):
        return
    if not isinstance(blue_value, (int, float)):
        return

    red_value = num_range_scale(red_value, 0, 255)
    green_value = num_range_scale(green_value, 0, 255)
    blue_value = num_range_scale(blue_value, 0, 255)
    neurons_request("m_fingertip_piano", "set_rgb",
                    (red_value, green_value, blue_value), index)
Exemplo n.º 7
0
def set_default_turning_angle(angle, index=1):  #设置默认的转向角度(不开放)
    if (not isinstance(angle, (int, float))) or (not isinstance(
            index, (int, float))) or (index <= 0):
        return
    angle = num_range_scale(angle, -180, 180)
    neurons_request("m_smart_camera", "set_default_turning_angle", (angle),
                    index)
Exemplo n.º 8
0
def set_camera_sensitometry(level, index=1):  #设置摄像头曝光度
    if (not isinstance(level, (int, float))) or (not isinstance(
            index, (int, float))) or (index <= 0):
        return
    level = num_range_scale(level, 0, 255)
    neurons_request("m_smart_camera", "set_camera_sensitometry", (level),
                    index)
Exemplo n.º 9
0
def set_report_mode(mode, timestamp, index=1):
    timestamp = num_range_scale(timestamp, 10, None)
    if mode == 0x00 or mode == 0x01 or mode == 0x02:
        neurons_request("m_mult_touch", "set_report_mode", (mode, timestamp),
                        index)
    else:
        pass
Exemplo n.º 10
0
def set_report_mode(mode, timestamp, index=1):
    timestamp = num_range_scale(timestamp, 10, None)
    if mode == 0x00 or mode == 0x01 or mode == 0x02:
        neurons_request("m_dual_rgb_sensor", "set_all_data_report_mode",
                        (mode, timestamp), index)
    else:
        pass
Exemplo n.º 11
0
def back_to_zero(speed, index=1):
    if (not isinstance(speed,
                       (int, ))) or (not isinstance(index,
                                                    (int))) or (index <= 0):
        return
    speed = num_range_scale(speed, 1, 50)
    neurons_request("m_smartservo", "back_to_zero", [0x00, speed], index)
Exemplo n.º 12
0
def __set_r_g_b(col_id, value, index):
    global __led_value

    value = num_range_scale(value, 0, 255)
    __led_value[index][col_id] = value

    neurons_request("m_rgb", r_g_b_list[col_id], value, index)
Exemplo n.º 13
0
def get_fills_diff_speed(sign, tar_x, tar_y, index=1):
    global __kp, __mode
    if (not isinstance(tar_x, (int, float))) or (not isinstance(
            tar_y,
        (int, float))) or (not isinstance(index,
                                          (int, float))) or (index <= 0):
        return 0

    index = int(index)

    if __mode[index - 1] != "color":
        return 0

    data = get_fills_all_data(sign, index)
    if data == 0:
        return 0
    cur_x = data[1]
    cur_y = data[2]

    if cur_x == 0 or cur_y == 0:
        return 0

    error = 0
    if tar_x == -1:
        error = (tar_y - cur_y) * 2
    elif tar_y == -1:
        error = (cur_x - tar_x) * 1
    else:
        return 0

    error = num_range_scale(error, -100, 100)
    error = error * __kp[index - 1]
    return error
Exemplo n.º 14
0
def set_button_count_report_mode(mode, timestamp, index=1):
    timestamp = num_range_scale(timestamp, 10, None)
    if mode == 0x00 or mode == 0x01 or mode == 0x02:
        neurons_request("m_fingertip_piano", "set_button_count_report_mode",
                        (mode, timestamp), index)
    else:
        pass
Exemplo n.º 15
0
def get_follow_vector_diff_speed(index=1):
    global __mode
    if (not isinstance(index, (int, float))) or (index <= 0):
        return 0

    index = int(index)

    if __mode[index - 1] != "line":
        return 0

    data = get_line_all_data(index)
    if data == 0:
        return 0
    cur_x0 = data[0]
    cur_y0 = data[1]
    cur_x1 = data[2]
    cur_y1 = data[3]
    # print("end_x start_x:", cur_x0, cur_x1)
    if cur_x0 == 0 or cur_x1 == 0:
        return 0

    error = (cur_x0 - CAMERA_FRAME_WIDTH / 2) * 0.7 + (
        cur_x1 - CAMERA_FRAME_WIDTH / 2) * 0.3
    error = 3 * error
    error = num_range_scale(error, -100, 100)
    error = error * __kp[index - 1]
    return error
Exemplo n.º 16
0
def get_barcode_diff_speed(label, tar_x, tar_y, index=1):
    global __kp, __mode
    if (not isinstance(tar_x, (int, float))) or (not isinstance(
            tar_y,
        (int, float))) or (not isinstance(index,
                                          (int, float))) or (index <= 0):
        return 0

    index = int(index)

    if __mode[index - 1] != "line":
        return 0

    data = get_barcode_all_data(label, index)
    if data == 0:
        return 0
    cur_x = data[1]
    cur_y = data[2]
    # print("cur x y:", cur_x, cur_y)
    if cur_x == 0 or cur_y == 0:
        return 0

    error = 0
    if tar_x == -1:
        error = (tar_y - cur_y) * 3
    elif tar_y == -1:
        error = (cur_x - tar_x) * 3
    else:
        return 0

    error = num_range_scale(error, -100, 100)
    error = error * __kp[index - 1]
    return error
Exemplo n.º 17
0
def set_angle(angle, index=1):
    if not isinstance(index, (int, float)):
        return
    if not isinstance(angle, (int, float)):
        return

    angle = num_range_scale(angle, 0, 180)
    neurons_request("m_servo", "set_angle", angle, index)
Exemplo n.º 18
0
def set_power(power, index = 1):
    if not isinstance(index, (int, float)):
        return
    if not isinstance(power, (int, float)):
        return

    power = num_range_scale(power, -100, 100)
    neurons_request("m_dc_motor", "set_power", power, index)
Exemplo n.º 19
0
def set_power(pwm, index=1):
    if (not isinstance(pwm,
                       (int, ))) or (not isinstance(index,
                                                    (int))) or (index <= 0):
        return
    pwm = num_range_scale(pwm, -255, 255)
    #print(pwm)
    neurons_request("m_smartservo", "set_pwm", -pwm, index)
Exemplo n.º 20
0
def set_report_mode(mode, timestamp, index=1):
    if not isinstance(timestamp, (int, float)):
        return

    timestamp = num_range_scale(timestamp, 10, None)
    if mode == __INQUIRE_REPORT_MODE or mode == __CHANGE_REPORT_MODE or mode == __PERIOD_REPORT_MODE:
        neurons_request("m_servo", "set_report_mode", (mode, timestamp), index)
    else:
        return
Exemplo n.º 21
0
def change_volume(val, index=1):
    if not isinstance(index, (int, float)):
        return

    if not isinstance(val, (int, float)):
        return
    val = num_range_scale(val, -100, 100)
    neurons_request("m_speaker", "change_volume", val, index)
    time.sleep(0.05)
Exemplo n.º 22
0
def get_cross_angle(sn=1, index=1):
    if (not isinstance(sn, (int, float))) or (sn <= 0):
        return 0
    sn = int(sn)
    sn = num_range_scale(sn, 1, 6)
    value = get_crossings_line_angle_sigle_data(index)
    if value != 0:
        return value[sn - 1]
    return 0
Exemplo n.º 23
0
 def set_angle(channel=None, angle=0, index=1):
     if index != 0x01:
         return
     if channel != "ALL" and channel != "S1" and channel != "S2":
         return
     if not isinstance(angle, (int)):
         return
     angle = num_range_scale(angle, 0, 180)
     neurons_request("m_halobot", "servo_set_angle",
                     (channel_dict[channel], angle), index)
Exemplo n.º 24
0
def set_line_report_mode(mode, timestamp, index=1):  #设置线所有信息的上报模式
    if (not isinstance(timestamp, (int, float))) or (not isinstance(
            index, (int, float))) or (index <= 0):
        return
    timestamp = num_range_scale(timestamp, 10, None)
    if mode == 0x00 or mode == 0x01 or mode == 0x02:
        neurons_request("m_smart_camera", "set_line_report_mode",
                        (mode, timestamp), index)
    else:
        return
Exemplo n.º 25
0
def run(power, index=1):
    if (not isinstance(power,
                       (int, ))) or (not isinstance(index,
                                                    (int))) or (index <= 0):
        return
    power = num_range_scale(power, -100, 100)

    # scale for user is -100 ~ 100, real is -255 ~ 255
    power = round(power * 2.55)  # 255 / 100

    neurons_request("m_smartservo", "set_pwm", -power, index)
Exemplo n.º 26
0
def set_sensitivity(sen, index=1):
    if not isinstance(sen, (int, float)):
        return

    if not isinstance(index, (int, float)):
        return

    sen = num_range_scale(sen, 1, 4)

    neurons_request("m_mult_touch", "reset", (), index)
    neurons_request("m_mult_touch", "set_sensitivity", sen, index)
Exemplo n.º 27
0
def turn(angle,
         speed,
         index=1):  # angle: drgree   speed:unit :degree per second
    if (not isinstance(angle, (int))) or (not isinstance(
            speed, (int, ))) or (not isinstance(index, (int))) or (index <= 0):
        return

    # speed unit for users is degree per second
    # but real speed unit is rpm(revolutions per minute)
    speed = round(speed * SPEED_DPS_TO_RPM)
    speed = num_range_scale(speed, 1, 50)
    neurons_request("m_smartservo", "move", [-angle, speed], index)
Exemplo n.º 28
0
def get_value(position, index=1):
    if not isinstance(position, (int, float)):
        return 0
    if not isinstance(index, (int, float)):
        return 0
    position = num_range_scale(position, 1, 8)

    value = neurons_async_read("m_mult_touch", "get_value", position, index)
    if value != None:
        return value[0]
    else:
        return 0
Exemplo n.º 29
0
def show(r, g, b, index=1):
    global __led_value

    if not isinstance(index, (int, float)):
        return
    if not isinstance(r, (int, float)):
        return
    if not isinstance(g, (int, float)):
        return
    if not isinstance(b, (int, float)):
        return

    if index > __RGB_NUM_MAX:
        return

    r = int(num_range_scale(r, 0, 255))
    g = int(num_range_scale(g, 0, 255))
    b = int(num_range_scale(b, 0, 255))

    __led_value[int(index)] = [r, g, b]

    neurons_request("m_rgb", "show", (r, g, b), index)
Exemplo n.º 30
0
def get_barcode_all_data(barcode_id, index=1):  #获取某个条形码的所有信息
    if (not isinstance(barcode_id, (int, float))) or (not isinstance(
            index, (int, float))) or (index <= 0):
        return 0
    barcode_id = num_range_scale(barcode_id, 0, 15)
    value = neurons_blocking_read("m_smart_camera", "get_barcode_all_data",
                                  (barcode_id), index)
    if value != None:
        value[1] = round(value[1] * FRAME_REVISE_COE_LINE_X)
        value[2] = round(value[2] * FRAME_REVISE_COE_LINE_Y)
        return value
    else:
        return 0