การเคลื่อนไหว#

การแนะนำ#

หุ่นยนต์เขียนโปรแกรม VEX AIM ใช้ระบบขับเคลื่อนแบบโฮโลโนมิกในการเคลื่อนที่ไปข้างหน้า ถอยหลัง เลี้ยวซ้าย เลี้ยวขวา หรือทำมุมต่างๆ รวมถึงสามารถหมุนได้อย่างอิสระ วิธีการควบคุมการเคลื่อนที่ควบคุมวิธีการเคลื่อนที่และการหมุนของหุ่นยนต์ ความเร็วในการเคลื่อนที่ และวิธีการติดตามตำแหน่ง x และ y ของหุ่นยนต์

หน้าปัดเข็มทิศวงกลมตั้งแต่ 0 ถึง 315 องศา ล้อมรอบจอแสดงผลสีเทาเข้มที่มีหน้าจอสีน้ำเงินเข้ม ด้านหน้าของหุ่นยนต์หันไปทาง 0 องศาบนหน้าปัดเข็มทิศ

ด้านล่างนี้คือรายการวิธีการที่มีให้เลือกใช้:

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

  • move_at — เคลื่อนหุ่นยนต์ด้วยมุมที่กำหนดตลอดไป

  • move_for — เคลื่อนหุ่นยนต์ด้วยมุมที่กำหนดและระยะทางที่กำหนด

  • move_with_vectors — เคลื่อนย้ายหุ่นยนต์โดยใช้ค่า x, y และการหมุนตามเวกเตอร์

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

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

  • turn_to — หมุนหุ่นยนต์ให้หันหน้าไปยังทิศทางที่กำหนด

  • stop_all_movement — หยุดการเคลื่อนไหวทั้งหมดของหุ่นยนต์

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

  • set_move_velocity — บอกหุ่นยนต์ว่าจะเคลื่อนที่เร็วแค่ไหน

  • set_turn_velocity — บอกหุ่นยนต์ว่าจะเลี้ยวเร็วแค่ไหน

  • set_xy_position — เปลี่ยนตำแหน่ง x และ y ปัจจุบันของหุ่นยนต์เป็นค่าใหม่

เมธอด Getter — ส่งคืนสถานะและตำแหน่งของหุ่นยนต์

  • get_x_position — ส่งคืนพิกัด x ปัจจุบันของหุ่นยนต์

  • get_y_position — ส่งคืนพิกัด y ปัจจุบันของหุ่นยนต์

  • is_move_active — คืนค่าว่าหุ่นยนต์กำลังเคลื่อนที่อยู่หรือไม่

  • is_turn_active — คืนค่าว่าหุ่นยนต์กำลังเลี้ยวอยู่หรือไม่

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

การกระทำ#

move_at#

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

วิธีใช้:

robot.move_at(angle, velocity, units)

พารามิเตอร์

คำอธิบาย

angle

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

velocity

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

units

เลือกได้ หน่วยความเร็ว: PERCENT ) หรือ MMPS ต่อวินาที

# Move right, then move forward and stop.
robot.move_at(90)
wait(1,SECONDS)
robot.move_at(0)
wait(1,SECONDS)
robot.stop_all_movement()

# Move right slowly, move in reverse quickly and stop.
robot.move_at(90, 25)
wait(2, SECONDS)
robot.move_at(180, 100, PERCENT)
wait(1, SECONDS)
robot.stop_all_movement()

# Move diagonally to the right and stop.
robot.move_at(45.33)
wait(1,SECONDS)
robot.stop_all_movement()

move_for#

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

วิธีใช้:

robot.move_for(distance, angle, velocity, units, wait)

พารามิเตอร์

คำอธิบาย

distance

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

angle

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

velocity

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

units

เลือกได้ หน่วยความเร็ว: PERCENT ) หรือ MMPS ต่อวินาที

wait

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

# Move right, then move forward.
robot.move_for(50, 90)
robot.move_for(100, 0)

# Move in reverse slowly, then move forward quickly.
robot.move_for(100, 180, 25)
robot.move_for(100, 0, 100, PERCENT)

# Drive forward and blink all LEDs red.
robot.move_for(100, 0, wait=False)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)

move_with_vectors#

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

หมายเหตุ: วิธีนี้ตั้งค่าความเร็วในการเคลื่อนที่และการหมุนโดยตรง ดังนั้นจึงไม่ใช้ set_move_velocity หรือ set_turn_velocity

วิธีใช้:

robot.move_with_vectors(forward, rightward, rotation)

พารามิเตอร์

คำอธิบาย

forward

ความเร็วของหุ่นยนต์ตามแนวแกน y มีค่าตั้งแต่ -100% ถึง 100% ค่าลบหมายถึงหุ่นยนต์เคลื่อนที่ถอยหลัง และค่าบวกหมายถึงหุ่นยนต์เคลื่อนที่ไปข้างหน้า

rightward

