Competition Connection: จุดเปลี่ยน - Python
ความสามารถของหุ่นยนต์
เกมการแข่งขันหุ่นยนต์ VEX Robotics Turning Point ปี 2018 - 2019 กำหนดให้ผู้เล่นต้องสลับธงและองค์ประกอบอื่นๆ ของเกม มีธงทั้งหมด 9 อัน: ธงด้านล่าง 3 อันที่หุ่นยนต์สามารถสลับได้ และธงด้านบน 6 อันที่สลับได้โดยการตีด้วยชิ้นลูกบอลเกมแข่งขันเท่านั้น ทีมแข่งขันต้องคิดหาวิธีที่จะตีธงที่สูงโดยใช้เครื่องยิงลูกบอล หากคุณสามารถนึกภาพได้ การตั้งโปรแกรมหุ่นยนต์ให้ตีธงโดยใช้ชิ้นส่วนของเกมลูกบอลโดยการวัดอาจไม่แม่นยำเสมอไป หากหุ่นยนต์เลี้ยวผิดครั้งหนึ่งในช่วงระยะเวลาการทำงานอัตโนมัติ มีความเป็นไปได้ที่ธงทุกอันจะไม่โดนกระทบ เนื่องจากการคำนวณจะผิดพลาด ในทำนองเดียวกัน สำหรับความท้าทายทักษะการขับขี่ อาจเป็นเรื่องยากสำหรับทีมที่จะจัดตำแหน่งหุ่นยนต์ด้วยตนเองให้เพียงพอที่จะปล่อยลูกบอลได้อย่างถูกต้อง ด้วยเหตุนี้ ทีมงานที่มีทักษะจะเขียนโปรแกรมหุ่นยนต์โดยใช้เซ็นเซอร์วิชั่นเพื่อตรวจจับธง จากนั้นจึงจัดตำแหน่งหุ่นยนต์ให้เหมาะสมเพื่อให้ยิงได้แม่นยำ
ขยายการเรียนรู้ของคุณ
เพื่อขยายขอบเขตของกิจกรรมนี้ ให้ขอให้นักเรียนของคุณออกแบบและร่างโครงร่างโครงการที่จะให้หุ่นยนต์เคลื่อนที่ไปหาสิ่งของสีเหลืองที่ตรวจพบ ซึ่งอาจใช้สำหรับเกมการแข่งขันนี้ได้!
ขอให้นักเรียนของคุณทำสิ่งต่อไปนี้:
-
เปิดโครงการตัวอย่างเทมเพลต Clawbot (ระบบส่งกำลัง, มอเตอร์ 2 ตัว, ไม่มีไจโร)
- ใช้โครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์) เป็นข้อมูลอ้างอิงเมื่อทำการเขียนโปรแกรมเซ็นเซอร์วิสัยทัศน์ ใช้โครงการตัวอย่างการตรวจจับวัตถุ (วิสัยทัศน์) เป็นข้อมูลอ้างอิงเมื่อทำการเขียนโปรแกรมเซ็นเซอร์วิสัยทัศน์ (Google Doc / .v5python)
-
เพิ่มเซ็นเซอร์วิชั่นลงในการกำหนดค่า Clawbot (ระบบส่งกำลัง, มอเตอร์ 2 ตัว, ไม่มีไจโร) จากนั้นกำหนดค่าเซ็นเซอร์วิชั่นเพื่อตรวจจับวัตถุสีแดงและสีน้ำเงิน ดูบทความและ หัวข้อ การกำหนดค่าเซ็นเซอร์วิชั่น เพื่อดูข้อมูลเพิ่มเติม
- ตั้งโปรแกรมให้ Clawbot เคลื่อนที่ไปยังวัตถุที่ตรวจพบ Clawbot ยังสามารถตั้งโปรแกรมให้ยกแขนขึ้นได้เหมือนกับว่าจะสลับธง!
- ดาวน์โหลดและรันโปรเจ็กต์ เพื่อสังเกตว่า Vision Sensor สามารถตรวจจับวัตถุสีเหลือง เช่น ลูกบอลสีเหลืองในเกม VRC Turning Point ได้หรือไม่ หาก Vision Sensor สามารถตรวจจับวัตถุได้ หุ่นยนต์จะเคลื่อนที่ตามวัตถุที่ตรวจจับได้หรือไม่? หากต้องการความช่วยเหลือในการดาวน์โหลดและการรันโครงการ โปรดดูบทความนี้
- หากมีเวลา ให้จัดสนามแข่งขันคล้ายกับสนาม Turning Point ฝึกฝนการใช้ Vision Sensor เพื่อให้หุ่นยนต์เคลื่อนที่เพื่อทำคะแนน!
ดูตัวอย่างโซลูชันด้านล่าง:
# ไลบรารีนำเข้า
จากการนำเข้า vex *
# เริ่มรหัสโครงการ
check_yellow = Event()
def check_yellow_callback():
brain.screen.set_font(FontType.MONO40)
brain.screen.clear_row(3)
brain.screen.set_cursor(3, 1)
vision_5_objects = vision_5.take_snapshot(vision_5__YELLOWBOX)
if (vision_5_objects):
arm_motor.spin_for(FORWARD, 300, DEGREES)
claw_motor.spin_for(FORWARD, 100, DEGREES)
drivetrain.drive_for(FORWARD, 12, INCHES)
arm_motor.spin_for(REVERSE, 300, DEGREES)
claw_motor.spin_for(REVERSE, 100, DEGREES)
else:
brain.screen.print("No Yellow Object")
# ตัวจัดการเหตุการณ์ระบบ
check_yellow(check_yellow_callback)
# การหน่วงเวลาเล็กน้อยเพื่อให้แน่ใจว่าตัวจัดการเหตุการณ์พร้อมที่จะใช้งาน
wait(15, MSEC)
# ทำงานอย่างต่อเนื่องเพื่อตรวจสอบข้อมูลเซ็นเซอร์ใหม่
while True:
check_blue.broadcast_and_wait()
wait(105, MSEC)