ระบบขับเคลื่อน#
การแนะนำ#
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 ไม่ใช้ เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ไจโร หรือ เซ็นเซอร์ GPS สำหรับการเลี้ยวตามทิศทางหรือการหมุน มันสามารถขับเคลื่อนไปข้างหน้าหรือถอยหลัง และเลี้ยวซ้ายหรือขวาได้ แต่ไม่สามารถเลี้ยวไปยังทิศทางหรือการหมุนที่เฉพาะเจาะจงได้ สำหรับการเลี้ยวตามทิศทางและการหมุน ให้ใช้คลาส smartdrive
คลาสที่สืบทอดมา#
คลาส drivetrain ทำหน้าที่เป็นคลาสพื้นฐานสำหรับคลาสที่สืบทอดต่อไปนี้:
smartdrive- คลาสนี้เพิ่มการรองรับเซ็นเซอร์เฉื่อย เซ็นเซอร์ GPS หรือเซ็นเซอร์ไจโรเพื่อเปิดใช้งานการเลี้ยวตามทิศทางและการหมุน
ตัวสร้างคลาส#
1 - สร้างระบบขับเคลื่อนโดยใช้วัตถุ
motor_groupที่มีอยู่ ชิ้นสำหรับด้านซ้าย (&l) และด้านขวา (&r)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ที่มีอยู่สำหรับด้านซ้าย (&l) และด้านขวา (&r)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 object
rightMotor, // right motor object
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 object
rightMotor, // right motor object
259.34, // wheelTravel
320, // trackWidth
40, // wheelBase
mm, // unit
1.0 ); // externalGearRatio
การกระทำ#
ขับ#
drive จะทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด หุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การเลี้ยวหรือการหยุด สำหรับ RPM หรือ DPS ขีดจำกัดจะเปลี่ยนแปลงไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
1 - ขับเคลื่อนโดยใช้ ความเร็วไดรฟ์ที่กำหนดค่าไว้ในปัจจุบัน
void drive( directionType dir );
Parameters2 - ขับเคลื่อนด้วยความเร็วที่กำหนด
void drive( directionType dir, double velocity, velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
|
The velocity to drive with from 0% to 100% when using |
|
|
หน่วยความเร็ว: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesdriveเป็นคำสั่งที่ไม่รอการทำงาน โปรเจกต์จะดำเนินการโค้ดบรรทัดถัดไปทันทีหลังจากเรียกใช้คำสั่งนี้ระบบขับเคลื่อนจะยังคงเคลื่อนที่ต่อไปจนกว่าจะมีการเรียก
stopหรือมีการเรียกใช้ฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่น (เช่นdriveForหรือturn)ฟังก์ชันต่างๆ เช่น
isDoneและisMovingไม่สามารถใช้ได้กับdriveเนื่องจากไม่ได้ใช้การเคลื่อนที่ตามเป้าหมาย (ไม่มีพารามิเตอร์distance)
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
ไดรฟ์ฟอร์#
คำสั่ง driveFor จะเคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังเป็นระยะทางที่กำหนด โดยค่าเริ่มต้น โปรเจ็กต์จะรอจนกว่าหุ่นยนต์จะหยุดเคลื่อนที่ก่อนที่โค้ดบรรทัดถัดไปจะทำงาน สำหรับค่า RPM หรือ DPS ขีดจำกัดจะเปลี่ยนแปลงไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
1 - Drives in the specified direction for a distance using the currently configured drive velocity.
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 );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
|
ระยะทางที่หุ่นยนต์ขับเคลื่อนไปได้ |
|
|
หน่วยวัดระยะทาง: |
|
|
The velocity to drive with from 0% to 100% when using |
|
|
หน่วยความเร็ว: |
|
|
|
ส่งคืนค่าบูลีนว่าหุ่นยนต์ไปถึงระยะทางเป้าหมายหรือไม่
true- หุ่นยนต์ไปถึงระยะทางเป้าหมายแล้วfalse- หุ่นยนต์ไม่ได้ทำการเคลื่อนไหวจนเสร็จสิ้น หรือฟังก์ชันส่งค่ากลับก่อนที่การเคลื่อนไหวจะเสร็จสมบูรณ์ เนื่องจากwaitForCompletionถูกตั้งค่าเป็นfalse
การดำเนินการฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่น (เช่น
driveหรือturnFor) ในขณะที่driveForกำลังดำเนินการอยู่ จะขัดจังหวะการเคลื่อนที่ปัจจุบันเนื่องจาก
driveForเป็นแบบกำหนดเป้าหมาย (ใช้พารามิเตอร์distance) ฟังก์ชันต่างๆ เช่นisDoneและisMovingจึงทำงานร่วมกับdriveFor
// Drive 200 mm, then back 200 mm
myDrivetrain.driveFor(forward, 200, mm);
myDrivetrain.driveFor(reverse, 200, mm);
เปลี่ยน#
การหมุน turn จะทำให้หุ่นยนต์หมุนไปทางซ้ายหรือขวาไปเรื่อยๆ จนกว่าจะได้รับคำสั่งอื่น เช่น การขับเคลื่อนหรือการหยุด สำหรับค่า RPM หรือ DPS ขีดจำกัดจะเปลี่ยนแปลงไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
1 - เลี้ยวโดยใช้ ความเร็วในการเลี้ยวที่กำหนดค่าไว้ในปัจจุบัน
void turn( turnType dir );
Parameters2 - หมุนด้วยความเร็วที่กำหนด
void turn( turnType dir, double velocity, velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางที่หุ่นยนต์หมุน: |
|
|
ความเร็วในการหมุนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
turnคือคำสั่งที่ไม่รอการทำงาน โปรแกรมจะดำเนินการบรรทัดโค้ดถัดไปทันทีหลังจากเรียกใช้คำสั่งนี้ระบบขับเคลื่อนจะหมุนต่อไปจนกว่าจะมีการเรียก
stopหรือมีการเรียกใช้ฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่น (เช่นturnForหรือdrive)ฟังก์ชันต่างๆ เช่น
isDoneและisMovingไม่สามารถใช้ได้กับturnเนื่องจากไม่ได้ใช้การเคลื่อนที่ตามเป้าหมาย (ไม่มีพารามิเตอร์angle)
// Turn right, then left, then stop
myDrivetrain.turn(right);
wait(2, seconds);
myDrivetrain.turn(left);
wait(2, seconds);
myDrivetrain.stop();
เทิร์นฟอร์#
turnFor หมุนหุ่นยนต์ไปทางซ้ายหรือขวาเป็นจำนวนองศาที่กำหนด การหมุนจะสัมพันธ์กับตำแหน่งปัจจุบันของหุ่นยนต์ โดยค่าเริ่มต้น โครงการจะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่โค้ดบรรทัดถัดไปจะทำงาน สำหรับ RPM หรือ DPS ขีดจำกัดจะเปลี่ยนไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
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
การดำเนินการฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนอื่น (เช่น
turnหรือdrive) ในขณะที่turnForกำลังดำเนินการอยู่ จะขัดจังหวะการเคลื่อนที่ปัจจุบันเนื่องจาก
turnForเป็นแบบกำหนดเป้าหมาย (ใช้พารามิเตอร์angle) ฟังก์ชันต่างๆ เช่นisDoneและisMovingจึงทำงานร่วมกับturnFor
// Turn right then left
myDrivetrain.turnFor(right, 90, degrees);
wait(1, seconds);
myDrivetrain.turnFor(left, 90, degrees);
หยุด#
stop จะหยุดการเคลื่อนที่ของหุ่นยนต์ หากมีการกำหนดโหมดการหยุดไว้ โหมดนั้นจะควบคุมวิธีการหยุดของหุ่นยนต์สำหรับการเรียกใช้ฟังก์ชันนี้
1 - Stops the drivetrain using the currently configured stopping mode.
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 บอกหุ่นยนต์ว่าควรขับเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์ขับเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์ขับช้าลง สำหรับ RPM นั้น ขีดจำกัดจะเปลี่ยนแปลงไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์ขับเคลื่อนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์ขับเคลื่อนได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์ขับเคลื่อนได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Available Functionsvoid setDriveVelocity(
double velocity,
velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ความเร็วในการขับเคลื่อนตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยความเร็ว: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesความเร็วในการขับเคลื่อนจะมีผลกับฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนทั้งหมดที่ตามมา (เช่น
driveและdriveFor) เว้นแต่จะมีการระบุความเร็วที่เฉพาะเจาะจงในการเรียกใช้ฟังก์ชัน
// 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ความเร็วการเลี้ยวจะมีผลกับฟังก์ชันการเลี้ยวของระบบขับเคลื่อนทั้งหมดที่ตามมา (เช่น
turnและturnFor) เว้นแต่จะมีการระบุความเร็วเฉพาะในการเรียกใช้ฟังก์ชัน
// 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ทั้งหมดที่ตามมา เว้นแต่จะมีการระบุโหมดการหยุดเฉพาะในการเรียกฟังก์ชัน
ตั้งค่าหมดเวลา#
setTimeout กำหนดจำนวนวินาทีที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากหุ่นยนต์ไม่สามารถทำการเคลื่อนไหวให้เสร็จสิ้นได้ภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้หุ่นยนต์ติดอยู่กับการเคลื่อนไหวใดๆ
void setTimeout(
int32_t time,
timeUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ระยะเวลาที่หุ่นยนต์สามารถพยายามทำท่าทางให้เสร็จสมบูรณ์ ค่านี้ควรเป็นจำนวนเต็มบวก |
|
|
หน่วยของเวลา: |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesการหมดเวลาจะใช้ได้เฉพาะกับฟังก์ชันการเคลื่อนที่ของระบบขับเคลื่อนตามเป้าหมายเท่านั้น (เช่น
driveForและturnFor)
// Start turning if driving takes too long
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 จะแสดงความเร็วในการขับเคลื่อนของหุ่นยนต์
ค่าบวกหมายความว่าหุ่นยนต์กำลังเคลื่อนที่ไปข้างหน้า ค่าลบหมายความว่าหุ่นยนต์กำลังเคลื่อนที่ถอยหลัง
Available Functionsdouble 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 ในหน่วยที่เลือก