ไจโรสโคปในสมาร์ทโฟน: มันคืออะไร ประเภท และหลักการทำงาน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-03-22 เวลาอ่าน: 9 นาที

ไจโรสโคปคือเซนเซอร์ที่วัดความเร็วเชิงมุมของการหมุนของอุปกรณ์รอบสามแกน ต่างจากแอคเซเลอโรมิเตอร์ที่วัดความเร่งเชิงเส้น ไจโรสโคปจะตรวจจับการหมุนและการวางแนวในพื้นที่ ตามข้อมูลจาก STMicroelectronics, 2024 MEMS-ไจโรสโคปสมัยใหม่มีความแม่นยำถึง 0.01 องศาต่อวินาที ซึ่งช่วยให้นำไปใช้ในการนำทาง การรักษาเสถียรภาพภาพ และแอปพลิเคชัน AR

要点

  • ไจโรสโคป — เซนเซอร์ MEMS ที่วัดความเร็วเชิงมุมรอบสามแกน (X, Y, Z) ในหน่วยองศาต่อวินาที
  • เทคโนโลยี MEMS ช่วยให้สร้างไจโรสโคปขนาดเล็ก 2×2 มม. ที่กินไฟน้อยกว่า 5 มิลลิแอมป์
  • Android Sensor Framework มี API TYPE_GYROSCOPE และ TYPE_GYROSCOPE_UNCALIBRATED สำหรับเข้าถึงข้อมูล
  • การสอบเทียบ ไจโรสโคปชดเชยการเลื่อนศูนย์ — ข้อผิดพลาดหลักของเซนเซอร์ MEMS
  • ระบบ 6 แกน (ไจโรสโคป + แอคเซเลอโรมิเตอร์) ใช้ใน ARKit, ARCore และตัวควบคุมเกม

ไจโรสโคปในโทรศัพท์คืออะไร

ไจโรสโคป ในสมาร์ทโฟนคือเซนเซอร์ไมโครอิเล็กโตรเมคานิคอล (MEMS) ที่วัดความเร็วเชิงมุมของการหมุนของอุปกรณ์ แตกต่างจากไจโรสโคปเชิงกลในอากาศยาน MEMS-ไจโรสโคปคือชิปซิลิคอนขนาด 2×2×1 มม. ที่ติดตั้งบนแผงวงจรหลักของโทรศัพท์

ประเภทของไจโรสโคปในอุปกรณ์มือถือ

ในสมาร์ทโฟนสมัยใหม่ใช้ MEMS-ไจโรสโคป แบบสั่นสะเทือนเท่านั้น — tuning-fork และ ring-design ซึ่งไม่มีชิ้นส่วนหมุน ทำให้มีความทนทานถึง 10 ปีของการทำงานต่อเนื่อง ผู้ผลิตชั้นนำคือ Bosch Sensortec (ซีรี่ส์ BMI), STMicroelectronics (ซีรี่ส์ L3G, A3G) และ InvenSense (ซีรี่ส์ ICM)

คุณสมบัติหลัก

MEMS-ไจโรสโคปทั่วไปมีช่วงการวัดตั้งแต่ ±125 ถึง ±2000 °/วินาที ความถี่ในการสุ่มตัวอย่างสูงถึง 32 kHz และ กินไฟ 3–6 มิลลิแอมป์ ตามข้อมูลจาก Bosch Sensortec BMI160 (2023) ระดับสัญญาณรบกวนอยู่ที่ 0.007 °/วินาที/√Hz ที่ช่วง ±125 °/วินาที — เพียงพอสำหรับการติดตามการหมุนที่แม่นยำ

พารามิเตอร์ค่า
เทคโนโลยีMEMS (แบบสั่นสะเทือน)
ช่วง±125 — ±2000 °/วินาที
การกินไฟ3–6 มิลลิแอมป์
ขนาด2×2×1 มม.
สัญญาณรบกวน0.007 °/วินาที/√Hz

MEMS-ไจโรสโคปทำงานอย่างไร

หลักการทำงานของ MEMS-ไจโรสโคปอาศัย แรงโคริโอลิส ภายในชิปมีมวลซิลิคอนที่สั่นด้วยความถี่ที่กำหนด (15–30 kHz) เมื่ออุปกรณ์หมุน แรงโคริโอลิสจะกระทำต่อมวลที่สั่น ซึ่งแปรผันตามความเร็วเชิงมุม

โครงสร้างของไจโรสโคปแบบสั่นสะเทือน

องค์ประกอบสำคัญของ MEMS-ไจโรสโคปคือ อิเล็กโทรดขับเคลื่อน ที่สร้างการสั่นสะเทือน และอิเล็กโทรดตรวจจับที่บันทึกการเบี่ยงเบน ตามงานวิจัย “MEMS Gyroscopes for Consumer Electronics” (IEEE, 2023) โครงสร้างทั่วไปประกอบด้วยโครงสร้างแบบหวี 4–8 ชุด วางสมมาตรรอบมวลกลาง

