Hardware Interfacing Workshops

Part II: Sensor Hardware Integration

เอกΰΈͺΰΈ²ΰΈ£ΰΉ€ΰΈ•ΰΈ£ΰΈ΅ΰΈ’ΰΈ‘ΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈžΰΈ£ΰΉ‰ΰΈ­ΰΈ‘ΰΈͺΰΈ³ΰΈ«ΰΈ£ΰΈ±ΰΈšΰΈ™ΰΈ΄ΰΈͺΰΈ΄ΰΈ•

ΰΈ«ΰΈ±ΰΈ§ΰΈ‚ΰΉ‰ΰΈ­: ΰΈΰΈ²ΰΈ£ΰΉ€ΰΈŠΰΈ·ΰΉˆΰΈ­ΰΈ‘ΰΈ•ΰΉˆΰΈ­ LVGL กับ Sensor Hardware ΰΈˆΰΈ£ΰΈ΄ΰΈ‡ (ADC, IMU) LVGL Version: v9.2.0

ΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈ•ΰΉˆΰΈ­ΰΉ€ΰΈ™ΰΈ·ΰΉˆΰΈ­ΰΈ‡: ΰΈ•ΰΉˆΰΈ­ΰΈˆΰΈ²ΰΈ Part I (Simulated Data) β†’ Real Sensor Data


ΰΈͺารบัญ

  1. ภาพรวฑ Part II

  2. aic-eec Sensor API

  3. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 7: Real IMU Visualization

  4. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 8: Real Sensor Dashboard

  5. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 9: Real Arc Gauge with Tilt Analysis

  6. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 10: Real Scale Gauge with Tilt Analysis 6B. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 11: Real Chart Dashboard (4 Chart Types)

  7. Complementary Filter - ΰΈΰΈ²ΰΈ£ΰΈ§ΰΈ΄ΰΉ€ΰΈ„ΰΈ£ΰΈ²ΰΈ°ΰΈ«ΰΉŒΰΈ‘ΰΈΈΰΈ‘ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡

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


1. ภาพรวฑ Part II

Part I vs Part II

ราฒการ
Part I (Ex1-6)
Part II (Ex7-9)

UI Widgets

Chart, Arc, Scale, Bar

เหฑือนกัน

ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ ADC

simulate_adc_read()

aic_adc_read()

ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ IMU

simulate_imu_accel()

aic_imu_read_accel()

ΰΉ„ΰΈŸΰΈ₯ΰΉŒΰΉ‚ΰΈ„ΰΉ‰ΰΈ”

week4_examples.c

week4_hw_examples.c

Hardware

ΰΉ„ΰΈ‘ΰΉˆΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΈ‘ΰΈ΅

ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΈ‘ΰΈ΅ Potentiometer, BMI270

ΰΉ‚ΰΈ„ΰΈ£ΰΈ‡ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΉ„ΰΈŸΰΈ₯์

Sensor Hardware ΰΈšΰΈ™ΰΈšΰΈ­ΰΈ£ΰΉŒΰΈ”

Sensor
Chip
Interface
ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯

ADC

SAR ADC

Analog

Potentiometer (0-3.3V)

IMU

BMI270

I2C

Accelerometer, Gyroscope

Temperature

Internal

ADC

Chip temperature


2. aic-eec Sensor API

2.1 ADC API

2.2 IMU API (BMI270)

API Summary

Function
ΰΈ«ΰΈ™ΰΉ‰ΰΈ²ΰΈ—ΰΈ΅ΰΉˆ
Return

aic_sensors_init()

ΰΉ€ΰΈ£ΰΈ΄ΰΉˆΰΈ‘ΰΈ•ΰΉ‰ΰΈ™ Sensors

void

aic_adc_read(ch)

ΰΈ­ΰΉˆΰΈ²ΰΈ™ ADC raw

0-4095

aic_adc_read_voltage(ch)

ΰΈ­ΰΉˆΰΈ²ΰΈ™ Voltage

0.0-3.3V

aic_adc_read_percent(ch)

