ระบบขับเคลื่อน#
การแนะนำ#
ระบบขับเคลื่อนประกอบด้วยล้อและมอเตอร์ที่ควบคุมการเคลื่อนที่และการเลี้ยวของหุ่นยนต์ ระบบขับเคลื่อนสามารถพบได้ในหุ่นยนต์รุ่นต่างๆ เช่น Code Base 2.0, Super Car หรือหุ่นยนต์ที่ออกแบบเอง
ระบบขับเคลื่อนใช้ เซ็นเซอร์ความเฉื่อย ในสมองเพื่อตรวจจับการชนและช่วยให้หุ่นยนต์เคลื่อนที่และเลี้ยวได้อย่างแม่นยำ ในตอนเริ่มต้นของแต่ละโครงการ ระบบขับเคลื่อนจะปรับเทียบเซ็นเซอร์ความเฉื่อยโดยอัตโนมัติ ให้หุ่นยนต์อยู่นิ่งประมาณ 2 วินาทีในระหว่างการปรับเทียบ เพื่อให้หุ่นยนต์สามารถเคลื่อนที่และเลี้ยวได้อย่างถูกต้อง
มีหลายวิธีในการเขียนโค้ดระบบขับเคลื่อน ด้านล่างนี้คือรายการวิธีการเขียนโค้ดระบบขับเคลื่อนทั้งหมด:
การกระทำ — ขยับและหมุนหุ่นยนต์
drive— เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตลอดไปdrive_for— เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตามระยะทางที่กำหนดdrive_until— เคลื่อนหุ่นยนต์ไปข้างหน้าจนกว่าเซ็นเซอร์ตาจะตรวจพบวัตถุหรือหุ่นยนต์ตรวจพบการชนturn— หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตลอดไปturn_for— หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตามจำนวนองศาที่กำหนดturn_to_heading— หมุนหุ่นยนต์ให้หันหน้าไปยังทิศทางที่กำหนดตั้งแต่ -359 ถึง 359 องศา หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมายturn_to_rotation— หมุนหุ่นยนต์ไปที่มุมการหมุนที่กำหนดstop— หยุดการเคลื่อนที่ของหุ่นยนต์
ตัวปรับแต่ง — ปรับการตั้งค่าระบบขับเคลื่อน
set_drive_velocity— บอกหุ่นยนต์ว่าจะขับด้วยความเร็วเท่าใดset_turn_velocity— บอกหุ่นยนต์ว่าจะเลี้ยวเร็วแค่ไหนset_stopping— บอกวิธีที่หุ่นยนต์จะหยุดเคลื่อนที่: โดยการเบรก การปล่อยให้ไหลไปเอง หรือการหยุดนิ่งset_timeout— กำหนดระยะเวลาที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้นset_heading— เปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นทิศทางใหม่set_rotation— เปลี่ยนการหมุนปัจจุบันของหุ่นยนต์เป็นการหมุนใหม่
ผู้รับสินค้า — ตรวจสอบสถานะการเคลื่อนย้าย
get_heading— ส่งคืนทิศทางปัจจุบันของหุ่นยนต์ตั้งแต่ 0 ถึง 359 องศาget_rotation— ส่งคืนการหมุนปัจจุบันของหุ่นยนต์get_velocity— ส่งคืนความเร็วในการขับเคลื่อนของหุ่นยนต์เป็นเปอร์เซ็นต์ตั้งแต่ -100% ถึง 100%get_yaw— ส่งคืนค่า yaw ปัจจุบันของหุ่นยนต์get_roll— คืนค่าการทอยลูกเต๋าปัจจุบันของหุ่นยนต์get_pitch— ส่งคืนค่า pitch ปัจจุบันของหุ่นยนต์get_crashed— ส่งคืนว่าหุ่นยนต์ตรวจพบการชนหรือไม่ โดยเป็นค่าบูลีนis_stopped— ส่งคืนว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่ ในรูปแบบค่าบูลีน
การกระทำ#
drive#
คำสั่ง drive จะทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด หุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การเลี้ยวหรือการหยุด
Usage:
drivetrain.drive(direction)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
# Build Used: Code Base 2.0
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
drive_for#
คำสั่ง drive_for จะเคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังเป็นระยะทางที่กำหนด
Usage:
drivetrain.drive_for(direction, distance, units, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางการเคลื่อนที่ของหุ่นยนต์: |
|
ระยะทางที่หุ่นยนต์ขับเคลื่อนไปได้ ค่านี้อาจเป็นจำนวนเต็มหรือทศนิยมก็ได้ |
|
เลือกได้ หน่วยระยะทาง: |
|
ตัวเลือกเสริม |
# Build Used: Code Base 2.0
def main():
# Drive back and forth
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.drive_for(REVERSE, 4, INCHES)
# Start threads — Do not delete
start_thread(main)
drive_until#
คำสั่ง drive_until จะเคลื่อนหุ่นยนต์ไปข้างหน้าจนกว่าเซ็นเซอร์ตรวจจับวัตถุจะตรวจพบวัตถุ หรือหุ่นยนต์ตรวจพบการชน
Usage:
drivetrain.drive_until(condition, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
เงื่อนไขที่ทำให้หุ่นยนต์หยุดทำงาน: |
|
ตัวเลือกเสริม |
# Build Used: Code Base 2.0
def main():
# Turn right after a crash
drivetrain.drive_until(CRASH)
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
turn#
turn จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาไปเรื่อยๆ จนกว่าจะได้รับคำสั่งอื่น เช่น ขับไปหยุด
Usage:
drivetrain.turn(direction)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์หมุน: |
# Build Used: Code Base 2.0
def main():
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
turn_for#
คำสั่ง turn_for จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเป็นจำนวนองศาที่กำหนด การหมุนจะสัมพันธ์กับตำแหน่งปัจจุบันของหุ่นยนต์
Usage:
drivetrain.turn_for(direction, angle, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์หมุน: |
|
จำนวนองศาที่หุ่นยนต์หมุน ค่านี้อาจเป็นจำนวนเต็มหรือทศนิยมก็ได้ |
|
ตัวเลือกเสริม |
# Build Used: Code Base 2.0
def main():
# Turn right then left
drivetrain.turn_for(RIGHT, 90)
drivetrain.turn_for(LEFT, 90)
# Start threads — Do not delete
start_thread(main)
turn_to_heading#
ทิศทาง (Heading) คือทิศทางที่สมองของหุ่นยนต์หันไป โดยวัดเป็นองศา คำสั่ง turn_to_heading จะหมุนหุ่นยนต์ให้หันไปในทิศทางที่กำหนด ตั้งแต่ -359 ถึง 359 องศา หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมาย
ทิศทางเริ่มต้นคือ 0 องศา

Usage:
drivetrain.turn_to_heading(angle, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ทิศทางที่หุ่นยนต์ควรหันหน้าไปนั้นเป็นจำนวนเต็ม ตั้งแต่ -359 ถึง 359 องศา |
|
ตัวเลือกเสริม |
# Build Used: Code Base 2.0
def main():
# Turn to face the cardinal directions
drivetrain.turn_to_heading(90)
wait(1, SECONDS)
drivetrain.turn_to_heading(180)
wait(1, SECONDS)
drivetrain.turn_to_heading(270)
wait(1, SECONDS)
drivetrain.turn_to_heading(0)
# Start threads — Do not delete
start_thread(main)
turn_to_rotation#
turn_to_rotation หมุนหุ่นยนต์ไปยังทิศทางการหมุนที่กำหนด
การหมุนคือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา นอกจากนี้ยังสามารถตั้งค่าการหมุนได้โดยใช้ set_rotation
ค่าการหมุนเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการเลี้ยวขึ้นอยู่กับการหมุนปัจจุบันของหุ่นยนต์ การเลี้ยวขวาจะเพิ่มการหมุน และการเลี้ยวซ้ายจะลดการหมุน
ตัวอย่างเช่น ถ้าหุ่นยนต์เริ่มต้นที่ 0 องศา และคุณหมุนเป็น 720 องศา มันจะเลี้ยวขวา 2 ครั้ง จากนั้นถ้าคุณหมุนเป็น 360 องศา มันจะเลี้ยวซ้าย 1 ครั้ง เพราะ 360 น้อยกว่า 720

Usage:
drivetrain.turn_to_rotation(angle, wait)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่ามุมการหมุน (หน่วยเป็นองศา) ที่หุ่นยนต์จะหมุนไป ค่านี้สามารถเป็นจำนวนเต็มได้ |
|
ตัวเลือกเสริม |
# Build Used: Code Base 2.0
def main():
# Make one full turn to the right
drivetrain.turn_to_rotation(360)
# Make another full turn to the right
drivetrain.turn_to_rotation(720)
# Make one full turn to the left, returning to 360 degrees
drivetrain.turn_to_rotation(360)
# Start threads — Do not delete
start_thread(main)
stop#
ปุ่ม stop stop จะหยุดการเคลื่อนที่ของหุ่นยนต์
Usage:
drivetrain.stop()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Code Base 2.0
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
ตัวกลายพันธุ์#
set_drive_velocity#
set_drive_velocity จะบอกหุ่นยนต์ว่าควรขับเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์ขับเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์ขับช้าลง
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์ขับเคลื่อนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์ขับเคลื่อนได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์ขับเคลื่อนได้ช้าลง แต่จะแม่นยำมากขึ้น
Usage:
drivetrain.set_drive_velocity(velocity)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการขับขี่สามารถปรับได้ตั้งแต่ 0% ถึง 100% |
# Build Used: Code Base 2.0
def main():
# Drive at different velocities
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive slow
drivetrain.set_drive_velocity(20)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive fast
drivetrain.set_drive_velocity(100)
drivetrain.drive_for(FORWARD, 100, MM)
# Start threads — Do not delete
start_thread(main)
set_turn_velocity#
set_turn_velocity จะบอกหุ่นยนต์ว่าควรเลี้ยวเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวช้าลง
ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์หมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวได้ช้าลง แต่จะแม่นยำมากขึ้น
Usage:
drivetrain.set_turn_velocity(velocity)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% |
# Build Used: Code Base 2.0
def main():
# Turn at different velocities
drivetrain.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn fast
drivetrain.set_turn_velocity(100)
drivetrain.turn_for(RIGHT, 180)
# Start threads — Do not delete
start_thread(main)
set_stopping#
set_stopping กำหนดวิธีการหยุดการเคลื่อนที่ของหุ่นยนต์: โดยการเบรก การปล่อยให้ไหลไปเอง หรือการหยุดนิ่ง
Usage:
drivetrain.set_stopping(brake)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
วิธีที่หุ่นยนต์จะหยุด:
|
หากไม่ใช้วิธีนี้ หุ่นยนต์จะใช้ BRAKE เมื่อหยุด
# Build Used: Code Base 2.0
def main():
# Drive, then coast to a stop
drivetrain.set_drive_velocity(100)
drivetrain.set_stopping(COAST)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
set_timeout#
set_timeout กำหนดระยะเวลาที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากหุ่นยนต์ไม่สามารถทำการเคลื่อนไหวให้เสร็จภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้หุ่นยนต์ติดอยู่กับการเคลื่อนไหวใดๆ
Usage:
drivetrain.set_timeout(value, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ระยะเวลาที่หุ่นยนต์สามารถพยายามทำท่าทางให้เสร็จสมบูรณ์ได้ ค่านี้อาจเป็นจำนวนเต็มหรือทศนิยมก็ได้ |
|
เลือกได้ หน่วยเวลา: |
# Build Used: Code Base 2.0
def main():
# Drive as far as possible for 1 second before turning right
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
set_heading#
ทิศทาง (Heading) คือทิศทางที่สมองของหุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง set_heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นค่าทิศทางใหม่
ตัวอย่างเช่น หากหุ่นยนต์หันไปทางขวา การตั้งค่าทิศทางเป็น 0 องศา จะทำให้ตำแหน่งที่หันไปทางขวานั้นกลายเป็น 0 องศาใหม่ จากนั้นหุ่นยนต์สามารถหันไปตำแหน่งอื่น ๆ ได้โดยอิงจากทิศทางใหม่นั้น
Usage:
drivetrain.set_heading(value)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าทิศทาง (หน่วยเป็นองศา) ที่จะตั้งค่าให้กับหุ่นยนต์ สามารถเป็นจำนวนเต็มตั้งแต่ 0 ถึง 359 ได้ |
# Build Used: Code Base 2.0
def main():
# Face the new 0 degree heading
drivetrain.set_heading(90)
drivetrain.turn_to_heading(0)
# Start threads — Do not delete
start_thread(main)
set_rotation#
การหมุน คือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา คำสั่ง set_rotation จะเปลี่ยนค่าการหมุนปัจจุบันของหุ่นยนต์เป็นค่าใหม่
ตัวอย่างเช่น หากหุ่นยนต์หมุนไปทางขวาครบสองรอบ ค่าการหมุนของมันจะเป็น 720 องศา การตั้งค่าการหมุนเป็น 0 องศาจะรีเซ็ตค่าการหมุนจาก 720 เป็น 0 องศา จากนั้นหุ่นยนต์สามารถหมุนได้ตามค่าการหมุนใหม่นั้น
Usage:
drivetrain.set_rotation(value)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าการหมุน (หน่วยเป็นองศา) ที่จะตั้งค่าให้กับหุ่นยนต์ ค่านี้สามารถเป็นจำนวนเต็มได้ |
# Build Used: Code Base 2.0
def main():
# Spin counterclockwise two times
drivetrain.set_rotation(720)
drivetrain.turn_to_rotation(0)
# Start threads — Do not delete
start_thread(main)
ผู้รับ#
get_heading#
ทิศทาง (Heading) คือทิศทางที่สมองของหุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง get_heading จะส่งคืนค่าทิศทางนั้น ตั้งแต่ 0 ถึง 359 องศา
ทิศทางเริ่มต้นของหุ่นยนต์คือ 0 องศา

Usage:
drivetrain.get_heading()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Code Base 2.0
def main():
# Display the heading while turning
monitor_sensor("drivetrain.get_heading")
drivetrain.turn_for(RIGHT, 450)
# Start threads — Do not delete
start_thread(main)
get_rotation#
การหมุน คือจำนวนองศาที่หุ่นยนต์หมุนไป ในตอนเริ่มต้นโครงการ ค่าการหมุนจะถูกตั้งไว้ที่ 0 องศา คำสั่ง get_rotation จะส่งคืนค่าการหมุนปัจจุบันของหุ่นยนต์
การเลี้ยวขวาจะเพิ่มมุมการหมุน และการเลี้ยวซ้ายจะลดมุมการหมุน ตัวอย่างเช่น การเลี้ยวขวาครบสองรอบจะทำให้ได้มุมการหมุน 720 องศา

Usage:
drivetrain.get_rotation()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Code Base 2.0
def main():
# Display the rotation while turning
monitor_sensor("drivetrain.get_rotation")
drivetrain.turn_for(RIGHT, 450)
# Start threads — Do not delete
start_thread(main)
get_velocity#
get_velocity จะส่งคืนค่าความเร็วในการขับเคลื่อนของหุ่นยนต์เป็นเปอร์เซ็นต์ ตั้งแต่ -100% ถึง 100%
ค่าบวกหมายความว่าหุ่นยนต์กำลังเคลื่อนที่ไปข้างหน้า ค่าลบหมายความว่าหุ่นยนต์กำลังเคลื่อนที่ถอยหลัง
Usage:
drivetrain.get_velocity()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Code Base 2.0
def main():
# Display the velocity of the robot before and while moving
console.print("Start: ")
console.print(drivetrain.get_velocity())
console.new_line()
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
console.print("Moving: ")
console.print(drivetrain.get_velocity())
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
get_yaw#
Yaw คือค่าที่หุ่นยนต์หมุนไปทางซ้ายหรือขวาจากตำแหน่งเริ่มต้น โดยวัดเป็นองศา get_yaw จะส่งคืนค่า Yaw ปัจจุบันของหุ่นยนต์
การเลี้ยวขวาจะเพิ่มค่าการหมุนรอบแกนตั้ง (yaw value) และการเลี้ยวซ้ายจะลดค่าการหมุนรอบแกนตั้ง (yaw value)
Usage:
drivetrain.get_yaw()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the yaw while
# moving the robot by hand
monitor_sensor("drivetrain.get_yaw")
while True:
if drivetrain.get_yaw() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_yaw() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_roll#
ค่า Roll คือค่าที่หุ่นยนต์เอียงไปทางซ้ายหรือขวา โดยวัดเป็นองศา get_roll จะส่งคืนค่า Roll ปัจจุบันของหุ่นยนต์
เมื่อหันหัวไปข้างหน้า การเอียงไปทางซ้ายจะเพิ่มค่าการหมุน และการเอียงไปทางขวาจะลดค่าการหมุน
Usage:
drivetrain.get_roll()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the roll while
# moving the robot by hand
monitor_sensor("drivetrain.get_roll")
while True:
if drivetrain.get_roll() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_roll() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_pitch#
ค่า Pitch คือค่าที่หุ่นยนต์เอียงไปข้างหน้าหรือข้างหลัง โดยวัดเป็นองศา get_pitch จะส่งคืนค่า Pitch ปัจจุบันของหุ่นยนต์
เมื่อสมองหันไปข้างหน้า การเอียงไปข้างหน้าจะเพิ่มค่าระดับเสียง และการเอียงไปข้างหลังจะลดค่าระดับเสียง
Usage:
drivetrain.get_pitch()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the pitch while
# moving the robot by hand
monitor_sensor("drivetrain.get_pitch")
while True:
if drivetrain.get_pitch() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_pitch() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_crashed#
get_crashed ส่งคืนค่าบูลีนว่าหุ่นยนต์ตรวจพบการชนหรือไม่
True— ตรวจพบการขัดข้องFalse— ไม่พบการขัดข้อง
Usage:
drivetrain.get_crashed()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Super Code Base 2.0
def main():
# Drive until a crash
drivetrain.drive(FORWARD)
while not drivetrain.get_crashed():
wait(50, MSEC)
drivetrain.stop()
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
is_stopped#
is_stopped จะส่งคืนค่าบูลีนว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่ ค่านี้สามารถใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้
True— หุ่นยนต์เคลื่อนที่เสร็จแล้วFalse— หุ่นยนต์ยังคงเคลื่อนที่อยู่
วิธีการนี้ทำงานร่วมกับวิธีการขับเคลื่อนต่อไปนี้ที่มีพารามิเตอร์ wait : drive_for, drive_until, turn_for, turn_to_heading, และ turn_to_rotation
Usage:
drivetrain.is_stopped()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Build Used: Code Base 2.0
def main():
# Turn when the drivetrain is done moving forward
drivetrain.drive_for(FORWARD, 100, MM, wait=False)
wait(0.25, SECONDS)
while True:
if drivetrain.is_stopped():
drivetrain.turn_for(RIGHT, 180)
break
else:
console.print("Still moving...")
wait(0.1, SECONDS)
console.clear()
# Start threads — Do not delete
start_thread(main)