อินเทอร์เฟซดิจิทัล

ไจโรสโคปสมัยใหม่ส่งข้อมูลผ่านบัส I²C หรือ SPI ตัวควบคุมสมาร์ทโฟนได้รับค่าความเร็วเชิงมุมสามแกน — แกน X (Pitch), Y (Roll) และ Z (Yaw) ADC ในตัวจะแปลงสัญญาณคาปาซิทีฟ เป็นค่าดิจิทัลความละเอียด 16–24 บิต อัตราการอัปเดตในโหมดเกมสูงถึง 400 Hz

ความแตกต่างระหว่างไจโรสโคปกับแอคเซเลอโรมิเตอร์

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

Sensor Fusion — การรวมข้อมูล

ในแอปพลิเคชันจริงใช้ Sensor Fusion — อัลกอริทึมที่รวมข้อมูลจากไจโรสโคป แอคเซเลอโรมิเตอร์ และแมกนิโตมิเตอร์ ฟิลเตอร์ Mahony หรือ Complementary Filter คำนวณควอเทอร์เนียนการวางแนวด้วยความแม่นยำถึง 2 องศา ในสภาวะนิ่ง และ 5 องศาในสภาวะเคลื่อนที่ Android มีเซนเซอร์เสมือน TYPE_ROTATION_VECTOR ในระดับเฟรมเวิร์ก

kotlin
val rotationVector = sensorManager
    .getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
    
val callback = object : SensorEventListener {
    override fun onSensorChanged(event: SensorEvent) {
        val quat = FloatArray(4)
        SensorManager.getQuaternionFromVector(quat, event.values)
        // quat[0..3] — ควอเทอร์เนียนการวางแนว
    }
}

การทำงานกับไจโรสโคปผ่าน Android API

Android มีเซนเซอร์ไจโรสโคปสองประเภท: TYPE_GYROSCOPE (ผ่านการสอบเทียบ ไม่มีการเลื่อน) และ TYPE_GYROSCOPE_UNCALIBRATED (ข้อมูลดิบพร้อมค่าประมาณการเลื่อน) การเข้าถึงทำผ่าน SensorManager.getDefaultSensor() ข้อมูลส่งกลับในหน่วย rad/s — เรเดียนต่อวินาที

ตัวอย่างการลงทะเบียนไจโรสโคป

การลงทะเบียน Listener ของไจโรสโคปต้องระบุความหน่วง: SENSOR_DELAY_GAME (20 ms) สำหรับเกม SENSOR_DELAY_UI (67 ms) สำหรับอินเทอร์เฟซ SENSOR_DELAY_FASTEST (0 ms) สำหรับความถี่สูงสุด หากไม่ยกเลิกการลงทะเบียนใน onPause() แบตเตอรี่จะหมดภายใน 2–3 ชั่วโมง

kotlin
class GyroActivity : AppCompatActivity() {
    private lateinit var sensorManager: SensorManager
    private var gyroscope: Sensor? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
        gyroscope = sensorManager.getDefaultSensor(
            Sensor.TYPE_GYROSCOPE
        )
    }

    override fun onResume() {
        super.onResume()
        gyroscope?.let { sensor ->
            sensorManager.registerListener(
                this, sensor, SensorManager.SENSOR_DELAY_GAME
            )
        }
    }
}

การประมวลผลข้อมูลไจโรสโคป

ข้อมูลดิบ จาก event.values[0..2] สอดคล้องกับความเร็วเชิงมุมตามแกน X, Y และ Z ในการหามุมหมุนต้องอินทิเกรตความเร็วเชิงมุมตามเวลา ที่ความถี่ 50 Hz ข้อผิดพลาดจากการอินทิเกรตประมาณ 1 องศาต่อนาที — ยอมรับได้สำหรับเกม แต่ไม่เพียงพอสำหรับการนำทางโดยไม่มีการแก้ไข

การสอบเทียบและการเลื่อนของไจโรสโคป

การเลื่อนศูนย์ (bias drift) คือปัญหาหลักของ MEMS-ไจโรสโคป แม้ในสภาวะนิ่ง เซนเซอร์อาจแสดงความเร็วเชิงมุมที่ไม่เป็นศูนย์ (0.1–2 °/วินาที) สาเหตุคือการเปลี่ยนแปลงอุณหภูมิและความเค้นเชิงกลในโครงสร้างซิลิคอน ผู้ผลิตชดเชยผลกระทบนี้ในระดับฮาร์ดแวร์

  • การเลื่อนเนื่องจากอุณหภูมิ — การเปลี่ยนแปลงค่าออฟเซ็ตเมื่อโทรศัพท์ร้อนขึ้นจาก 25 ถึง 60 °C ชดเชยด้วยแบบจำลองอุณหภูมิในตัว
  • การเลื่อนระยะยาว — การเปลี่ยนแปลงคุณสมบัติในช่วง 1–3 ปีของการใช้งาน ต้องการการสอบเทียบเป็นระยะ
  • สัญญาณรบกวน Angular Random Walk — ARW (Angle Random Walk) บ่งบอกการสะสมของข้อผิดพลาดในช่วงเวลาการอินทิเกรต

