관성#

소개#

뇌에는 관성 센서가 내장되어 있습니다. 이 센서는 뇌의 움직임이나 회전을 측정할 수 있습니다.

관성 센서는 이를 위해 두 부분으로 구성됩니다. 자이로스코프는 브레인이 어느 방향을 향하고 있는지, 얼마나 회전했는지와 같은 회전을 측정합니다. 가속도계는 가속, 감속 또는 충돌 시 갑작스러운 정지와 같은 운동 변화를 측정합니다.

관성 모멘트 방식은 선회 추적, 방향 또는 회전 값 재설정, 롤, 피치 및 요 측정, 가속도 보고에 사용할 수 있습니다.

관성 센서를 코딩하는 방법은 여러 가지가 있습니다. 아래는 모든 관성 센서 코딩 방법의 목록입니다.

방향 설정 — 돌아가서 브레인이 어떤 방향을 향하고 있는지, 어떻게 회전하고 있는지, 또는 어떻게 기울어지고 있는지 설정하십시오.

  • get_heading — 0~359도 사이의 Brain이 향하는 방향을 반환합니다.

  • get_rotation — 뇌가 얼마나 회전했는지 반환합니다.

  • get_yaw — Brain이 시작 위치에서 왼쪽 또는 오른쪽으로 얼마나 회전했는지 반환합니다.

  • get_roll — Brain이 왼쪽 또는 오른쪽으로 얼마나 기울어졌는지 반환합니다.

  • get_pitch — Brain이 얼마나 앞쪽 또는 뒤쪽으로 기울어졌는지 반환합니다.

  • calibrate — 뇌의 관성 센서를 보정합니다.

  • reset_heading — 브레인의 현재 방향을 0도로 재설정합니다.

  • reset_rotation — 브레인의 현재 회전을 0도로 재설정합니다.

  • set_heading — 브레인의 현재 헤딩을 새로운 헤딩 값으로 설정합니다.

  • set_rotation — 브레인의 현재 회전을 새로운 회전 값으로 설정합니다.

모션 — 뇌의 움직임을 반환합니다.

  • get_acceleration — 선택된 축에서 뇌가 얼마나 빠르게 가속되거나 감속하는지 반환합니다.

정위#

get_heading#

헤딩은 브레인이 향하는 방향을 나타내며, 0도에서 359도까지의 각도로 측정됩니다. get_heading 브레인의 현재 헤딩을 반환합니다.

초기 방향은 0도입니다. 브레인이 359도를 넘어서 회전하면 방향은 다시 0도로 돌아갑니다.

Usage:
inertial.get_heading()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

get_rotation#

회전은 브레인이 회전한 정도를 각도로 나타낸 것입니다. 헤딩과 달리 회전은 359도를 초과하거나 0도 미만으로 감소할 수 있습니다. 프로젝트 시작 시 회전 값은 0도로 설정됩니다. get_rotation 은 브레인의 현재 회전 값을 반환합니다.

오른쪽으로 돌면 회전 각도가 증가하고, 왼쪽으로 돌면 회전 각도가 감소합니다. 예를 들어, 오른쪽으로 두 바퀴를 완전히 돌면 720도 회전하게 됩니다. 0도에서 왼쪽으로 한 바퀴를 완전히 돌면 -360도 회전하게 됩니다.

Usage:
inertial.get_rotation()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

get_yaw#

요(Yaw)는 브레인이 시작 위치에서 왼쪽 또는 오른쪽으로 얼마나 회전했는지를 나타내는 각도입니다. get_yaw get_yaw 은 브레인의 현재 요 값을 반환합니다.

오른쪽으로 회전하면 요(yaw) 값이 증가하고, 왼쪽으로 회전하면 요 값이 감소합니다. 요 값은 회전 방향 값을 사용하지 않고도 좌회전과 우회전을 확인하는 데 유용합니다.

Usage:
inertial.get_yaw()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

get_roll#

Roll은 브레인이 왼쪽 또는 오른쪽으로 얼마나 기울어지는지를 나타내는 각도입니다. get_roll이 get_roll 현재 Roll 값을 반환합니다.

뇌가 정면을 향하고 있을 때, 왼쪽으로 기울이면 주사위 굴림 값이 증가하고, 오른쪽으로 기울이면 주사위 굴림 값이 감소합니다.

Usage:
inertial.get_roll()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

get_pitch#

피치는 브레인이 앞뒤로 기울어지는 정도를 각도로 나타낸 것입니다. get_pitch 함수는 get_pitch 반환합니다.

