Basic Motion Detection

Lab 3: ΰΈ•ΰΈ£ΰΈ§ΰΈˆΰΈˆΰΈ±ΰΈšΰΈΰΈ²ΰΈ£ΰΉ€ΰΈ„ΰΈ₯ΰΈ·ΰΉˆΰΈ­ΰΈ™ΰΉ„ΰΈ«ΰΈ§

ΰΈ§ΰΈ±ΰΈ•ΰΈ–ΰΈΈΰΈ›ΰΈ£ΰΈ°ΰΈͺΰΈ‡ΰΈ„ΰΉŒ

  • Activity Detection: ΰΈ•ΰΈ£ΰΈ§ΰΈˆΰΈˆΰΈ±ΰΈšΰΈ§ΰΉˆΰΈ²ΰΈ­ΰΈΈΰΈ›ΰΈΰΈ£ΰΈ“ΰΉŒΰΉ€ΰΈ„ΰΈ₯ΰΈ·ΰΉˆΰΈ­ΰΈ™ΰΉ„ΰΈ«ΰΈ§ΰΈ«ΰΈ£ΰΈ·ΰΈ­ΰΉ„ΰΈ‘ΰΉˆ

  • State Classification: ΰΉΰΈšΰΉˆΰΈ‡ΰΈ›ΰΈ£ΰΈ°ΰΉ€ΰΈ ΰΈ—ΰΈΰΈ²ΰΈ£ΰΉ€ΰΈ„ΰΈ₯ΰΈ·ΰΉˆΰΈ­ΰΈ™ΰΉ„ΰΈ«ΰΈ§

  • Event Triggering: ΰΈ—ΰΈ³ action ΰΉ€ΰΈ‘ΰΈ·ΰΉˆΰΈ­ΰΈ•ΰΈ£ΰΈ§ΰΈˆΰΈžΰΈš motion

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

  • Threshold Logic: ΰΉƒΰΈŠΰΉ‰ΰΈ„ΰΉˆΰΈ² threshold ในการตัดΰΈͺΰΈ΄ΰΈ™ΰΉƒΰΈˆ

  • Enum States: ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ motion states

  • fabsf(): ΰΈ„ΰΈ³ΰΈ™ΰΈ§ΰΈ“ΰΈ„ΰΉˆΰΈ² absolute

Concept: Motion Detection

ΰΈ«ΰΈ₯ักการ:

  • ΰΉ€ΰΈ‘ΰΈ·ΰΉˆΰΈ­ΰΈ™ΰΈ΄ΰΉˆΰΈ‡: Magnitude β‰ˆ 1g (9.81 m/sΒ²)

  • ΰΉ€ΰΈ‘ΰΈ·ΰΉˆΰΈ­ΰΉ€ΰΈ„ΰΈ₯ΰΈ·ΰΉˆΰΈ­ΰΈ™ΰΉ„ΰΈ«ΰΈ§: Magnitude ΰΉ€ΰΈšΰΈ΅ΰΉˆΰΈ’ΰΈ‡ΰΉ€ΰΈšΰΈ™ΰΈˆΰΈ²ΰΈ 1g

ΰΉƒΰΈŠΰΉ‰ Threshold:

  • threshold = 0.3g (ΰΈ›ΰΈ£ΰΈ°ΰΈ‘ΰΈ²ΰΈ“ 3 m/sΒ²)

  • ΰΈ–ΰΉ‰ΰΈ²ΰΈ„ΰΉˆΰΈ² absolute ΰΈ‚ΰΈ­ΰΈ‡ |magnitude - 1g| > threshold แΰΈͺΰΈ”ΰΈ‡ΰΈ§ΰΉˆΰΈ² Motion Detected!

ΰΈ£ΰΈ°ΰΈ”ΰΈ±ΰΈš:

  • < 0.1g: STATIONARY

  • < 0.3g: LIGHT

  • < 0.6g: MODERATE

  • >= 0.6g: INTENSE

ΰΉ‚ΰΈ«ΰΈ₯ΰΈ” Project Code จาก AIC Github Repo ΰΉ€ΰΈžΰΈ·ΰΉˆΰΈ­ΰΉ€ΰΈ›ΰΈ΄ΰΈ”ΰΈšΰΈ™ VSCode IDE

3.1 ΰΉ€ΰΈ›ΰΈ΄ΰΈ”ΰΉ‚ΰΈ›ΰΈ£ΰΉ€ΰΈˆΰΈΰΈ•ΰΉŒ aic-psoc-edge-epc2-imu-motion

ΰΉ€ΰΈ›ΰΈ΄ΰΈ”ΰΉ„ΰΈŸΰΈ₯์ proj_cm33_ns/sensor_hub_daq_task.c แΰΈ₯ะศยกษาโครงΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡:

ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ Include

Important Macros and Variables

ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ Raw accelerometer Conversion ชื่อ lsb_to_mp2()

ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ Magnitude Calcuation ชื่อ calculate_magnitude()

ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ Motion Detection ชื่อ detect_motion()

ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ Motion State Conversion ชื่อ get_motion_string()

3.2 ΰΉ€ΰΈ‚ΰΈ΅ΰΈ’ΰΈ™ Main Task Loop

Create Sensor Hub DAQ Task Function

3.3 Build แΰΈ₯ΰΈ° Flash

3.4 Output ΰΈ—ΰΈ΅ΰΉˆΰΈ„ΰΈ²ΰΈ”ΰΈ«ΰΈ§ΰΈ±ΰΈ‡

State Diagram


✍️ Exercise

  1. Free Fall Detection - ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ΰΈ•ΰΈ£ΰΈ§ΰΈˆΰΈˆΰΈ±ΰΈšΰΈΰΈ²ΰΈ£ΰΈ•ΰΈΰΈ­ΰΈ΄ΰΈͺΰΈ£ΰΈ° (magnitude < 0.3g)

  2. Impact Detection - ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ΰΈ•ΰΈ£ΰΈ§ΰΈˆΰΈˆΰΈ±ΰΈšΰΈΰΈ²ΰΈ£ΰΈΰΈ£ΰΈ°ΰΉΰΈ—ΰΈ (magnitude > 3g)


จบ Session 2 | ΰΈ•ΰΉˆΰΈ­ΰΉ„ΰΈ›: Session 3: LVGL Display

Last updated

Was this helpful?