การสอบเทียบใน Android

ระบบ Android จะสอบเทียบไจโรสโคปอัตโนมัติเมื่อ เปิดเครื่องครั้งแรก หรือเมื่ออุณหภูมิเปลี่ยนแปลง กระบวนการสอบเทียบใช้เวลา 10–30 วินาทีและไม่ต้องให้ผู้ใช้ดำเนินการใด ๆ — เพียงวางโทรศัพท์บนพื้นผิวที่นิ่ง เมธอด calibrate() ไม่พร้อมใช้งานในทุกอุปกรณ์ สำหรับการสอบเทียบแบบบังคับให้ใช้ TYPE_GYROSCOPE_UNCALIBRATED เพื่อรับ bias offset ผ่าน event.values[3..5]

kotlin
private fun handleUncalibratedGyro(event: SensorEvent) {
    val rawX = event.values[0]    // เรด/วินาที ไม่ผ่านการสอบเทียบ
    val biasX = event.values[3]     // ค่าออฟเซ็ตแกน X
    val calibratedX = rawX - biasX
    
    applyCalibrationToFusion(
        calibratedX,
        event.values[1] - event.values[4],
        event.values[2] - event.values[5]
    )
}

การประยุกต์ใช้ไจโรสโคปในแอปพลิเคชันมือถือ

ไจโรสโคปถูกใช้ในหลายสิบสถานการณ์ ตั้งแต่การรักษาเสถียรภาพกล้องไปจนถึง ชุด VR Google Cardboard ARKit จาก Apple และ ARCore จาก Google ใช้ไจโรสโคปเป็นเซนเซอร์หลักในการติดตามการหมุนศีรษะ ตามข้อมูล Apple ARKit Technical Specification (2024) ไจโรสโคปคู่กับแอคเซเลอโรมิเตอร์ให้ความแม่นยำในการติดตามถึง 0.5 องศา

  • การรักษาเสถียรภาพวิดีโอ — EIS (Electronic Image Stabilisation) ใช้ไจโรสโคปเพื่อชดเชยการสั่นไหวของกล้อง อัลกอริทึมปรับแก้เฟรมตามความเร็วเชิงมุม
  • ตัวควบคุมเกม — การหมุนอุปกรณ์เพื่อควบคุมรถหรือตัวละคร ความหน่วงจากไจโรสโคปถึงหน้าจออยู่ที่ 20–50 มิลลิวินาที
  • การนำทางภายในอาคาร — Pedestrian Dead Reckoning (PDR) อินทิเกรตข้อมูลไจโรสโคปเพื่อกำหนดทิศทางการเคลื่อนที่โดยไม่ต้องใช้ GPS
  • ตัวติดตามฟิตเนส — การนับการหมุนและการบิดในการออกกำลังกาย อัลกอริทึมสมัยใหม่ระบุประเภทกิจกรรมได้แม่นยำ 93%

การประยุกต์ใช้ในอุตสาหกรรมและวิทยาศาสตร์

นอกเหนือจากอุปกรณ์อิเล็กทรอนิกส์สำหรับผู้บริโภค ไจโรสโคปยังใช้ใน หุ่นยนต์และ UAV หุ่นยนต์เคลื่อนที่ที่ใช้ Android Things และ ROS (Robot Operating System) ใช้ MEMS-ไจโรสโคปเพื่อรักษาเสถียรภาพการเคลื่อนที่และการวัดระยะทาง ตามงานวิจัย IEEE “MEMS IMU in Robotics” (2024) ความแม่นยำในการระบุตำแหน่งของหุ่นยนต์เคลื่อนที่ที่มีไจโรสโคปสูงกว่า 3–5 เท่าเมื่อเทียบกับการวัดระยะทางจากล้อเพียงอย่างเดียว โดยเฉพาะบนพื้นผิวลื่น ในโดรนระดับผู้บริโภค ไจโรสโคปคู่กับบารอมิเตอร์รักษาระดับความสูงได้แม่นยำ 0.5 เมตรในลมสูงถึง 10 ม./วินาที

การติดตาม AR และ VR

