ไจโร#
การแนะนำ#
เซ็นเซอร์ไจโรเป็นเซ็นเซอร์ตรวจจับการเคลื่อนไหวที่ตรวจจับการหมุนรอบแกนเดียว สามารถวัดได้ว่าหุ่นยนต์หมุนไปมากแค่ไหน ทำให้สามารถติดตามทิศทางและการวางตัวได้
หน้านี้ใช้ drivetrain_gyro เป็นตัวอย่างชื่อเซ็นเซอร์ไจโร โปรดแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ
ด้านล่างนี้คือรายการวิธีการทั้งหมดที่มีให้เลือกใช้:
การดำเนินการ — ปรับเทียบหรือปรับทิศทางและการหมุนของเซ็นเซอร์ไจโร
calibrate— ปรับเทียบเซ็นเซอร์ไจโรเพื่อการติดตามทิศทางที่เสถียรset_heading— ตั้งค่าทิศทางของเซ็นเซอร์ไจโรเป็นค่าที่ระบุset_rotation— ตั้งค่าการหมุนของเซ็นเซอร์ไจโรreset_heading— ตั้งค่าทิศทางของเซ็นเซอร์ไจโรเป็น 0reset_rotation— ตั้งค่าการหมุนของเซ็นเซอร์ไจโรเป็น 0
ตัวอ่านค่า — อ่านค่าทิศทาง การหมุน และสถานะจากเซ็นเซอร์ไจโร
heading— ส่งคืนหัวข้อปัจจุบันrotation— ส่งคืนการหมุนสะสมrate— ส่งคืนความเร็วเชิงมุมรอบแกน x, y หรือ zis_calibrating— ส่งคืนว่าเซ็นเซอร์ไจโรกำลังทำการปรับเทียบอยู่หรือไม่installed— ส่งคืนว่าเซ็นเซอร์ไจโรเชื่อมต่อกับสมองหรือไม่
ฟังก์ชันเรียกกลับ — เรียกใช้โค้ดเมื่อเซ็นเซอร์ไจโรตรวจจับการเคลื่อนไหวหรือการเปลี่ยนแปลง
changed— ลงทะเบียนฟังก์ชันที่จะเรียกเมื่อเซ็นเซอร์ไจโรตรวจพบการเปลี่ยนแปลง
ตัวสร้าง — กำหนดค่าและตั้งค่าเซ็นเซอร์ไจโรด้วยตนเอง
Gyro— สร้างเซ็นเซอร์ไจโร
การกระทำ#
calibrate#
calibrate จะทำการปรับเทียบเซ็นเซอร์ไจโร บรรทัดคำสั่งถัดไปทั้งหมดจะรอจนกว่าการปรับเทียบจะเสร็จสมบูรณ์ก่อนจึงจะดำเนินการ การปรับเทียบเป็นกระบวนการภายในที่วัดและชดเชยสัญญาณรบกวนและการเบี่ยงเบนของเซ็นเซอร์ในช่วงเวลาที่กำหนด ในระหว่างนี้ เซ็นเซอร์ไจโรจะต้องอยู่นิ่งสนิท (เช่น บนพื้นผิวที่มั่นคงโดยไม่มีการเคลื่อนไหวภายนอกใดๆ) การเคลื่อนไหวในระหว่างการปรับเทียบจะทำให้ได้ผลลัพธ์ที่ไม่ถูกต้อง
Usage:
calibrate()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Start Gyro Sensor calibration
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
wait(0.1, SECONDS)
brain.screen.print("Done!")
set_heading#
set_heading ตั้งค่าทิศทางของเซ็นเซอร์ไจโรให้เป็นค่าเฉพาะ
Usage:
set_heading(value, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
ค่า |
ค่าหัวเรื่องที่จะตั้งค่า |
หน่วย |
ไม่บังคับ หน่วยที่ใช้แทนหัวข้อใหม่:
|
# Turn the robot around
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)
set_rotation#
set_rotation กำหนดค่าการหมุนของเซ็นเซอร์ไจโรให้เป็นค่าเฉพาะ
Usage:
set_rotation(value, units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ค่าหัวเรื่องที่จะตั้งค่า |
|
ตัวเลือกเสริม หน่วยที่ใช้แสดงค่าการหมุนใหม่:
|
# Turn the robot around
drivetrain_gyro.set_rotation(-180)
drivetrain.turn_to_rotation(0)
reset_heading#
reset_heading จะรีเซ็ตค่าทิศทางของเซ็นเซอร์ไจโรเป็น 0
Usage:
reset_heading()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Turn the robot before and after resetting the heading
drivetrain.turn_to_heading(90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_heading()
drivetrain.turn_to_heading(90, DEGREES)
reset_rotation#
reset_rotation จะรีเซ็ตการหมุนของเซ็นเซอร์ไจโรเป็น 0
Usage:
reset_rotation()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Turn the robot before and after resetting the rotation
drivetrain.turn_to_rotation(-90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_rotation()
drivetrain.turn_to_rotation(-90, DEGREES)
ผู้รับ#
heading#
heading จะส่งคืนค่าทิศทางปัจจุบันของเซ็นเซอร์ไจโร
Usage:
heading(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
(ไม่บังคับ) หน่วยที่ใช้แสดงทิศทาง:
|
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.heading())
rotation#
การหมุน rotation การหมุนปัจจุบันของเซ็นเซอร์ไจโร
Usage:
rotation(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม หน่วยที่ใช้แสดงการหมุน:
|
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.rotation())
rate#
rate จะส่งคืนค่าอัตราการเปลี่ยนแปลงปัจจุบันของการหมุนของเซ็นเซอร์ไจโรในหน่วยที่ระบุ
Usage:
rate(units)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ตัวเลือกเสริม หน่วยที่ใช้แสดงอัตราการหมุนของไจโร:
|
# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(drivetrain_gyro.rate())
drivetrain.stop()
is_calibrating#
is_calibrating ตรวจสอบว่าเซ็นเซอร์ไจโรกำลังทำการปรับเทียบอยู่หรือไม่
True— กำลังปรับเทียบเซ็นเซอร์ไจโรFalse— เซ็นเซอร์ไจโรไม่ได้รับการปรับเทียบ
Usage:
is_calibrating()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Start Gyro Sensor calibration.
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
wait(0.1, SECONDS)
brain.screen.print("Done!")
installed#
installed จะส่งคืนค่าบูลีนที่ระบุว่าเซ็นเซอร์ไจโรเชื่อมต่อกับสมองหรือไม่
True— เซ็นเซอร์ไจโรเชื่อมต่อกับสมองFalse— เซ็นเซอร์ไจโรไม่ได้เชื่อมต่อกับสมอง
Usage:
installed()
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เมธอดนี้ไม่มีพารามิเตอร์ |
# Display a message if the Gyro Sensor is
# installed.
if drivetrain_gyro.installed():
brain.screen.print("Installed!")
การเรียกกลับ#
changed#
changed ลงทะเบียนฟังก์ชันเรียกกลับสำหรับเมื่อทิศทางของเซ็นเซอร์ไจโรเปลี่ยนแปลง
Usage:
changed(callback, arg)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
ฟังก์ชันเรียกกลับที่จะถูกเรียกเมื่อทิศทางของเซ็นเซอร์ไจโรเปลี่ยนแปลง |
|
ไม่บังคับ: ชุดอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ |
def gyro_changed():
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain_gyro.heading())
# Display the heading when the gyro detects a change
drivetrain.turn_for(RIGHT, 90, DEGREES, wait=False)
drivetrain_gyro.changed(gyro_changed)
ผู้สร้าง#
ตัวสร้าง (Constructor) ใช้สำหรับสร้างอ็อบเจ็กต์ Gyro ด้วยตนเอง ซึ่งจำเป็นสำหรับการกำหนดค่าเซ็นเซอร์ Gyro นอก VEXcode
Gyro#
Gyro สร้างเซ็นเซอร์ไจโร
Usage:
Gyro(smartport)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
พอร์ตอัจฉริยะที่เชื่อมต่อกับเซ็นเซอร์ไจโร จะเขียนแทนด้วย PORTx โดยที่ x คือหมายเลขของพอร์ต |
# Create the Brain
brain = Brain()
# When constructing Gyro Sensor "drivetrain_gyro" with a
# SmartDrive "drivetrain"
drivetrain_gyro = Gyro(Ports.PORT1)
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, drivetrain_gyro, 200)
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)