ΰΈ­ΰΉˆΰΈ²ΰΈ™ Percent

0-100%

aic_imu_read_accel(ax,ay,az)

ΰΈ­ΰΉˆΰΈ²ΰΈ™ Accelerometer

true/false

aic_imu_read_gyro(gx,gy,gz)

ΰΈ­ΰΉˆΰΈ²ΰΈ™ Gyroscope

true/false

aic_imu_get_orientation()

ΰΈ„ΰΈ³ΰΈ™ΰΈ§ΰΈ“ Orientation

enum

2.3 Tilt Analysis API (NEW)

Function
ΰΈ«ΰΈ™ΰΉ‰ΰΈ²ΰΈ—ΰΈ΅ΰΉˆ
Return

aic_tilt_init(config)

ΰΉ€ΰΈ£ΰΈ΄ΰΉˆΰΈ‘ΰΈ•ΰΉ‰ΰΈ™ Complementary Filter

true/false

aic_tilt_update_from_imu()

ΰΈ­ΰΉˆΰΈ²ΰΈ™ IMU แΰΈ₯ΰΈ°ΰΈ­ΰΈ±ΰΈžΰΉ€ΰΈ”ΰΈ— filter

true/false

aic_tilt_get_roll()

ΰΈ‘ΰΈΈΰΈ‘ Roll (ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡ΰΈ‹ΰΉ‰ΰΈ²ΰΈ’-ΰΈ‚ΰΈ§ΰΈ²)

-180..+180Β°

aic_tilt_get_pitch()

ΰΈ‘ΰΈΈΰΈ‘ Pitch (ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡ΰΈ«ΰΈ™ΰΉ‰ΰΈ²-ΰΈ«ΰΈ₯ΰΈ±ΰΈ‡)

-90..+90Β°

aic_tilt_get_roll_percent()

Roll ΰΉ€ΰΈ›ΰΉ‡ΰΈ™ΰΉ€ΰΈ›ΰΈ­ΰΈ£ΰΉŒΰΉ€ΰΈ‹ΰΉ‡ΰΈ™ΰΈ•ΰΉŒ

0-100%

aic_tilt_get_pitch_percent()

Pitch ΰΉ€ΰΈ›ΰΉ‡ΰΈ™ΰΉ€ΰΈ›ΰΈ­ΰΈ£ΰΉŒΰΉ€ΰΈ‹ΰΉ‡ΰΈ™ΰΈ•ΰΉŒ

0-100%

WHY: ΰΈ—ΰΈ³ΰΉ„ΰΈ‘ΰΉƒΰΈŠΰΉ‰ aic-eec API?

  1. Abstraction - ΰΈ‹ΰΉˆΰΈ­ΰΈ™ΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈ‹ΰΈ±ΰΈšΰΈ‹ΰΉ‰ΰΈ­ΰΈ™ΰΈ‚ΰΈ­ΰΈ‡ HAL/Driver

  2. Consistency - API ΰΈ£ΰΈΉΰΈ›ΰΉΰΈšΰΈšΰΉ€ΰΈ”ΰΈ΅ΰΈ’ΰΈ§ΰΈΰΈ±ΰΈ™ΰΈ—ΰΈ±ΰΉ‰ΰΈ‡ΰΉ‚ΰΈ›ΰΈ£ΰΉ€ΰΈˆΰΈ„

  3. Testability - ΰΈͺΰΈ²ΰΈ‘ΰΈ²ΰΈ£ΰΈ– mock ΰΉ„ΰΈ”ΰΉ‰ΰΈ‡ΰΉˆΰΈ²ΰΈ’

  4. Reusability - ΰΉƒΰΈŠΰΉ‰ΰΈ‹ΰΉ‰ΰΈ³ΰΉ„ΰΈ”ΰΉ‰ΰΈ«ΰΈ₯ΰΈ²ΰΈ’ examples


3. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 7: Real ADC Visualization

