Quán tính#

Giới thiệu#

Não bộ có một cảm biến quán tính tích hợp. Cảm biến này có thể đo lường chuyển động hoặc sự xoay chuyển của não bộ.

Cảm biến quán tính sử dụng hai bộ phận để thực hiện điều này. Con quay hồi chuyển đo lường sự quay, chẳng hạn như hướng mà bộ não đang đối mặt và mức độ quay. Gia tốc kế đo lường những thay đổi trong chuyển động, chẳng hạn như tăng tốc, giảm tốc hoặc dừng đột ngột trong một vụ va chạm.

Các phương pháp quán tính có thể được sử dụng để theo dõi các khúc cua, thiết lập lại giá trị hướng hoặc vòng quay, đo độ nghiêng, độ dốc và độ lệch hướng, và báo cáo gia tốc.

Có nhiều cách để lập trình cảm biến quán tính. Dưới đây là danh sách tất cả các phương pháp lập trình cảm biến quán tính:

Định hướng — Quay trở lại và thiết lập hướng mà não đang đối diện, xoay hoặc nghiêng.

  • get_heading — Trả về hướng mà Brain đang đối mặt, từ 0 đến 359 độ.

  • get_rotation — Trả về mức độ xoay của Brain.

  • get_yaw — Trả về mức độ Brain đã quay sang trái hoặc phải so với vị trí ban đầu của nó.

  • get_roll — Trả về mức độ nghiêng của não sang trái hoặc phải.

  • get_pitch — Trả về mức độ nghiêng của não về phía trước hoặc phía sau.

  • calibrate — Hiệu chỉnh cảm biến quán tính của não.

  • reset_heading — Đặt lại hướng hiện tại của Brain về 0 độ.

  • reset_rotation — Đặt lại góc quay hiện tại của Brain về 0 độ.

  • set_heading — Đặt hướng hiện tại của Brain thành một giá trị hướng mới.

  • set_rotation — Đặt độ xoay hiện tại của Brain thành một giá trị xoay mới.

Chuyển động — Phản ánh cách não bộ đang vận động.

  • get_acceleration — Trả về tốc độ tăng hoặc giảm của Brain trên trục đã chọn.

Định hướng#

get_heading#

Hướng (heading) là hướng mà bộ não đang đối mặt, được đo bằng độ từ 0 đến 359. get_heading trả về hướng hiện tại của bộ não.

Hướng ban đầu là 0 độ. Nếu bộ não quay quá 359 độ, hướng sẽ quay trở lại 0 độ.

Usage:
inertial.get_heading()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

get_rotation#

Góc quay là mức độ não bộ xoay, được đo bằng độ. Không giống như hướng, góc quay có thể tăng lên quá 359 độ hoặc giảm xuống dưới 0 độ. Khi bắt đầu một dự án, giá trị góc quay được đặt là 0 độ. Hàm get_rotation trả về góc quay hiện tại của não bộ.

Xoay sang phải sẽ làm tăng góc quay, và xoay sang trái sẽ làm giảm góc quay. Ví dụ, xoay hai vòng sang phải sẽ tạo ra góc quay 720 độ. Xoay một vòng sang trái từ vị trí 0 độ sẽ tạo ra góc quay -360 độ.

Usage:
inertial.get_rotation()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

get_yaw#

Góc Yaw là mức độ não bộ quay sang trái hoặc phải so với vị trí ban đầu, được đo bằng độ. get_yaw trả về giá trị góc yaw hiện tại của não bộ.

Rẽ phải làm tăng giá trị góc lệch hướng (yaw), và rẽ trái làm giảm giá trị góc lệch hướng. Góc lệch hướng hữu ích để kiểm tra việc rẽ trái và rẽ phải mà không cần sử dụng giá trị hướng đã được làm tròn.

Usage:
inertial.get_yaw()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

get_roll#

Roll là mức độ nghiêng của não sang trái hoặc phải, được đo bằng độ. get_roll trả về giá trị roll hiện tại của não.

Khi não bộ hướng về phía trước, nghiêng sang trái sẽ làm tăng giá trị cuộn, và nghiêng sang phải sẽ làm giảm giá trị cuộn.

Usage:
inertial.get_roll()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

get_pitch#

