ระบบขับเคลื่อน#
การแนะนำ#
หุ่นยนต์ VEX V5 ใช้ระบบขับเคลื่อนเพื่อบังคับทิศทางและเลี้ยว ระบบขับเคลื่อนประกอบด้วยมอเตอร์และล้อที่ทำงานร่วมกันเพื่อเคลื่อนที่หุ่นยนต์
ระบบขับเคลื่อนที่กำหนดค่าไว้สามารถใช้ เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS, เซ็นเซอร์ไจโร หรือไม่ใช้เซ็นเซอร์ก็ได้ เมื่อใช้เซ็นเซอร์ ระบบขับเคลื่อนจะใช้เซ็นเซอร์นั้นเพื่อช่วยให้หุ่นยนต์เคลื่อนที่และเลี้ยวได้อย่างแม่นยำ ในตอนเริ่มต้นของแต่ละโครงการ ระบบขับเคลื่อนจะปรับเทียบเซ็นเซอร์โดยอัตโนมัติ ให้หุ่นยนต์อยู่นิ่งในระหว่างการปรับเทียบ เพื่อให้หุ่นยนต์สามารถเคลื่อนที่และเลี้ยวได้อย่างถูกต้อง
มีหลายวิธีในการกำหนดรหัสระบบขับเคลื่อน หน้านี้ใช้ชื่อระบบขับเคลื่อน drivetrain เป็นตัวอย่าง โปรดแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ
ด้านล่างนี้คือรายการวิธีการส่งกำลังทั้งหมด:
การกระทำ — ขยับและหมุนหุ่นยนต์
drive— เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตลอดไปdrive_for— เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตามระยะทางที่กำหนดturn— หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตลอดไปturn_for— หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตามจำนวนองศาที่กำหนดturn_to_heading— หมุนหุ่นยนต์ให้หันหน้าไปยังทิศทางที่กำหนดตั้งแต่ -359 ถึง 359 องศา หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมายturn_to_rotation— หมุนหุ่นยนต์ไปที่มุมการหมุนที่กำหนดstop— หยุดการเคลื่อนที่ของหุ่นยนต์calibrate_drivetrain– ปรับเทียบเซ็นเซอร์ที่กำหนดค่าไว้กับระบบขับเคลื่อน
ตัวปรับแต่ง — ปรับการตั้งค่าระบบขับเคลื่อน
set_drive_velocity— บอกหุ่นยนต์ว่าจะขับด้วยความเร็วเท่าใดset_turn_velocity— บอกหุ่นยนต์ว่าจะเลี้ยวเร็วแค่ไหนset_stopping— บอกวิธีที่หุ่นยนต์จะหยุดเคลื่อนที่: โดยการเบรก การปล่อยให้ไหลไปเอง หรือการหยุดนิ่งset_timeout— กำหนดจำนวนวินาทีที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้นset_heading— เปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นทิศทางใหม่set_rotation— เปลี่ยนการหมุนปัจจุบันของหุ่นยนต์เป็นการหมุนใหม่set_turn_threshold– บอกว่าหุ่นยนต์ต้องเข้าใกล้มุมเป้าหมายมากแค่ไหนก่อนที่จะเลี้ยวเสร็จสมบูรณ์set_turn_constant– เปลี่ยนความแรงในการแก้ไขการเลี้ยวของหุ่นยนต์set_turn_direction_reverse– เปลี่ยนทิศทางการเลี้ยวของระบบขับเคลื่อนอัจฉริยะว่าจะกลับทิศทางหรือไม่
ตัวตรวจสอบสถานะระบบขับเคลื่อน — ตรวจสอบสถานะระบบส่งกำลัง
is_done— ส่งคืนค่าบูลีนว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่is_moving— ส่งคืนว่าหุ่นยนต์กำลังเคลื่อนที่หรือไม่ ในรูปแบบค่าบูลีนheading— ส่งคืนทิศทางปัจจุบันของหุ่นยนต์จาก 0 ถึง 359.99 องศาrotation— ส่งคืนการหมุนปัจจุบันของหุ่นยนต์velocity— ส่งคืนความเร็วที่หุ่นยนต์กำลังขับเคลื่อนcurrent— ส่งคืนกระแสไฟฟ้าที่ระบบขับเคลื่อนใช้power— ส่งคืนอัตราการใช้พลังงานของระบบขับเคลื่อนtorque— ส่งคืนค่าแรงบิดที่ระบบขับเคลื่อนใช้efficiency— ส่งคืนประสิทธิภาพการใช้พลังงานของระบบขับเคลื่อนtemperature— ส่งคืนอุณหภูมิของระบบขับเคลื่อนget_timeout– ส่งคืนการตั้งค่าหมดเวลาปัจจุบัน
ผู้ประกอบชิ้นส่วน – สร้างและกำหนดค่าระบบขับเคลื่อนด้วยตนเอง
DriveTrain– สร้างระบบขับเคลื่อน โดยไม่มี เซ็นเซอร์เฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโรSmartDrive– สร้างระบบขับเคลื่อนที่กำหนดค่าด้วย เซ็นเซอร์เฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร
การกระทำ#
drive#
drive จะทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด หุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การเลี้ยวหรือการหยุด สำหรับ RPM หรือองศาต่อวินาที ขีดจำกัดจะเปลี่ยนแปลงไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
Usage:
drivetrain.drive(direction, velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
ตัวเลือกเสริม ความเร็วในการขับเคลื่อนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
ตัวเลือกเสริม หน่วยความเร็ว: |
# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Drive forward at 360 degrees per second
drivetrain.drive(FORWARD, 360.0, VelocityUnits.DPS)
drive_for#
คำสั่ง drive_for จะเคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังเป็นระยะทางที่กำหนด โครงการจะรอจนกว่าหุ่นยนต์จะหยุดเคลื่อนที่ก่อนที่โค้ดบรรทัดถัดไปจะทำงาน สำหรับหน่วย RPM หรือองศาต่อวินาที ขีดจำกัดจะเปลี่ยนไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
ระยะทางที่หุ่นยนต์ขับเคลื่อน ค่านี้อาจเป็นจำนวนเต็ม |
|
เลือกได้ หน่วยวัดระยะทาง: |
|
ตัวเลือกเสริม ความเร็วในการขับเคลื่อนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
ตัวเลือกเสริม หน่วยความเร็ว: |
|
ตัวเลือกเสริม |
# Drive forwards and backwards
drivetrain.drive_for(FORWARD, 5)
wait(1, SECONDS)
drivetrain.drive_for(REVERSE, 5)
turn#
การหมุน turn รอบ จะทำให้หุ่นยนต์หมุนไปทางซ้ายหรือขวาไปเรื่อยๆ จนกว่าจะได้รับคำสั่งอื่น เช่น การขับเคลื่อนหรือการหยุด สำหรับความเร็วรอบ (RPM) หรือองศาต่อวินาที ขีดจำกัดจะเปลี่ยนแปลงไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
Usage:
drivetrain.turn(direction, velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์หมุน: |
|
ตัวเลือกเสริม ความเร็วในการหมุนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
ตัวเลือกเสริม หน่วยความเร็ว: |
# Turn right, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.stop()
turn_for#
turn_for จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเป็นจำนวนองศาที่กำหนด การหมุนจะสัมพันธ์กับตำแหน่งปัจจุบันของหุ่นยนต์ โครงการจะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่โค้ดบรรทัดถัดไปจะทำงาน สำหรับ RPM หรือองศาต่อวินาที ขีดจำกัดจะเปลี่ยนไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์หมุน: |
|
จำนวนองศาที่หุ่นยนต์หมุน ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ตามต้องการ หน่วยการหมุน: |
|
ตัวเลือกเสริม ความเร็วในการหมุนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
ตัวเลือกเสริม หน่วยความเร็ว: |
|
ตัวเลือกเสริม |
# Turn left, then turn around to the right
drivetrain.turn_for(LEFT, 90)
drivetrain.turn_for(RIGHT, 180)
turn_to_heading#
ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง turn_to_heading จะหมุนหุ่นยนต์ให้หันหน้าไปในทิศทางที่กำหนด ตั้งแต่ -359 ถึง 359 องศา หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมาย
ทิศทางเริ่มต้นของหุ่นยนต์คือ 0 องศา
โปรเจ็กต์จะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่จะรันโค้ดบรรทัดถัดไป
หมายเหตุ: ฟังก์ชันนี้จะใช้งานได้ก็ต่อเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์ควรหันหน้าไป (หน่วยเป็นองศา) ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ตามต้องการ หน่วยวัดส่วนหัว: |
|
ตัวเลือกเสริม ความเร็วในการหมุนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
ตัวเลือกเสริม หน่วยความเร็ว: |
|
ตัวเลือกเสริม |
# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)
# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)
turn_to_rotation#
turn_to_rotation หมุนหุ่นยนต์ไปยังทิศทางการหมุนที่กำหนด
การหมุนคือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา นอกจากนี้ยังสามารถตั้งค่าการหมุนได้โดยใช้เมธอด set_rotation
ค่าการหมุนเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการเลี้ยวขึ้นอยู่กับการหมุนปัจจุบันของหุ่นยนต์ การเลี้ยวขวาจะเพิ่มการหมุน และการเลี้ยวซ้ายจะลดการหมุน
ตัวอย่างเช่น ถ้าหุ่นยนต์เริ่มต้นที่ 0 องศา และคุณหมุนเป็น 720 องศา มันจะเลี้ยวขวา 2 ครั้ง จากนั้นถ้าคุณหมุนเป็น 360 องศา มันจะเลี้ยวซ้าย 1 ครั้ง เพราะ 360 น้อยกว่า 720
โปรเจ็กต์จะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่จะรันโค้ดบรรทัดถัดไป
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าการหมุน (หน่วยเป็นองศาหรือจำนวนรอบ) ที่หุ่นยนต์จะหมุนไป ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ตามต้องการ หน่วยการหมุน: |
|
ตัวเลือกเสริม ความเร็วในการหมุนสามารถกำหนดได้ตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
ตัวเลือกเสริม หน่วยความเร็ว: |
|
ตัวเลือกเสริม |
# Turn left, then spin in a circle clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)
# Turn left then slowly spin in a circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)
stop#
ปุ่ม stop stop จะหยุดการเคลื่อนที่ของหุ่นยนต์
Usage:
drivetrain.stop(mode)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม วิธีการหยุดของหุ่นยนต์:
|
# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
calibrate_drivetrain#
calibrate_drivetrain เป็นฟังก์ชันในตัวที่ใช้ปรับเทียบ เซ็นเซอร์เฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ที่กำหนดค่าไว้ของระบบขับเคลื่อน
การปรับเทียบช่วยให้เซ็นเซอร์วัดการเคลื่อนไหวได้อย่างถูกต้อง ให้หุ่นยนต์อยู่นิ่งประมาณ 2 วินาทีในระหว่างการปรับเทียบ หากหุ่นยนต์เคลื่อนที่ในระหว่างการปรับเทียบ เซ็นเซอร์อาจวัดการเคลื่อนไหวไม่ถูกต้อง
โปรเจ็กต์จะรอจนกว่าการปรับเทียบจะเสร็จสิ้นก่อนจึงจะเริ่มรันโค้ดบรรทัดถัดไป
หมายเหตุ: ฟังก์ชันนี้จะใช้งานได้ก็ต่อเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
calibrate_drivetrain()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
ฟังก์ชันนี้ไม่มีพารามิเตอร์ |
ตัวกลายพันธุ์#
set_drive_velocity#
set_drive_velocity บอกหุ่นยนต์ว่าควรขับเคลื่อนด้วยความเร็วเท่าใด เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์ขับเคลื่อนเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์ขับเคลื่อนช้าลง สำหรับหน่วย RPM หรือองศาต่อวินาที ขีดจำกัดจะเปลี่ยนแปลงไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์ขับเคลื่อนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์ขับเคลื่อนได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์ขับเคลื่อนได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Usage:
drivetrain.set_drive_velocity(velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการขับเคลื่อนตั้งแต่ 0% ถึง 100% เมื่อใช้ |
|
ตัวเลือกเสริม หน่วยความเร็ว: |
# Drive forward at the default velocity
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
set_turn_velocity#
set_turn_velocity บอกหุ่นยนต์ว่าควรเลี้ยวเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวช้าลง สำหรับ RPM หรือองศาต่อวินาที ขีดจำกัดจะเปลี่ยนแปลงไปตามอัตราทดเกียร์ของระบบขับเคลื่อน
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์หมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
Usage:
drivetrain.set_turn_velocity(velocity, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วที่จะหมุนจาก 0% ถึง 100% เมื่อใช้ |
|
ตัวเลือกเสริม หน่วยความเร็ว: |
# Turn at the default velocity
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)
set_stopping#
set_stopping กำหนดวิธีการหยุดการเคลื่อนที่ของหุ่นยนต์: โดยการเบรก การปล่อยให้ไหลไปเอง หรือการหยุดนิ่ง
Usage:
drivetrain.set_stopping(mode)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
วิธีที่หุ่นยนต์จะหยุด:
|
หากไม่ใช้วิธีนี้ หุ่นยนต์จะใช้ BRAKE เมื่อหยุด
set_timeout#
set_timeout กำหนดจำนวนวินาทีที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากหุ่นยนต์ไม่สามารถทำการเคลื่อนไหวให้เสร็จสิ้นภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้หุ่นยนต์ติดอยู่กับการเคลื่อนไหวใดๆ
Usage:
drivetrain.set_timeout(value, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ระยะเวลาที่หุ่นยนต์สามารถพยายามทำท่าทางให้เสร็จสิ้นได้ ค่านี้อาจเป็นจำนวนเต็มบวก |
|
ตัวเลือกเสริม หน่วยเวลา: |
set_heading#
ทิศทางที่หุ่นยนต์หันหน้าไป (Heading) คือทิศทางที่หุ่นยนต์กำลังหันหน้าไป โดยวัดเป็นองศา คำสั่ง set_heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นค่าทิศทางใหม่
ตัวอย่างเช่น หากหุ่นยนต์หันไปทางขวา การตั้งค่าทิศทางเป็น 0 องศา จะทำให้ตำแหน่งที่หันไปทางขวานั้นกลายเป็น 0 องศาใหม่ จากนั้นหุ่นยนต์สามารถหันไปตำแหน่งอื่น ๆ ได้โดยอิงจากทิศทางใหม่นั้น
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.set_heading(heading, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าทิศทาง (หน่วยเป็นองศาหรือจำนวนรอบ) ที่จะตั้งค่าให้กับหุ่นยนต์ ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ตามต้องการ หน่วยวัด: |
# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
set_rotation#
การหมุนคือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา คำสั่ง set_rotation จะเปลี่ยนค่าการหมุนปัจจุบันของหุ่นยนต์เป็นค่าใหม่
ตัวอย่างเช่น หากหุ่นยนต์หมุนไปทางขวาครบสองรอบ ค่าการหมุนของมันจะเป็น 720 องศา การตั้งค่าการหมุนเป็น 0 องศาจะรีเซ็ตค่าการหมุนจาก 720 เป็น 0 องศา จากนั้นหุ่นยนต์สามารถหมุนได้ตามค่าการหมุนใหม่นั้น
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.set_rotation(rotation, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าการหมุน (หน่วยเป็นองศาหรือจำนวนรอบ) ที่จะตั้งค่าให้กับหุ่นยนต์ ค่านี้สามารถเป็นจำนวนเต็ม |
|
เลือกได้ตามต้องการ หน่วยการหมุน: |
# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
set_turn_threshold#
set_turn_threshold กำหนดว่าหุ่นยนต์ต้องเข้าใกล้กับมุมเป้าหมายมากแค่ไหนก่อนที่จะเลี้ยวเสร็จสมบูรณ์
ค่าเกณฑ์ที่เล็กกว่าจะทำให้การเลี้ยวแม่นยำมากขึ้น แต่หุ่นยนต์อาจใช้เวลานานขึ้นในการเลี้ยวให้เสร็จ ค่าเกณฑ์ที่ใหญ่กว่าจะทำให้การเลี้ยวเสร็จเร็วขึ้น แต่ความแม่นยำอาจลดลง
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.set_turn_threshold(value)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าองศาการเลี้ยว สามารถเป็นจำนวนเต็ม |
set_turn_constant#
set_turn_constant จะเปลี่ยนความแรงในการแก้ไขการเลี้ยวของหุ่นยนต์
ค่าที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวหักมุมได้แรงขึ้น ค่าที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวหักมุมได้นุ่มนวลขึ้น ค่าเริ่มต้นคือ 1.0
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.set_turn_constant(value)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าคงที่การหมุน สามารถเป็นเลขทศนิยม ( |
set_turn_direction_reverse#
set_turn_direction_reverse จะเปลี่ยนว่าทิศทางการเลี้ยวของระบบขับเคลื่อนอัจฉริยะจะกลับทิศทางหรือไม่
วิธีนี้สามารถใช้ได้หากระบบขับเคลื่อนหมุนไปในทิศทางตรงกันข้ามกับที่คาดไว้หลังจากกำหนดค่าด้วยตนเองในโค้ด วิธีนี้ทำงานเหมือนกับการตั้งค่าพารามิเตอร์ reverse เป็น True เมื่อสร้าง SmartDrive
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.set_turn_direction_reverse(value)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ว่าจะกลับทิศทางการเลี้ยวของระบบขับเคลื่อนอัจฉริยะหรือไม่: |
ผู้รับ#
is_done#
is_done จะส่งคืนค่าบูลีนว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้
True— หุ่นยนต์เคลื่อนที่เสร็จแล้วFalse— หุ่นยนต์ยังคงเคลื่อนที่อยู่
วิธีการนี้ทำงานร่วมกับวิธีการ Drivetrain ต่อไปนี้ที่มีพารามิเตอร์ wait : drive_for, turn_for, turn_to_heading, และ turn_to_rotation
Usage:
drivetrain.is_done()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
is_moving#
is_moving จะส่งคืนค่าบูลีนว่าหุ่นยนต์กำลังเคลื่อนที่หรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้
True— หุ่นยนต์กำลังเคลื่อนที่False— หุ่นยนต์ไม่เคลื่อนที่
วิธีใช้:
drivetrain.is_moving()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
heading#
ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์จาก 0 เป็น 359.99 องศา
ทิศทางเริ่มต้นของหุ่นยนต์คือ 0 องศา
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.heading(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม หน่วยในการปรับทิศทางกลับ: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())
rotation#
การหมุน คือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา คำสั่ง rotation จะส่งคืนค่าการหมุนปัจจุบันของหุ่นยนต์
การเลี้ยวขวาจะเพิ่มมุมการหมุน และการเลี้ยวซ้ายจะลดมุมการหมุน ตัวอย่างเช่น การเลี้ยวขวาครบสองรอบจะทำให้ได้มุมการหมุน 720 องศา
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะเมื่อระบบขับเคลื่อนได้รับการกำหนดค่าด้วย เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ในหน้าต่างอุปกรณ์เท่านั้น
Usage:
drivetrain.rotation(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม หน่วยการหมุนกลับ: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())
velocity#
ค่า velocity จะแสดงความเร็วในการขับเคลื่อนของหุ่นยนต์
สามารถแสดงค่าความเร็วเป็นเปอร์เซ็นต์ตั้งแต่ -100% ถึง 100% ในหน่วย RPMหรือใน VelocityUnits.DPS (องศาต่อวินาที) ค่าบวกหมายความว่าหุ่นยนต์กำลังเคลื่อนที่ไปข้างหน้า ค่าลบหมายความว่าหุ่นยนต์กำลังเคลื่อนที่ถอยหลัง
Usage:
drivetrain.velocity(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม หน่วยความเร็ว: |
current#
ค่า current แสดงปริมาณกระแสไฟฟ้าที่ระบบขับเคลื่อนใช้ โดยวัดเป็นแอมป์ (แอมแปร์) กระแสไฟฟ้าคือปริมาณไฟฟ้าที่ไหลผ่านระบบขับเคลื่อน
ค่ากระแสไฟฟ้าที่สูงขึ้นหมายความว่าระบบขับเคลื่อนใช้กระแสไฟฟ้ามากขึ้น ซึ่งอาจเกิดขึ้นเมื่อหุ่นยนต์กำลังดันกับวัตถุหรือพยายามเคลื่อนที่เมื่อติดอยู่
สามารถใช้ตรวจสอบได้ว่าระบบขับเคลื่อนทำงานหนักเกินไปหรือไม่ขณะเคลื่อนที่ หากกระแสไฟฟ้าสูงต่อเนื่อง ระบบขับเคลื่อนอาจร้อนขึ้นหรือใช้พลังงานอย่างไม่มีประสิทธิภาพ
Usage:
drivetrain.current(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม หน่วยที่ใช้ในการส่งกระแสไฟฟ้ากลับ: |
power#
ค่า power แสดงปริมาณพลังงานที่ระบบขับเคลื่อนใช้ โดยวัดเป็นวัตต์ ค่า Power แสดงให้เห็นว่าระบบขับเคลื่อนใช้พลังงานเร็วแค่ไหน
ค่ากำลังไฟฟ้าที่สูงขึ้นหมายความว่าระบบขับเคลื่อนใช้พลังงานเร็วขึ้น ซึ่งอาจเกิดขึ้นเมื่อหุ่นยนต์กำลังดันกับวัตถุหรือพยายามเคลื่อนที่เมื่อติดอยู่
สามารถใช้สิ่งนี้เพื่อเปรียบเทียบการเคลื่อนไหวหรือตรวจสอบว่าระบบขับเคลื่อนทำงานหนักเกินไปหรือไม่ หากกำลังไฟสูงอยู่ตลอดเวลา ระบบขับเคลื่อนอาจร้อนขึ้นหรือใช้พลังงานอย่างไม่มีประสิทธิภาพมากขึ้น
Usage:
drivetrain.power()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
torque#
แรงบิดแสดงให้เห็นว่าระบบส่งกำลังสามารถผลักหรือดึงได้แรงแค่ไหนในขณะที่ล้อหมุน
ค่า torque torque จะแสดงค่าแรงบิดที่ระบบส่งกำลังใช้งาน โดยวัดเป็นนิวตันเมตร (Nm) หรือนิ้วปอนด์ (InLb)
ค่าแรงบิดที่สูงขึ้นหมายความว่าระบบขับเคลื่อนกำลังผลักหรือดึงแรงขึ้น ซึ่งอาจเกิดขึ้นเมื่อหุ่นยนต์กำลังผลักกับวัตถุหรือพยายามเคลื่อนที่เมื่อติดอยู่
สามารถใช้ตรวจสอบได้ว่าระบบขับเคลื่อนทำงานหนักเกินไปหรือไม่ หรือเพื่อเปรียบเทียบว่าการเคลื่อนไหวแต่ละแบบต้องการแรงผลักมากแค่ไหน
Usage:
drivetrain.torque(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม หน่วยที่ใช้ในการส่งค่าแรงบิดกลับ: |
efficiency#
efficiency returns how efficiently the drivetrain is using power, as a percentage from 0% to 100%.
ประสิทธิภาพแสดงให้เห็นว่าพลังงานของระบบขับเคลื่อนถูกนำไปใช้ในการเคลื่อนที่มากน้อยเพียงใด ค่าประสิทธิภาพที่สูงขึ้นหมายความว่าพลังงานของระบบขับเคลื่อนถูกนำไปใช้ในการเคลื่อนที่มากขึ้น ค่าประสิทธิภาพที่ต่ำลงอาจเกิดขึ้นได้เมื่อระบบขับเคลื่อนทำงานหนักแต่เคลื่อนที่ได้ไม่มาก เช่น เมื่อหุ่นยนต์ติดอยู่หรือชนกับวัตถุ
สามารถใช้เพื่อเปรียบเทียบการเคลื่อนไหว หรือตรวจสอบว่าระบบขับเคลื่อนสูญเสียพลังงานไปโดยเปล่าประโยชน์ แทนที่จะนำไปใช้ในการเคลื่อนไหวหรือไม่
Usage:
drivetrain.efficiency()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
temperature#
ค่าอุณหภูมิ temperature จะแสดงอุณหภูมิเฉลี่ยของระบบขับเคลื่อนในหน่วยอุณหภูมิที่เลือก
อุณหภูมิแสดงให้เห็นถึงความร้อนของมอเตอร์ในระบบขับเคลื่อน อุณหภูมิที่สูงขึ้นหมายความว่ามอเตอร์กำลังร้อนขึ้นขณะทำงาน มอเตอร์ควรมีอุณหภูมิต่ำกว่า 55°C เพื่อให้ทำงานได้อย่างเต็มประสิทธิภาพ
หากมอเตอร์ร้อนเกินไป มอเตอร์จะลดกระแสไฟฟ้าสูงสุดลงเพื่อป้องกันตัวเอง เมื่ออุณหภูมิถึง 70°C มอเตอร์จะหยุดทำงานจนกว่าจะเย็นลง
สามารถใช้ตรวจสอบได้ว่าชุดขับเคลื่อนร้อนเกินไปหรือไม่ระหว่างการเคลื่อนไหวซ้ำๆ การใช้งานเป็นเวลานาน หรือเมื่อมีการดันกับวัตถุ
Usage:
drivetrain.temperature(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม หน่วยที่จะแสดงอุณหภูมิ: |
get_timeout#
get_timeout ส่งคืนค่า timeout ที่ตั้งไว้ในปัจจุบันเป็นมิลลิวินาที
Usage:
drivetrain.get_timeout()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
ผู้สร้าง#
ตัวสร้าง (Constructor) ใช้สำหรับสร้างอ็อบเจ็กต์ DriveTrain และ SmartDrive จำนวน ตัวด้วยตนเอง ซึ่งจำเป็นสำหรับการกำหนดค่าระบบขับเคลื่อนภายนอก VEXcode
ต้องสร้างวัตถุ Motor หรือ MotorGroup อย่างน้อยสองรายการก่อนสร้างระบบขับเคลื่อน
DriveTrain#
DriveTrain สร้างระบบขับเคลื่อน โดยไม่มี เซ็นเซอร์เฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร
Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
The left motor or motor group. |
|
The right motor or motor group. |
|
(ไม่บังคับ) เส้นรอบวงของล้อระบบขับเคลื่อน ค่าเริ่มต้นคือ 300 มิลลิเมตร |
|
(ไม่บังคับ) ความกว้างระหว่างล้อซ้ายและล้อขวา ค่าเริ่มต้นคือ 320 มิลลิเมตร |
|
(ไม่บังคับ) ระยะห่างระหว่างล้อหน้าและล้อหลัง ค่าเริ่มต้นคือ 320 มิลลิเมตร |
|
ตัวเลือกเสริม หน่วยสำหรับ |
|
Optional. The gear ratio used to adjust drive distances if gears are used. This can be an |
# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
# Create a drivetrain with default values
drivetrain = DriveTrain(left_motor, right_motor)
# Create the motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)
SmartDrive#
SmartDrive สร้างระบบขับเคลื่อนที่กำหนดค่าด้วย เซ็นเซอร์เฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร
Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
The left motor or motor group. |
|
The right motor or motor group. |
|
เซ็นเซอร์ความเฉื่อย, เซ็นเซอร์ GPS หรือ เซ็นเซอร์ไจโร ที่ใช้โดยระบบขับเคลื่อน |
|
(ไม่บังคับ) เส้นรอบวงของล้อระบบขับเคลื่อน ค่าเริ่มต้นคือ 300 มิลลิเมตร |
|
(ไม่บังคับ) ความกว้างระหว่างล้อซ้ายและล้อขวา ค่าเริ่มต้นคือ 320 มิลลิเมตร |
|
(ไม่บังคับ) ระยะห่างระหว่างล้อหน้าและล้อหลัง ค่าเริ่มต้นคือ 320 มิลลิเมตร |
|
ตัวเลือกเสริม หน่วยสำหรับ |
|
Optional. The gear ratio used to adjust drive distances if gears are used. This can be an |
# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)
# Create a drivetrain with default values
drivetrain = SmartDrive(left_motor, right_motor, gyro_a)
# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)
"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = SmartDrive(left_motor, right_motor, gyro_a, 319.19, 295, 40, MM, 1)