ΰΉ€ΰΈ›ΰΉ‰ΰΈ²ΰΈ«ΰΈ‘ΰΈ²ΰΈ’

แΰΈͺΰΈ”ΰΈ‡ΰΈ„ΰΉˆΰΈ² ADC จาก Potentiometer ΰΈˆΰΈ£ΰΈ΄ΰΈ‡ΰΈ”ΰΉ‰ΰΈ§ΰΈ’ Slider แΰΈ₯ΰΈ° Bar

Comparison: Part I vs Part II

ΰΉ‚ΰΈ„ΰΉ‰ΰΈ”ΰΈ«ΰΈ₯ัก

Layout


4. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 8: Real IMU Visualization

ΰΉ€ΰΈ›ΰΉ‰ΰΈ²ΰΈ«ΰΈ‘ΰΈ²ΰΈ’

แΰΈͺΰΈ”ΰΈ‡ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ Accelerometer 3 แกน จาก BMI270 แบบ Real-time

Comparison: Part I vs Part II

ΰΉ‚ΰΈ„ΰΉ‰ΰΈ”ΰΈ«ΰΈ₯ัก

Data Mapping

WHY: ΰΈ—ΰΈ³ΰΉ„ΰΈ‘ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ Map ΰΈ„ΰΉˆΰΈ²?

  • LVGL Chart ΰΈ£ΰΈ±ΰΈšΰΈ„ΰΉˆΰΈ²ΰΉ€ΰΈ›ΰΉ‡ΰΈ™ integer (0-100)

  • IMU Accelerometer ΰΈͺΰΉˆΰΈ‡ΰΈ„ΰΉˆΰΈ²ΰΉ€ΰΈ›ΰΉ‡ΰΈ™ float (-2.0 ΰΈ–ΰΈΆΰΈ‡ +2.0 g)

  • ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ map ΰΉ€ΰΈžΰΈ·ΰΉˆΰΈ­ΰΉΰΈͺΰΈ”ΰΈ‡ΰΈœΰΈ₯ได้ถูกต้อง


5. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 9: Real Sensor Dashboard

ΰΉ€ΰΈ›ΰΉ‰ΰΈ²ΰΈ«ΰΈ‘ΰΈ²ΰΈ’

ΰΈ£ΰΈ§ΰΈ‘ ADC + IMU + Orientation + Temperature ΰΉƒΰΈ™ΰΈ«ΰΈ™ΰΉ‰ΰΈ²ΰΉ€ΰΈ”ΰΈ΅ΰΈ’ΰΈ§

Layout

ΰΉ‚ΰΈ„ΰΉ‰ΰΈ”ΰΉ‚ΰΈ„ΰΈ£ΰΈ‡ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡


5B. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 9: Real Arc Gauge (Roll Angle)

ΰΉ€ΰΈ›ΰΉ‰ΰΈ²ΰΈ«ΰΈ‘ΰΈ²ΰΈ’

แΰΈͺΰΈ”ΰΈ‡ΰΈ‘ΰΈΈΰΈ‘ Roll (ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡ΰΈ‹ΰΉ‰ΰΈ²ΰΈ’-ΰΈ‚ΰΈ§ΰΈ²) ΰΈ”ΰΉ‰ΰΈ§ΰΈ’ Arc Gauge ΰΉ‚ΰΈ”ΰΈ’ΰΉƒΰΈŠΰΉ‰ Complementary Filter

Algorithm

Code Pattern

Status: βœ… Approved


6. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 10: Real Scale Gauge (Pitch Angle)

ΰΉ€ΰΈ›ΰΉ‰ΰΈ²ΰΈ«ΰΈ‘ΰΈ²ΰΈ’

แΰΈͺΰΈ”ΰΈ‡ΰΈ‘ΰΈΈΰΈ‘ Pitch (ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡ΰΈ«ΰΈ™ΰΉ‰ΰΈ²-ΰΈ«ΰΈ₯ΰΈ±ΰΈ‡) ΰΈ”ΰΉ‰ΰΈ§ΰΈ’ Scale Gauge with Needle

