ระบบขับเคลื่อน#
การแนะนำ#
The drivetrain class controls how a robot drives and turns. A drivetrain is made of motors and wheels that work together to move the robot.
ระบบขับเคลื่อน drivetrain ไม่ใช้ เซ็นเซอร์ไจโร หรือ เซ็นเซอร์เฉื่อย สำหรับการเลี้ยวตามทิศทางหรือการหมุน มันสามารถขับเคลื่อนไปข้างหน้าหรือถอยหลัง และเลี้ยวซ้ายหรือขวาได้ แต่ไม่สามารถเลี้ยวไปยังทิศทางหรือการหมุนที่เฉพาะเจาะจงได้ สำหรับการเลี้ยวตามทิศทางและการหมุน ให้ใช้คลาส smartdrive
หน้านี้ใช้ myDrivetrain เป็นตัวอย่างชื่อระบบขับเคลื่อน โปรดแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ
คลาสที่สืบทอดมา#
คลาส drivetrain ทำหน้าที่เป็นคลาสพื้นฐานสำหรับคลาสที่สืบทอดต่อไปนี้:
smartdrive- สร้างระบบขับเคลื่อนที่รองรับเซ็นเซอร์ไจโรหรือเซ็นเซอร์เฉื่อย
ตัวสร้างคลาส#
1 - สร้างระบบขับเคลื่อนโดยใช้กลุ่มมอเตอร์
motor_groupรายการสำหรับด้านซ้ายและด้านขวาdrivetrain( motor_group &l, motor_group &r, double wheelTravel = 320, double trackWidth = 320, double wheelBase = 130, distanceUnits unit = mm, double externalGearRatio = 1.0 );
2 - สร้างระบบขับเคลื่อนโดยใช้มอเตอร์
motorที่มีอยู่สำหรับด้านซ้ายและด้านขวาdrivetrain( motor &l, motor &r, double wheelTravel = 320, double trackWidth = 320, double wheelBase = 130, distanceUnits unit = mm, double externalGearRatio = 1.0 );
ตัวทำลายคลาส#
ทำลายอ็อบเจ็กต์ drivetrain และปล่อยทรัพยากรที่เกี่ยวข้อง
virtual ~drivetrain();
พารามิเตอร์#
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
มอเตอร์ซ้ายและขวา หรือกลุ่มมอเตอร์ พารามิเตอร์ทั้งสองต้องใช้ประเภทเดียวกัน: อย่างใดอย่างหนึ่งคือ วัตถุ |
|
|
เส้นรอบวงของล้อระบบขับเคลื่อน ค่าเริ่มต้นคือ |
|
|
ระยะห่างระหว่างล้อซ้ายและล้อขวา ค่าเริ่มต้นคือ |
|
|
ระยะห่างระหว่างล้อหน้าและล้อหลัง ค่าเริ่มต้นคือ |
|
|
หน่วยสำหรับ |
|
|
อัตราทดเกียร์ที่ใช้ปรับระยะทางการขับเคลื่อนหากมีการใช้เกียร์ ค่าเริ่มต้นคือ |
ตัวอย่าง#
// Create the left and right motor objects.
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);
// Create the drivetrain object.
drivetrain myDrivetrain = drivetrain(
leftMotor, // left motor
rightMotor, // right motor
259.34, // wheelTravel
320, // trackWidth
40, // wheelBase
mm, // unit
1.0 ); // externalGearRatio
ฟังก์ชันสมาชิก#
คลาส drivetrain ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:
การกระทำ - ขยับและหมุนหุ่นยนต์
drive- เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตลอดไปdriveFor- เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตามระยะทางที่กำหนดturn- หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตลอดไปturnFor- หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตามจำนวนองศาหรือรอบที่กำหนดstop- หยุดการเคลื่อนที่ของหุ่นยนต์
การตั้งค่า - ปรับการตั้งค่าระบบขับเคลื่อน
setDriveVelocity- บอกหุ่นยนต์ว่าจะขับเร็วแค่ไหนsetTurnVelocity- บอกหุ่นยนต์ว่าจะเลี้ยวเร็วแค่ไหนsetStopping- บอกวิธีที่หุ่นยนต์จะหยุดเคลื่อนที่: โดยการเบรก การปล่อยให้ไหลไปเอง หรือการหยุดนิ่งsetTimeout- ตั้งค่าระยะเวลาที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น
ค่าต่างๆ - ตรวจสอบสถานะการเคลื่อนไหว
isDone- ส่งคืนค่าบูลีนว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่isMoving- ส่งคืนว่าหุ่นยนต์กำลังเคลื่อนที่หรือไม่ ในรูปแบบค่าบูลีนvelocity- ส่งคืนความเร็วในการขับเคลื่อนของหุ่นยนต์current- ส่งคืนกระแสไฟฟ้าที่ระบบขับเคลื่อนใช้power- ส่งคืนอัตราการใช้พลังงานของระบบขับเคลื่อนtorque- ส่งคืนค่าแรงบิดที่ระบบขับเคลื่อนใช้efficiency- ส่งคืนประสิทธิภาพการใช้พลังงานของระบบขับเคลื่อนtemperature- ส่งคืนอุณหภูมิของระบบขับเคลื่อนvoltage- ส่งคืนแรงดันไฟฟ้าของระบบขับเคลื่อน
ก่อนเรียกใช้ฟังก์ชันสมาชิก drivetrain ใดๆ จะต้องสร้างอ็อบเจ็กต์ drivetrain ก่อน
/* This constructor is required when using VS Code.
Drivetrain configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the left and right motor objects.
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);
// Create the drivetrain object.
drivetrain myDrivetrain = drivetrain(
leftMotor, // left motor
rightMotor, // right motor
259.34, // wheelTravel
320, // trackWidth
40, // wheelBase
mm, // unit
1.0 ); // externalGearRatio
การกระทำ#
ขับ#
คำสั่ง drive จะทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด หุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การเลี้ยวหรือการหยุด
1 - ขับเคลื่อนโดยใช้ความเร็วในการขับเคลื่อนปัจจุบัน
void drive( directionType dir );
Parameters2 - ขับเคลื่อนด้วยความเร็วที่กำหนด
void drive( directionType dir, double velocity, velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
|
ความเร็วในการขับเคลื่อนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesdriveคือคำสั่งที่ไม่รอ โปรเจ็กต์จะรันโค้ดบรรทัดถัดไปทันทีหุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะมีการเรียก
stopหรือฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่นทำงานisDoneและisMovingไม่ได้ใช้กับdriveเพราะdriveไม่มีระยะเป้าหมาย
// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
ไดรฟ์ฟอร์#
คำสั่ง driveFor จะเคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังเป็นระยะทางที่กำหนด โครงการจะรอจนกว่าหุ่นยนต์จะหยุดเคลื่อนที่ก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
1 - ขับเคลื่อนไปในทิศทางที่กำหนดเป็นระยะทางโดยใช้ความเร็วในการขับเคลื่อนปัจจุบัน
bool driveFor( directionType dir, double distance, distanceUnits units, bool waitForCompletion = true );
2 - ขับเคลื่อนไปในทิศทางตามค่าระยะทางโดยใช้ความเร็วในการขับเคลื่อนปัจจุบัน
bool driveFor( double distance, distanceUnits units, bool waitForCompletion = true );
3 - ขับเคลื่อนไปในทิศทางตามค่าระยะทางด้วยความเร็วที่กำหนด
bool driveFor( double distance, distanceUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Parameters4 - ขับเคลื่อนไปในทิศทางที่กำหนด เป็นระยะทางที่กำหนด ด้วยความเร็วที่กำหนด
bool driveFor( directionType dir, double distance, distanceUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
|
ระยะทางที่หุ่นยนต์ขับเคลื่อนไปได้ |
|
|
หน่วยวัดระยะทาง: |
|
|
ความเร็วในการขับเคลื่อนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
|
|
|
ส่งคืนค่าบูลีนว่าหุ่นยนต์ไปถึงระยะทางเป้าหมายหรือไม่
true- หุ่นยนต์ไปถึงระยะทางเป้าหมายแล้วfalse- หุ่นยนต์ไม่ได้ทำการเคลื่อนไหวจนเสร็จสิ้น หรือฟังก์ชันส่งค่ากลับก่อนที่การเคลื่อนไหวจะเสร็จสมบูรณ์ เนื่องจากwaitForCompletionถูกตั้งค่าเป็นfalse
การเรียกใช้ฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่นในขณะที่
driveForกำลังทำงานอยู่ จะขัดจังหวะการเคลื่อนที่ปัจจุบันdriveForใช้ระยะทางเป้าหมาย ดังนั้นisDoneและisMovingสามารถใช้ร่วมกับมันได้
// Drive 200 mm, then back 200 mm.
myDrivetrain.driveFor(forward, 200, mm);
myDrivetrain.driveFor(reverse, 200, mm);
เปลี่ยน#
turn จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเรื่อยๆ จนกว่าจะได้รับคำสั่งอื่น เช่น ขับเคลื่อนหรือหยุด
1 - หมุนโดยใช้ความเร็วในการหมุนปัจจุบัน
void turn( turnType dir );
Parameters2 - หมุนด้วยความเร็วที่กำหนด
void turn( turnType dir, double velocity, velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางที่หุ่นยนต์หมุน: |
|
|
ความเร็วในการหมุนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesturnคือไม่รอ โปรเจ็กต์จะรันโค้ดบรรทัดถัดไปทันทีหุ่นยนต์จะหมุนต่อไปจนกว่าจะมีการเรียก
stopหรือฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่นทำงานisDoneและisMovingไม่ได้ใช้กับturnเพราะturnไม่มีมุมเป้าหมาย
// Turn right, then left, then stop.
myDrivetrain.turn(right);
wait(2, seconds);
myDrivetrain.turn(left);
wait(2, seconds);
myDrivetrain.stop();
เทิร์นฟอร์#
turnFor หมุนหุ่นยนต์ไปทางซ้ายหรือขวาเป็นจำนวนองศา รอบ หรือหน่วยดิบที่กำหนด การหมุนจะสัมพันธ์กับตำแหน่งปัจจุบันของหุ่นยนต์ โครงการจะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
1 - หมุนตามมุมที่กำหนดโดยใช้ความเร็วในการหมุนปัจจุบัน
bool turnFor( double angle, rotationUnits units, bool waitForCompletion = true );
2 - เลี้ยวไปในทิศทางที่กำหนดด้วยมุมที่กำหนด โดยใช้ความเร็วในการเลี้ยวปัจจุบัน
bool turnFor( turnType dir, double angle, rotationUnits units, bool waitForCompletion = true );
3 - หมุนตามมุมที่กำหนดด้วยความเร็วที่กำหนด
bool turnFor( double angle, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Parameters4 - เลี้ยวไปในทิศทางที่กำหนดด้วยมุมและความเร็วที่กำหนด
bool turnFor( turnType dir, double angle, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางที่หุ่นยนต์หมุน: |
|
|
ระยะการหมุนของหุ่นยนต์ |
|
|
หน่วยการหมุน: |
|
|
ความเร็วในการหมุนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
|
|
|
ส่งคืนค่าบูลีนว่าหุ่นยนต์ทำมุมได้ตามเป้าหมายหรือไม่
true- หุ่นยนต์ทำมุมได้ตามเป้าหมายแล้วfalse- หุ่นยนต์ไม่ได้ทำการเลี้ยวเสร็จสิ้น หรือฟังก์ชันส่งค่ากลับก่อนที่การเลี้ยวจะเสร็จสมบูรณ์ เนื่องจากwaitForCompletionถูกตั้งค่าเป็นfalse
การเรียกใช้ฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่นในขณะที่ฟังก์ชัน
turnForกำลังทำงานอยู่ จะขัดจังหวะการเคลื่อนที่ปัจจุบันturnForใช้มุมเป้าหมาย ดังนั้นisDoneและisMovingสามารถใช้ร่วมกับมันได้
// Turn right, then left.
myDrivetrain.turnFor(right, 90, degrees);
wait(1, seconds);
myDrivetrain.turnFor(left, 90, degrees);
หยุด#
stop จะหยุดการเคลื่อนที่ของหุ่นยนต์ หากมีการกำหนดโหมดการหยุดไว้ โหมดนั้นจะควบคุมวิธีการหยุดของหุ่นยนต์สำหรับการเรียกใช้ฟังก์ชันนี้
1 - หยุดระบบขับเคลื่อนโดยใช้โหมดการหยุดปัจจุบัน
void stop();
Parameters2 - หยุดระบบขับเคลื่อนโดยใช้โหมดการหยุดที่กำหนดไว้
void stop( brakeType mode );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
วิธีที่หุ่นยนต์จะหยุด:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Examples// Drive forward, then coast to a stop.
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);
ตัวกลายพันธุ์#
ตั้งค่าความเร็วในการขับขี่#
คำสั่ง setDriveVelocity จะบอกหุ่นยนต์ว่าควรขับเร็วแค่ไหน โดยเปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์ขับเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์ขับช้าลง
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์ขับเคลื่อนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์ขับเคลื่อนได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์ขับเคลื่อนได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Available Functionsvoid setDriveVelocity(
double velocity,
velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ความเร็วในการขับเคลื่อนตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesความเร็วในการขับเคลื่อนจะถูกนำไปใช้โดยฟังก์ชันการเคลื่อนที่ของระบบส่งกำลังในภายหลัง เว้นแต่จะมีการระบุความเร็วที่เฉพาะเจาะจงไว้ในคำสั่งเรียกใช้ฟังก์ชัน
// Drive forward, then coast to a stop.
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);
ตั้งค่าความเร็วในการเลี้ยว#
setTurnVelocity บอกหุ่นยนต์ว่าควรเลี้ยวเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวช้าลง
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์หมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Available Functionsvoid setTurnVelocity(
double velocity,
velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesความเร็วในการเลี้ยวจะถูกนำไปใช้โดยฟังก์ชันการเลี้ยวของระบบขับเคลื่อนในภายหลัง เว้นแต่จะมีการระบุความเร็วที่เฉพาะเจาะจงไว้ในคำสั่งเรียกใช้ฟังก์ชัน
// Try default, slow, then fast.
myDrivetrain.turnFor(right, 360, degrees);
wait(1, seconds);
myDrivetrain.setTurnVelocity(20, percent);
myDrivetrain.turnFor(right, 360, degrees);
wait(1, seconds);
myDrivetrain.setTurnVelocity(100, percent);
myDrivetrain.turnFor(right, 360, degrees);
ตั้งค่าการหยุด#
setStopping กำหนดวิธีการหยุดหุ่นยนต์: โดยการเบรก การปล่อยให้ไหลไปเอง หรือการหยุดนิ่ง
void setStopping(
brakeType mode );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
วิธีที่หุ่นยนต์จะหยุด:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesโหมดการหยุดจะถูกใช้โดยการเรียก
stopในภายหลัง เว้นแต่จะมีการระบุโหมดการหยุดเฉพาะในการเรียกฟังก์ชันหากไม่ได้ใช้ฟังก์ชันนี้ หุ่นยนต์จะใช้เบรก
brakeเมื่อหยุด
ตั้งค่าหมดเวลา#
setTimeout กำหนดระยะเวลาที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากหุ่นยนต์ไม่สามารถทำการเคลื่อนไหวให้เสร็จสิ้นภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้หุ่นยนต์ติดอยู่กับการเคลื่อนไหวใดๆ
void setTimeout(
int32_t time,
timeUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ระยะเวลาที่หุ่นยนต์สามารถพยายามทำท่าทางให้เสร็จสมบูรณ์ ค่านี้ควรเป็นจำนวนเต็มบวก |
|
|
หน่วยของเวลา: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesการหมดเวลาจะใช้ได้เฉพาะกับฟังก์ชันระบบขับเคลื่อนที่เคลื่อนที่ไปยังเป้าหมาย เช่น
driveForและturnFor
// Turn right after driving forward.
myDrivetrain.setTimeout(1, seconds);
myDrivetrain.driveFor(forward, 25, inches);
myDrivetrain.turnFor(right, 90, degrees);
ผู้รับ#
เสร็จแล้ว#
isDone จะส่งคืนค่าบูลีนว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้
bool isDone( void );
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuestrue- หุ่นยนต์เคลื่อนที่เสร็จแล้วfalse- หุ่นยนต์ยังคงเคลื่อนที่อยู่
กำลังย้าย#
isMoving จะส่งคืนค่าบูลีนว่าหุ่นยนต์กำลังเคลื่อนที่หรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้
virtual bool isMoving( void );
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuestrue- หุ่นยนต์กำลังเคลื่อนที่false- หุ่นยนต์ไม่เคลื่อนที่
ความเร็ว#
ค่า velocity จะแสดงความเร็วในการขับเคลื่อนของหุ่นยนต์
สามารถแสดงค่าความเร็วเป็นเปอร์เซ็นต์ ในหน่วย rpmหรือ dpsค่าบวกหมายความว่าหุ่นยนต์กำลังเคลื่อนที่ไปข้างหน้า ค่าลบหมายความว่าหุ่นยนต์กำลังเคลื่อนที่ถอยหลัง
double velocity(
velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่จะส่งคืนความเร็วเป็น: |
ส่งคืนค่าความเร็วของระบบขับเคลื่อนเป็นค่า double ในหน่วยที่เลือก
// Show velocity before and during motion.
Brain.Screen.print("Resting: %f", myDrivetrain.velocity(percent));
myDrivetrain.drive(forward, 100, velocityUnits::pct);
wait(1, seconds);
Brain.Screen.newLine();
Brain.Screen.print("Moving: %f", myDrivetrain.velocity(percent));
myDrivetrain.stop();
ปัจจุบัน#
current returns how much electrical current the drivetrain is using. Current is the amount of electricity flowing through the drivetrain. It can be returned in amps (amperes) or as a percentage, depending on the unit.
ค่ากระแสไฟฟ้าที่สูงขึ้นหมายความว่าระบบขับเคลื่อนใช้กระแสไฟฟ้ามากขึ้น ซึ่งอาจเกิดขึ้นเมื่อหุ่นยนต์กำลังดันกับวัตถุหรือพยายามเคลื่อนที่เมื่อติดอยู่
สามารถใช้ตรวจสอบได้ว่าระบบขับเคลื่อนทำงานหนักเกินไปหรือไม่ขณะเคลื่อนที่ หากกระแสไฟฟ้าสูงต่อเนื่อง ระบบขับเคลื่อนอาจร้อนขึ้นหรือใช้พลังงานอย่างไม่มีประสิทธิภาพ
Available Functions1 - ส่งคืนกระแสไฟฟ้าของระบบขับเคลื่อนในหน่วยแอมป์
double current( currentUnits units = currentUnits::amp );
Parameters2 - ส่งคืนกระแสไฟฟ้าของระบบขับเคลื่อนเป็นเปอร์เซ็นต์
double current( percentUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่จะส่งกระแสไฟกลับ: |
|
|
หน่วยที่จะส่งคืนกระแสไฟฟ้า: |
ส่งคืนค่ากระแสไฟฟ้าของระบบขับเคลื่อนเป็นค่า double ในหน่วยที่เลือก
พลัง#
ค่า power แสดงปริมาณพลังงานที่ระบบขับเคลื่อนใช้ โดยวัดเป็นวัตต์ ค่า Power แสดงให้เห็นว่าระบบขับเคลื่อนใช้พลังงานเร็วแค่ไหน
ค่ากำลังไฟฟ้าที่สูงขึ้นหมายความว่าระบบขับเคลื่อนใช้พลังงานเร็วขึ้น ซึ่งอาจเกิดขึ้นเมื่อหุ่นยนต์กำลังดันกับวัตถุหรือพยายามเคลื่อนที่เมื่อติดอยู่
สามารถใช้สิ่งนี้เพื่อเปรียบเทียบการเคลื่อนไหวหรือตรวจสอบว่าระบบขับเคลื่อนทำงานหนักเกินไปหรือไม่ หากกำลังไฟสูงอยู่ตลอดเวลา ระบบขับเคลื่อนอาจร้อนขึ้นหรือใช้พลังงานอย่างไม่มีประสิทธิภาพมากขึ้น
Available Functionsdouble power(
powerUnits units = powerUnits::watt );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยพลังงาน: |
ส่งคืนกำลังของระบบขับเคลื่อนเป็นหน่วยวัตต์ ( double)
แรงบิด#
แรงบิดแสดงให้เห็นว่าระบบส่งกำลังสามารถผลักหรือดึงได้แรงแค่ไหนในขณะที่ล้อหมุน
ค่า torque torque จะแสดงค่าแรงบิดที่ระบบส่งกำลังใช้งาน โดยวัดเป็นนิวตันเมตร (Nm) หรือนิ้วปอนด์ (InLb)
ค่าแรงบิดที่สูงขึ้นหมายความว่าระบบขับเคลื่อนกำลังผลักหรือดึงแรงขึ้น ซึ่งอาจเกิดขึ้นเมื่อหุ่นยนต์กำลังผลักกับวัตถุหรือพยายามเคลื่อนที่เมื่อติดอยู่
สามารถใช้ตรวจสอบได้ว่าระบบขับเคลื่อนทำงานหนักเกินไปหรือไม่ หรือเพื่อเปรียบเทียบว่าการเคลื่อนไหวแต่ละแบบต้องการแรงผลักมากแค่ไหน
Available Functionsdouble torque(
torqueUnits units = torqueUnits::nm );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้ในการแสดงค่าแรงบิด: |
ส่งคืนค่าแรงบิดของระบบขับเคลื่อนเป็น double ในหน่วยที่เลือก
ประสิทธิภาพ#
ค่าประสิทธิภาพ efficiency เป็นเปอร์เซ็นต์ตั้งแต่ 0% ถึง 100%
ประสิทธิภาพแสดงให้เห็นว่าพลังงานของระบบขับเคลื่อนถูกนำไปใช้ในการเคลื่อนที่มากน้อยเพียงใด ค่าประสิทธิภาพที่สูงขึ้นหมายความว่าพลังงานของระบบขับเคลื่อนถูกนำไปใช้ในการเคลื่อนที่มากขึ้น ค่าประสิทธิภาพที่ต่ำลงอาจเกิดขึ้นได้เมื่อระบบขับเคลื่อนทำงานหนักแต่เคลื่อนที่ได้ไม่มาก เช่น เมื่อหุ่นยนต์ติดอยู่หรือชนกับวัตถุ
สามารถใช้เพื่อเปรียบเทียบการเคลื่อนไหว หรือตรวจสอบว่าระบบขับเคลื่อนสูญเสียพลังงานไปโดยเปล่าประโยชน์ แทนที่จะนำไปใช้ในการเคลื่อนไหวหรือไม่
Available Functionsdouble efficiency(
percentUnits units = percentUnits::pct );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่จะส่งคืนประสิทธิภาพ: |
ส่งคืนค่าประสิทธิภาพระบบขับเคลื่อนเป็น double ในหน่วยที่เลือก
อุณหภูมิ#
temperature จะแสดงอุณหภูมิเฉลี่ยของระบบขับเคลื่อนเป็นเปอร์เซ็นต์ ตั้งแต่ 0% ถึง 100%
อุณหภูมิแสดงให้เห็นถึงความร้อนของมอเตอร์ในระบบขับเคลื่อน อุณหภูมิที่สูงขึ้นหมายความว่ามอเตอร์กำลังร้อนขึ้นขณะทำงาน มอเตอร์ควรมีอุณหภูมิต่ำกว่า 55 องศาเซลเซียสเพื่อให้ทำงานได้อย่างเต็มประสิทธิภาพ
หากมอเตอร์ร้อนเกินไป มอเตอร์จะลดกระแสไฟฟ้าสูงสุดลงเพื่อป้องกันตัวเอง เมื่ออุณหภูมิถึง 70 องศาเซลเซียส มอเตอร์จะหยุดทำงานจนกว่าจะเย็นลง
สามารถใช้ตรวจสอบได้ว่าชุดขับเคลื่อนร้อนเกินไปหรือไม่ระหว่างการเคลื่อนไหวซ้ำๆ การใช้งานเป็นเวลานาน หรือเมื่อมีการดันกับวัตถุ
Available Functionsdouble temperature(
percentUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่จะส่งคืนอุณหภูมิ: |
ส่งคืนค่าอุณหภูมิเฉลี่ยของระบบขับเคลื่อนเป็นค่า double ในหน่วยที่เลือก
ค่าที่ส่งคืน
50%หมายความว่าอุณหภูมิเฉลี่ยของมอเตอร์อยู่ที่ประมาณ45°C(113°F)ช่วงอุณหภูมิการทำงานปกติของระบบขับเคลื่อนอยู่ที่ประมาณ
20°C(68°F) ถึง70°C(158°F)
แรงดันไฟฟ้า#
voltage ส่งคืนแรงดันไฟฟ้าของระบบขับเคลื่อน
แรงดันไฟฟ้าคือแรงดันไฟฟ้าที่จ่ายให้กับมอเตอร์ของระบบขับเคลื่อน สามารถนำค่านี้มาใช้ร่วมกับค่ากระแสไฟฟ้าและกำลังไฟฟ้าเพื่อทำความเข้าใจว่าระบบขับเคลื่อนใช้พลังงานไฟฟ้าอย่างไร
Available Functionsdouble voltage(
voltageUnits units = voltageUnits::volt );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้ในการส่งค่าแรงดันไฟฟ้ากลับ: |
ส่งคืนค่าแรงดันไฟฟ้าของระบบขับเคลื่อนเป็นค่า double ในหน่วยที่เลือก