Python เฉพาะสำหรับหุ่นยนต์#

การแนะนำ#

หุ่นยนต์ Hero Bot รุ่น Swish ประกอบด้วยตัวเลือกมอเตอร์ 1 แบบ ตัวเลือกกลุ่มมอเตอร์ 1 แบบ และเซ็นเซอร์แสง

เมธอด VR มาตรฐานทั้งหมดของ VEXcode สามารถใช้งานได้ใน IQ 24-25 Rapid Relay Playground

ด้านล่างนี้คือรายการวิธีการเฉพาะสำหรับหุ่นยนต์ที่มีอยู่ทั้งหมด:

ระบบขับเคลื่อน – ทำให้หุ่นยนต์เคลื่อนที่และหมุนได้

  • การกระทำ

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

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

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

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

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

    • turn_to_rotation — หมุนหุ่นยนต์ไปที่มุมการหมุนที่กำหนด

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

  • ตัวปรับแต่ง

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

    • set_rotation — เปลี่ยนการหมุนปัจจุบันของหุ่นยนต์เป็นการหมุนใหม่

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

    • set_drive_velocity — บอกหุ่นยนต์ว่าจะขับด้วยความเร็วเท่าใด

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

  • ผู้รับ

    • heading — ส่งคืนทิศทางปัจจุบันของหุ่นยนต์จาก 0 ถึง 359.99 องศา

    • rotation — ส่งคืนการหมุนปัจจุบันของหุ่นยนต์

    • is_done — ส่งคืนค่าบูลีนว่าหุ่นยนต์เคลื่อนที่เสร็จแล้วหรือไม่

    • is_moving — ส่งคืนว่าหุ่นยนต์กำลังเคลื่อนที่หรือไม่ ในรูปแบบค่าบูลีน

    • velocity — ส่งคืนความเร็วที่หุ่นยนต์กำลังขับเคลื่อน

การเคลื่อนไหว - ควบคุมและติดตามมอเตอร์และกลุ่มมอเตอร์ของหุ่นยนต์

  • การกระทำ

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

    • spin_for — หมุนมอเตอร์หรือกลุ่มมอเตอร์เป็นระยะทางที่กำหนด

    • spin_to_position — หมุนมอเตอร์หรือกลุ่มมอเตอร์ไปยังตำแหน่งที่กำหนด

    • stop — หยุดมอเตอร์หรือกลุ่มมอเตอร์ไม่ให้หมุน

  • ตัวปรับแต่ง

    • set_position — เปลี่ยนตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์เป็นค่าใหม่

    • set_velocity — บอกมอเตอร์หรือกลุ่มมอเตอร์ว่าจะหมุนเร็วแค่ไหน

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

  • ผู้รับ

    • is_done — ส่งคืนว่ามอเตอร์หรือกลุ่มมอเตอร์เคลื่อนที่เสร็จแล้วหรือไม่ โดยแสดงเป็นค่าบูลีน

    • is_spinning — ส่งคืนว่ามอเตอร์หรือกลุ่มมอเตอร์กำลังหมุนอยู่หรือไม่ ในรูปแบบค่าบูลีน

    • position — ส่งคืนตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์

    • velocity — ส่งคืนความเร็วในการหมุนของมอเตอร์หรือกลุ่มมอเตอร์

คอนโซล – แสดงค่าต่างๆ บนคอนโซลและตรวจสอบค่าเหล่านั้น

  • พิมพ์

    • brain.screen.print — แสดงข้อความ ตัวเลข หรือค่าตัวแปรในคอนโซล

    • brain.screen.next_row — ย้ายเคอร์เซอร์คอนโซลไปที่ต้นแถวถัดไป

    • brain.screen.clear_screen — ล้างแถวทั้งหมดออกจากคอนโซล

  • เฝ้าสังเกต

    • monitor_variable — เพิ่มตัวแปรที่กำหนดไว้ล่วงหน้าอย่างน้อยหนึ่งตัวลงในแท็บ Monitor

    • monitor_sensor — เพิ่มค่าเซ็นเซอร์อย่างน้อยหนึ่งค่าลงในแท็บ Monitor

