เซ็นเซอร์ไจโร#

การแนะนำ#

คลาส gyro ใช้ร่วมกับเซ็นเซอร์ไจโรเพื่อวัดการเคลื่อนที่แบบหมุนรอบแกนเดียว สามารถติดตามทิศทางที่หุ่นยนต์หันหน้าไปและระยะการหมุนของหุ่นยนต์ได้

คอนสตรัคเตอร์คลาส#

gyro(
    int32_t index );

ตัวทำลายคลาส#

ทำลายวัตถุ gyro และปล่อยทรัพยากรที่เกี่ยวข้อง

virtual ~gyro();

พารามิเตอร์#

พารามิเตอร์

พิมพ์

คำอธิบาย

index

int32_t

พอร์ตอัจฉริยะที่เชื่อมต่อกับเซ็นเซอร์ไจโร จะเขียนในรูปแบบ PORTxโดยที่ x คือหมายเลขพอร์ต (ตัวอย่างเช่น PORT1)

ตัวอย่าง#

// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);

ฟังก์ชันสมาชิก#

คลาส gyro ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:

  • calibrate — ปรับเทียบเซ็นเซอร์ไจโร

  • setHeading — ตั้งค่าทิศทางปัจจุบันของเซ็นเซอร์ไจโรเป็นค่าทิศทางใหม่

  • setRotation — ตั้งค่าการหมุนปัจจุบันของเซ็นเซอร์ไจโรเป็นค่าการหมุนใหม่

  • heading — ส่งคืนทิศทางที่เซ็นเซอร์ไจโรหันไป

  • rotation — ส่งคืนระยะทางที่เซ็นเซอร์ไจโรหมุนไป

  • rate — ส่งคืนความเร็วในการหมุนของเซ็นเซอร์ไจโร

ก่อนเรียกใช้ฟังก์ชันสมาชิก gyro ใดๆ จะต้องสร้างอินสแตนซ์ gyro ก่อน ดังแสดงด้านล่าง:

/* This constructor is required when using VS Code.
Gyro Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);

calibrate#

ปรับเทียบเซ็นเซอร์ไจโร

Available Functions
void calibrate();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Notes
  • การปรับเทียบช่วยให้เซ็นเซอร์ไจโรวัดการเลี้ยวได้อย่างถูกต้อง ควรวางเซ็นเซอร์ให้นิ่งขณะทำการปรับเทียบ หากเซ็นเซอร์เคลื่อนที่ขณะทำการปรับเทียบ ค่าทิศทาง การหมุน และอัตราเร็วอาจวัดการเลี้ยวไม่ถูกต้อง

Examples
// Calibrate the Gyro Sensor before turning.
Gyro1.calibrate();

setHeading#

ตั้งค่าทิศทางปัจจุบันของเซ็นเซอร์ไจโรให้เป็นค่าที่กำหนดไว้

ทิศทาง (Heading) คือทิศทางที่เซ็นเซอร์ไจโรหันไป โดยวัดได้ตั้งแต่ 0 ถึง 359.99 องศา การตั้งค่าทิศทางจะเปลี่ยนค่าอ้างอิงทิศทางปัจจุบันของเซ็นเซอร์

Available Functions
void setHeading(
  double        value,
  rotationUnits units );

พารามิเตอร์

พิมพ์

คำอธิบาย

value

double

ค่าที่จะใช้สำหรับหัวข้อใหม่

units

rotationUnits

หน่วยที่ใช้แทนทิศทาง:

  • degrees
  • turns

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

setRotation#

ตั้งค่าการหมุนปัจจุบันของเซ็นเซอร์ไจโรให้เป็นค่าที่กำหนดไว้

ค่าการหมุนคือจำนวนรอบที่เซ็นเซอร์ไจโรหมุนไป ซึ่งแตกต่างจากค่าทิศทาง ค่าการหมุนสามารถเพิ่มขึ้นเกิน 359.99 องศา หรือลดลงต่ำกว่า 0 องศาได้

Available Functions
void setRotation(
  double        value,
  rotationUnits units );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

value

double

ค่าที่จะใช้สำหรับค่าการหมุนใหม่

units

rotationUnits

หน่วยที่แสดงค่าการหมุน:

  • degrees
  • turns

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

heading#

ส่งคืนค่าทิศทางปัจจุบันของเซ็นเซอร์ไจโร

ค่าทิศทาง (Heading) คือทิศทางที่เซ็นเซอร์ไจโรหันไป โดยวัดได้ตั้งแต่ 0 ถึง 359.99 องศา หากเซ็นเซอร์หมุนเลย 359.99 องศา ค่าทิศทางจะวนกลับไปที่ 0 องศา

Available Functions
double heading(
  rotationUnits units = degrees );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

units

rotationUnits

หน่วยที่ใช้แสดงทิศทาง:

  • degrees (ค่าเริ่มต้น)
  • turns

Return Values

ส่งคืนค่า double ซึ่งแสดงถึงทิศทางปัจจุบันของเซ็นเซอร์ไจโรในหน่วยที่ระบุ โดยค่าเริ่มต้นคือ degrees

Examples
// Get the current heading for the Gyro.
double value = Gyro1.heading();
Brain.Screen.print(value);

rotation#

ส่งคืนค่าการหมุนปัจจุบันของเซ็นเซอร์ไจโร

การหมุนคือจำนวนรอบที่เซ็นเซอร์ไจโรหมุนไป ต่างจากทิศทาง การหมุนสามารถเพิ่มขึ้นเกิน 359.99 องศา หรือลดลงต่ำกว่า 0 องศาได้ ตัวอย่างเช่น การหมุนไปทางขวา 2 รอบเต็ม จะได้ค่าการหมุน 720 องศา การหมุนไปทางซ้าย 1 รอบเต็มจาก 0 องศา จะได้ค่าการหมุน -360 องศา

Available Functions
double rotation(
  rotationUnits units = degrees );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

units

rotationUnits

หน่วยที่แสดงค่าการหมุน:

  • degrees (ค่าเริ่มต้น)
  • turns

Return Values

ส่งคืนค่า double ซึ่งแสดงค่าการหมุนปัจจุบันของเซ็นเซอร์ไจโรในหน่วยที่ระบุ โดยค่าเริ่มต้นคือ degrees

Examples
// Get the current rotation for the Gyro.
double value = Gyro1.rotation();
Brain.Screen.print(value);

rate#

ส่งคืนค่าอัตราการหมุนของเซ็นเซอร์ไจโร

อัตราการหมุน คือ ความเร็วในการหมุนของเซ็นเซอร์ไจโร ค่าที่ได้อาจเป็นบวกหรือลบ ขึ้นอยู่กับทิศทางการหมุนของเซ็นเซอร์

Available Functions
double rate(
  rateUnits units = rateUnits::dps );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

units

rateUnits

หน่วยที่แสดงอัตรา:

  • rateUnits::dps (ค่าเริ่มต้น) — องศาต่อวินาที
  • rateUnits::rpm — รอบต่อนาที

Return Values

ส่งคืนค่า double ซึ่งแสดงถึงอัตราการเปลี่ยนแปลงปัจจุบันของเซ็นเซอร์ไจโรในหน่วยที่ระบุ โดยค่าเริ่มต้นคือ rateUnits::dps