IMU Display

Lab 7: Real IMU Display (Based on Ex3)

1. ΰΉ‚ΰΈ„ΰΈ£ΰΈ‡ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΈ ΰΈ²ΰΈžΰΈ£ΰΈ§ΰΈ‘ΰΈ‚ΰΈ­ΰΈ‡ Lab

Why? - ΰΈ—ΰΈ³ΰΉ„ΰΈ‘ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΉ€ΰΈ£ΰΈ·ΰΉˆΰΈ­ΰΈ‡ΰΈ™ΰΈ΅ΰΉ‰

  • Real Data: ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΈΰΈ²ΰΈ£ΰΉƒΰΈŠΰΉ‰ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯จาก sensor ΰΈˆΰΈ£ΰΈ΄ΰΈ‡ (BMI270)

  • IPC Architecture: ΰΉ€ΰΈ‚ΰΉ‰ΰΈ²ΰΉƒΰΈˆΰΈΰΈ²ΰΈ£ΰΈͺΰΉˆΰΈ‡ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ΰΈ£ΰΈ°ΰΈ«ΰΈ§ΰΉˆΰΈ²ΰΈ‡ CM33 แΰΈ₯ΰΈ° CM55

  • API Transition: ΰΉ€ΰΈ‚ΰΉ‰ΰΈ²ΰΉƒΰΈˆΰΈΰΈ²ΰΈ£ΰΉ€ΰΈ›ΰΈ₯ΰΈ΅ΰΉˆΰΈ’ΰΈ™ΰΈˆΰΈ²ΰΈ simulation ΰΉ€ΰΈ›ΰΉ‡ΰΈ™ real hardware

What? - ΰΈˆΰΈ°ΰΉ„ΰΈ”ΰΉ‰ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΈ­ΰΈ°ΰΉ„ΰΈ£

  1. Sensor API: ΰΈΰΈ²ΰΈ£ΰΉƒΰΈŠΰΉ‰ aic_imu_read_accel()

  2. IPC Architecture: CM33 (sensor) β†’ Shared Memory β†’ CM55 (UI)

  3. Error Handling: ΰΈΰΈ²ΰΈ£ΰΈˆΰΈ±ΰΈ”ΰΈΰΈ²ΰΈ£ΰΉ€ΰΈ‘ΰΈ·ΰΉˆΰΈ­ sensor ΰΉ„ΰΈ‘ΰΉˆΰΈžΰΈ£ΰΉ‰ΰΈ­ΰΈ‘

  4. Debug Print: ΰΈΰΈ²ΰΈ£ΰΈžΰΈ΄ΰΈ‘ΰΈžΰΉŒΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ΰΈ”ΰΈ΅ΰΈšΰΈ±ΰΈΰΉΰΈšΰΈš throttled

How? - ΰΈˆΰΈ°ΰΈ—ΰΈ³ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΉ„ΰΈ£

  1. ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ aic_sensors_init() ΰΈΰΉˆΰΈ­ΰΈ™ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ UI

  2. ΰΉ€ΰΈ›ΰΈ₯ΰΈ΅ΰΉˆΰΈ’ΰΈ™ timer callback ΰΉƒΰΈ«ΰΉ‰ΰΉƒΰΈŠΰΉ‰ aic_imu_read_accel() แทน simulation

  3. UI Code ΰΉ€ΰΈ«ΰΈ‘ΰΈ·ΰΈ­ΰΈ™ Part I (Ex3)


2. ΰΈ«ΰΈ₯ักการทำงานแΰΈ₯ΰΈ° Flowchart

2.1 CM33-CM55 IPC Architecture

2.2 Data Flow: Simulation vs Real

2.3 UI Layout (Same as Ex3)


3. ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ΰΈͺำคัญ

3.1 Sensor API Functions

Function
Description

aic_sensors_init()

Initialize sensor subsystem (call once)

aic_imu_read_accel(&ax, &ay, &az)

Read accelerometer (m/sΒ²)

aic_imu_read_gyro(&gx, &gy, &gz)

Read gyroscope (rad/s)

3.2 Return Values

3.3 Key Differences from Part I

Item
Part I (Simulation)
Part II (Real Hardware)

Init

(none)

aic_sensors_init()

Read

simulate_imu_accel()

aic_imu_read_accel()

Error

Always returns

May return false

Range

Predictable

Real sensor noise


4. Code Example

4.1 Header Includes

4.2 Timer Callback (Real IMU)

4.3 Main Function


5. ΰΈ­ΰΈ‡ΰΈ„ΰΉŒΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈ£ΰΈΉΰΉ‰ΰΉΰΈ₯ΰΈ°ΰΉ€ΰΈ—ΰΈ„ΰΈ™ΰΈ΄ΰΈ„

5.1 Error Handling Pattern

5.2 Debug Print Throttling

5.3 Shared Memory Debug


6. ΰΉΰΈšΰΈšΰΈΰΈΆΰΈΰΈ«ΰΈ±ΰΈ”

Exercise 1: Magnitude Chart

ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ series ΰΈͺำหรับ magnitude (sqrt(xΒ² + yΒ² + zΒ²)) ΰΈšΰΈ™ chart เดมฒวกัน

Exercise 2: Moving Average Filter

ΰΉƒΰΈͺ่ Moving Average Filter ΰΉ€ΰΈžΰΈ·ΰΉˆΰΈ­ΰΈ₯ΰΈ” noise:


7. References


Previous Lab: Lab 6: Chart Dashboard Next Lab: Lab 8: Real Sensor Dashboard

Last updated

Was this helpful?