IMU Sensor Hub

Lab 1: ทำความเข้าใจโค้ด Sensor Hub

วัตถุประสงค์

  • IMU Sensor: เข้าใจ Accelerometer + Gyroscope

  • I2C Communication: สื่อสารกับ sensor ภายนอก

  • Unit Conversion: แปลง raw data เป็นหน่วยทางฟิสิกส์

จะได้เรียนรู้อะไร

  • BMI270: 6-axis IMU sensor

  • lsb_to_mps2(): แปลง raw → m/s²

  • lsb_to_rps(): แปลง raw → rad/s

  • Orientation Detection: ตรวจจับทิศทางการวาง

ตัวอย่างการโหลด Project Code จาก AIC Github Repo เพื่อเปิดบน VSCode IDE


1.1 เปิดโปรเจกต์ aic-psoc-edge-epc2-imu-sensor-hub-master

เปิดไฟล์ proj_cm33_ns/sensor_hub_daq_task.c และศึกษาโครงสร้าง:

Important Macros and Variables

Unit Conversion: Accelerometer

Unit Conversion: Gyroscope

Motion Sensor Update Orientation

1.2 เขียน Main Task Loop

Create Sensor Hub DAQ Task Function

Program Code ทั้งหมด

Build และ Flash

ทดลองหมุนบอร์ด

ลองหมุนบอร์ดไปในทิศทางต่างๆ และสังเกต:

  • ค่า accelerometer เปลี่ยนอย่างไร

  • Orientation เปลี่ยนอย่างไร

✍️ Exercise

  1. แปลงค่า : BMI270 อ่านได้ raw_x = 8192 (range ±2g, 16-bit) ให้เขียนโค้ดเพื่อคำนวณค่า acceleration ในหน่วย m/s²

  2. Orientation Logic : เขียนโค้ดตรวจสอบว่าบอร์ดวางอยู่ในทิศทาง:

    • FLAT_UP

    • FLAT_DOWN

    • TILTED


จบ Session 2 | ต่อไป: Session 3: LVGL Display

Last updated

Was this helpful?