뇌 모형이 정면을 향하도록 놓았을 때, 앞으로 기울이면 음높이 값이 높아지고, 뒤로 기울이면 음높이 값이 낮아집니다.

Usage:
inertial.get_pitch()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

calibrate#

calibrate 뇌의 관성 센서를 보정합니다.

보정은 관성 센서가 회전을 정확하게 측정하는 데 도움이 됩니다. 보정하는 동안 브레인을 약 2초 동안 움직이지 않도록 고정하십시오. 보정 중에 브레인이 움직이면 방향, 회전, 요, 롤 및 피치 값이 정확하게 측정되지 않을 수 있습니다.

프로젝트는 보정 작업이 완료될 때까지 기다린 후 다음 코드 줄을 실행합니다.

Usage:
inertial.calibrate()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

reset_heading#

헤딩은 브레인이 향하는 방향을 도 단위로 나타낸 것입니다. reset_heading 은 브레인의 현재 헤딩을 0도로 재설정합니다.

이 방법을 사용하면 뇌의 현재 방향이 새로운 0도 방향으로 설정됩니다.

Usage:
inertial.reset_heading()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

reset_rotation#

회전은 뇌가 회전한 정도를 각도로 측정한 값입니다. reset_rotation 은 뇌의 현재 회전을 0도로 초기화합니다.

이 방법을 사용한 후, 두뇌는 새로운 0도 회전 값을 기준으로 향후 회전을 추적합니다.

Usage:
inertial.reset_rotation()

매개변수

설명

이 메서드에는 매개변수가 없습니다.

set_heading#

헤딩은 브레인이 향하는 방향을 나타내며, 0도에서 359도까지의 각도로 측정됩니다. set_heading 브레인의 현재 헤딩 값을 새로운 헤딩 값으로 변경합니다.

예를 들어, 뇌가 오른쪽을 향하고 있다면, 방향을 0도로 설정하면 오른쪽을 향한 위치가 새로운 0도가 됩니다. 그러면 뇌는 이 새로운 방향을 기준으로 다른 방향을 추적할 수 있습니다.

Usage:
inertial.set_heading(heading)

매개변수

설명

heading

브레인에 설정할 방향 값(도)입니다. 0에서 359 사이의 정수여야 합니다.

set_rotation#

회전은 브레인이 회전한 정도를 각도로 나타낸 것입니다. 헤딩과 달리 회전은 359도를 초과하거나 0도 미만으로 감소할 수 있습니다. 프로젝트 시작 시 회전 값은 0도로 설정됩니다. set_rotation 명령어를 사용하면 브레인의 현재 회전 값을 새로운 값으로 변경할 수 있습니다.

예를 들어, 뇌가 오른쪽으로 두 바퀴를 완전히 돌았다면 회전 값은 720도가 됩니다. 회전 값을 0도로 설정하면 회전 값이 720도에서 0도로 초기화됩니다. 그러면 뇌는 이 새로운 값을 기준으로 회전을 추적할 수 있습니다.

Usage:
inertial.set_rotation(rotation)

매개변수

설명

rotation

뇌의 회전 값을 도 단위로 설정합니다. 정수 값을 입력할 수 있습니다.

운동#

get_acceleration#

가속도는 뇌가 얼마나 빠르게 움직이거나 느려지는지를 나타냅니다. get_acceleration 선택한 축에 대한 뇌의 가속도를 -4.0G에서 4.0G 사이의 값으로 반환합니다.

G 가속도를 측정하는 단위입니다. 1G는 가만히 앉아 있을 때 중력으로부터 느끼는 가속도와 거의 같습니다.

해당 값은 선택한 축의 가속도 방향에 따라 양수 또는 음수가 될 수 있습니다. 축 옵션은 X, Y, Z 입니다.

Usage:
inertial.get_acceleration(axis)

매개변수

설명

axis

가속도를 측정할 축은 X, Y또는 Z 입니다.

# Build Used: Super Code Base 2.0
def main():
    # Display the acceleration after moving.
    drivetrain.set_drive_velocity(100)
    console.print("Resting: ")
    console.print(inertial.get_acceleration(X), precision=2)
    console.new_line()
    wait(1, SECONDS)
    drivetrain.drive_for(FORWARD, 500, MM, wait=False)
    wait(0.20, SECONDS)
    console.print("Startup: ")
    console.print(inertial.get_acceleration(X), precision=2)

# Start threads — Do not delete
start_thread(main)