ข้ามไปยังเนื้อหาหลัก

ไทรบอลในสนาม

สร้างอัลกอริทึมเพื่อใช้บล็อก [Drive for] และ [Turn to heading] เซ็นเซอร์ GPS มอเตอร์แขน และมอเตอร์ดูด เพื่อเขียนโค้ดให้หุ่นยนต์ Hero Bot ยิงลูกบอล Robot Preload Triball, Field Preload Triball และ Green Field Triballs ลงห่วง ผู้ที่ทำเวลาได้เร็วที่สุดเป็นผู้ชนะ!

  • เลือก VRC Virtual Skills - Over Under Playground
  • ใช้เช็คลิสต์ก่อนเริ่มการแข่งขันเพื่อเลือกตำแหน่งเริ่มต้น ทิศทางเริ่มต้น และตั้งค่าการโหลดล่วงหน้าของหุ่นยนต์เป็น “ใช่” Robot Preload “Yes”)
  • ใช้เช็คลิสต์ก่อนการจับคู่เพื่อเลือกตำแหน่งการโหลดฟิลด์ล่วงหน้าที่ต้องการ
  • วางแผนเส้นทางให้หุ่นยนต์หยิบและปล่อยลูกบอล Triballs ตามลำดับ
  • เขียนโค้ดให้ Hero Bot ยิงลูกบอล Robot Preload Triball เข้าประตูฝ่ายสีน้ำเงิน 
  • เขียนโค้ด Hero Bot เพื่อทำคะแนน Field Preload Triball ลงในประตูของฝ่ายสีน้ำเงิน 
  • บังคับหุ่นยนต์ให้เคลื่อนที่ไปตามเส้นทางที่วางแผนไว้ เก็บลูกบอล Green Field Triball ลูกแรก และทำคะแนนให้ทีม Red Alliance Goal 
    • บังคับหุ่นยนต์ไปยังตำแหน่งที่จะหยิบ Field Triball ลูกแรกตามลำดับที่วางแผนไว้ 
    • เขียนโปรแกรมให้หุ่นยนต์หมุนมอเตอร์ดูดเพื่อหยิบลูกบอล Triball ขึ้นมา
    • ควบคุมหุ่นยนต์ให้ไปยังตำแหน่งทำคะแนนและหมุนไปในทิศทางที่ทำคะแนนได้
    • เขียนโปรแกรมให้หุ่นยนต์หมุนมอเตอร์ดูดเพื่อส่งลูกบอล Triball ไปยังเป้าหมาย
  • เขียนโค้ดให้ Hero Bot เก็บ Field Triball แต่ละลูกตามลำดับที่วางแผนไว้ และยิงเข้าประตูของฝ่ายพันธมิตรแดง
  • ใช้บล็อก [print] เพื่อพิมพ์ค่าตัวจับเวลาไปยังคอนโซลการพิมพ์

คำแนะนำที่เป็นประโยชน์

  • สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการระบุพิกัด (X, Y) ขององค์ประกอบเกมใน VRC Over Under Playground คลิกที่นี่
  • ประสานงานและปรับเวลาการทำงานของพฤติกรรมต่างๆ ของหุ่นยนต์อย่างมีประสิทธิภาพ เพื่อลดเวลาที่ใช้ในการทำคะแนน Triball ของ Striker ให้เหลือน้อยที่สุด
    • ใช้คุณสมบัติ และไม่ต้องรอ ของมอเตอร์แขนหมุน เพื่อจัดตำแหน่งบล็อก เพื่อให้บล็อกอื่นๆ สามารถทำงานต่อไปได้ในขณะที่มอเตอร์แขนหมุน หากต้องการใช้ฟีเจอร์นี้ ให้เลือกไอคอนลูกศรเพื่อขยาย และอย่ารอ

      บล็อก VEXcode Spin to position ที่อ่านค่า 'หมุน ArmMotor ไปที่ตำแหน่ง 1200 องศา และ'รอ'

      • คำสั่ง Python ที่ตรงกัน:

        arm_motor.spin_to_position(1200, DEGREES, wait=False)
  • ใช้คุณสมบัติ และไม่ต้องรอ ของบล็อกขับเคลื่อน สำหรับ (หรือบล็อกเลี้ยวไป ทิศทาง ) ร่วมกับบล็อกรอ จากหมวดควบคุม เพื่อประสานเวลาทับซ้อนของพฤติกรรมหุ่นยนต์ ทำให้หุ่นยนต์สามารถแสดงพฤติกรรมอื่น ๆ ขณะเคลื่อนที่ และรับประกันความสำเร็จของงานโดยรวม หากต้องการใช้ฟีเจอร์นี้ ให้เลือกไอคอนลูกศรเพื่อขยาย และอย่ารอ ตัวอย่างเช่น ในบางสถานการณ์ หุ่นยนต์สามารถเริ่มหมุนมอเตอร์ดูดเพื่อปล่อยลูกบอล Triball ในขณะที่การเคลื่อนไหวยังคงดำเนินอยู่ ซึ่งจะช่วยหลีกเลี่ยงช่วงเวลาหยุดทำงานที่ไม่จำเป็นและประหยัดเวลาได้

    บล็อก VEXcode สามบล็อกเรียงซ้อนกัน บล็อกแรกคือบล็อกไดรฟ์ที่อ่านค่า 'ขับเคลื่อนไปข้างหน้า 1200 มม. และอย่ารอ'' บล็อกที่สองคือบล็อกรอที่มีข้อความว่า 'รอ 0.5 วินาที' บล็อกสุดท้ายคือบล็อก Spin for ที่อ่านค่า 'spin IntakeMotor reverse เป็น 375 องศา'

    • คำสั่ง Python ที่ตรงกัน:

      drivetrain.drive_for(FORWARD, 1200, MM, wait=False)
      wait(0.5, SECONDS)
      intake_motor.spin_for(REVERSE, 375, DEGREES)