Pitch vs Roll

Angle
Axis
Motion
Example

Roll

X-axis

ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡ΰΈ‹ΰΉ‰ΰΈ²ΰΈ’-ΰΈ‚ΰΈ§ΰΈ²

ΰΉ€ΰΈ„ΰΈ£ΰΈ·ΰΉˆΰΈ­ΰΈ‡ΰΈšΰΈ΄ΰΈ™ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡ΰΈ›ΰΈ΅ΰΈ

Pitch

Y-axis

ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡ΰΈ«ΰΈ™ΰΉ‰ΰΈ²-ΰΈ«ΰΈ₯ΰΈ±ΰΈ‡

ΰΉ€ΰΈ„ΰΈ£ΰΈ·ΰΉˆΰΈ­ΰΈ‡ΰΈšΰΈ΄ΰΈ™ΰΈΰΉ‰ΰΈ‘-ΰΉ€ΰΈ‡ΰΈ’

Percentage Mapping

Code Pattern

Layout

Status: βœ… Approved


6B. ΰΈ•ΰΈ±ΰΈ§ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΈ—ΰΈ΅ΰΉˆ 11: Real Chart Dashboard (4 Chart Types)

ΰΉ€ΰΈ›ΰΉ‰ΰΈ²ΰΈ«ΰΈ‘ΰΈ²ΰΈ’

แΰΈͺΰΈ”ΰΈ‡ Real Sensor Data ΰΉƒΰΈ™ 4 ΰΈ£ΰΈΉΰΈ›ΰΉΰΈšΰΈš Chart ΰΈœΰΉˆΰΈ²ΰΈ™ TabView

4 Tabs Overview

Tab
Chart Type
Data Source
Technique

Bar

Bar Chart

Accel X/Y/Z

3 Colored Series (R/G/B)

Area

Faded Area

Tilt Magnitude

lv_example_chart_5 pattern

Scatter

Scatter Plot

Roll vs Pitch

Tilt Ball effect

Line

Line Chart

Gyroscope

Ex7 stable pattern

Tab 1: Bar Chart (Accel X/Y/Z)

Tab 2: Faded Area Chart (Tilt Magnitude)

ΰΉ€ΰΈ—ΰΈ„ΰΈ™ΰΈ΄ΰΈ„ lv_example_chart_5:

Data: Tilt Magnitude

Tab 3: Scatter Chart (Roll vs Pitch)

แนวคิด: Tilt Ball

  • ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡ΰΈšΰΈ­ΰΈ£ΰΉŒΰΈ”ΰΉ€ΰΈ«ΰΈ‘ΰΈ·ΰΈ­ΰΈ™ΰΈΰΈ£ΰΈ°ΰΈ”ΰΈ²ΰΈ™ΰΈΰΈ₯ΰΈ΄ΰΉ‰ΰΈ‡ΰΈ₯ูกบอΰΈ₯

  • Roll = ΰΈ‹ΰΉ‰ΰΈ²ΰΈ’-ΰΈ‚ΰΈ§ΰΈ², Pitch = ΰΈ«ΰΈ™ΰΉ‰ΰΈ²-ΰΈ«ΰΈ₯ΰΈ±ΰΈ‡

Tab 4: Line Chart (Gyroscope)

ΰΉƒΰΈŠΰΉ‰ Ex7 Pattern ΰΈ—ΰΈ΅ΰΉˆ stable:

Optimization: Update Active Tab Only

ΰΉ€ΰΈ«ΰΈ•ΰΈΈΰΈœΰΈ₯: ΰΈ₯ΰΈ” CPU load ΰΉ€ΰΈžΰΈ£ΰΈ²ΰΈ°ΰΉ„ΰΈ‘ΰΉˆΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΈ­ΰΈ±ΰΈžΰΉ€ΰΈ”ΰΈ— 4 charts ทุก 100ms

Status: βœ… Approved


