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

ความสูงใหม่

สร้างระบบพิกัดบนสนามฝึกทักษะเสมือนจริงแบบเต็มปริมาตร โดยกำหนดตำแหน่งของจุดสีแดงเป็นจุดกำเนิด (0, 0) และตำแหน่งเริ่มต้นของศูนย์กลางหุ่นยนต์ฮีโร่อยู่ที่พิกัด (0, 36) ใช้บล็อก [Drive for], [Turn to heading], [Spin ​​to position] และ [Spin ​​for] เพื่อเขียนโค้ดให้ Hero Bot เก็บบล็อกสีม่วงที่ไฮไลต์ไว้ทั้งสี่บล็อกและทำคะแนนลงในเป้าหมายที่ 3 สร้างอัลกอริทึมที่นำทางหุ่นยนต์ไปยังตำแหน่งที่กำหนดเพื่อวางบล็อกและทำให้เป้าหมายมีระดับการเติม ที่ระดับ 3

  • เลือก VIQRC Virtual Skills - Full Volume Playground
  • เขียนโค้ดให้ Hero Bot เก็บบล็อกสีม่วงที่ถูกไฮไลต์แล้วนำไปทำประตูที่ 3 
    • สร้างอัลกอริทึมเพื่อควบคุมหุ่นยนต์ให้เคลื่อนที่ไปตามระยะทางที่กำหนด และติดตามพิกัด X และ Y ของหุ่นยนต์ ใช้ขั้นตอนวิธีในการบังคับหุ่นยนต์ให้ไปยังบล็อกสีม่วงที่ไฮไลต์ไว้
    • เขียนโปรแกรมให้หุ่นยนต์หยิบก้อนบล็อกขึ้นมา
    • สร้างอัลกอริทึมเพื่อนำทางหุ่นยนต์ไปยังตำแหน่งที่กำหนด ใช้อัลกอริทึมเพื่อนำทางหุ่นยนต์ไปยังพิกัด (-70, 1270) และหมุนหุ่นยนต์ไปที่ทิศทาง -45 องศา
    • เขียนโปรแกรมให้หุ่นยนต์ปล่อยบล็อกลงมา
  • เขียนโค้ดให้ Hero Bot เก็บก้อนสีม่วงที่ถูกไฮไลต์อันที่สองและนำไปใส่ในประตูที่ 3 ในตำแหน่งและทิศทางเดียวกับที่ใส่ก้อนสีม่วงอันแรก 
  • เขียนโค้ดให้ Hero Bot เก็บก้อนสีม่วงที่ไฮไลต์ไว้ก้อนที่สาม แล้วนำไปใส่ในประตูที่สาม ในตำแหน่งและทิศทางเดียวกับที่ใส่ก้อนสีม่วงก้อนแรก 
  • เขียนโค้ดให้ Hero Bot เก็บก้อนสีม่วงที่ไฮไลต์อันที่สี่ แล้วนำไปใส่ในประตูที่สาม ในตำแหน่งและทิศทางเดียวกับที่ใส่ก้อนสีม่วงอันแรก 

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

  • ใช้พิกัดของหุ่นยนต์ (x1,y1) พิกัดของตำแหน่งเป้าหมาย (x2,y2) และฟังก์ชัน atan เพื่อหาทิศทางการขับเคลื่อน
    • คำนวณหาค่ามุมทีตา (θ) ของเส้นตรงที่เชื่อมจุดสองจุดนี้ แผนภาพแสดงนิพจน์ทางคณิตศาสตร์สองนิพจน์ นิพจน์แรกอ่านว่า 'theta เท่ากับ atan((y2 - y1) / (x2 - x1))' นิพจน์ที่สองอ่านว่า 'ลบพาย/2 น้อยกว่าทีต้า ซึ่งน้อยกว่าพาย/2' แผนภาพจากบนลงล่างแสดงตำแหน่งของหุ่นยนต์ที่พิกัด (X1, Y1) และเส้นตรงชี้ไปยังพิกัด (X2, Y2) ระยะทางถูกกำหนดด้วยตัวแปร d และมุมถูกกำหนดด้วยตัวแปร theta ระยะทางในแนวนอนระหว่างจุดแสดงด้วย 'x2 - x1'และระยะทางในแนวตั้งแสดงด้วย 'y2 - y1'
    • ตัวอย่างรหัสเทียมสำหรับนิพจน์ทางคณิตศาสตร์:

      ถ้า x1 เท่ากับ x2:
      	ถ้า y2 > y1:
      		ทิศทาง = 0 องศา
      	มิฉะนั้น:
      		ทิศทาง = 180 องศา
      มิฉะนั้น:
      	ถ้า x2 > x1:
      		ทิศทาง = 90 องศา - theta
      	มิฉะนั้น:
      		ทิศทาง = 270 องศา - theta
    • แปลงค่ามุม theta θ เพื่อใช้ในการกำหนดทิศทาง (Heading)  แผนภาพจากบนลงล่างที่ระบุว่า 'หุ่นยนต์มุ่งหน้าไปทาง' แสดงให้เห็นหุ่นยนต์ที่มีวงกลมล้อมรอบ โดยมีป้ายกำกับระบุ 360 องศาของวงกลม
  • ใช้พิกัดของหุ่นยนต์ (x1,y1) พิกัดของตำแหน่งเป้าหมาย (x2,y2) และทฤษฎีบทพีทาโกรัสเพื่อหาระยะทางในการขับเคลื่อน นิพจน์ทางคณิตศาสตร์อ่านว่า 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)' แผนภาพจากบนลงล่างแบบเดียวกับก่อนหน้านี้ที่แสดงความแตกต่างระหว่างพิกัดสองค่า หุ่นยนต์อยู่ที่พิกัด (X1, Y1) และมีเส้นตรงชี้ไปยังพิกัด (X2, Y2) ระยะทางถูกกำหนดด้วยตัวแปร d และมุมถูกกำหนดด้วยตัวแปร theta ระยะทางในแนวนอนระหว่างจุดแสดงด้วย 'x2 - x1'และระยะทางในแนวตั้งแสดงด้วย 'y2 - y1'

 

  • ใช้บล็อกฟังก์ชัน จากหมวด ตัวดำเนินการเพื่อแสดงฟังก์ชัน atan เพื่อคำนวณมุม theta θ VEXcode Function block containing operator blocks, that all together reads 'atan of ((Y2 - Y1) / (X2 - X1))'.
    • คำสั่ง Python ที่ตรงกัน: 

      math.atan((Y2 - Y1) / (X2 - X1)) / math.pi * 180
  • ใช้บล็อกฟังก์ชัน จากหมวด ตัวดำเนินการเพื่อแสดงทฤษฎีบทพีทาโกรัสในการคำนวณระยะทางในการขับขี่ VEXcode Set variable block containing function and operator blocks, that all together reads 'set driveDistance to sqrt of ((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1))'.
    • คำสั่ง Python ที่ตรงกัน: 

      ระยะทางขับรถ = math.sqrt((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1))