เซ็นเซอร์ไจโร#
การแนะนำ#
คลาส gyro ใช้ร่วมกับเซ็นเซอร์ไจโรเพื่อวัดการเคลื่อนที่แบบหมุนรอบแกนเดียว สามารถติดตามทิศทางที่หุ่นยนต์หันหน้าไปและระยะการหมุนของหุ่นยนต์ได้
คอนสตรัคเตอร์คลาส#
gyro(
int32_t index );
ตัวทำลายคลาส#
ทำลายวัตถุ gyro และปล่อยทรัพยากรที่เกี่ยวข้อง
virtual ~gyro();
พารามิเตอร์#
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
พอร์ตอัจฉริยะที่เชื่อมต่อกับเซ็นเซอร์ไจโร จะเขียนในรูปแบบ |
ตัวอย่าง#
// 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 Functionsvoid calibrate();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesการปรับเทียบช่วยให้เซ็นเซอร์ไจโรวัดการเลี้ยวได้อย่างถูกต้อง ควรวางเซ็นเซอร์ให้นิ่งขณะทำการปรับเทียบ หากเซ็นเซอร์เคลื่อนที่ขณะทำการปรับเทียบ ค่าทิศทาง การหมุน และอัตราเร็วอาจวัดการเลี้ยวไม่ถูกต้อง
// Calibrate the Gyro Sensor before turning.
Gyro1.calibrate();
setHeading#
ตั้งค่าทิศทางปัจจุบันของเซ็นเซอร์ไจโรให้เป็นค่าที่กำหนดไว้
ทิศทาง (Heading) คือทิศทางที่เซ็นเซอร์ไจโรหันไป โดยวัดได้ตั้งแต่ 0 ถึง 359.99 องศา การตั้งค่าทิศทางจะเปลี่ยนค่าอ้างอิงทิศทางปัจจุบันของเซ็นเซอร์
Available Functionsvoid setHeading(
double value,
rotationUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ค่าที่จะใช้สำหรับหัวข้อใหม่ |
|
|
หน่วยที่ใช้แทนทิศทาง:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
setRotation#
ตั้งค่าการหมุนปัจจุบันของเซ็นเซอร์ไจโรให้เป็นค่าที่กำหนดไว้
ค่าการหมุนคือจำนวนรอบที่เซ็นเซอร์ไจโรหมุนไป ซึ่งแตกต่างจากค่าทิศทาง ค่าการหมุนสามารถเพิ่มขึ้นเกิน 359.99 องศา หรือลดลงต่ำกว่า 0 องศาได้
Available Functionsvoid setRotation(
double value,
rotationUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ค่าที่จะใช้สำหรับค่าการหมุนใหม่ |
|
|
หน่วยที่แสดงค่าการหมุน:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
heading#
ส่งคืนค่าทิศทางปัจจุบันของเซ็นเซอร์ไจโร
ค่าทิศทาง (Heading) คือทิศทางที่เซ็นเซอร์ไจโรหันไป โดยวัดได้ตั้งแต่ 0 ถึง 359.99 องศา หากเซ็นเซอร์หมุนเลย 359.99 องศา ค่าทิศทางจะวนกลับไปที่ 0 องศา
Available Functionsdouble heading(
rotationUnits units = degrees );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้แสดงทิศทาง:
|
ส่งคืนค่า double ซึ่งแสดงถึงทิศทางปัจจุบันของเซ็นเซอร์ไจโรในหน่วยที่ระบุ โดยค่าเริ่มต้นคือ degrees
// 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 Functionsdouble rotation(
rotationUnits units = degrees );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่แสดงค่าการหมุน:
|
ส่งคืนค่า double ซึ่งแสดงค่าการหมุนปัจจุบันของเซ็นเซอร์ไจโรในหน่วยที่ระบุ โดยค่าเริ่มต้นคือ degrees
// Get the current rotation for the Gyro.
double value = Gyro1.rotation();
Brain.Screen.print(value);
rate#
ส่งคืนค่าอัตราการหมุนของเซ็นเซอร์ไจโร
อัตราการหมุน คือ ความเร็วในการหมุนของเซ็นเซอร์ไจโร ค่าที่ได้อาจเป็นบวกหรือลบ ขึ้นอยู่กับทิศทางการหมุนของเซ็นเซอร์
Available Functionsdouble rate(
rateUnits units = rateUnits::dps );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่แสดงอัตรา:
|
ส่งคืนค่า double ซึ่งแสดงถึงอัตราการเปลี่ยนแปลงปัจจุบันของเซ็นเซอร์ไจโรในหน่วยที่ระบุ โดยค่าเริ่มต้นคือ rateUnits::dps