การรับรู้ - ใช้ประโยชน์จากเซ็นเซอร์ต่างๆ ของหุ่นยนต์

  • ออปติก

    • is_near_object – ส่งคืนว่าเซ็นเซอร์แสงตรวจพบวัตถุที่อยู่ในระยะหรือไม่

    • color – ส่งคืนสีที่ตรวจพบโดยเซ็นเซอร์แสง

    • brightness – ส่งคืนปริมาณแสงที่สะท้อนจากวัตถุ

    • hue – ส่งคืนค่าสีที่ตรวจพบโดยเซ็นเซอร์แสง

    • object_detected – ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อเซ็นเซอร์แสงตรวจพบวัตถุ

    • object_lost – ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อเซ็นเซอร์แสงสูญเสียวัตถุ

ตัวอย่างในหน้านี้ใช้ตำแหน่งเริ่มต้นเริ่มต้นของ Playground ตามค่าเริ่มต้น

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

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

การกระทำ#

ขับ#

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

Usage:
drivetrain.drive(direction)

พารามิเตอร์

คำอธิบาย

direction

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

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

ไดรฟ์สำหรับ#

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

Usage:
drivetrain.drive_for(direction, distance, units, wait)

พารามิเตอร์

คำอธิบาย

direction

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

distance

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

units

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

wait

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

def main():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# VR threads — Do not delete
vr_thread(main)

เปลี่ยน#

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

Usage:
drivetrain.turn(direction)

พารามิเตอร์

คำอธิบาย

direction

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

def main():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

เลี้ยวสำหรับ#

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

Usage:
drivetrain.turn_for(direction, angle, units, wait)

พารามิเตอร์

คำอธิบาย

direction

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

angle

จำนวนองศาที่หุ่นยนต์หมุน ค่านี้สามารถเป็นจำนวนเต็ม integer หรือทศนิยม (float)

units

หน่วยการหมุน: DEGREES

wait

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

def main():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

เปลี่ยนหัว#

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

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

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

Usage:
drivetrain.turn_to_heading(angle, units, wait)

พารามิเตอร์

คำอธิบาย

angle

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

units

หน่วยการหมุน: DEGREES

wait

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

def main():
    # 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)

# VR threads — Do not delete
vr_thread(main)

หมุนเพื่อการหมุน#

turn_to_rotation หมุนหุ่นยนต์ไปยังทิศทางการหมุนที่กำหนด

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

ค่าการหมุนเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการเลี้ยวขึ้นอยู่กับการหมุนปัจจุบันของหุ่นยนต์ การเลี้ยวขวาจะเพิ่มการหมุน และการเลี้ยวซ้ายจะลดการหมุน

ตัวอย่างเช่น ถ้าหุ่นยนต์เริ่มต้นที่ 0 องศา และคุณหมุนเป็น 720 องศา มันจะเลี้ยวขวา 2 ครั้ง จากนั้นถ้าคุณหมุนเป็น 360 องศา มันจะเลี้ยวซ้าย 1 ครั้ง เพราะ 360 น้อยกว่า 720

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

Usage:
drivetrain.turn_to_rotation(angle, units, wait)

พารามิเตอร์

คำอธิบาย

angle

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

units

หน่วยการหมุน: DEGREES

wait

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

def main():
    # 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)

# VR threads — Do not delete
vr_thread(main)

หยุด#

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

Usage:
drivetrain.stop()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

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

ตั้งค่าหัว#

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

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

Usage:
drivetrain.set_heading(heading, units)

พารามิเตอร์

คำอธิบาย

heading

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

units

หน่วยหัวเรื่อง: DEGREES

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ตั้งค่าการหมุน#

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

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

Usage:
drivetrain.set_rotation(rotation, units)

พารามิเตอร์

คำอธิบาย

rotation

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

units

หน่วยการหมุน: DEGREES

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ตั้งค่าหมดเวลา#

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

Usage:
drivetrain.set_timeout(value, units)

พารามิเตอร์

คำอธิบาย

value

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

units

หน่วยเวลา: SECONDS หรือ MSEC (มิลลิวินาที)

