เฉื่อย#
การแนะนำ#
หุ่นยนต์เขียนโปรแกรม VEX AIM มีเซ็นเซอร์วัดความเฉื่อยในตัว เซ็นเซอร์นี้จะวัดการเคลื่อนที่และการหมุนของหุ่นยนต์
เซ็นเซอร์วัดความเฉื่อยใช้ส่วนประกอบสองส่วนในการทำงานนี้ ไจโรสโคปวัดการหมุน เช่น ทิศทาง การหมุน อัตราการหมุน และการวางแนวของหุ่นยนต์ ส่วนมาตรวัดความเร่งวัดการเปลี่ยนแปลงของการเคลื่อนที่ เช่น การเร่งความเร็ว การลดความเร็ว หรือการหยุดกะทันหันระหว่างการชน
บล็อกตรวจจับแรงเฉื่อยสามารถใช้ในการติดตามการเลี้ยว วัดความเร่ง ตรวจจับการชน และรีเซ็ตค่าทิศทางหรือการหมุนได้
ด้านล่างนี้คือรายการของบล็อกทั้งหมด:
ค่าต่างๆ — รายงานข้อมูลการวางแนวและการเคลื่อนไหว
heading — รายงานทิศทางที่หุ่นยนต์หันหน้าไป ตั้งแต่ 0 ถึง 359.99 องศา
การหมุน — รายงานว่าหุ่นยนต์หมุนไปไกลแค่ไหน
ความเร่ง — รายงานว่าหุ่นยนต์เร่งความเร็วหรือชะลอความเร็วลงเร็วแค่ไหนในแกนที่เลือก
รับอัตราการหมุน — รายงานความเร็วในการหมุนของหุ่นยนต์บนแกนที่เลือก
การวางแนว — รายงานมุมม้วน มุมเงย หรือมุมหันของหุ่นยนต์
การดำเนินการ — ตอบสนองต่อการขัดข้องหรือรีเซ็ตค่าการเลี้ยว
เมื่อเกิดการชน — รันบล็อกที่เชื่อมต่อเมื่อหุ่นยนต์ตรวจพบการชนอย่างกะทันหัน
ตั้งค่าความไวในการชน — ปรับระดับความไวในการตรวจจับการชนต่อการกระแทก
รีเซ็ตทิศทาง — รีเซ็ตค่าทิศทางของหุ่นยนต์เป็น 0 องศา
รีเซ็ตการหมุน — รีเซ็ตค่าการหมุนของหุ่นยนต์เป็น 0 องศา
ค่านิยม#
หัวข้อ#
ทิศทาง (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)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
แกน |
แกนที่ใช้วัดความเร่ง:
|

ตัวอย่าง
เมื่อเริ่มต้น
[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)

(อัตราการหมุนของแกน [yaw v] ในหน่วย dps)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
แกน |
แกนที่ใช้รายงานอัตราการหมุน:
|
ตัวอย่าง
เมื่อเริ่มต้น
[Observe the yaw turn rate as the robot turns.]
เลี้ยว [ขวา v] เป็น [180] องศา ◀ และไม่รอ
ทำตลอดไป
ล้างหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
พิมพ์ (อัตราการหมุนของแกน [yaw v] ในหน่วย dps) บนหน้าจอ ▶
ปฐมนิเทศ#
การวางแนวคือมุมปัจจุบันของหุ่นยนต์บนแกนหมุนที่เลือกไว้ บล็อกรายงานการวางแนวจะรายงานค่าการหมุน (roll), การเอียง (pitch) หรือการหัน (yaw) ของหุ่นยนต์ ตั้งแต่ -180.00 ถึง 180.00 องศา ในรูปแบบตัวเลขทศนิยม
โรล พิทช์ และยอว์ อธิบายถึงวิธีการเอียงหรือหมุนที่แตกต่างกันของหุ่นยนต์ ภาพด้านล่างใช้ลูกศรแสดงทิศทางการหมุนในทิศทางบวกสำหรับโรล พิทช์ และยอว์

ทิศทางของ [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 องศาใหม่
รีเซ็ตทิศทาง
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Face left before turning around.]
เลี้ยวไปทิศทาง [270] องศา ▶
รีเซ็ตทิศทาง
รอ [1] วินาที
เลี้ยวไปทิศทาง [180] องศา ▶
รีเซ็ตการหมุน#
บล็อก รีเซ็ตการหมุน จะรีเซ็ตค่าการหมุนปัจจุบันของหุ่นยนต์เป็น 0 องศา หลังจากบล็อกนี้ทำงานเสร็จ หุ่นยนต์จะติดตามการเลี้ยวในอนาคตจากค่าการหมุน 0 องศาใหม่
รีเซ็ตการหมุน
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Turn for 480 degrees before resetting rotation.]
เลี้ยว [ขวา v] เป็น [480] องศา ▶
รีเซ็ตการหมุน
ทำตลอดไป
ล้างหน้าจอ
ตั้งเคอร์เซอร์ไปแถว [1] คอลัมน์ [1] บนหน้าจอ
พิมพ์ (การหมุนในองศา) บนหน้าจอ ▶