7. Complementary Filter - ΰΈΰΈ²ΰΈ£ΰΈ§ΰΈ΄ΰΉ€ΰΈ„ΰΈ£ΰΈ²ΰΈ°ΰΈ«ΰΉŒΰΈ‘ΰΈΈΰΈ‘ΰΉ€ΰΈ­ΰΈ΅ΰΈ’ΰΈ‡

ΰΈ—ΰΈ³ΰΉ„ΰΈ‘ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΉƒΰΈŠΰΉ‰ Complementary Filter?

Sensor
ΰΈ‚ΰΉ‰ΰΈ­ΰΈ”ΰΈ΅
ΰΈ‚ΰΉ‰ΰΈ­ΰΉ€ΰΈͺΰΈ΅ΰΈ’

Accelerometer

ΰΈ§ΰΈ±ΰΈ”ΰΈ—ΰΈ΄ΰΈ¨ΰΈ—ΰΈ²ΰΈ‡ gravity ΰΉ„ΰΈ”ΰΉ‰ΰΈ•ΰΈ£ΰΈ‡

ΰΈ‘ΰΈ΅ noise แΰΈ₯ะถูก vibration ΰΈ£ΰΈšΰΈΰΈ§ΰΈ™

Gyroscope

ΰΈ•ΰΈ­ΰΈšΰΈͺΰΈ™ΰΈ­ΰΈ‡ΰΉ€ΰΈ£ΰΉ‡ΰΈ§, ΰΉ„ΰΈ‘ΰΉˆΰΈ‘ΰΈ΅ noise

Drift ΰΈ•ΰΈ₯ΰΈ­ΰΈ”ΰΉ€ΰΈ§ΰΈ₯ΰΈ² (integration ΰΈ‚ΰΈ­ΰΈ‡ bias)

Complementary

ΰΈ£ΰΈ§ΰΈ‘ΰΈ‚ΰΉ‰ΰΈ­ΰΈ”ΰΈ΅ΰΈ—ΰΈ±ΰΉ‰ΰΈ‡ΰΈͺΰΈ­ΰΈ‡

ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ tune alpha parameter

Algorithm

การคำนวณ Accel Angle

ΰΈ‚ΰΉ‰ΰΈ­ΰΈ„ΰΈ§ΰΈ£ΰΈ£ΰΈ°ΰΈ§ΰΈ±ΰΈ‡

  1. Gimbal Lock: ΰΉ€ΰΈ‘ΰΈ·ΰΉˆΰΈ­ Pitch ใกΰΈ₯ΰΉ‰ Β±90Β° ΰΈˆΰΈ°ΰΈ‘ΰΈ΅ΰΈ›ΰΈ±ΰΈΰΈ«ΰΈ²ΰΉƒΰΈ™ΰΈΰΈ²ΰΈ£ΰΈ„ΰΈ³ΰΈ™ΰΈ§ΰΈ“ Roll

  2. Initial Condition: ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΉƒΰΈ«ΰΉ‰ accel angle ΰΉ€ΰΈ›ΰΉ‡ΰΈ™ΰΈ„ΰΉˆΰΈ²ΰΉ€ΰΈ£ΰΈ΄ΰΉˆΰΈ‘ΰΈ•ΰΉ‰ΰΈ™

  3. Sampling Rate: dt ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΈ•ΰΈ£ΰΈ‡ΰΈΰΈ±ΰΈš timer interval


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

ΰΉΰΈšΰΈšΰΈΰΈΆΰΈΰΈ«ΰΈ±ΰΈ”ΰΈ—ΰΈ΅ΰΉˆ 1: ADC Threshold Alert

  • ΰΈ•ΰΈ±ΰΉ‰ΰΈ‡ threshold ΰΈ”ΰΉ‰ΰΈ§ΰΈ’ Slider (0-100%)

  • ΰΉ€ΰΈ‘ΰΈ·ΰΉˆΰΈ­ ADC เกิน threshold β†’ LED ΰΈ•ΰΈ΄ΰΈ” + ΰΉ€ΰΈ›ΰΈ₯ΰΈ΅ΰΉˆΰΈ’ΰΈ™ΰΈͺΰΈ΅ Bar

  • แΰΈͺΰΈ”ΰΈ‡ΰΈͺΰΈ–ΰΈ²ΰΈ™ΰΈ° "NORMAL" / "ALERT"