สำหรับ แอปพลิเคชัน AR ไจโรสโคปเป็นเซนเซอร์หลักที่กำหนดตำแหน่งของวัตถุเสมือนเทียบกับโลกจริง Google ARCore ใช้ไจโรสโคปเพื่อติดตามการเคลื่อนที่ของอุปกรณ์ด้วยความถี่ 1000 Hz (ผ่านการสุ่มตัวอย่างภายใน ไม่ขึ้นกับความถี่ API) ARKit จาก Apple มีความแม่นยำในการระบุตำแหน่ง 0.5 องศาในขณะเคลื่อนที่ ซึ่งเพียงพอสำหรับการวางเฟอร์นิเจอร์เสมือนหรือตัวละครเกมบนฉากจริง

อนาคตของไจโรสโคป

IMU 6 แกน รุ่นใหม่ (InvenSense ICM-42688, 2024) รวมไจโรสโคปและแอคเซเลอโรมิเตอร์ในชิปเดียวด้วยการกินไฟ 0.45 มิลลิแอมป์ในโหมดประหยัดพลังงาน การพัฒนาไจรมิเตอร์และไจโรสโคปแบบอะตอมสำหรับอุปกรณ์มือถือยังอยู่ในขั้นต้นแบบในห้องปฏิบัติการ MEMS-ไจโรสโคประดับอุตสาหกรรมที่มีความแม่นยำ 0.001 °/วินาที คาดว่าจะออกสู่ตลาดภายในปี 2028

คำถามที่พบบ่อย

ทำไมโทรศัพท์ต้องมีไจโรสโคป?

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

ไจโรสโคปกับแอคเซเลอโรมิเตอร์ต่างกันอย่างไร?

แอคเซเลอโรมิเตอร์ วัดความเร่งเชิงเส้น (การเคลื่อนไหวและการเอียงเทียบกับแรงโน้มถ่วง) ไจโรสโคปวัดความเร็วเชิงมุม (การหมุน) แอคเซเลอโรมิเตอร์ไม่สามารถแยกความแตกต่างระหว่างการหมุนอุปกรณ์กับการเคลื่อนที่เชิงเส้นได้ — ไจโรสโคปแก้ปัญหานี้

สามารถสอบเทียบไจโรสโคปในโทรศัพท์ได้หรือไม่?

ใน Android มี การสอบเทียบอัตโนมัติ สำหรับการสอบเทียบด้วยตนเอง ให้ดาวน์โหลดแอปอย่าง “GPS Status & Toolbox” — แอปเหล่านี้จะแนะนำให้วางโทรศัพท์บนพื้นผิวเรียบและทำการสอบเทียบผ่าน TYPE_GYROSCOPE_UNCALIBRATED

ทำไมไจโรสโคปแสดงค่าที่ไม่เป็นศูนย์ในขณะที่อยู่นิ่ง?

นี่คือ การเลื่อนศูนย์ — คุณสมบัติตามธรรมชาติของเซนเซอร์ MEMS แม้แต่ไจโรสโคปราคาแพงก็มีค่าออฟเซ็ต 0.1–2 °/วินาทีในขณะนิ่ง การสอบเทียบจะลบค่าออฟเซ็ตนี้ออก หากการเลื่อนเกิน 5 °/วินาที — แสดงว่าเซนเซอร์เสีย

วิธีรับข้อมูลไจโรสโคปบน Android?

ใช้ SensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) และลงทะเบียน SensorEventListener ข้อมูลจะมาในหน่วย rad/s ตามสามแกน สำหรับเกมให้ใช้ SENSOR_DELAY_GAME (20 ms) สำหรับพื้นหลังให้ใช้ SENSOR_DELAY_UI (67 ms)

สรุป

  • ไจโรสโคป — เซนเซอร์ MEMS ที่วัดความเร็วเชิงมุมของการหมุนสมาร์ทโฟนตามสามแกน
  • เทคโนโลยี MEMS ใช้แรงโคริโอลิสบนมวลซิลิคอนที่สั่นเพื่อวัดการหมุน
  • ไจโรสโคปและแอคเซเลอโรมิเตอร์ — เซนเซอร์เสริมกัน ตัวแรกวัดการหมุน ตัวที่สองวัดความเร่งเชิงเส้น
  • Android API มี TYPE_GYROSCOPE และ TYPE_GYROSCOPE_UNCALIBRATED ที่ให้ข้อมูลในหน่วย rad/s
  • การสอบเทียบ ชดเชยการเลื่อนศูนย์ — ข้อผิดพลาดหลักของ MEMS-ไจโรสโคปที่มีค่าออฟเซ็ตทั่วไป 0.1–2 °/วินาที
  • การประยุกต์ใช้ รวมถึง AR/VR การรักษาเสถียรภาพวิดีโอ ตัวควบคุมเกม และการนำทาง PDR
  • IMU 6 แกนสมัยใหม่ รวมไจโรสโคปและแอคเซเลอโรมิเตอร์ในชิปเดียวที่กินไฟตั้งแต่ 0.45 มิลลิแอมป์

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม