เฉื่อย#

การแนะนำ#

หุ่นยนต์เขียนโปรแกรม VEX AIM มีเซ็นเซอร์วัดความเฉื่อยในตัว เซ็นเซอร์นี้จะวัดการเคลื่อนที่และการหมุนของหุ่นยนต์

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

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

ด้านล่างนี้คือรายการของบล็อกทั้งหมด:

ค่าต่างๆ — รายงานข้อมูลการวางแนวและการเคลื่อนไหว

  • heading — รายงานทิศทางที่หุ่นยนต์หันหน้าไป ตั้งแต่ 0 ถึง 359.99 องศา

  • การหมุน — รายงานว่าหุ่นยนต์หมุนไปไกลแค่ไหน

  • ความเร่ง — รายงานว่าหุ่นยนต์เร่งความเร็วหรือชะลอความเร็วลงเร็วแค่ไหนในแกนที่เลือก

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

  • การวางแนว — รายงานมุมม้วน มุมเงย หรือมุมหันของหุ่นยนต์

การดำเนินการ — ตอบสนองต่อการขัดข้องหรือรีเซ็ตค่าการเลี้ยว

ค่านิยม#

หัวข้อ#

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

ทิศทางเริ่มต้นคือ 0 องศา หากหุ่นยนต์หมุนเกิน 359.99 องศา ทิศทางจะวนกลับมาที่ 0 องศา

บล็อกหัวเรื่องสำหรับนักข่าว#
ทิศทางในองศา

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น
[Turn right until the heading reaches 90 degrees.]
เลี้ยว [ขวา v]
รอ [0.05] วินาที
รอจนกว่า <(ทิศทางในองศา) [math_greater_than v] [90]>
หยุดการเคลื่อนที่ทั้งหมด

เมื่อเริ่มต้น
[Display the robot's heading as it is rotated by hand.]
ทำตลอดไป
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
พิมพ์ (ทิศทางในองศา) บนหน้าจอ ▶
รอ [0.05] วินาที

การหมุน#

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

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

บล็อกรายงานการหมุนเวียน#
(การหมุนในองศา)

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น
[Print the rotation value as the robot turns.]
เลี้ยว [ขวา v] เป็น [480] องศา ◀ และไม่รอ
ทำตลอดไป
ล้างหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
พิมพ์ (การหมุนในองศา) บนหน้าจอ ▶

ความเร่ง#

ความเร่ง คือ อัตราเร็วที่หุ่นยนต์เร่งความเร็วหรือลดความเร็วลง บล็อกรายงานความเร่งจะรายงานความเร่งของหุ่นยนต์ตามแกนที่เลือก ตั้งแต่ -4.00 G ถึง 4.00 G

G เป็นหน่วยที่ใช้วัดความเร่ง 1 G คือความเร่งประมาณที่คุณรู้สึกจากแรงโน้มถ่วงขณะนั่งอยู่เฉยๆ

ค่าที่ได้อาจเป็นบวกหรือลบ ขึ้นอยู่กับทิศทางของการเร่งความเร็วบนแกนที่เลือก ใน AIM ตัวเลือกแกนจะตั้งชื่อตามทิศทางของหุ่นยนต์ ได้แก่ ไปข้างหน้า, ไปทางขวา และ ลงล่าง

บล็อกรายงานการเร่งความเร็ว#
(ความเร่งของแกน [ไปข้างหน้า v] ในหน่วย g :: custom-controller-inertial-timer)

พารามิเตอร์

คำอธิบาย

แกน

แกนที่ใช้วัดความเร่ง:

  • ไปข้างหน้า
  • ไปทางขวา
  • ลงล่าง

อุปกรณ์เซ็นเซอร์ VEX แสดงพร้อมลูกศรสีสามอันที่ระบุทิศทาง ลูกศรสีแดงที่มีป้ายกำกับว่า RIGHTWARD ชี้ขึ้นไปทางซ้ายในแนวทแยง ลูกศรสีเขียวที่มีป้ายกำกับว่า FORWARD ชี้ขึ้นไปทางขวาในแนวทแยง และลูกศรสีน้ำเงินที่มีป้ายกำกับว่า DOWNWARD ชี้ลงตรงๆ จากจุดศูนย์กลาง

ตัวอย่าง

เมื่อเริ่มต้น
[Show the change in acceleration as the robot begins to move.]
ตั้งเคอร์เซอร์ไปแถว [4] คอลัมน์ [1] บนหน้าจอ
พิมพ์ (รวม [Resting: ] (ความเร่งของแกน [ทางขวา v] ในหน่วย g :: custom-controller-inertial-timer)) บนหน้าจอ ▶
ตั้งเคอร์เซอร์ไปแถวถัดไปบนหน้าจอ
รอ [0.5] วินาที
เคลื่อนที่ [ขวา v] เป็น [50] [มม. v] ◀ และไม่รอ
รอ [0.1] วินาที
พิมพ์ (รวม [Startup: ] (ความเร่งของแกน [ทางขวา v] ในหน่วย g :: custom-controller-inertial-timer)) บนหน้าจอ ▶

รับอัตราการหมุนเวียน#

อัตราการหมุนคือความเร็วในการหมุนของหุ่นยนต์ บล็อกรายงาน get turn rate จะรายงานความเร็วในการหมุนปัจจุบันของหุ่นยนต์ตามแกนที่เลือกในหน่วยองศาต่อวินาที \(dps\) ในรูปแบบจำนวนเต็ม

ค่าที่ได้อาจเป็นบวกหรือลบ ขึ้นอยู่กับทิศทางการหมุนของหุ่นยนต์บนแกนนั้น ภาพด้านล่างใช้ลูกศรแสดงทิศทางการหมุนที่เป็นบวกสำหรับมุมม้วน (roll), มุมเงย (pitch) และมุมหัน (yaw)

อุปกรณ์เซ็นเซอร์ VEX แสดงพร้อมลูกศรสีสามอันที่ระบุแกนการหมุน ลูกศรสีแดงที่มีป้ายกำกับว่า Pitch ชี้ขึ้นไปทางซ้ายในแนวทแยง ลูกศรสีเขียวที่มีป้ายกำกับว่า Roll ชี้ขึ้นไปทางขวาในแนวทแยง และลูกศรสีน้ำเงินที่มีป้ายกำกับว่า Yaw ชี้ลงตรงๆ จากจุดศูนย์กลาง

บล็อกรายงาน Get Turn Rate#
(อัตราการหมุนของแกน [yaw v] ในหน่วย dps)

พารามิเตอร์

คำอธิบาย

แกน

แกนที่ใช้รายงานอัตราการหมุน:

  • การหมุนรอบแกนตั้ง (roll)
  • การหมุนรอบแกนแนวนอน (pitch)
  • การหมุนรอบแกนตามยาว (yaw)

ตัวอย่าง

เมื่อเริ่มต้น
[Observe the yaw turn rate as the robot turns.]
เลี้ยว [ขวา v] เป็น [180] องศา ◀ และไม่รอ
ทำตลอดไป
ล้างหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
พิมพ์ (อัตราการหมุนของแกน [yaw v] ในหน่วย dps) บนหน้าจอ ▶

ปฐมนิเทศ#

การวางแนวคือมุมปัจจุบันของหุ่นยนต์บนแกนหมุนที่เลือกไว้ บล็อกรายงานการวางแนวจะรายงานค่าการหมุน (roll), การเอียง (pitch) หรือการหัน (yaw) ของหุ่นยนต์ ตั้งแต่ -180.00 ถึง 180.00 องศา ในรูปแบบตัวเลขทศนิยม

โรล พิทช์ และยอว์ อธิบายถึงวิธีการเอียงหรือหมุนที่แตกต่างกันของหุ่นยนต์ ภาพด้านล่างใช้ลูกศรแสดงทิศทางการหมุนในทิศทางบวกสำหรับโรล พิทช์ และยอว์

อุปกรณ์เซ็นเซอร์ VEX แสดงพร้อมลูกศรสีสามอันที่ระบุแกนการหมุน ลูกศรสีแดงที่มีป้ายกำกับว่า Pitch ชี้ขึ้นไปทางซ้ายในแนวทแยง ลูกศรสีเขียวที่มีป้ายกำกับว่า Roll ชี้ขึ้นไปทางขวาในแนวทแยง และลูกศรสีน้ำเงินที่มีป้ายกำกับว่า Yaw ชี้ลงตรงๆ จากจุดศูนย์กลาง

บล็อกสำหรับผู้สื่อข่าวปฐมนิเทศ#
ทิศทางของ [yaw v] ในองศา

พารามิเตอร์

คำอธิบาย

แกน

แกนการวางแนวที่จะรายงาน:

  • การหมุนรอบแกนตั้ง
  • การเอียง
  • การหันเห

ตัวอย่าง

เมื่อเริ่มต้น
[Display the robot's orientation as it is rotated by hand.]
ทำตลอดไป
ล้างแถว [1] บนหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
พิมพ์ (ทิศทางของ [roll v] ในองศา) บนหน้าจอ ▶
รอ [0.05] วินาที

การกระทำ#

เมื่อเกิดอุบัติเหตุ#

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

บล็อกหมวก “เมื่อเกิดข้อผิดพลาด”#
เมื่อชน

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น
[Start moving forward.]
ตั้งความเร็วเคลื่อนที่เป็น [100]%
เคลื่อนที่ [ไปข้างหน้า v]

เมื่อชน
[Respond when a crash is detected.]
หยุดการเคลื่อนที่ทั้งหมด
เล่นเสียง [ชน v] ▶

ตั้งค่าความไวต่อการชน#

บล็อก set crash sensitivity จะปรับค่าความเร่งฉับพลันที่จำเป็นเพื่อให้หุ่นยนต์ตรวจจับการชนได้

บล็อกสแต็กความไวต่อการชนที่ตั้งค่าไว้#
ตั้งความไวการชนเป็น [ต่ำ v]

พารามิเตอร์

คำอธิบาย

ความไว

ระดับความไวของหุ่นยนต์ในการตรวจจับการชน:

  • ต่ำ — ตรวจจับเฉพาะแรงกระแทกที่รุนแรง
  • ปานกลาง — ตรวจจับแรงกระแทกปานกลาง
  • สูง — ตรวจจับแรงกระแทกเล็กน้อย

ตัวอย่าง

เมื่อเริ่มต้น
[Move slowly with high crash sensitivity.]
ตั้งความเร็วเคลื่อนที่เป็น [35]%
ตั้งความไวการชนเป็น [สูง v]
เคลื่อนที่ [ไปข้างหน้า v]

เมื่อชน
[Respond when a crash is detected.]
หยุดการเคลื่อนที่ทั้งหมด
เล่นเสียง [ชน v] ▶

รีเซ็ตหัวเรื่อง#

บล็อก รีเซ็ตทิศทาง จะรีเซ็ตทิศทางปัจจุบันของหุ่นยนต์เป็น 0 องศา หลังจากบล็อกนี้ทำงานเสร็จ ทิศทางที่หุ่นยนต์หันหน้าไปในขณะนี้จะกลายเป็นทิศทาง 0 องศาใหม่

บล็อกส่วนหัวรีเซ็ต (Reset header stack block)#
รีเซ็ตทิศทาง

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น
[Face left before turning around.]
เลี้ยวไปทิศทาง [270] องศา ▶
รีเซ็ตทิศทาง
รอ [1] วินาที
เลี้ยวไปทิศทาง [180] องศา ▶

รีเซ็ตการหมุน#

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

บล็อกรีเซ็ตการหมุนแบบเรียงซ้อน#
รีเซ็ตการหมุน

พารามิเตอร์

คำอธิบาย

บล็อกนี้ไม่มีพารามิเตอร์

ตัวอย่าง

เมื่อเริ่มต้น
[Turn for 480 degrees before resetting rotation.]
เลี้ยว [ขวา v] เป็น [480] องศา ▶
รีเซ็ตการหมุน
ทำตลอดไป
ล้างหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
พิมพ์ (การหมุนในองศา) บนหน้าจอ ▶