ΰΉΰΈšΰΈšΰΈΰΈΆΰΈΰΈ«ΰΈ±ΰΈ”ΰΈ—ΰΈ΅ΰΉˆ 2: IMU Tilt Indicator

  • แΰΈͺΰΈ”ΰΈ‡ orientation ΰΈ”ΰΉ‰ΰΈ§ΰΈ’ΰΈ£ΰΈΉΰΈ›ΰΈ ΰΈ²ΰΈž/icon

  • ΰΉ€ΰΈ›ΰΈ₯ΰΈ΅ΰΉˆΰΈ’ΰΈ™ΰΈͺΰΈ΅ΰΈžΰΈ·ΰΉ‰ΰΈ™ΰΈ«ΰΈ₯ΰΈ±ΰΈ‡ΰΈ•ΰΈ²ΰΈ‘ orientation

  • ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ Gyroscope chart (angular velocity)

ΰΉΰΈšΰΈšΰΈΰΈΆΰΈΰΈ«ΰΈ±ΰΈ”ΰΈ—ΰΈ΅ΰΉˆ 3: Multi-Channel ADC

  • แΰΈͺΰΈ”ΰΈ‡ ADC ΰΈ«ΰΈ₯ΰΈ²ΰΈ’ channels (ΰΈ–ΰΉ‰ΰΈ²ΰΈ‘ΰΈ΅)

  • ΰΉ€ΰΈ›ΰΈ£ΰΈ΅ΰΈ’ΰΈšΰΉ€ΰΈ—ΰΈ΅ΰΈ’ΰΈšΰΈ„ΰΉˆΰΈ²ΰΈ”ΰΉ‰ΰΈ§ΰΈ’ grouped bar chart

  • Export data ΰΈœΰΉˆΰΈ²ΰΈ™ UART

ΰΉΰΈšΰΈšΰΈΰΈΆΰΈΰΈ«ΰΈ±ΰΈ”ΰΈ—ΰΈ΅ΰΉˆ 4: Data Logger

  • ΰΈšΰΈ±ΰΈ™ΰΈ—ΰΈΆΰΈΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ ADC/IMU ทุก 1 ΰΈ§ΰΈ΄ΰΈ™ΰΈ²ΰΈ—ΰΈ΅

  • แΰΈͺΰΈ”ΰΈ‡ΰΈΰΈ£ΰΈ²ΰΈŸΰΈ’ΰΉ‰ΰΈ­ΰΈ™ΰΈ«ΰΈ₯ΰΈ±ΰΈ‡ 60 ΰΈ§ΰΈ΄ΰΈ™ΰΈ²ΰΈ—ΰΈ΅

  • ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ΰΈ›ΰΈΈΰΉˆΰΈ‘ Start/Stop/Clear


5A. CM33-CM55 IPC Architecture (Ex7-11)

ΰΈͺถาปัตฒกรรฑ Dual-Core

PSoC Edge E84 ΰΉƒΰΈŠΰΉ‰ dual-core architecture:

  • CM33 (Non-Secure): ΰΈ­ΰΉˆΰΈ²ΰΈ™ BMI270 ΰΈœΰΉˆΰΈ²ΰΈ™ I2C, ΰΉ€ΰΈ‚ΰΈ΅ΰΈ’ΰΈ™ΰΈ₯ΰΈ‡ Shared Memory

  • CM55 (FreeRTOS + LVGL): ΰΈ­ΰΉˆΰΈ²ΰΈ™ Shared Memory, แΰΈͺΰΈ”ΰΈ‡ΰΈœΰΈ₯ΰΈšΰΈ™ Display

Shared Memory Structure (imu_shared.h)

Synchronization Pattern

Last updated

Was this helpful?