def main():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# VR threads — Do not delete
vr_thread(main)

ตั้งค่าความเร็วในการขับเคลื่อน#

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

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

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

Usage:
drivetrain.set_drive_velocity(velocity, units)

พารามิเตอร์

คำอธิบาย

velocity

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

units

หน่วยความเร็ว: PERCENT

def main():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

ตั้งค่าความเร็วในการเลี้ยว#

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

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

หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้หุ่นยนต์เลี้ยวได้เร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้หุ่นยนต์เลี้ยวได้ช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น

Usage:
drivetrain.set_turn_velocity(velocity, units)

พารามิเตอร์

คำอธิบาย

velocity

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

units

หน่วยความเร็ว: PERCENT

def main():
    # Turn at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ผู้รับ#

หัวข้อ#

ทิศทาง (Heading) คือทิศทางที่หุ่นยนต์หันหน้าไป โดยวัดเป็นองศา คำสั่ง heading จะเปลี่ยนทิศทางปัจจุบันของหุ่นยนต์จาก 0 เป็น 359.99 องศา

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

Usage:
drivetrain.heading(units)

พารามิเตอร์

คำอธิบาย

units

หน่วยหัวเรื่อง: DEGREES

def main():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

การหมุน#

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

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

Usage:
drivetrain.rotation(units)

พารามิเตอร์

คำอธิบาย

units

หน่วยการหมุน: DEGREES

def main():
    # Display the rotation after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Rotation: ")
    brain.screen.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

เสร็จแล้ว#

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

  • True — หุ่นยนต์เคลื่อนที่เสร็จแล้ว

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

วิธีการนี้ทำงานร่วมกับวิธีการ Drivetrain ต่อไปนี้ที่มีพารามิเตอร์ wait : drive_for, turn_for, turn_to_heading, และ turn_to_rotation

Usage:
drivetrain.is_done()

พารามิเตอร์

คำอธิบาย

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

กำลังเคลื่อนที่#

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

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

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

Usage:
drivetrain.is_moving()

พารามิเตอร์

คำอธิบาย

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

ความเร็ว#

velocity จะแสดงความเร็วในการขับเคลื่อนของหุ่นยนต์เป็นเปอร์เซ็นต์ ตั้งแต่ -100% ถึง 100%

Usage:
drivetrain.velocity(units)

พารามิเตอร์

คำอธิบาย

units

หน่วยความเร็ว: PERCENT

ตัวอย่าง

def main():
    # Display the velocity after driving
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

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

Swish ใช้มอเตอร์ดูดเพื่อรวบรวมลูกบอลและเคลื่อนย้ายไปยังเครื่องยิง มอเตอร์กลุ่มของเครื่องยิงจะลดระดับและปล่อยแขนเครื่องยิงเพื่อยิงลูกบอลออกไป

มอเตอร์แต่ละตัวและกลุ่มมอเตอร์มีพฤติกรรมการเคลื่อนที่ในทิศทางเฉพาะของตนเอง คำอธิบายทิศทางจะอธิบายว่าแต่ละทิศทางทำให้มอเตอร์หรือกลุ่มมอเตอร์นั้นเคลื่อนที่อย่างไรใน Swish

การกระทำ#

หมุน#

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

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.spin(direction) — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.spin(direction) — กลุ่มเครื่องยิง

พารามิเตอร์

คำอธิบาย

direction

ทิศทางการหมุนของมอเตอร์หรือกลุ่มมอเตอร์:

  • FORWARD — หมุนมอเตอร์ดูดในทิศทางดูดหรือลดกลุ่มเครื่องยิง
  • REVERSE — หมุนมอเตอร์ดูดในทิศทางปล่อยหรือปล่อยกลุ่มเครื่องยิง

