ระบบขับเคลื่อน#

การแนะนำ#

หุ่นยนต์ 123 มีระบบขับเคลื่อนสองล้อที่ช่วยให้มันเคลื่อนที่และเลี้ยวได้ วิธีการทำงานของระบบขับเคลื่อนจะควบคุมการเคลื่อนที่ของหุ่นยนต์

ระบบขับเคลื่อนสามารถวัดระยะทางได้สองวิธี คือ ขั้น และ มม. (มิลลิเมตร) หนึ่ง ขั้น เท่ากับหนึ่งช่องสี่เหลี่ยมบนสนาม 123

มีหลายวิธีในการเขียนโค้ดระบบขับเคลื่อน ด้านล่างนี้คือรายการวิธีการเขียนโค้ดระบบขับเคลื่อนทั้งหมด:

การกระทำ — ขยับและหมุนหุ่นยนต์

  • drive — เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตลอดไป

  • drive_for — เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังตามระยะทางที่กำหนด

  • drive_until — เคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังจนกว่าจะตรวจพบวัตถุ การชน หรือเส้น

  • turn — หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตลอดไป

  • turn_for — หมุนหุ่นยนต์ไปทางซ้ายหรือขวาตามจำนวนองศาที่กำหนด

  • turn_to_heading — หมุนหุ่นยนต์ให้หันหน้าไปยังทิศทางที่กำหนดตั้งแต่ -359 ถึง 359 องศา

  • stop — หยุดการเคลื่อนที่ของหุ่นยนต์

ตัวปรับแต่ง — ปรับการตั้งค่าระบบขับเคลื่อน

  • set_timeout — กำหนดระยะเวลาที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น

  • set_heading — เปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นทิศทางใหม่

ผู้รับสินค้า — ตรวจสอบสถานะการเคลื่อนย้าย

  • is_stopped — ส่งคืนค่าบูลีนว่าหุ่นยนต์หยุดเคลื่อนที่หรือไม่

  • get_heading — ส่งคืนทิศทางปัจจุบันของหุ่นยนต์ตั้งแต่ 0 ถึง 359 องศา

การกระทำ#

drive#

คำสั่ง drive จะทำให้หุ่นยนต์เคลื่อนที่ไปข้างหน้าหรือถอยหลังอย่างไม่มีที่สิ้นสุด หุ่นยนต์จะเคลื่อนที่ต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น การเลี้ยวหรือการหยุด

Usage:
robot.drive(direction)

พารามิเตอร์

คำอธิบาย

direction

ทิศทางการเคลื่อนที่ของหุ่นยนต์: FORWARD หรือ REVERSE

# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()

drive_for#

คำสั่ง drive_for จะเคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังเป็นระยะทางที่กำหนด โครงการจะรอจนกว่าหุ่นยนต์จะหยุดเคลื่อนที่ก่อนที่โค้ดบรรทัดถัดไปจะทำงาน

Usage:
robot.drive_for(direction, distance, unit)

พารามิเตอร์

คำอธิบาย

direction

ทิศทางการเคลื่อนที่ของหุ่นยนต์: FORWARD หรือ REVERSE

distance

ระยะทางที่หุ่นยนต์ขับเคลื่อนไปได้ ค่านี้อาจเป็นจำนวนเต็มหรือทศนิยมก็ได้

unit

หน่วยระยะทาง: MM (มิลลิเมตร) หรือ STEPS (หนึ่งช่องสี่เหลี่ยมบนสนาม 123)

# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)

drive_until#

คำสั่ง drive_until จะเคลื่อนหุ่นยนต์ไปข้างหน้าหรือถอยหลังจนกว่าจะตรวจพบวัตถุ การชน หรือเส้น

Usage:
robot.drive_until(direction)

พารามิเตอร์

คำอธิบาย

direction

ทิศทางการเคลื่อนที่ของหุ่นยนต์: FORWARD หรือ REVERSE

# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)

turn#

turn จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเรื่อยๆ จนกว่าจะได้รับคำสั่งอื่น เช่น ขับเคลื่อนหรือหยุด

Usage:
robot.turn(direction)

พารามิเตอร์

คำอธิบาย

direction

ทิศทางที่หุ่นยนต์หมุน: LEFT หรือ RIGHT

# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()

turn_for#

turn_for จะหมุนหุ่นยนต์ไปทางซ้ายหรือขวาเป็นจำนวนองศาที่กำหนด โครงการจะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่โค้ดบรรทัดถัดไปจะทำงาน

Usage:
robot.turn_for(direction, degrees)

พารามิเตอร์

คำอธิบาย

direction

ทิศทางที่หุ่นยนต์หมุน: LEFT หรือ RIGHT

degrees

จำนวนองศาที่จะหมุน ค่านี้อาจเป็นจำนวนเต็มหรือทศนิยมก็ได้

# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)

turn_to_heading#

turn_to_heading หมุนหุ่นยนต์ให้หันไปทางทิศทางที่กำหนด ตั้งแต่ -359 ถึง 359 องศา หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมาย

ทิศทางเริ่มต้นคือ 0 องศา

โปรเจ็กต์จะรอจนกว่าหุ่นยนต์จะหมุนเสร็จก่อนที่จะรันโค้ดบรรทัดถัดไป

Usage:
robot.turn_to_heading(heading)

พารามิเตอร์

คำอธิบาย

heading

ทิศทางที่หุ่นยนต์ควรหันไปคือ ตั้งแต่ -359 ถึง 359 องศา

# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)

stop#

ปุ่ม stop stop จะหยุดการเคลื่อนที่ของหุ่นยนต์

Usage:
robot.stop()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()

ตัวกลายพันธุ์#

set_timeout#

set_timeout กำหนดจำนวนวินาทีที่หุ่นยนต์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากหุ่นยนต์ไม่สามารถทำการเคลื่อนไหวให้เสร็จสิ้นภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบรรทัดโค้ดถัดไป ซึ่งจะช่วยป้องกันไม่ให้หุ่นยนต์ติดอยู่กับการเคลื่อนไหวใดๆ

Usage:
robot.set_timeout(time, unit)

พารามิเตอร์

คำอธิบาย

time

ระยะเวลาที่ต้องเผื่อไว้สำหรับการเคลื่อนที่ ค่านี้อาจเป็นจำนวนเต็มหรือทศนิยมก็ได้

unit

หน่วยเวลา: MSEC หรือ SECONDS

# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)

set_heading#

คำสั่ง set_heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์เป็นค่าทิศทางใหม่

ตัวอย่างเช่น หากหุ่นยนต์หันไปทางขวา การตั้งค่าทิศทางเป็น 0 องศา จะทำให้ตำแหน่งที่หันไปทางขวานั้นกลายเป็น 0 องศาใหม่

Usage:
robot.set_heading(heading)

พารามิเตอร์

คำอธิบาย

heading

ค่าทิศทาง (หน่วยเป็นองศา) ที่จะตั้งค่าให้กับหุ่นยนต์

# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)

ผู้รับ#

is_stopped#

is_stopped ส่งคืน Boolean ที่รายงานว่าหุ่นยนต์หยุดเคลื่อนที่หรือไม่

  • True — หุ่นยนต์หยุดแล้ว

  • False — หุ่นยนต์ยังคงเคลื่อนที่อยู่

Usage:
robot.is_stopped()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
    if robot.is_stopped():
        robot.led.glow(BLUE)
    else:
        robot.led.glow(GREEN)
    wait(0.05, SECONDS)

get_heading#

get_heading ส่งคืนทิศทางที่หุ่นยนต์หันหน้าไปในปัจจุบันเป็นจำนวนเต็มตั้งแต่ 0 ถึง 359 องศา

ทิศทางเริ่มต้นของหุ่นยนต์คือ 0 องศา

Usage:
robot.get_heading()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())