Sensor Dashboard

Lab 8: Real Sensor Dashboard (Based on Ex5)

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

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

  • Multi-Sensor: ΰΈ£ΰΈ§ΰΈ‘ ADC, Accelerometer, Gyroscope ΰΉƒΰΈ™ dashboard ΰΉ€ΰΈ”ΰΈ΅ΰΈ’ΰΈ§

  • Real APIs: ΰΉƒΰΈŠΰΉ‰ aic_adc_read(), aic_imu_read_accel(), aic_imu_read_gyro()

  • TabView Organization: ΰΈˆΰΈ±ΰΈ”ΰΈΰΈ²ΰΈ£ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ΰΈ«ΰΈ₯ΰΈ²ΰΈ’ΰΈ›ΰΈ£ΰΈ°ΰΉ€ΰΈ ΰΈ—ΰΈ”ΰΉ‰ΰΈ§ΰΈ’ tabs

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

  1. Multiple Sensor APIs: ΰΈ­ΰΉˆΰΈ²ΰΈ™ΰΈ„ΰΉˆΰΈ²ΰΈˆΰΈ²ΰΈΰΈ«ΰΈ₯ΰΈ²ΰΈ’ sensor

  2. TabView Integration: ΰΈ£ΰΈ§ΰΈ‘ widgets ΰΈ«ΰΈ₯ΰΈ²ΰΈ’ΰΈ›ΰΈ£ΰΈ°ΰΉ€ΰΈ ΰΈ—ΰΉƒΰΈ™ tabs

  3. Single Timer: ΰΈ­ΰΈ±ΰΈžΰΉ€ΰΈ”ΰΈ—ΰΈ«ΰΈ₯ΰΈ²ΰΈ’ widgets จาก timer ΰΉ€ΰΈ”ΰΈ΅ΰΈ’ΰΈ§

  4. Data Mapping: แปΰΈ₯ΰΈ‡ΰΈ„ΰΉˆΰΈ² sensor ΰΉ€ΰΈ›ΰΉ‡ΰΈ™ΰΈ„ΰΉˆΰΈ²ΰΉΰΈͺΰΈ”ΰΈ‡ΰΈœΰΈ₯

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

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

  2. Timer callback ΰΈ­ΰΉˆΰΈ²ΰΈ™ΰΈ„ΰΉˆΰΈ²ΰΈˆΰΈ²ΰΈΰΈ—ΰΈΈΰΈ sensor APIs

  3. ΰΈ­ΰΈ±ΰΈžΰΉ€ΰΈ”ΰΈ— ADC Bar, Accel Chart, Gyro Arcs ΰΉƒΰΈ™ callback ΰΉ€ΰΈ”ΰΈ΅ΰΈ’ΰΈ§


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

2.1 Dashboard Architecture

2.2 TabView Layout

2.3 Data Mapping


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

3.1 Sensor APIs Used

Function
Return
Description

aic_sensors_init()

void

Initialize all sensors

aic_adc_read(AIC_ADC_CH0)

uint16_t

Read ADC channel 0 (0-4095)

aic_imu_read_accel(&ax,&ay,&az)

bool

Read accelerometer (m/sΒ²)

aic_imu_read_gyro(&gx,&gy,&gz)

bool

Read gyroscope (rad/s)

3.2 Widget Functions

Tab
Widget
Key Functions

ADC

lv_bar

lv_bar_set_value(), lv_bar_set_range()

Accel

lv_chart

lv_chart_set_next_value()

Gyro

lv_arc

lv_arc_set_value(), lv_arc_set_range()


4. Code Example

4.1 Timer Callback (All Sensors)

4.2 Create Gyro Tab (with Large Arcs)

4.3 Main Function


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

5.1 Gyroscope Data Mapping

5.2 Single Timer for Multiple Sensors

5.3 Tab Content Styling


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

Exercise 1: ADC with Color Threshold

ΰΉ€ΰΈ›ΰΈ₯ΰΈ΅ΰΉˆΰΈ’ΰΈ™ΰΈͺΰΈ΅ ADC Bar ΰΈ•ΰΈ²ΰΈ‘ΰΈ„ΰΉˆΰΈ²:

  • Green: 0-30%

  • Yellow: 31-70%

  • Red: 71-100%

Exercise 2: Active Tab Optimization

ΰΈ­ΰΈ±ΰΈžΰΉ€ΰΈ”ΰΈ—ΰΉ€ΰΈ‰ΰΈžΰΈ²ΰΈ° tab ΰΈ—ΰΈ΅ΰΉˆ active ΰΉ€ΰΈ—ΰΉˆΰΈ²ΰΈ™ΰΈ±ΰΉ‰ΰΈ™ ΰΉ€ΰΈžΰΈ·ΰΉˆΰΈ­ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ performance


7. References


Previous Lab: Lab 7: Real IMU Display Next Lab: Lab 9: Real Arc Gauge

Last updated

Was this helpful?