AIC-EEC API

AIC-EEC Module Library

ไลบรารี Hardware Abstraction Layer และ UI helpers สำหรับ Embedded Systems and IoT Development, ภาควิชาวิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยบูรพา นี่คือเวอร์ชัน PC Simulator — API ตรงกับเวอร์ชัน PSoC Edge E84 ทุกประการ โดยใช้ mock implementation แทนการเข้าถึงฮาร์ดแวร์จริง

รศ.วิรุฬห์ ศรีบริรักษ์ ภาควิชาวิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยบูรพา


โมดูลทั้งหมด

Framework (โครงสร้างพื้นฐาน)

ไฟล์
คำอธิบาย

aic-eec.h/c

UI components กลาง — footer, header, logo, theme, container

aic_layout.h/c

ตัวช่วยจัด layout แบบ Flexbox — row, column, card, gauge, progress bar

aic_event.h/c

ระบบ Event Bus แบบ publish-subscribe — sensor/button/system events

aic_log.h/c

ระบบ Logging — แบ่ง level (Error/Warn/Info/Debug/Verbose), output ทาง printf + LVGL

Hardware Abstraction (Mock — จำลองฮาร์ดแวร์)

ไฟล์
คำอธิบาย

gpio.h/c

ควบคุม LED (RGB), อ่านปุ่มกด, ปรับความสว่าง PWM — เก็บค่าในหน่วยความจำ

sensors.h/c

ADC (5 channels), IMU (BMI270), อุณหภูมิ, CAPSENSE — ข้อมูลจำลอง

Signal Processing (ประมวลผลสัญญาณ)

ไฟล์
คำอธิบาย

ma_filter.h

Moving average filter (header-only, ค่าเริ่มต้น window = 3 samples)

tilt.h/c

Complementary filter — คำนวณ roll/pitch จาก accelerometer + gyroscope

scope.h/c

สร้างสัญญาณ (sine, square, triangle, sawtooth), FFT


ตัวอย่างการใช้งาน

GPIO — ควบคุม LED และปุ่มกด

LED ที่มี: AIC_LED_RED, AIC_LED_GREEN, AIC_LED_BLUE ปุ่มที่มี: AIC_BTN_USER (SW2), AIC_BTN_USER2 (SW4)

Sensors — เซ็นเซอร์

ADC channels: AIC_ADC_CH0 (Pot), CH1, CH2, CH3, AIC_ADC_TEMP

Layout — จัด UI ด้วย LVGL

Event Bus — ระบบ Event

กลุ่ม Event ที่สำคัญ:

  • Sensor: AIC_EVENT_IMU_UPDATE, AIC_EVENT_ADC_UPDATE, AIC_EVENT_TEMP_UPDATE

  • Input: AIC_EVENT_BUTTON_PRESS, AIC_EVENT_BUTTON_RELEASE

  • System: AIC_EVENT_IPC_CONNECTED, AIC_EVENT_ERROR

  • Custom: AIC_EVENT_CUSTOM_1 ถึง AIC_EVENT_CUSTOM_5

Logging — ระบบบันทึกข้อความ


เปรียบเทียบ PC Simulator กับ PSoC Edge E84

ด้าน
PC Simulator
PSoC Edge E84

API

เหมือนกันทุกประการ

เหมือนกันทุกประการ

GPIO

เก็บค่าในหน่วยความจำ

ควบคุม GPIO pin จริง

ADC

ค่าจำลอง

SAR ADC จริง

IMU

สร้างข้อมูล sine wave

อ่านจาก BMI270 ผ่าน shared memory

CAPSENSE

stub (คืนค่า false เสมอ)

อ่านจาก PSoC 4000T ผ่าน I2C

Event Bus

circular buffer (single-thread)

FreeRTOS queue (multi-thread)

Logging

printf ไปที่ terminal

printf + ส่ง IPC ไปยัง CM33

ฟังก์ชันเฉพาะ PC Simulator

ฟังก์ชันเหล่านี้ใช้ได้เฉพาะบน PC สำหรับจำลองการทดสอบ:


วิธี Build (PC Simulator)

3. การรันโปรแกรม


ชุดสี (กำหนดใน aic_layout.h)

Macro
สี
การใช้งาน

AIC_COLOR_BG_DARK

#16213e

พื้นหลังหน้าจอ

AIC_COLOR_BG_CARD

#1f4068

พื้นหลังการ์ด

AIC_COLOR_PRIMARY

#00d4ff

สีหลัก

AIC_COLOR_SECONDARY

#ff6b6b

สีรอง

AIC_COLOR_SUCCESS

#4ade80

สถานะสำเร็จ

AIC_COLOR_WARNING

#fbbf24

สถานะเตือน

AIC_COLOR_ERROR

#ef4444

สถานะข้อผิดพลาด

AIC_COLOR_TEXT

#ffffff

ข้อความปกติ

AIC_COLOR_TEXT_DIM

#94a3b8

ข้อความจางๆ


การย้ายโค้ดจาก PC ไปบอร์ดจริง

เนื่องจาก API เหมือนกัน 100% การย้ายโค้ดทำได้ง่าย:

  1. คัดลอกโค้ด จาก PC Simulator ไปใส่ในโปรเจค PSoC Edge

  2. เปลี่ยน include path"lvgl/lvgl.h" เป็น "lvgl.h" (ถ้าจำเป็น)

  3. ลบฟังก์ชัน sim — ลบ aic_gpio_sim_set_button(), aic_sensors_sim_tick() ฯลฯ

  4. Build และทดสอบ บนบอร์ดจริง

ไม่ต้องเปลี่ยนชื่อฟังก์ชัน, ชนิดข้อมูล, หรือ parameter ใดๆ ทั้งสิ้น


Last updated

Was this helpful?