มอเตอร์และกลุ่มมอเตอร์#
การแนะนำ#
มอเตอร์และกลุ่มมอเตอร์ควบคุมการเคลื่อนที่ของชิ้นส่วนต่างๆ ของหุ่นยนต์ วัตถุ motor ควบคุมมอเตอร์ IQ Smart Motor ที่กำหนดค่าไว้หนึ่งตัว ในขณะที่วัตถุ motor_group ควบคุมมอเตอร์ IQ Smart Motor ที่กำหนดค่าไว้หลายตัวพร้อมกันเพื่อให้เคลื่อนที่ไปพร้อมกัน มอเตอร์และกลุ่มมอเตอร์สามารถใช้เพื่อยกแขน หมุนกรงเล็บ หมุนล้อ หรือเคลื่อนย้ายส่วนอื่นๆ ของโครงสร้าง มอเตอร์สองตัวสามารถทำงานร่วมกันเป็น ระบบขับเคลื่อน เพื่อเคลื่อนย้ายและหมุนหุ่นยนต์ทั้งตัว
แต่ละมอเตอร์หรือกลุ่มมอเตอร์จะได้รับการกำหนดค่าในหน้าต่างอุปกรณ์ ชื่อมอเตอร์และกลุ่มมอเตอร์อาจเปลี่ยนแปลงได้ขึ้นอยู่กับการประกอบ หน้านี้ใช้ชื่อ Motor1 และ MotorGroup1 เป็นตัวอย่าง โปรดแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ
โดยค่าเริ่มต้น forward จะหมุนมอเตอร์ทวนเข็มนาฬิกา และ reverse จะหมุนมอเตอร์ตามเข็มนาฬิกา หากตั้งค่ามอเตอร์ให้หมุนย้อนกลับ ทิศทางการหมุนจะสลับกัน
มอเตอร์#
Class Constructors#
1 — สร้างวัตถุมอเตอร์
motorสำหรับมอเตอร์อัจฉริยะ IQ ที่เชื่อมต่อกับพอร์ตอัจฉริยะที่ระบุ มอเตอร์จะใช้การตั้งค่าเกียร์ภายในgearSettingที่ตรวจพบโดยอัตโนมัติmotor( int32_t index );
2 — สร้างวัตถุมอเตอร์
motorบน Smart Port ที่ระบุ และสามารถกลับทิศทางการหมุนได้ มอเตอร์จะใช้การตั้งค่าเกียร์ภายในgearSettingmotor( int32_t index, bool reverse );
3 — สร้างวัตถุมอเตอร์
motorบน Smart Port ที่ระบุด้วยการตั้งค่าเกียร์gearSettingที่ระบุmotor( int32_t index, gearSetting gears );
4 — Creates a
motorobject on the specified Smart Port with the specifiedgearSettingand optional reversed direction.motor( int32_t index, gearSetting gears, bool reverse );
Class Destructor#
ทำลายวัตถุ motor และปล่อยทรัพยากรที่เกี่ยวข้อง
~motor();
Parameters#
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
พอร์ตอัจฉริยะที่มอเตอร์เชื่อมต่ออยู่ จะเขียนในรูปแบบ |
|
|
ตั้งค่าว่าจะกลับทิศทางการหมุนของมอเตอร์หรือไม่:
|
|
|
ระบุอัตราส่วนของตลับเกียร์ภายใน
|
Notes#
การตั้งค่าเกียร์ควรตรงกับตลับเกียร์ที่ติดตั้งอยู่ในมอเตอร์
Example#
// Create the motor instance in Smart Port 1
motor LeftMotor = motor(PORT1);
// Creates the motor instance with different settings
motor RightMotor = motor(
PORT2, // Smart Port 2
ratio2_1, // Gear ratio is 2:1
true);
กลุ่มมอเตอร์#
Class Constructors#
motor_group( motor &m1, Args&... m2 );
Class Destructor#
ทำลายอ็อบเจ็กต์ motor_group และปล่อยทรัพยากรที่เกี่ยวข้อง
~motor_group();
Parameters#
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
มอเตอร์ตัวแรกที่ถูกเพิ่มเข้ามาในกลุ่ม |
|
|
มีการเพิ่มมอเตอร์เพิ่มเติมเข้าไปในกลุ่ม โดยกลุ่มมอเตอร์หนึ่งกลุ่มจะมีมอเตอร์ได้สูงสุดสี่ตัว |
Example#
// Create individual motor instances
motor LeftMotor = motor(PORT1);
motor RightMotor = motor(PORT2);
// Create a motor group with both motors
motor_group DriveMotors = motor_group(LeftMotor, RightMotor);
ฟังก์ชันสมาชิก#
มีหลายวิธีในการเขียนโค้ดสำหรับมอเตอร์และกลุ่มมอเตอร์ ด้านล่างนี้คือรายการฟังก์ชันสมาชิกทั้งหมดสำหรับมอเตอร์ motor และมอเตอร์ motor_group:
การดำเนินการ — หยุดและหมุนมอเตอร์และกลุ่มมอเตอร์
spin— หมุนมอเตอร์หรือกลุ่มมอเตอร์ไปข้างหน้าหรือถอยหลังตลอดไปspinFor— หมุนมอเตอร์หรือกลุ่มมอเตอร์เป็นระยะทางหรือระยะเวลาที่กำหนดspinToPosition— หมุนมอเตอร์หรือกลุ่มมอเตอร์ไปยังตำแหน่งที่กำหนดstop— หยุดมอเตอร์หรือกลุ่มมอเตอร์ไม่ให้หมุน
ตัวปรับแต่ง — ปรับการตั้งค่ามอเตอร์และกลุ่มมอเตอร์
setVelocity— บอกมอเตอร์หรือกลุ่มมอเตอร์ว่าจะหมุนเร็วแค่ไหนsetMaxTorque— ตั้งค่าว่ามอเตอร์หรือกลุ่มมอเตอร์สามารถผลักได้แรงแค่ไหนในขณะที่หมุนsetPosition— เปลี่ยนตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์เป็นค่าใหม่setStopping— กำหนดวิธีการหยุดการเคลื่อนที่ของมอเตอร์หรือกลุ่มมอเตอร์: โดยการเบรก การปล่อยให้ไหลไปเอง หรือการหยุดนิ่งsetTimeout— ตั้งค่าระยะเวลาที่มอเตอร์หรือกลุ่มมอเตอร์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น
ตัวตรวจสอบสถานะมอเตอร์ — ตรวจสอบสถานะของมอเตอร์และกลุ่มมอเตอร์
isDone— ส่งคืนว่ามอเตอร์หรือกลุ่มมอเตอร์เคลื่อนที่เสร็จแล้วหรือไม่ ในรูปแบบค่าบูลีนisSpinning— ส่งคืนว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังหมุนอยู่หรือไม่ ในรูปแบบค่าบูลีนposition— ส่งคืนตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์velocity— ส่งคืนความเร็วในการหมุนของมอเตอร์หรือกลุ่มมอเตอร์current— ส่งคืนกระแสไฟฟ้าที่มอเตอร์หรือกลุ่มมอเตอร์ใช้power— ส่งคืนกำลังไฟฟ้าที่มอเตอร์หรือกลุ่มมอเตอร์ใช้torque— ส่งคืนค่าแรงบิดที่มอเตอร์หรือกลุ่มมอเตอร์ใช้efficiency— ส่งคืนประสิทธิภาพการใช้พลังงานของมอเตอร์หรือกลุ่มมอเตอร์temperature— ส่งคืนอุณหภูมิของมอเตอร์หรือกลุ่มมอเตอร์voltage— ส่งคืนแรงดันไฟฟ้าที่จ่ายให้กับมอเตอร์หรือกลุ่มมอเตอร์direction— ส่งคืนทิศทางการหมุนของมอเตอร์หรือกลุ่มมอเตอร์installed— ส่งคืนว่ามอเตอร์หรือกลุ่มมอเตอร์เชื่อมต่อกับสมองหรือไม่count— ส่งคืนจำนวนมอเตอร์ในกลุ่มมอเตอร์
ก่อนเรียกใช้ฟังก์ชันสมาชิก motor หรือ motor_group ใดๆ จะต้องสร้างอินสแตนซ์ก่อน ดังที่แสดงด้านล่าง:
/* This constructor is required when using VS Code.
Motor and Motor Group configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the motor instance in Smart Port 1
motor Motor1 = motor(PORT1);
การกระทำ#
spin#
คำสั่ง spin จะหมุนมอเตอร์หรือกลุ่มมอเตอร์ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด มอเตอร์หรือกลุ่มมอเตอร์จะหมุนต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น หมุนไปในทิศทางอื่นหรือหยุด
1 — หมุนมอเตอร์หรือกลุ่มมอเตอร์โดยใช้ความเร็วของมอเตอร์ที่ตั้งค่าไว้ในปัจจุบัน
void spin( directionType dir );
2 — หมุนมอเตอร์หรือกลุ่มมอเตอร์ด้วยความเร็วที่กำหนด
void spin( directionType dir, double velocity, velocityUnits units );
Parameters3__ — หมุนมอเตอร์หรือกลุ่มมอเตอร์โดยใช้แรงดันไฟฟ้าที่กำหนด
void spin( directionType dir, double voltage, voltageUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางการหมุนของมอเตอร์หรือกลุ่มมอเตอร์: |
|
|
ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยที่ใช้แสดงความเร็ว:
|
|
|
แรงดันไฟฟ้าที่ใช้ในการหมุน ค่าลบจะหมุนไปในทิศทางตรงกันข้ามกับค่าที่กำหนด |
|
|
หน่วยที่ใช้แทนแรงดันไฟฟ้า:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesฟังก์ชันนี้ไม่ต้องรอ และโปรเจ็กต์จะดำเนินการต่อทันทีหลังจากเรียกใช้ฟังก์ชันเสร็จสิ้น
มอเตอร์หรือกลุ่มมอเตอร์จะหมุนต่อไปจนกว่าจะมีการเรียก
stopหรือมีการเรียกใช้ฟังก์ชันการเคลื่อนไหวอื่นฟังก์ชันต่างๆ เช่น
isDoneและisSpinningไม่สามารถนำไปใช้กับการหมุนspinได้ เนื่องจากไม่ได้ใช้การเคลื่อนที่ตามเป้าหมาย (ไม่มีพารามิเตอร์การหมุนrotationหรือเวลาtime)
// Spin forward, then stop
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
spinFor#
คำสั่ง spinFor จะหมุนมอเตอร์หรือกลุ่มมอเตอร์เป็นระยะทางหรือระยะเวลาที่กำหนด การหมุนจะสัมพันธ์กับตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์ โดยค่าเริ่มต้น โปรเจ็กต์จะรอจนกว่ามอเตอร์หรือกลุ่มมอเตอร์จะหมุนเสร็จก่อนที่โค้ดบรรทัดถัดไปจะทำงาน
1 — หมุนเป็นระยะทางที่กำหนดด้วยความเร็วที่ระบุไว้ในการเรียกใช้ฟังก์ชัน
bool spinFor( double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
2 — รับพารามิเตอร์ทิศทางและหมุนเป็นระยะทางที่กำหนดด้วยความเร็วที่ระบุในการเรียกใช้ฟังก์ชัน
bool spinFor( directionType dir, double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
3 — หมุนเป็นระยะทางที่กำหนดโดยใช้ ความเร็วของมอเตอร์ที่กำหนดค่าไว้ในปัจจุบัน
bool spinFor( double rotation, rotationUnits units, bool waitForCompletion = true );
4 — รับพารามิเตอร์ทิศทางและหมุนเป็นระยะทางที่กำหนดโดยใช้ ความเร็วของมอเตอร์ที่กำหนดค่าไว้ในปัจจุบัน
bool spinFor( directionType dir, double rotation, rotationUnits units, bool waitForCompletion = true );
5 — หมุนเป็นระยะเวลาที่กำหนดด้วยความเร็วที่ระบุไว้ในการเรียกใช้ฟังก์ชัน
bool spinFor( double time, timeUnits units, double velocity, velocityUnits units_v );
6 — รับพารามิเตอร์ทิศทางและหมุนเป็นระยะเวลาที่กำหนดด้วยความเร็วที่ระบุในการเรียกใช้ฟังก์ชัน
bool spinFor( directionType dir, double time, timeUnits units, double velocity, velocityUnits units_v );
7 — หมุนเป็นระยะเวลาที่กำหนดโดยใช้ ความเร็วของมอเตอร์ที่กำหนดค่าไว้ในปัจจุบัน
bool spinFor( double time, timeUnits units );
Parameters8 — รับพารามิเตอร์ทิศทางและหมุนเป็นระยะเวลาที่กำหนดโดยใช้ ความเร็วของมอเตอร์ที่กำหนดค่าไว้ในปัจจุบัน
bool spinFor( directionType dir, double time, timeUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ทิศทางการหมุนของมอเตอร์หรือกลุ่มมอเตอร์: |
|
|
ระยะทางที่มอเตอร์หรือกลุ่มมอเตอร์หมุน |
|
|
The rotation unit:
|
|
|
ระยะเวลาที่มอเตอร์หรือกลุ่มมอเตอร์หมุน |
|
|
หน่วยของเวลา:
|
|
|
ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยที่ใช้แทนความเร็ว
|
|
|
|
ส่งคืนค่าบูลีนที่แสดงว่ามอเตอร์หรือกลุ่มมอเตอร์นั้นถึงค่าเป้าหมายหรือไม่
true— The motor or motor group reached the target value.false— The motor or motor group was not able to reach the target value orwaitForCompletionis set tofalse.
การดำเนินการฟังก์ชันการเคลื่อนไหวของมอเตอร์อื่น (เช่น
spinหรือstop) ในขณะที่spinForกำลังดำเนินการอยู่ จะขัดจังหวะการเคลื่อนไหวปัจจุบันเนื่องจาก
spinForเป็นแบบกำหนดเป้าหมาย (ใช้พารามิเตอร์rotationหรือtime) ฟังก์ชันต่างๆ เช่นisDoneและisSpinningจึงทำงานร่วมกับspinFor
// Spin 1 turn fast, then 1 turn slow
Motor1.spinFor(forward, 1, turns, true);
Motor1.spinFor(reverse, 1, turns, 20, velocityUnits::pct, true);
spinToPosition#
spinToPosition หมุนมอเตอร์หรือกลุ่มมอเตอร์ไปยังตำแหน่งที่กำหนด
ตำแหน่งของมอเตอร์หรือกลุ่มมอเตอร์คือระยะที่หมุน โดยวัดเป็น degrees หรือ turnsหนึ่งรอบเท่ากับ 360 องศา ในตอนเริ่มต้นโครงการ ตำแหน่งของมอเตอร์หรือกลุ่มมอเตอร์จะถูกตั้งค่าเป็น 0 องศา นอกจากนี้ยังสามารถตั้งค่าตำแหน่งของมอเตอร์หรือกลุ่มมอเตอร์ได้โดยใช้ฟังก์ชัน setPosition
ค่าตำแหน่งเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการหมุนขึ้นอยู่กับตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์
ตัวอย่างเช่น หากมอเตอร์หรือกลุ่มมอเตอร์เริ่มต้นที่ 0 องศาและหมุนไปที่ตำแหน่ง 720 องศา มันจะหมุนไปข้างหน้าสองรอบ หากจากนั้นหมุนไปที่ตำแหน่ง 360 องศา มันจะหมุนถอยหลังหนึ่งรอบ เพราะ 360 น้อยกว่า 720
Available Functions1 — หมุนไปยังตำแหน่งที่กำหนดด้วยความเร็วที่ระบุไว้ในการเรียกใช้ฟังก์ชัน
bool spinToPosition( double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Parameters2 — หมุนไปยังตำแหน่งที่กำหนดโดยใช้ ความเร็วของมอเตอร์ที่กำหนดค่าไว้ในปัจจุบัน
bool spinToPosition( double rotation, rotationUnits units, bool waitForCompletion = true );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ค่าตำแหน่งที่มอเตอร์หรือกลุ่มมอเตอร์จะหมุนไปถึง |
|
|
The rotation unit:
|
|
|
ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยที่ใช้แทนความเร็ว
|
|
|
|
ส่งคืนค่าบูลีนที่แสดงว่ามอเตอร์หรือกลุ่มมอเตอร์เป็นผู้เริ่มต้นการเคลื่อนไหวตามเป้าหมายที่ร้องขอหรือไม่
true— The motor or motor group begins the requested target-based movement.false— The call fails orwaitForCompletionis set tofalse.
การดำเนินการฟังก์ชันการเคลื่อนไหวของมอเตอร์อื่น (เช่น
spinหรือspinFor) ในขณะที่spinToPositionกำลังดำเนินการอยู่ จะขัดจังหวะการเคลื่อนไหวปัจจุบันเนื่องจาก
spinToPositionเป็นแบบกำหนดเป้าหมาย (ใช้พารามิเตอร์การหมุนrotation) ฟังก์ชันต่างๆ เช่นisDoneและisSpinningจึงทำงานร่วมกับspinToPosition
// Spin forward, then go to 90°
Motor1.spin(forward);
wait(1, seconds);
Motor1.spinToPosition(90, degrees);
stop#
stop หยุดมอเตอร์หรือกลุ่มมอเตอร์ไม่ให้หมุน
1 — หยุดมอเตอร์หรือกลุ่มมอเตอร์โดยใช้ โหมดเบรกที่กำหนดค่าไว้ในปัจจุบัน
void stop();
Parameters2 — หยุดมอเตอร์หรือกลุ่มมอเตอร์โดยใช้โหมดเบรกที่ระบุไว้ในการเรียกใช้ฟังก์ชัน
void stop( brakeType mode );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ตัวเลือกเสริม วิธีการหยุดมอเตอร์หรือกลุ่มมอเตอร์:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesการกดหมายเลข
stopจะหยุดการเคลื่อนไหวของมอเตอร์หรือกลุ่มมอเตอร์ใดๆ ที่กำลังทำงานอยู่ทันทีหากไม่ได้ระบุโหมดเบรก มอเตอร์หรือกลุ่มมอเตอร์จะใช้ โหมดเบรกที่กำหนดค่าไว้ในปัจจุบัน
stopขัดจังหวะการเคลื่อนไหวตามเป้าหมายที่ใช้งานอยู่ (เช่นspinForหรือspinToPosition)
// Spin and coast to a stop
Motor1.setVelocity(100, percent);
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop(coast);
ตัวกลายพันธุ์#
setVelocity#
คำสั่ง setVelocity จะบอกมอเตอร์หรือกลุ่มมอเตอร์ว่าควรหมุนเร็วแค่ไหน ค่าเปอร์เซ็นต์ที่สูงขึ้นจะทำให้มอเตอร์หรือกลุ่มมอเตอร์หมุนเร็วขึ้น และค่าเปอร์เซ็นต์ที่ต่ำลงจะทำให้มอเตอร์หรือกลุ่มมอเตอร์หมุนช้าลง
ทุกโปรเจกต์เริ่มต้นด้วยมอเตอร์แต่ละตัวหรือกลุ่มมอเตอร์หมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้มอเตอร์หรือกลุ่มมอเตอร์หมุนเร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้มอเตอร์หรือกลุ่มมอเตอร์หมุนช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Available Functionsvoid setVelocity(
double velocity,
velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
|
หน่วยที่ใช้แทนความเร็ว
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesฟังก์ชันการเคลื่อนไหวของมอเตอร์ใดๆ ในภายหลัง (เช่น
spin,spinFor, หรือspinToPosition) ที่ไม่ได้ระบุความเร็วอย่างชัดเจนจะใช้ค่านี้
// Try default, then slow, then fast
Motor1.spinFor(forward, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(20, percent);
Motor1.spinFor(reverse, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(100, percent);
Motor1.spinFor(forward, 180, degrees);
setMaxTorque#
แรงบิดแสดงให้เห็นว่ามอเตอร์หรือกลุ่มมอเตอร์สามารถผลักหรือดึงได้แรงแค่ไหนขณะที่มันหมุน
setMaxTorque กำหนดแรงบิดสูงสุดที่มอเตอร์หรือกลุ่มมอเตอร์สามารถใช้งานได้
ค่าเปอร์เซ็นต์ที่สูงขึ้นจะทำให้มอเตอร์หรือกลุ่มมอเตอร์ออกแรงมากขึ้น เช่น เมื่อยกของหนัก ในขณะที่ค่าเปอร์เซ็นต์ที่ต่ำลงจะจำกัดแรงที่มอเตอร์หรือกลุ่มมอเตอร์สามารถออกแรงได้ ซึ่งจะช่วยป้องกันหุ่นยนต์ได้หากมอเตอร์หรือกลุ่มมอเตอร์ติดขัดหรือเคลื่อนที่ไปถึงขีดจำกัดสูงสุด
ทุกโครงการจะเริ่มต้นด้วยแรงบิดของมอเตอร์แต่ละตัวหรือกลุ่มมอเตอร์ที่ 50% เป็นค่าเริ่มต้น
Available Functions1 — ตั้งค่าแรงบิดสูงสุดเป็นเปอร์เซ็นต์ของแรงบิดที่กำหนดของมอเตอร์หรือกลุ่มมอเตอร์
void setMaxTorque( double value, percentUnits units );
2 — กำหนดแรงบิดสูงสุดโดยใช้หน่วยแรงบิดทางกายภาพ
void setMaxTorque( double value, torqueUnits units );
Parameters3 — กำหนดแรงบิดสูงสุดโดยการจำกัดกระแสไฟฟ้าของมอเตอร์
void setMaxTorque( double value, currentUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
แรงบิดสูงสุดที่มอเตอร์หรือกลุ่มมอเตอร์สามารถใช้งานได้ |
|
|
Specifies torque as a percentage: |
|
|
ระบุแรงบิดในหน่วยทางกายภาพ เช่น:
|
|
|
ระบุแรงบิดโดยการจำกัดกระแสไฟฟ้าของมอเตอร์:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesเมื่อใช้หน่วยกระแสไฟฟ้า
currentUnitsแรงบิดจะถูกจำกัดโดยการจำกัดปริมาณกระแสไฟฟ้าที่มอเตอร์หรือกลุ่มมอเตอร์สามารถใช้ได้
setPosition#
ตำแหน่งของมอเตอร์หรือกลุ่มมอเตอร์คือระยะที่หมุนไป โดยวัดเป็น degrees หรือ turnsหนึ่งรอบเท่ากับ 360 องศา setPosition จะเปลี่ยนตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์เป็นค่าใหม่
ตัวอย่างเช่น หากมอเตอร์หรือกลุ่มมอเตอร์หมุนไปถึง 180 องศา การตั้งตำแหน่งเป็น 0 องศาจะรีเซ็ตตำแหน่งนั้นจาก 180 องศาเป็น 0 องศา จากนั้นมอเตอร์หรือกลุ่มมอเตอร์จะสามารถหมุนไปยังตำแหน่งต่างๆ ตามค่าใหม่นั้นได้
Available Functionsvoid setPosition(
double value,
rotationUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ค่าตำแหน่งที่จะตั้งให้กับมอเตอร์หรือกลุ่มมอเตอร์ |
|
|
The position unit:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesหลังจากเรียก
setPositionแล้ว การเรียกspinToPositionครั้งถัดไปจะใช้ตำแหน่งที่อัปเดตแล้วเป็นข้อมูลอ้างอิง
setStopping#
setStopping กำหนดวิธีการหยุดการเคลื่อนที่ของมอเตอร์หรือกลุ่มมอเตอร์: โดยการเบรก การปล่อยให้ไหลไปเอง หรือการหยุดนิ่ง
void setStopping(
brakeType mode );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
วิธีการที่มอเตอร์หรือกลุ่มมอเตอร์จะหยุด:
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesการเรียกใช้
stopครั้งถัดไปโดยไม่มีโหมดเบรกที่ระบุจะใช้ค่านี้
setTimeout#
setTimeout กำหนดเวลาที่มอเตอร์หรือกลุ่มมอเตอร์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากมอเตอร์หรือกลุ่มมอเตอร์ไม่สามารถทำการเคลื่อนไหวให้เสร็จสิ้นได้ภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้มอเตอร์หรือกลุ่มมอเตอร์ติดอยู่กับการเคลื่อนไหวใดๆ
void setTimeout(
int32_t time,
timeUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ระยะเวลาที่มอเตอร์หรือกลุ่มมอเตอร์สามารถพยายามทำการเคลื่อนไหวให้เสร็จสิ้น ค่านี้ต้องเป็นจำนวนเต็มบวก |
|
|
หน่วยของเวลา:
|
ค่าที่ส่งคืน
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesการตั้งค่าหมดเวลาของมอเตอร์หรือกลุ่มมอเตอร์นั้นใช้เพื่อป้องกันไม่ให้การเคลื่อนไหวที่ไม่ถึงตำแหน่งเป้าหมายไปขัดขวางการทำงานของคำสั่งอื่นๆ ในสแต็ก
หากมอเตอร์หรือกลุ่มมอเตอร์ไม่สามารถเคลื่อนที่ไปยังตำแหน่งเป้าหมายได้ก่อนหมดเวลาที่กำหนด ระบบจะหยุดพยายามและดำเนินการต่อในบรรทัดโค้ดถัดไป
การหมดเวลาใช้กับฟังก์ชันที่มีค่าเป้าหมาย เช่น
spinForและspinToPosition
// Stop a long move after 1 second
Motor1.setTimeout(1, seconds);
Motor1.spinFor(forward, 2, turns);
Motor1.spinToPosition(0, degrees);
ผู้รับ#
isDone#
isDone จะส่งคืนค่าบูลีนว่ามอเตอร์หรือกลุ่มมอเตอร์เคลื่อนที่เสร็จแล้วหรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของมอเตอร์หรือกลุ่มมอเตอร์ได้
true— มอเตอร์หรือกลุ่มมอเตอร์หยุดเคลื่อนที่แล้วfalse— มอเตอร์หรือกลุ่มมอเตอร์ยังคงเคลื่อนที่อยู่
This function works together with the following Motion functions that have the waitForCompletion parameter: spinFor and spinToPosition.
bool isDone();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่าบูลีนว่ามอเตอร์หรือกลุ่มมอเตอร์เคลื่อนที่เสร็จแล้วหรือไม่
true— The motor or motor group is finished moving.false— The motor or motor group is still moving.
isDoneทำงานร่วมกับฟังก์ชัน Motion ต่อไปนี้ที่มีพารามิเตอร์waitForCompletion:spinForและspinToPosition
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
if (Motor1.isDone()) {
Drivetrain.stop();
} else {
Drivetrain.drive(forward);
}
}
isSpinning#
isSpinning จะส่งคืนค่าบูลีนว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังหมุนอยู่หรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของมอเตอร์หรือกลุ่มมอเตอร์ได้
true— มอเตอร์หรือกลุ่มมอเตอร์กำลังหมุนfalse— มอเตอร์หรือกลุ่มมอเตอร์ไม่หมุน
ฟังก์ชันนี้ทำงานร่วมกับฟังก์ชันการเคลื่อนที่ Motion เช่น spin, spinFor และ spinToPosition
bool isSpinning();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่าบูลีนว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังหมุนอยู่หรือไม่
true— The motor or motor group is spinning.false— The motor or motor group is not spinning.
isSpinningทำงานร่วมกับฟังก์ชันการเคลื่อนที่ Motion เช่นspin,spinForและspinToPosition
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
if (Motor1.isSpinning()) {
Drivetrain.drive(forward);
} else {
Drivetrain.stop();
}
}
position#
ตำแหน่งของมอเตอร์หรือกลุ่มมอเตอร์คือระยะที่หมุนไป โดยวัดเป็น degrees หรือ turnsหนึ่งรอบเท่ากับ 360 องศา position ส่งคืนตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์
ในตอนเริ่มต้นโครงการ ตำแหน่งของมอเตอร์หรือกลุ่มมอเตอร์จะถูกตั้งค่าไว้ที่ 0 องศา หากมอเตอร์หรือกลุ่มมอเตอร์หมุนไปข้างหน้าหนึ่งรอบ ตำแหน่งจะเปลี่ยนเป็น 360 องศา หรือ 1 รอบ หากมอเตอร์หรือกลุ่มมอเตอร์หมุนไปในทิศทางตรงกันข้าม ตำแหน่งจะเปลี่ยนเป็นค่าลบ
Available Functionsdouble position(
rotationUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
The unit to return the motor or motor group position in:
|
ส่งคืนค่า double ซึ่งแสดงตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์ในหน่วยที่ระบุ
การเรียก
setPositionจะเปลี่ยนจุดอ้างอิงสำหรับค่านี้ค่าที่ส่งกลับมานั้นสะท้อนถึงค่าที่อ่านได้จากตัวเข้ารหัสในปัจจุบัน และไม่ได้บ่งชี้ว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังเคลื่อนที่อยู่หรือไม่
เมื่อเรียกใช้ฟังก์ชันนี้กับ
motor_groupที่มีค่า ฟังก์ชันจะส่งคืนตำแหน่งของมอเตอร์ตัวแรกในกลุ่ม
// Spin, then show the final position
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
Brain.Screen.print("Pos: %f", Motor1.position(degrees));
velocity#
ค่า velocity จะแสดงความเร็วในการหมุนของมอเตอร์หรือกลุ่มมอเตอร์
ค่าบวกหมายความว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังหมุนไปข้างหน้า ค่าลบหมายความว่ากำลังหมุนย้อนกลับ
Available Functionsdouble velocity(
velocityUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้แสดงความเร็ว:
|
ส่งคืนค่า double ซึ่งแสดงถึงความเร็วในการหมุนของมอเตอร์หรือกลุ่มมอเตอร์ในหน่วยที่ระบุ
หมายเหตุ
เมื่อเรียกใช้ฟังก์ชันนี้กับ
motor_groupที่มีค่า ฟังก์ชันจะส่งคืนความเร็วของมอเตอร์ตัวแรกในกลุ่มนั้น
current#
ค่ากระแสไฟฟ้า current จะแสดงปริมาณกระแสไฟฟ้าที่มอเตอร์หรือกลุ่มมอเตอร์ใช้ กระแสไฟฟ้าคือปริมาณไฟฟ้าที่ไหลผ่านมอเตอร์หรือกลุ่มมอเตอร์ เมื่อแสดงค่าเป็นแอมป์ ค่ากระแสไฟฟ้าจะอยู่ระหว่าง 0.0 ถึง 1.2 แอมป์
ค่ากระแสไฟฟ้าที่สูงขึ้นหมายความว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังใช้กระแสไฟฟ้ามากขึ้น ซึ่งอาจเกิดขึ้นเมื่อมอเตอร์หรือกลุ่มมอเตอร์กำลังยกของหนัก ผลักวัตถุ หรือพยายามเคลื่อนที่เมื่อติดอยู่
สามารถใช้ตรวจสอบได้ว่ามอเตอร์หรือกลุ่มมอเตอร์ทำงานหนักเกินไปขณะเคลื่อนไหวหรือไม่ หากกระแสไฟฟ้าสูงต่อเนื่อง มอเตอร์อาจร้อนขึ้นหรือใช้พลังงานอย่างไม่มีประสิทธิภาพ
Available Functions1 — ส่งคืนค่ากระแสไฟฟ้าของมอเตอร์หรือกลุ่มมอเตอร์ในหน่วยแอมป์
double current( currentUnits units = amp );
Parameters2 — ส่งคืนกระแสไฟฟ้าของมอเตอร์หรือกลุ่มมอเตอร์เป็นเปอร์เซ็นต์ของกระแสไฟฟ้าสูงสุดที่กำหนด
double current( percentUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้แทนกระแสไฟฟ้า: |
|
|
แสดงกระแสไฟฟ้าเป็นเปอร์เซ็นต์ของกระแสไฟฟ้าสูงสุดที่มอเตอร์รับได้: |
ส่งคืนค่า double ซึ่งแสดงถึงปริมาณกระแสไฟฟ้าที่มอเตอร์หรือกลุ่มมอเตอร์ดึงไปใช้ในหน่วยที่ระบุ
หมายเหตุ
เมื่อเรียกใช้ฟังก์ชันนี้กับ
motor_groupที่มีค่า ฟังก์ชันจะส่งคืนกระแสไฟฟ้ารวมของมอเตอร์ทั้งหมดในกลุ่มนั้น
power#
ค่า power แสดงกำลังไฟฟ้าที่มอเตอร์หรือกลุ่มมอเตอร์ใช้ในหน่วยวัตต์ ค่า Power แสดงให้เห็นว่ามอเตอร์หรือกลุ่มมอเตอร์ใช้พลังงานเร็วแค่ไหน
ค่ากำลังไฟฟ้าที่สูงขึ้นหมายความว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังใช้พลังงานเร็วขึ้น ซึ่งอาจเกิดขึ้นเมื่อมอเตอร์หรือกลุ่มมอเตอร์กำลังยกของหนัก ผลักวัตถุ หรือพยายามเคลื่อนที่เมื่อติดอยู่
สามารถใช้สิ่งนี้เพื่อเปรียบเทียบการเคลื่อนไหวหรือตรวจสอบว่ามอเตอร์หรือกลุ่มมอเตอร์ทำงานหนักเกินไปหรือไม่ หากกำลังไฟสูงอยู่ตลอดเวลา มอเตอร์อาจร้อนขึ้นหรือใช้พลังงานอย่างไม่มีประสิทธิภาพมากขึ้น
Available Functionsdouble power(
powerUnits units = watt );
พารามิเตอร์
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้แสดงกำลังมอเตอร์:
|
ค่าที่ส่งคืน
ส่งคืนค่า double ซึ่งแสดงถึงกำลังไฟฟ้าที่มอเตอร์หรือกลุ่มมอเตอร์ใช้ในหน่วยวัตต์
หมายเหตุ
เมื่อเรียกใช้ฟังก์ชันนี้กับ
motor_groupที่มีค่า ฟังก์ชันจะส่งคืนกำลังไฟฟ้าของมอเตอร์ตัวแรกในกลุ่ม
torque#
แรงบิดแสดงให้เห็นว่ามอเตอร์หรือกลุ่มมอเตอร์นั้นบิด ผลัก หรือดึงมากแค่ไหนขณะที่มันหมุน
torque จะแสดงค่าแรงบิดที่มอเตอร์หรือกลุ่มมอเตอร์นั้นใช้งานอยู่
ค่าแรงบิดที่สูงขึ้นหมายความว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังผลักหรือดึงแรงขึ้น ซึ่งอาจเกิดขึ้นเมื่อมอเตอร์หรือกลุ่มมอเตอร์กำลังยกของหนัก ผลักกับวัตถุ หรือพยายามเคลื่อนย้ายเมื่อติดอยู่
สามารถใช้ตรวจสอบได้ว่ามอเตอร์หรือกลุ่มมอเตอร์ทำงานหนักเกินไปหรือไม่ หรือเพื่อเปรียบเทียบว่าการเคลื่อนไหวแต่ละแบบต้องการแรงผลักมากแค่ไหน
ในการตั้งค่าแรงบิดของมอเตอร์หรือกลุ่มมอเตอร์ ให้ใช้ setMaxTorque
double torque(
torqueUnits units = Nm );
พารามิเตอร์
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้แสดงแรงบิดของมอเตอร์:
|
ค่าที่ส่งคืน
ส่งคืนค่า double ซึ่งแสดงถึงแรงบิดที่มอเตอร์หรือกลุ่มมอเตอร์ใช้ในหน่วยที่ระบุ
หมายเหตุ
เมื่อเรียกใช้ฟังก์ชันนี้กับ
motor_groupที่มีค่า ฟังก์ชันจะส่งคืนแรงบิดเอาต์พุตเชิงกลของมอเตอร์ตัวแรกในกลุ่ม
efficiency#
ค่าประสิทธิภาพ efficiency เป็นเปอร์เซ็นต์ตั้งแต่ 0% ถึง 100%
ประสิทธิภาพแสดงให้เห็นว่าพลังงานของมอเตอร์หรือกลุ่มมอเตอร์นั้นถูกนำไปใช้ในการเคลื่อนที่มากน้อยเพียงใด ค่าประสิทธิภาพที่สูงขึ้นหมายความว่าพลังงานของมอเตอร์หรือกลุ่มมอเตอร์ถูกนำไปใช้ในการเคลื่อนที่มากขึ้น ค่าประสิทธิภาพที่ต่ำลงอาจเกิดขึ้นได้เมื่อมอเตอร์หรือกลุ่มมอเตอร์ทำงานหนักแต่เคลื่อนที่ได้ไม่มาก เช่น เมื่อมันติดขัดหรือดันกับวัตถุ
สามารถใช้เพื่อเปรียบเทียบการเคลื่อนไหว หรือตรวจสอบว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังสูญเสียพลังงานแทนที่จะนำไปใช้ในการเคลื่อนไหวหรือไม่
Available Functionsdouble efficiency(
percentUnits units = percent );
พารามิเตอร์
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้แสดงประสิทธิภาพของมอเตอร์:
|
ค่าที่ส่งคืน
ส่งคืนค่า double ซึ่งแสดงถึงประสิทธิภาพการใช้พลังงานของมอเตอร์หรือกลุ่มมอเตอร์ในรูปเปอร์เซ็นต์
หมายเหตุ
เมื่อเรียกใช้ฟังก์ชันนี้กับ
motor_groupที่มีค่า ฟังก์ชันจะส่งคืนค่าประสิทธิภาพของมอเตอร์ตัวแรกในกลุ่ม
temperature#
temperature returns the temperature of the motor or motor group.
อุณหภูมิของมอเตอร์แสดงให้เห็นว่ามอเตอร์หรือกลุ่มมอเตอร์นั้นร้อนแค่ไหน อุณหภูมิที่สูงขึ้นหมายความว่ามอเตอร์หรือกลุ่มมอเตอร์นั้นร้อนขึ้นขณะทำงาน มอเตอร์ควรมีอุณหภูมิต่ำกว่า 55°C เพื่อให้ทำงานได้อย่างเต็มประสิทธิภาพ
หากมอเตอร์หรือกลุ่มมอเตอร์ร้อนเกินไป มันจะลดกระแสไฟฟ้าสูงสุดลงเพื่อป้องกันตัวเอง ที่ 70°C°C มอเตอร์จะหยุดทำงานจนกว่าจะเย็นลง
สามารถใช้ตรวจสอบได้ว่ามอเตอร์หรือกลุ่มมอเตอร์ร้อนเกินไปหรือไม่ ในระหว่างการเคลื่อนไหวซ้ำๆ การทำงานต่อเนื่องเป็นเวลานาน หรือเมื่อมีการดันวัตถุ
Available Functions1 — แสดงอุณหภูมิของมอเตอร์หรือกลุ่มมอเตอร์เป็นเปอร์เซ็นต์ของอุณหภูมิการทำงานสูงสุด
double temperature( percentUnits units = percent );
2 — ส่งคืนอุณหภูมิของมอเตอร์หรือกลุ่มมอเตอร์ในหน่วยอุณหภูมิทางกายภาพ
double temperature( temperatureUnits units );
พารามิเตอร์
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้แสดงอุณหภูมิของมอเตอร์หรือกลุ่มมอเตอร์เป็นเปอร์เซ็นต์:
|
|
|
หน่วยที่ใช้แสดงอุณหภูมิของมอเตอร์หรือกลุ่มมอเตอร์ในหน่วยองศา:
|
ค่าที่ส่งคืน
ส่งคืนค่า double ซึ่งแสดงถึงอุณหภูมิของมอเตอร์หรือกลุ่มมอเตอร์ในหน่วยที่ระบุ
หมายเหตุ
ช่วงอุณหภูมิการทำงานของมอเตอร์โดยประมาณคือ
20°C(68°F) ถึง70°C(158°F)เมื่อเรียกใช้ฟังก์ชันนี้กับ
motor_groupที่มีค่า ฟังก์ชันจะส่งคืนอุณหภูมิของมอเตอร์ตัวแรกในกลุ่ม
voltage#
voltage คือแรงดันไฟฟ้าที่จ่ายให้กับมอเตอร์หรือกลุ่มมอเตอร์
double voltage(
voltageUnits units = volt );
พารามิเตอร์
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยที่ใช้แสดงแรงดันไฟฟ้า:
|
ค่าที่ส่งคืน
ส่งคืนค่า double ซึ่งแสดงถึงแรงดันไฟฟ้าที่จ่ายให้กับมอเตอร์หรือกลุ่มมอเตอร์ในหน่วยที่ระบุ
หมายเหตุ
เมื่อเรียกใช้ฟังก์ชันนี้กับ
motor_groupที่มีค่า ฟังก์ชันจะส่งคืนค่าแรงดันไฟฟ้าของมอเตอร์ตัวแรกในกลุ่ม
direction#
direction ส่งคืนทิศทางที่มอเตอร์หรือกลุ่มมอเตอร์กำลังหมุน
directionType direction();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
ค่าที่ส่งคืน
ส่งคืนค่า directionType directionType ทิศทางปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์:
forward— The motor or motor group is spinning forward.reverse— The motor or motor group is spinning in reverse.
installed#
installed ส่งคืนว่ามอเตอร์หรือกลุ่มมอเตอร์เชื่อมต่อกับ IQ (รุ่นที่ 2) Brain หรือไม่
bool installed();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
ค่าที่ส่งคืน
ส่งคืนค่าบูลีน bool เพื่อระบุว่ามอเตอร์หรือกลุ่มมอเตอร์เชื่อมต่ออยู่หรือไม่
true— The motor or motor group is connected.false— The motor or motor group is not connected.
count#
count ส่งคืนจำนวนมอเตอร์ในกลุ่มมอเตอร์
int32_t count();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
ค่าที่ส่งคืน
ส่งคืนค่า int32_t ซึ่งแสดงถึงจำนวนมอเตอร์ในกลุ่มมอเตอร์