ความเร็วของหุ่นยนต์ตามแนวแกน x มีค่าตั้งแต่ -100% ถึง 100% ค่าลบหมายถึงหุ่นยนต์เคลื่อนที่ไปทางซ้าย และค่าบวกหมายถึงหุ่นยนต์เคลื่อนที่ไปทางขวา

rotation

ความเร็วในการหมุนของหุ่นยนต์ มีค่าตั้งแต่ -100% ถึง 100% ค่าลบจะทำให้หุ่นยนต์หมุนทวนเข็มนาฬิกา และค่าบวกจะทำให้หุ่นยนต์หมุนตามเข็มนาฬิกา

# Move at 15°
robot.move_with_vectors(48.3, 12.95, 0)
wait(2, SECONDS)
robot.stop_all_movement()

# Move at 45° while turning counterclockwise.
robot.move_with_vectors(50, 50, -30)
wait(2, SECONDS)
robot.stop_all_movement()

# Scaling movement using the controller joystick
while True:
    # Move forward (and backwards) slower than axis1 input
    forward   = controller.axis1.position() * 0.7
    
    # Move right (and left) faster than axis2 input
    rightward = controller.axis2.position() * 1.5    

    robot.move_with_vectors(forward, rightward, 0)

    wait(5, MSEC)

turn#

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

วิธีใช้:

robot.turn(direction, velocity, units)

พารามิเตอร์

คำอธิบาย

direction

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

velocity

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

units

ตัวเลือกเสริม หน่วยความเร็ว: DPS (องศาต่อวินาที ค่าเริ่มต้น) หรือ PERCENT

# Turn left, then stop.
robot.turn(LEFT)
wait(1, SECONDS)
robot.stop_all_movement()

# Turn left quickly, turn right slowly, then stop.
robot.turn(LEFT, 80)
wait(2, SECONDS)
robot.turn(RIGHT, 20, PERCENT)
wait(3, SECONDS)
robot.stop_all_movement()

turn_for#

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

วิธีใช้:

robot.turn_for(direction, angle, velocity, units, wait)

พารามิเตอร์

คำอธิบาย

direction

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

angle

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

velocity

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

units

ตัวเลือกเสริม หน่วยความเร็ว: DPS (องศาต่อวินาที ค่าเริ่มต้น) หรือ PERCENT

wait

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

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

# Turn left quickly, then turn right slowly.
robot.turn_for(LEFT, 90, 100)
robot.turn_for(RIGHT, 180, 15, PERCENT)

# Turn right and blink all LEDs blue.
robot.turn_for(RIGHT, 180, wait=False)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)

turn_to#

ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง turn_to จะหมุนหุ่นยนต์ให้หันหน้าไปในทิศทางที่กำหนด หุ่นยนต์จะหมุนไปในทิศทางที่สั้นที่สุดเพื่อไปยังทิศทางเป้าหมาย

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

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

วิธีใช้:

robot.turn_to(heading, velocity, units, wait)

พารามิเตอร์

คำอธิบาย

heading

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

velocity

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

units

ตัวเลือกเสริม หน่วยความเร็ว: DPS (องศาต่อวินาที ค่าเริ่มต้น) หรือ PERCENT

wait

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

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

# Turn to face backward slowly, then face forward quickly.
robot.turn_to(180, 25)
wait(1, SECONDS)
robot.turn_to(0, 90, PERCENT)

# Turn around quickly and blink all LEDs green.
robot.turn_to(180, 100, wait=False)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)

stop_all_movement#

stop_all_movement หยุดการเคลื่อนไหวทั้งหมดของหุ่นยนต์

วิธีใช้:

robot.stop_all_movement()

พารามิเตอร์

คำอธิบาย

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

# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()

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

set_move_velocity#

คำสั่ง set_move_velocity จะบอกหุ่นยนต์ว่าควรเคลื่อนที่เร็วแค่ไหน ค่าเปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์เคลื่อนที่เร็วขึ้น และค่าเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์เคลื่อนที่ช้าลง

ทุกโครงการเริ่มต้นด้วยการที่หุ่นยนต์เคลื่อนที่ด้วยความเร็ว 50% เป็นค่าเริ่มต้น

ความเร็วในการเคลื่อนที่ 100% เทียบเท่ากับ 200 มิลลิเมตรต่อวินาที

วิธีใช้:

robot.set_move_velocity(velocity, units)

พารามิเตอร์

คำอธิบาย

velocity

ความเร็วที่ต้องการเคลื่อนที่ ตั้งแต่ 0% ถึง 100% เมื่อใช้ PERCENTหรือ ตั้งแต่ 0 ถึง 200 มิลลิเมตรต่อวินาที เมื่อใช้ MMPSค่านี้สามารถเป็นจำนวนเต็มหรือทศนิยม (float) ก็ได้

units

เลือกได้ หน่วยความเร็ว: PERCENT ) หรือ MMPS ต่อวินาที

# Move forward at the default velocity,
robot.set_move_velocity(50)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move slower than the default velocity
robot.set_move_velocity(20)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move faster than the default velocity
robot.set_move_velocity(100)
robot.move_for(100, 0)