Góc nghiêng (Pitch) là mức độ não bộ nghiêng về phía trước hoặc phía sau, được đo bằng độ. get_pitch trả về giá trị góc nghiêng hiện tại của não bộ.

Khi não bộ hướng về phía trước, nghiêng về phía trước sẽ làm tăng giá trị cao độ, và nghiêng về phía sau sẽ làm giảm giá trị cao độ.

Usage:
inertial.get_pitch()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

calibrate#

calibrate hiệu chỉnh Cảm biến quán tính của não.

Hiệu chuẩn giúp Cảm biến quán tính đo lường các hướng quay một cách chính xác. Giữ cho thiết bị Brain đứng yên trong khoảng 2 giây trong quá trình hiệu chuẩn. Nếu thiết bị Brain di chuyển trong quá trình hiệu chuẩn, các giá trị hướng, xoay, góc lệch hướng, góc nghiêng và góc chúc có thể không được đo chính xác.

Dự án sẽ chờ đến khi quá trình hiệu chuẩn hoàn tất trước khi dòng mã tiếp theo được thực thi.

Usage:
inertial.calibrate()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

reset_heading#

Hướng (heading) là hướng mà não đang đối mặt, được đo bằng độ. Lệnh reset_heading đặt lại hướng hiện tại của não về 0 độ.

Sau khi áp dụng phương pháp này, hướng hiện tại của não bộ sẽ trở thành hướng 0 độ mới.

Usage:
inertial.reset_heading()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

reset_rotation#

Độ xoay là mức độ não bộ quay, được đo bằng độ. Lệnh reset_rotation đặt lại độ xoay hiện tại của não về 0 độ.

Sau khi phương pháp này được sử dụng, bộ não sẽ theo dõi các lượt rẽ tiếp theo từ giá trị xoay 0 độ mới.

Usage:
inertial.reset_rotation()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

set_heading#

Hướng (heading) là hướng mà bộ não đang đối mặt, được đo bằng độ từ 0 đến 359. Lệnh set_heading thay đổi hướng hiện tại của bộ não thành một giá trị hướng mới.

Ví dụ, nếu não bộ đang quay mặt sang phải, việc đặt hướng về 0 độ sẽ biến vị trí quay mặt sang phải đó thành 0 độ mới. Sau đó, não bộ có thể theo dõi các hướng khác dựa trên hướng mới đó.

Usage:
inertial.set_heading(heading)

Thông số

Sự miêu tả

heading

Giá trị góc nghiêng, tính bằng độ, cần thiết lập cho bộ não. Giá trị này có thể là một số nguyên từ 0 đến 359.

set_rotation#

Góc xoay là mức độ não bộ quay, được đo bằng độ. Không giống như hướng, góc xoay có thể tăng lên quá 359 độ hoặc giảm xuống dưới 0 độ. Khi bắt đầu một dự án, giá trị góc xoay được đặt là 0 độ. Lệnh set_rotation thay đổi góc xoay hiện tại của não bộ thành một giá trị mới.

Ví dụ, nếu bộ não đã quay hai vòng hoàn chỉnh sang phải, giá trị quay của nó sẽ là 720 độ. Việc đặt giá trị quay về 0 độ sẽ thiết lập lại giá trị quay từ 720 về 0 độ. Sau đó, bộ não có thể theo dõi các chuyển động quay dựa trên giá trị mới này.

Usage:
inertial.set_rotation(rotation)

Thông số

Sự miêu tả

rotation

Giá trị xoay, tính bằng độ, cần thiết lập cho bộ não. Giá trị này có thể là một số nguyên.

Cử động#

get_acceleration#

Gia tốc thể hiện tốc độ tăng hoặc giảm của não. get_acceleration get_acceleration` trả về gia tốc của não trên trục đã chọn, từ -4,0 G đến 4,0 G.

A G là đơn vị dùng để đo gia tốc. 1 G xấp xỉ gia tốc trọng trường mà bạn cảm nhận được khi ngồi yên.

Giá trị có thể dương hoặc âm tùy thuộc vào hướng gia tốc trên trục đã chọn. Các tùy chọn trục là X, Y, và Z.

Usage:
inertial.get_acceleration(axis)

Thông số

Sự miêu tả

axis

Trục dùng để đo gia tốc: X, Y, hoặc 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)