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

การแนะนำ#

หุ่นยนต์ Hero Bot รุ่น Snapshot มาพร้อมตัวเลือกมอเตอร์สองแบบและเซ็นเซอร์แบบออปติคอล

เมธอด VR มาตรฐานทั้งหมดของ VEXcode สามารถใช้งานได้ใน IQ 22-23 Slapshot 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 — ส่งคืนความเร็วในการหมุนของมอเตอร์

เหตุการณ์ - เรียกใช้โค้ดเมื่อเซ็นเซอร์เปลี่ยนสถานะ

  • กันชน

    • pressed - ลงทะเบียนฟังก์ชันเรียกกลับเมื่อกดปุ่มกันชนช่องรับอากาศ

    • released - ลงทะเบียนฟังก์ชันเรียกกลับเมื่อกันชนช่องรับอากาศถูกปล่อย

  • ออปติก

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

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

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

  • พิมพ์

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

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

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

  • เฝ้าสังเกต

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

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

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

  • กันชน

    • pressing - ส่งคืนว่ากันชนช่องรับอากาศถูกกดอยู่ในขณะนี้หรือไม่

  • ออปติก

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

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

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

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

ตัวอย่างในหน้านี้ใช้ตำแหน่งเริ่มต้นเริ่มต้นของ 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))

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

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

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

การกระทำ#

หมุน#

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.spin(direction) — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

direction

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

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

def main():
    # Spin the Intake Motor to collect a Disc
    intake_motor.spin(FORWARD)
    wait(1, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

สปินฟอร์#

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.spin_for(direction, distance, units, wait=True) — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

direction

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

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

distance

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

units

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

wait

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

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

def main():
    # Collect the preloaded Disc
    intake_motor.spin_for(FORWARD, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

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

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

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

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

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.spin_to_position(angle, units, wait=True) — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

angle

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

units

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

wait

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

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

def main():
    # Raise the Arm to reach over the barrier
    arm_motor.spin_to_position(600, DEGREES)

# VR threads — Do not delete
vr_thread(main)

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

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.stop() — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

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

def main():
    # Raise the Arm briefly, then stop it
    arm_motor.spin(FORWARD)
    wait(1, SECONDS)
    arm_motor.stop()

# VR threads — Do not delete
vr_thread(main)

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

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

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

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.set_position(position, units) — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

position

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

units

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

def main():
    # Set the Intake Motor position, then return to 0 degrees
    intake_motor.set_position(180, DEGREES)
    intake_motor.spin_to_position(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

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

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

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

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.set_velocity(velocity, units) — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

velocity

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

units

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

def main():
    # Set the Intake Motor speed before collecting a Disc
    intake_motor.set_velocity(75, PERCENT)
    intake_motor.spin_for(FORWARD, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

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

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.set_timeout(value, units) — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

value

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

units

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

def main():
    # Limit how long the Arm Motor waits to reach its target
    arm_motor.set_timeout(2, SECONDS)
    arm_motor.spin_for(FORWARD, 1080, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ผู้รับ#

เสร็จแล้ว#

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

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

  • False — มอเตอร์ยังคงหมุนอยู่

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.is_done() — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

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

กำลังหมุน#

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

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

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

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.is_spinning() — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

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

ตำแหน่ง#

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

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

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.position(units) — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

units

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

def main():
    # Print the current Arm Motor position
    brain.screen.print(arm_motor.position(DEGREES))

# VR threads — Do not delete
vr_thread(main)

ความเร็ว#

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

ค่าบวกหมายความว่ามอเตอร์หมุนไปข้างหน้า ค่าลบหมายความว่ามอเตอร์หมุนย้อนกลับ

วิธีใช้:
สามารถใช้มอเตอร์วัตถุได้ 1 ใน 2 แบบ ดังแสดงด้านล่าง:

มอเตอร์

สั่งการ

intake_motor

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

arm_motor

arm_motor.velocity(units) — มอเตอร์แขน

พารามิเตอร์

คำอธิบาย

units

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

def main():
    # Print the current Intake Motor velocity
    brain.screen.print(intake_motor.velocity(PERCENT))

# VR threads — Do not delete
vr_thread(main)

กิจกรรม#

กันชน#

กด#

กด pressed เพื่อลงทะเบียนฟังก์ชันเรียกกลับเมื่อกดปุ่มกันกระแทกช่องรับอากาศ

Usage:
intake_bumper.pressed(callback)

พารามิเตอร์

คำอธิบาย

callback

ฟังก์ชันที่จะถูกเรียกใช้เมื่อกดปุ่ม Intake Bumper

def stop_intake():
    intake_motor.stop()

def main():
    # Stop the Intake Motor when a Disc reaches the Intake Bumper
    intake_bumper.pressed(stop_intake)
    intake_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

ปล่อยแล้ว#

released ลงทะเบียนฟังก์ชันเรียกกลับสำหรับเมื่อกันชนช่องรับอากาศถูกปล่อย

Usage:
intake_bumper.released(callback)

พารามิเตอร์

คำอธิบาย

callback

ฟังก์ชันที่จะถูกเรียกเมื่อปล่อยกันชนช่องรับอากาศ

def lower_arm():
    arm_motor.spin_to_position(0, DEGREES)

def main():
    # Lower the Arm when the Intake Bumper is released
    intake_bumper.released(lower_arm)

# VR threads — Do not delete
vr_thread(main)

ออปติคอล#

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

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

Usage:
front_optical.object_detected(callback, arg)

พารามิเตอร์

คำอธิบาย

callback

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

arg

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

def stop_intake():
    intake_motor.stop()

def main():
    # Stop the Intake Motor when the Optical Sensor detects a Disc
    front_optical.object_detected(stop_intake)
    intake_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

วัตถุหายไป#

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

Usage:
front_optical.object_lost(callback, arg)

พารามิเตอร์

คำอธิบาย

callback

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

arg

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

def resume_intake():
    intake_motor.spin(FORWARD)

def main():
    # Restart the Intake Motor when the Optical Sensor no longer detects a Disc
    front_optical.object_lost(resume_intake)

# 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)

การรับรู้#

กันชน#

การกด#

pressing returns a Boolean indicating whether the Intake Bumper is currently pressed.

  • True - ตัวกันกระแทกช่องรับอากาศถูกกด

  • False - ตัวกันกระแทกช่องรับอากาศไม่ได้ถูกกด

Usage:
intake_bumper.pressing()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Print whether the Intake Bumper is pressed
    brain.screen.print(intake_bumper.pressing())

# VR threads — Do not delete
vr_thread(main)

ออปติคอล#

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

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

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

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

Usage:
front_optical.is_near_object()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Print whether the Front Optical Sensor detects a nearby Disc
    brain.screen.print(front_optical.is_near_object())

# 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:
front_optical.color()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Print the color detected by the Front Optical Sensor
    brain.screen.print(front_optical.color())

# VR threads — Do not delete
vr_thread(main)

ความสว่าง#

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

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

Usage:
front_optical.brightness()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Print the Front Optical Sensor brightness
    brain.screen.print(front_optical.brightness())

# VR threads — Do not delete
vr_thread(main)

เฉดสี#

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

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

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

Usage:
front_optical.hue()

พารามิเตอร์

คำอธิบาย

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

def main():
    # Print the hue detected by the Front Optical Sensor
    brain.screen.print(front_optical.hue())

# VR threads — Do not delete
vr_thread(main)