set_turn_velocity#

set_turn_velocity จะบอกหุ่นยนต์ว่าควรเลี้ยวเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวช้าลง

โดยค่าเริ่มต้น ทุกโปรเจกต์จะเริ่มต้นด้วยการที่หุ่นยนต์หมุนด้วยความเร็ว 50% (75 องศาต่อวินาที)

วิธีใช้:

robot.set_turn_velocity(velocity, units)

พารามิเตอร์

คำอธิบาย

velocity

ความเร็วในการหมุนตั้งแต่ 0% ถึง 100% เมื่อใช้ PERCENTหรือตั้งแต่ 0 ถึง 150 องศาต่อวินาที เมื่อใช้ DPSค่านี้สามารถเป็นจำนวนเต็มหรือทศนิยม (float) ก็ได้

units

ตัวเลือกเสริม หน่วยความเร็ว: DPS (องศาต่อวินาที ค่าเริ่มต้น) หรือ PERCENT

# Turn around at default velocity
robot.set_turn_velocity(50)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around slower than the default velocity
robot.set_turn_velocity(20)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around faster than the default velocity
robot.set_turn_velocity(100)
robot.turn_for(RIGHT, 180)

set_xy_position#

คำสั่ง set_xy_position จะเปลี่ยนตำแหน่ง x และ y ปัจจุบันของหุ่นยนต์เป็นค่าใหม่

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

วิธีใช้:

robot.set_xy_position(x, y)

พารามิเตอร์

คำอธิบาย

x

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

y

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

# Set the robot's current position
# Move forward and print the new coordinate
robot.set_xy_position(100, 50)
robot.move_for(150, 0)
robot.screen.print("X:", robot.get_x_position())
robot.screen.next_row()
robot.screen.print("Y:", robot.get_y_position())

ผู้รับ#

get_x_position#

get_x_position ส่งคืนพิกัด x ปัจจุบันของหุ่นยนต์ในหน่วยมิลลิเมตร

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

วิธีใช้:

robot.get_x_position()

พารามิเตอร์

คำอธิบาย

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

# Print the start and end x-value 
# of the robot's position after moving
robot.screen.print("Start X:", robot.get_x_position())
robot.move_for(200, 90)
robot.screen.next_row()
robot.screen.print("End X:", robot.get_x_position())

get_y_position#

get_y_position จะส่งคืนค่าพิกัด y ปัจจุบันของหุ่นยนต์ในหน่วยมิลลิเมตร

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

วิธีใช้:

robot.get_y_position()

พารามิเตอร์

คำอธิบาย

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

# Print the start and end y-value 
# of the robot's position after moving
robot.screen.print("Start Y:", robot.get_y_position())
robot.move_for(200, 0)
robot.screen.next_row()
robot.screen.print("End Y:", robot.get_y_position())

is_move_active#

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

  • True — หุ่นยนต์กำลังเคลื่อนที่

  • False — หุ่นยนต์ไม่เคลื่อนที่

วิธีนี้ทำงานร่วมกับเมธอด Motion ที่มีพารามิเตอร์ wait เช่น move_for

วิธีใช้:

robot.is_move_active()

พารามิเตอร์

คำอธิบาย

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

# Blink all the LEDs when the robot is moving.
robot.move_for(200, 0, wait=False)

while robot.is_move_active():
    robot.led.on(ALL_LEDS, ORANGE)
    wait(0.5, SECONDS)
    robot.led.on(ALL_LEDS, CYAN)
    wait(0.5, SECONDS)

robot.led.off(ALL_LEDS)

is_turn_active#

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

  • True — หุ่นยนต์กำลังหมุนตัว

  • False — หุ่นยนต์ไม่หมุน

วิธีนี้ทำงานร่วมกับเมธอด Motion ที่มีพารามิเตอร์ wait เช่น turn_for และ turn_to

วิธีใช้:

robot.is_turn_active()

พารามิเตอร์

คำอธิบาย

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

# Blink all the LEDs while the robot is turning
robot.turn_for(RIGHT, 180, wait=False) 

while robot.is_turn_active():
    robot.led.on(ALL_LEDS, GREEN)
    wait(0.5, SECONDS)
    robot.led.on(ALL_LEDS, CYAN)
    wait(0.5, SECONDS)

robot.led.off(ALL_LEDS)

is_stopped#

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

  • True — หุ่นยนต์ไม่เคลื่อนที่หรือหมุน

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

วิธีใช้:

robot.is_stopped()

พารามิเตอร์

คำอธิบาย

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

# Blink all the LEDs while the robot is moving or turning

def light_show():
    # Flash LEDs while the robot is moving or turning
    while not robot.is_stopped():
        robot.led.on(ALL_LEDS, GREEN)
        wait(.5, SECONDS)
        robot.led.on(ALL_LEDS, PURPLE)
        wait(.5, SECONDS)

    robot.led.off(ALL_LEDS)

robot.move_for(200, 0, wait=False)
light_show()

robot.turn_for(RIGHT, 180, wait=False)
light_show()