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: ตรวจจับทิศทางการวาง

1.1 เปิดโปรเจกต์ 2-1-PSOC_Edge_IMU_Basic

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

2-1-PSOC_Edge_IMU_Basic/
├── proj_cm33_s/              # Secure Project
├── proj_cm33_ns/             
│   ├── main.c
│   ├── sensor_hub_daq_task.c 
│   └── sensor_hub_daq_task.h
└── proj_cm55/                # CM55 Project

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

1.3 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?