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

การแนะนำ#

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

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

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

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

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

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

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

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

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

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

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

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

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

  • set drive heading — เปลี่ยนทิศทางการเคลื่อนที่ปัจจุบันของหุ่นยนต์เป็นทิศทางใหม่

ค่าต่างๆ — ตรวจสอบสถานะการเคลื่อนไหว

การกระทำ#

ขับ#

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

ขับ [ไปข้างหน้า v]

พารามิเตอร์

คำอธิบาย

ทิศทาง

ทิศทางการเคลื่อนที่ของหุ่นยนต์: ไปข้างหน้า หรือ ถอยหลัง

ตัวอย่าง

เมื่อเริ่มต้น
[Drive for 2 seconds.]
ขับ [ไปข้างหน้า v]
รอ (2) วินาที
หยุดขับ

ขับเพื่อ#

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

ขับ [ไปข้างหน้า v] เป็น (1) [ก้าว v]

พารามิเตอร์

คำอธิบาย

ทิศทาง

ทิศทางการเคลื่อนที่ของหุ่นยนต์: ไปข้างหน้า หรือ ถอยหลัง

ระยะทาง

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

หน่วย

หน่วยวัดระยะทาง: ก้าว หรือ มิลลิเมตร

ตัวอย่าง

เมื่อเริ่มต้น
[Drive back and forth.]
ขับ [ไปข้างหน้า v] เป็น (3) [ก้าว v]
ขับ [ถอยหลัง v] เป็น (3) [ก้าว v]

ขับรถจนถึง#

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

ขับเคลื่อนไปข้างหน้าจนถึง [วัตถุ v]

พารามิเตอร์

คำอธิบาย

เงื่อนไข

เงื่อนไขที่ทำให้หุ่นยนต์หยุดทำงาน:

  • วัตถุ — เซ็นเซอร์ตาตรวจจับวัตถุ
  • ชน — หุ่นยนต์ชนกับวัตถุ
  • เส้น — ตัวตรวจจับเส้นตรวจพบเส้นใต้หุ่นยนต์

ตัวอย่าง

เมื่อเริ่มต้น
[Reverse after a crash.]
ขับเคลื่อนไปข้างหน้าจนถึง [ชน v]
ขับ [ถอยหลัง v] เป็น (1) [ก้าว v]

เปลี่ยน#

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

เลี้ยว [ขวา v]

พารามิเตอร์

คำอธิบาย

ทิศทาง

ทิศทางที่หุ่นยนต์หมุน: ซ้าย หรือ ขวา

ตัวอย่าง

เมื่อเริ่มต้น
[Turn for 2 seconds.]
เลี้ยว [ขวา v]
รอ (2) วินาที
หยุดขับ

เลี้ยวเพื่อ#

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

เลี้ยว [ขวา v] เป็น (90) องศา

พารามิเตอร์

คำอธิบาย

ทิศทาง

ทิศทางที่หุ่นยนต์หมุน: ซ้าย หรือ ขวา

มุม

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

ตัวอย่าง

เมื่อเริ่มต้น
[Turn left, then turn around to the right.]
เลี้ยว [ซ้าย v] เป็น (90) องศา
เลี้ยว [ขวา v] เป็น (180) องศา

หันไปที่หัวข้อ#

ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา บล็อกคำสั่ง turn to heading จะหมุนหุ่นยนต์ให้หันหน้าไปในทิศทางที่กำหนด ตั้งแต่ -359 ถึง 359 องศา หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมาย

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

เลี้ยวไปทิศทาง (90) องศา

พารามิเตอร์

คำอธิบาย

หัวข้อ

ทิศทางที่หุ่นยนต์ควรหันหน้าไป (หน่วยเป็นองศา) สามารถเป็นจำนวนเต็มหรือทศนิยมตั้งแต่ -359 ถึง 359 ได้

ตัวอย่าง

เมื่อเริ่มต้น
[Turn to face the cardinal directions.]
เลี้ยวไปทิศทาง (90) องศา
รอ (2) วินาที
เลี้ยวไปทิศทาง (180) องศา
รอ (2) วินาที
เลี้ยวไปทิศทาง (270) องศา
รอ (2) วินาที
เลี้ยวไปทิศทาง (0) องศา
รอ (2) วินาที

หยุดขับรถ#

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

หยุดขับ

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น
[Stop driving after 4 seconds.]
ขับ [ไปข้างหน้า v]
รอ [4] วินาที
หยุดขับ

การตั้งค่า#

ตั้งค่าหมดเวลาไดรฟ์#

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

ตั้งหมดเวลาขับเป็น (1) วินาที

พารามิเตอร์

คำอธิบาย

เวลา

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

ตัวอย่าง

เมื่อเริ่มต้น
[Turn right after driving for 1 second.]
ตั้งหมดเวลาขับเป็น (1) วินาที
ขับ [ไปข้างหน้า v] เป็น (1000) [มม. v]
เลี้ยว [ขวา v] เป็น (90) องศา

ตั้งทิศทางการขับเคลื่อน#

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

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

ตั้งทิศทางขับเป็น (0) องศา

พารามิเตอร์

คำอธิบาย

หัวข้อ

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

ตัวอย่าง

เมื่อเริ่มต้น
[Face the new 0 degree heading.]
ตั้งทิศทางขับเป็น (90) องศา
เลี้ยวไปทิศทาง (0) องศา

ค่านิยม#

การขับรถเสร็จสิ้นแล้ว#

บล็อก Boolean drive is done จะรายงานว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่ สามารถใช้ข้อมูลนี้ในการควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของหุ่นยนต์ได้

  • จริง — หุ่นยนต์เคลื่อนไหวเสร็จแล้ว

  • ไม่จริง — หุ่นยนต์ยังคงเคลื่อนที่อยู่

บล็อกนี้ทำงานร่วมกับบล็อกระบบขับเคลื่อนต่อไปนี้: ขับไปข้างหน้า, ขับไปจนถึง, เลี้ยวไปข้างหน้า, และ เลี้ยวไปตามทิศทาง

<ขับเสร็จแล้ว?>

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น
[Glow blue after a crash.]
ขับเคลื่อนไปข้างหน้าจนถึง [ชน v]
ทำตลอดไป
ถ้า <ขับเสร็จแล้ว?> แล้ว
เรืองแสง [น้ำเงิน v]
มิฉะนั้น
เรืองแสง [เขียว v]

ทิศทางการขับขี่#

ทิศทางการเคลื่อนที่ของหุ่นยนต์วัดเป็นองศา บล็อกรายงานทิศทางการเคลื่อนที่ (Drive Heading Reporter Block) จะรายงานทิศทางการเคลื่อนที่ปัจจุบันของหุ่นยนต์ตั้งแต่ 0 ถึง 359 องศา

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

(ทิศทางขับในองศา)

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น
[Display the heading after turning.]
เลี้ยว [ขวา v] เป็น (450) องศา
พิมพ์ (ทิศทางขับในองศา) ▶