Chart Dashboard

Lab 11: Real Chart Dashboard (Based on Ex6)

1. โครงสร้างภาพรวมของ Lab

Why? - ทำไมต้องเรียนรู้เรื่องนี้

  • Multiple Visualizations: ข้อมูล sensor เดียวกันแสดงได้หลายรูปแบบ

  • Performance Optimization: อัพเดทเฉพาะ chart ที่ active

  • Real Data Integration: รวม IMU และ Tilt data ใน dashboard

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

  1. Bar Chart: แสดง Accel X/Y/Z แบบเปรียบเทียบ

  2. Area Chart: แสดง Tilt Magnitude ตามเวลา

  3. Scatter Chart: แสดง Roll vs Pitch (Tilt Ball)

  4. Line Chart: แสดง Gyroscope time-series

  5. Active Tab Optimization: ลด CPU usage

How? - จะทำอย่างไร

  1. สร้าง TabView แบบ side tabs (LV_DIR_LEFT)

  2. สร้าง 4 chart types ใน 4 tabs

  3. Timer callback ตรวจสอบ active tab และอัพเดทเฉพาะ chart นั้น


2. หลักการทำงานและ Flowchart

2.1 Dashboard Architecture

2.2 Tab Layout (Side Tabs)

2.3 Chart Data Sources


3. ฟังก์ชันสำคัญ

3.1 Chart Types

Type
Constant
Use Case

Bar

LV_CHART_TYPE_BAR

Compare values at moment

Line

LV_CHART_TYPE_LINE

Time-series data

Scatter

LV_CHART_TYPE_SCATTER

X vs Y correlation

3.2 Key Functions

Function
Description

lv_chart_set_value_by_id()

Update specific bar in bar chart

lv_chart_set_next_value()

Add point to line/area chart

lv_chart_set_next_value2()

Add X,Y point to scatter chart

lv_tabview_get_tab_active()

Get currently active tab index

3.3 Optimization APIs


4. Code Example

4.1 Timer Callback (Active Tab Only)

4.2 Create Bar Chart Tab

4.3 Create Scatter Chart Tab

4.4 Main Function


5. องค์ความรู้และเทคนิค

5.1 Active Tab Optimization

5.2 Scatter Chart for Motion Pattern

5.3 Bar Chart with Multiple Series


6. แบบฝึกหัด

Exercise 1: Add Grid Lines

เพิ่ม grid lines ให้ Scatter chart เพื่อแสดง level position ชัดเจน

Exercise 2: Color by Zone

เปลี่ยนสี scatter points ตามระยะห่างจากศูนย์กลาง:

  • Green: distance < 30 (stable)

  • Yellow: 30 <= distance < 60

  • Red: distance >= 60 (tilting)


7. References


Previous Lab: Lab 10: Real Scale Gauge Next Week: Week 5: Scope TBD

Last updated

Was this helpful?