def main():
    # Spin the Intake Motor to bring a Ball onto the Catapult
    intake_motor.spin(FORWARD)
    wait(2, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

สปินฟอร์#

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

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.spin_for(direction, distance, units, wait=True) — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.spin_for(direction, distance, units, wait=True) — กลุ่มเครื่องยิง

พารามิเตอร์

คำอธิบาย

direction

ทิศทางการหมุนของมอเตอร์หรือกลุ่มมอเตอร์:

  • FORWARD — หมุนมอเตอร์ดูดในทิศทางดูดหรือลดกลุ่มเครื่องยิง
  • REVERSE — หมุนมอเตอร์ดูดในทิศทางปล่อยหรือปล่อยกลุ่มเครื่องยิง

distance

ระยะทางที่มอเตอร์หรือกลุ่มมอเตอร์หมุน DEGREES ใช้จำนวนเต็ม TURNS สามารถใช้จำนวนเต็มหรือทศนิยมได้

units

เลือกได้ หน่วยระยะทาง: DEGREES (ค่าเริ่มต้น) หรือ TURNS

wait

ตัวเลือกเสริม

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

def main():
    # Release the preloaded Ball
    catapult_group.spin_for(REVERSE, 5, DEGREES)
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_for(FORWARD, 1350, DEGREES)

# VR threads — Do not delete
vr_thread(main)

หมุนไปยังตำแหน่ง#

spin_to_position หมุนมอเตอร์หรือกลุ่มมอเตอร์ไปยังตำแหน่งที่กำหนด

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

ค่าตำแหน่งเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการหมุนขึ้นอยู่กับตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์

ตัวอย่างเช่น หากมอเตอร์หรือกลุ่มมอเตอร์เริ่มต้นที่ 0 องศาและหมุนไปที่ตำแหน่ง 720 องศา มันจะหมุนไปข้างหน้าสองรอบ หากจากนั้นหมุนไปที่ตำแหน่ง 360 องศา มันจะหมุนถอยหลังหนึ่งรอบ เพราะ 360 น้อยกว่า 720

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.spin_to_position(angle, units, wait=True) — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.spin_to_position(angle, units, wait=True) — กลุ่มเครื่องยิง

พารามิเตอร์

คำอธิบาย

angle

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

units

เลือกได้ตามต้องการ หน่วยตำแหน่ง: DEGREES (ค่าเริ่มต้น) หรือ TURNS

wait

ตัวเลือกเสริม

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

def main():
    # Release the preloaded Ball
    catapult_group.spin_to_position(-90, DEGREES)
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_to_position(1260, DEGREES)

# VR threads — Do not delete
vr_thread(main)

หยุดมอเตอร์#

stop หยุดมอเตอร์หรือกลุ่มมอเตอร์ไม่ให้หมุน

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.stop() — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.stop() — กลุ่มเครื่องยิง

พารามิเตอร์

คำอธิบาย

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

def main():
    # Spin the Intake Motor to bring a Ball onto the Catapult
    intake_motor.spin(FORWARD)
    wait(2, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

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

ตั้งค่าตำแหน่ง#

ตำแหน่งของมอเตอร์หรือกลุ่มมอเตอร์คือระยะที่หมุนไป โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา set_position เปลี่ยนตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์เป็นค่าใหม่

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

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.set_position(position, units) — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.set_position(position, units) — กลุ่มเครื่องยิงหิน

พารามิเตอร์

คำอธิบาย

position

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

units

เลือกได้ตามต้องการ หน่วยตำแหน่ง: DEGREES (ค่าเริ่มต้น) หรือ TURNS

def main():
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_to_position(1260, DEGREES)
    # Set the new Catapult position to be 0 degrees
    catapult_group.set_position(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ตั้งค่าความเร็ว#

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

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

หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้มอเตอร์หรือกลุ่มมอเตอร์หมุนเร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้มอเตอร์หรือกลุ่มมอเตอร์หมุนช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.set_velocity(velocity, units) — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.set_velocity(velocity, units) — กลุ่มเครื่องยิง

พารามิเตอร์

คำอธิบาย

velocity

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

units

หน่วยความเร็ว: PERCENT

def main():
    # Start spinning the Intake Motor to prepare for picking up a Ball
    intake_motor.set_velocity(100, PERCENT)
    intake_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

ตั้งค่าหมดเวลา#

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

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.set_timeout(value, units) — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.set_timeout(value, units) — กลุ่มเครื่องยิง

พารามิเตอร์

คำอธิบาย

value

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

units

หน่วยเวลา: SECONDS หรือ MSEC (มิลลิวินาที)

def main():
    # Limit how long the Catapult waits to reach its target
    catapult_group.set_timeout(2, SECONDS)
    catapult_group.spin_for(FORWARD, 2160, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ผู้รับ#

เสร็จแล้ว#

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

  • True — มอเตอร์หรือกลุ่มมอเตอร์หยุดเคลื่อนที่แล้ว

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

วิธีนี้ทำงานร่วมกับเมธอด Motion ต่อไปนี้ที่มีพารามิเตอร์ wait : spin_for และ spin_to_position

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.is_done() — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.is_done() — กลุ่มเครื่องยิงหิน

พารามิเตอร์

คำอธิบาย

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

กำลังหมุน#

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

  • True — มอเตอร์หรือกลุ่มมอเตอร์กำลังหมุน

  • False — มอเตอร์หรือกลุ่มมอเตอร์ไม่หมุน

วิธีนี้ทำงานร่วมกับเมธอด Motion ต่อไปนี้ที่มีพารามิเตอร์ wait : spin_for และ spin_to_position

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.is_spinning() — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.is_spinning() — กลุ่มเครื่องยิง

พารามิเตอร์

คำอธิบาย

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

ตำแหน่ง#

ตำแหน่งของมอเตอร์หรือกลุ่มมอเตอร์คือระยะที่หมุนไป โดยวัดเป็น DEGREES หรือ TURNSหนึ่งรอบเท่ากับ 360 องศา position จะแสดงตำแหน่งปัจจุบันของมอเตอร์หรือกลุ่มมอเตอร์

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

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.position(units) — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.position(units) — กลุ่มเครื่องยิงหิน

พารามิเตอร์

คำอธิบาย

units

หน่วยสำหรับคืนตำแหน่งมอเตอร์หรือกลุ่มมอเตอร์เป็น: DEGREES หรือ TURNS

def main():
    # Lower the Catapult to prepare to load another Ball
    while not catapult_group.position(DEGREES) == 1260:
        catapult_group.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

ความเร็ว#

ค่า velocity จะแสดงความเร็วในการหมุนของมอเตอร์หรือกลุ่มมอเตอร์

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

วิธีใช้งาน:
สามารถใช้มอเตอร์หรือกลุ่มมอเตอร์หนึ่งในสองแบบที่มีอยู่กับวิธีการนี้ได้ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

intake_motor.velocity(units) — มอเตอร์ดูดอากาศ

catapult_group

catapult_group.velocity(units) — กลุ่มเครื่องยิง

พารามิเตอร์

คำอธิบาย

units

หน่วยความเร็วที่จะส่งคืน: PERCENT

def main():
    # Print the current Catapult velocity
    brain.screen.print(catapult_group.velocity(PERCENT))

# VR threads — Do not delete
vr_thread(main)

คอนโซล#

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

พิมพ์#

การพิมพ์หน้าจอสมอง#

brain.screen.print แสดงข้อความ ตัวเลข หรือค่าตัวแปรในคอนโซลโดยใช้ตำแหน่งเคอร์เซอร์ปัจจุบัน ทำงานเหมือน print ในหน้า Console API

ใช้ brain.screen.next_row เมื่อคุณต้องการให้ค่าที่พิมพ์ถัดไปเริ่มต้นในแถวใหม่

Usage:
brain.screen.print(value)

พารามิเตอร์

คำอธิบาย

value

ข้อความ ตัวเลข หรือค่าตัวแปรที่จะแสดงในคอนโซล

def main():
    # Display a message in the Console
    brain.screen.print("Hello, robot!")

# VR threads — Do not delete
vr_thread(main)

คอนโซล VEXcode แสดงคอนโซลและข้อความ "สวัสดีหุ่นยนต์!"

สมอง.หน้าจอ.แถวถัดไป#

brain.screen.next_row จะย้ายเคอร์เซอร์ไปยังคอลัมน์ที่ 1 ในแถวถัดไปในคอนโซล ค่าถัดไปที่พิมพ์จะปรากฏในแถวนั้น

Usage:
brain.screen.next_row()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Print on two rows
    brain.screen.print("Row 1")
    brain.screen.next_row()
    brain.screen.print("Row 2")

# VR threads — Do not delete
vr_thread(main)

คอนโซล VEXcode แสดงคอนโซลและข้อความ "แถวที่ 1" ในบรรทัดแรกและ "แถวที่ 2" ในบรรทัดที่สอง

สมอง.หน้าจอ.เคลียร์หน้าจอ#

brain.screen.clear_screen จะล้างแถวทั้งหมดออกจากคอนโซลและย้ายเคอร์เซอร์กลับไปที่แถวที่ 1

Usage:
brain.screen.clear_screen()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Display text, then clear it after two seconds
    brain.screen.print("This will disappear...")
    wait(2, SECONDS)
    brain.screen.clear_screen()

# VR threads — Do not delete
vr_thread(main)

เฝ้าสังเกต#

ตัวแปรมอนิเตอร์#

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

ตัวแปรต้องเป็น monitor_variable เพื่อให้สามารถตรวจสอบตัวแปรเหล่านั้นได้อย่างสำเร็จ ระบุชื่อตัวแปรแต่ละตัวเป็นสตริง

Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)

พารามิเตอร์

คำอธิบาย

variable

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

def main():
    # Monitor the amount of loops
    global loops
    monitor_variable("loops")

    # Drive in a square 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

มอนิเตอร์เซนเซอร์#

monitor_sensor เพิ่มค่าเซ็นเซอร์อย่างน้อยหนึ่งค่าลงในแท็บ Monitor ใน VEXcode ซึ่งช่วยให้คุณสามารถดูการเปลี่ยนแปลงของค่าเซ็นเซอร์ขณะที่โปรเจ็กต์กำลังทำงานอยู่

ระบุค่าเซ็นเซอร์แต่ละค่าเป็นสตริง

Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)

พารามิเตอร์

คำอธิบาย

sensor

The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:

  • Brain
    • brain.timer.time
  • Drivetrain
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity_rpm
    • drivetrain.velocity_percent
  • Arm Motor
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position_degrees
    • arm_motor.position_turns
    • arm_motor.velocity_rpm
    • arm_motor.velocity_percent
  • Arm Motor Group
    • arm_motor_group.is_done
    • arm_motor_group.is_spinning
    • arm_motor_group.position_degrees
    • arm_motor_group.position_turns
    • arm_motor_group.velocity_rpm
    • arm_motor_group.velocity_percent
  • Intake Motor
    • intake_motor.is_done
    • intake_motor.is_spinning
    • intake_motor.position_degrees
    • intake_motor.position_turns
    • intake_motor.velocity_rpm
    • intake_motor.velocity_percent
  • Intake Motor Group
    • intake_motor_group.is_done
    • intake_motor_group.is_spinning
    • intake_motor_group.position_degrees
    • intake_motor_group.position_turns
    • intake_motor_group.velocity_rpm
    • intake_motor_group.velocity_percent
  • Catapult Motor
    • catapult_motor.is_done
    • catapult_motor.is_spinning
    • catapult_motor.position_degrees
    • catapult_motor.position_turns
    • catapult_motor.velocity_rpm
    • catapult_motor.velocity_percent
  • Catapult Tension Motor
    • catapult_tension_motor.is_done
    • catapult_tension_motor.is_spinning
    • catapult_tension_motor.position_degrees
    • catapult_tension_motor.position_turns
    • catapult_tension_motor.velocity_rpm
    • catapult_tension_motor.velocity_percent
  • Bumpers
    • intake_bumper.pressing
    • bumper.pressing
  • Front Distance Sensor
    • front_distance.is_object_detected
    • front_distance.object_distance_mm
    • front_distance.object_distance_inches
  • Front Optical Sensor
    • front_optical.is_near_object
    • front_optical.color
    • front_optical.brightness
    • front_optical.hue
  • Color Sensor
    • color.is_near_object
    • color.color
    • color.brightness
    • color.hue

def main():
    # Monitor the robot's heading
    monitor_sensor("drivetrain.heading")
    drivetrain.turn_for(RIGHT, 450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

การรับรู้#

ออปติคอล#

อยู่ใกล้วัตถุ#

is_near_object ส่งคืนค่าบูลีนที่ระบุว่าเซ็นเซอร์แสงตรวจพบวัตถุที่อยู่ในระยะหรือไม่

  • True – เซ็นเซอร์แสงตรวจจับวัตถุได้

  • False – เซ็นเซอร์แสงไม่ตรวจพบวัตถุ

Usage:
intake_optical.is_near_object()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Launch a loaded Ball once the Intake Optical Sensor detects a Ball
    if intake_optical.is_near_object():
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

สี#

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

สีที่เป็นไปได้ ได้แก่:

  • NONE

  • RED - ค่าเฉดสีระหว่าง 340° - 20°

  • GREEN - ค่าเฉดสีระหว่าง 80° - 140°

  • BLUE - ค่าเฉดสีระหว่าง 200° - 240°

  • YELLOW - ค่าเฉดสีระหว่าง 40° - 60°

  • ORANGE - ค่าเฉดสีระหว่าง 20° - 40°

  • PURPLE - ค่าเฉดสีระหว่าง 240° - 280°

  • CYAN - ค่าเฉดสีระหว่าง 140° - 200°

หมายเหตุ: เซ็นเซอร์แสงจะมองหาช่วงเฉดสีที่ตรงกับสีที่ระบุ สำหรับการตรวจจับช่วงเฉดสีที่เฉพาะเจาะจง โปรดดู hue

Usage:
intake_optical.color()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Launch a loaded Ball once yellow is detected in the Intake
    if intake_optical.color() == YELLOW:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ความสว่าง#

ความสว่าง brightness ส่งคืนปริมาณแสงที่สะท้อนจากวัตถุเป็นทศนิยม (float) ซึ่งแสดงถึงเปอร์เซ็นต์

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

Usage:
intake_optical.brightness()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Launch a loaded Ball once the Intake Optical Sensor sees a Ball
    if intake_optical.brightness() > 0:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

เฉดสี#

hue ส่งคืนค่าเฉดสีของสีที่ตรวจพบเป็นค่าทศนิยม (float) ตั้งแต่ 0 ถึง 359

เฉดสี คือวิธีการอธิบายสีโดยใช้ตัวเลขรอบวงล้อสี

วงล้อสีวงกลมที่แสดงเฉดสีครบทุกเฉดพร้อมระบุค่าองศาไว้รอบขอบ โดยเพิ่มขึ้นทีละ 30 องศาจาก 0 องศาที่ด้านบนไปจนถึง 360 องศา

Usage:
intake_optical.hue()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Launch a loaded Ball once the Intake Optical Sensor reports a hue value
    if intake_optical.hue() > 100:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ตรวจพบวัตถุ#

object_detected ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่เซ็นเซอร์แสงตรวจพบวัตถุใหม่

Usage:
intake_optical.object_detected(callback, arg)

พารามิเตอร์

คำอธิบาย

callback

A previously defined function that executes when the Optical Sensor detects a new object.

arg

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

def launch_ball():
    catapult_group.spin_for(REVERSE, 5, DEGREES)

def main():
    # Launch the Ball when the Intake Optical Sensor detects an object
    intake_optical.object_detected(launch_ball)

# VR threads — Do not delete
vr_thread(main)

วัตถุหายไป#

object_lost ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่เซ็นเซอร์แสงตรวจไม่พบวัตถุ

Usage:
intake_optical.object_lost(callback, arg)

พารามิเตอร์

คำอธิบาย

callback

A previously defined function that executes when the Optical Sensor loses a detected object.

arg

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

def lower_catapult():
    catapult_group.spin_to_position(1260, DEGREES)

def main():
    # Lower the Catapult when the Intake Optical Sensor no longer detects an object
    intake_optical.object_lost(lower_catapult)

# VR threads — Do not delete
vr_thread(main)