เซ็นเซอร์การหมุน#

การแนะนำ#

คลาส rotation ใช้สำหรับควบคุมและเข้าถึงข้อมูลจากเซ็นเซอร์การหมุน V5

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

มอเตอร์มีตัวเข้ารหัสในตัวที่สามารถติดตามการหมุนของตัวเองได้ เซ็นเซอร์วัดการหมุนทำงานเหมือนตัวเข้ารหัสภายนอกที่สามารถติดตามการหมุนของเพลาแยกต่างหากได้

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

เซ็นเซอร์วัดการหมุนนี้สามารถใช้ได้กับเพลา VEX มาตรฐานขนาด 1/8 นิ้ว และ 1/4 นิ้ว

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

rotation(
    int32_t index,
    bool    reverse = false );

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

Destroys the rotation object and releases associated resources.

virtual ~rotation();

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

พารามิเตอร์

พิมพ์

คำอธิบาย

index

int32_t

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

reverse

bool

ตัวเลือกเสริม: จะกลับทิศทางการแสดงผลของเซ็นเซอร์การหมุนหรือไม่:

  • true — กลับทิศทางของค่ามุมและตำแหน่งที่รายงาน
  • false (ค่าเริ่มต้น) — รายงานค่ามุมและตำแหน่งในทิศทางมาตรฐาน

ตัวอย่าง#

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

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

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

  • setPosition — ตั้งค่าตำแหน่งปัจจุบันของเซ็นเซอร์การหมุนเป็นค่าที่กำหนด

  • angle — คืนค่ามุมปัจจุบันของเพลาจาก 0 เป็น 359.99 องศา

  • position — ส่งคืนระยะทางที่เพลาหมุนเป็นองศาหรือรอบ

  • velocity — ส่งคืนความเร็วในการหมุนของเพลา

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

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

setPosition#

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

ตำแหน่งคือระยะการหมุนของเพลาในระหว่างโครงการ การตั้งค่าตำแหน่งจะเปลี่ยนค่าตำแหน่งปัจจุบันโดยไม่ต้องขยับเพลา

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

value

double

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

units

rotationUnits

The position unit:

  • deg / degrees — degrees
  • turns / rev — turns

Return Values

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

angle#

ส่งคืนค่ามุมปัจจุบันของเพลา

ฟังก์ชัน Angle จะรายงานตำแหน่งสัมบูรณ์ของเพลาภายในหนึ่งรอบการหมุน โดยมีค่าตั้งแต่ 0 ถึง 359.99 องศา และจะไม่รีเซ็ตเมื่อเริ่มโครงการใหม่หรือเมื่อปิดเครื่องหุ่นยนต์

Available Functions
double angle( rotationUnits units = degrees );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

units

rotationUnits

ตัวเลือกเสริม หน่วยของมุม:

  • deg / degrees (ค่าเริ่มต้น) — องศา
  • turns / rev — รอบ

Return Values

ส่งคืนค่า double ซึ่งแสดงถึงมุมปัจจุบันของเพลาในหน่วยที่ระบุ

Examples
// Get the current angle of the shaft
  double angle = Rotation1.angle(degrees);

  // Print the current angle of the shaft to the
  // Brain's screen.
  Brain.Screen.print(angle);

position#

ส่งคืนค่าว่าเพลาหมุนไปไกลแค่ไหน

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

Available Functions
double position( rotationUnits units );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

units

rotationUnits

The position unit:

  • deg / degrees — degrees
  • turns / rev — turns

Return Values

ส่งคืนค่า double ซึ่งแสดงถึงระยะการหมุนของเพลาในหน่วยที่ระบุ

velocity#

ส่งคืนค่าความเร็วในการหมุนของเพลา

Available Functions
double velocity( velocityUnits units );

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

units

velocityUnits

หน่วยความเร็ว:

  • rpm — รอบต่อนาที
  • dps — องศาต่อวินาที

Return Values

ส่งคืนค่า double ซึ่งแสดงถึงความเร็วในการหมุนของเพลาในหน่วยที่ระบุ