Skip to content
View psy1218's full-sized avatar

Organizations

@brake-down

Block or report psy1218

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please donโ€™t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
psy1218/README.md

header ๐Ÿ‘‹ Hi, I'm Soyun Park
๐ŸŽ“ INU Embedded Systems Engineering
๐Ÿ”ง Experienced in Embedded Systems, AI Vision, and IoT, applying real-time sensor fusion to safety and mobility projects.



๐Ÿ”น Skills

Core Languages

C C++ Python

Embedded & Control

Arduino ESP32 Raspberry Pi STM32 MQTT DC Motor Servo/ESC

AI / Vision

YOLO TensorFlow Lite openSMILE

Hardware / Sensors

FSR MPU-9250 RX-M1616M OBD-II

Tools

Git GitHub Linux MATLAB Simulink



๐Ÿ“Š GitHub Stats

๐Ÿ“Š BOJ Stats

Solved.ac Profile



๐Ÿ“‘ Summary of Activities

๐Ÿ”น Smart Factory Projects

  • ๐Ÿš™ HMGICS ํŒŒ์ด๋„ ๊ณต์ • ๋””์ง€ํ„ธ ํŠธ์œˆ โ€“ Unreal Engine ํ”„๋กœ์ ํŠธ (2026.06)

    ๐Ÿ‘‰ Unreal Engine ๊ณต์žฅ ํ™˜๊ฒฝ ๊ตฌ์„ฑ / ์ฐจ๋Ÿ‰ ํŒ์—… UI ๊ตฌํ˜„ โ†’ ์‹œํŠธยทํœ ยทํƒ€์ด์–ด ๊ณต์ • ํ™˜๊ฒฝ๊ณผ ๊ณต์ • ์ƒํƒœ ํ‘œ์‹œ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • ์—ญํ• : Unreal Engine ๊ณต์žฅ ๋ฐฐ๊ฒฝ ๊ตฌ์„ฑ / Blueprint ๊ธฐ๋ฐ˜ ์ฐจ๋Ÿ‰ ์ •๋ณด UI ๊ตฌํ˜„

    • ๋‚ด์šฉ: HMGICS์˜ ์ž๋™์ฐจ ํŒŒ์ด๋„ ๊ณต์ •์„ ์ฐธ๊ณ ํ•˜์—ฌ, Unreal Engine ๊ธฐ๋ฐ˜ ์Šค๋งˆํŠธํŒฉํ† ๋ฆฌ ๋””์ง€ํ„ธ ํŠธ์œˆ ํ™˜๊ฒฝ์˜ ๊ณต์žฅ ๋ฐฐ๊ฒฝ๊ณผ ์ฐจ๋Ÿ‰ ์ •๋ณด ํ™•์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„

      • ๊ณต์žฅ ๋ฐฐ๊ฒฝ ๊ตฌ์„ฑ: ํŒŒ์ด๋„ ๊ณต์ • ํ™˜๊ฒฝ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณต์žฅ ์ „์ฒด ๋ฐฐ๊ฒฝ, ๋ฐ”๋‹ฅ, ๋ฒฝ, ์ฒœ์žฅ ๋ถ„์œ„๊ธฐ ๊ตฌ์„ฑ
      • ์กฐ๋ช… ๊ตฌ์„ฑ: ๊ณต์žฅ ๋‚ด๋ถ€๊ฐ€ ์‹ค์ œ ์ƒ์‚ฐ ํ™˜๊ฒฝ์ฒ˜๋Ÿผ ๋ณด์ด๋„๋ก ์กฐ๋ช… ๋ฐฐ์น˜ ๋ฐ ๋ฐ๊ธฐ ์กฐ์ •
      • ๊ธฐ๋‘ฅ ๋ฐ ๊ตฌ์กฐ๋ฌผ ๊ตฌ์„ฑ: ๊ณต์žฅ ๊ณต๊ฐ„๊ฐ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋‘ฅ, ํ”„๋ ˆ์ž„, ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฌผ ๋ฐฐ์น˜
      • ๋ผ์ธ ์‹œ๊ฐํ™”: ์ฐจ๋Ÿ‰ ์ด๋™ ํ๋ฆ„๊ณผ ๊ณต์žฅ ๋™์„ ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ”๋‹ฅ ๋ผ์ธ ๋ฐ ์ƒ‰์ƒ ์ ์šฉ
      • ๋จธํ‹ฐ๋ฆฌ์–ผ ์ ์šฉ: ๋ฐ”๋‹ฅ, ๋ผ์ธ, ๊ณต์žฅ ๊ตฌ์กฐ๋ฌผ์— ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์ ์šฉํ•˜์—ฌ ๊ณต์žฅ ํ™˜๊ฒฝ์˜ ์‹œ๊ฐ์  ์™„์„ฑ๋„ ๊ฐœ์„ 
      • ์ฐจ๋Ÿ‰ ์ •๋ณด ํŒ์—… ๊ตฌํ˜„: ์ฐจ๋Ÿ‰ ํด๋ฆญ ์‹œ ํ˜„์žฌ ๊ณต์ • ์ •๋ณด์™€ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” UI ํŒ์—… ๊ตฌํ˜„
      • ๊ณต์ • ์ƒํƒœ ํ‘œ์‹œ: ์ฐจ๋Ÿ‰์˜ ํ˜„์žฌ ๊ณต์ •, ๊ณต์ • ์ƒํƒœ, ์ง„ํ–‰ ํ˜„ํ™ฉ ๋“ฑ์„ ํŒ์—…์ฐฝ์— ํ‘œ์‹œํ•˜๋„๋ก ๊ตฌ์„ฑ
      • Blueprint ํ™œ์šฉ: ์ฐจ๋Ÿ‰ ํด๋ฆญ ์ด๋ฒคํŠธ, ์œ„์ ฏ ์ƒ์„ฑ, UI ํ‘œ์‹œ ๋ฐ ์ œ๊ฑฐ ํ๋ฆ„์„ Blueprint๋กœ ๊ตฌํ˜„
    • ๊ธฐ์ˆ : Unreal Engine, Blueprint, UMG Widget, Level Design, Material, GitHub

    • ์„ฑ๊ณผ:

      • HMGICS ํŒŒ์ด๋„ ๊ณต์ • ์ปจ์…‰์„ ์ฐธ๊ณ ํ•˜์—ฌ Unreal Engine ๊ธฐ๋ฐ˜ ๊ณต์žฅ ๋ฐฐ๊ฒฝ ๊ตฌํ˜„
      • ์กฐ๋ช…, ๊ธฐ๋‘ฅ, ๋ฐ”๋‹ฅ ๋ผ์ธ, ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ํ™œ์šฉํ•ด ์Šค๋งˆํŠธํŒฉํ† ๋ฆฌ ํ™˜๊ฒฝ์˜ ์‹œ๊ฐ์  ์™„์„ฑ๋„ ๊ฐœ์„ 
      • ์ฐจ๋Ÿ‰ ํด๋ฆญ ์‹œ ๊ณต์ • ์ƒํ™ฉ๊ณผ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ฐจ๋Ÿ‰ ์ •๋ณด ํŒ์—… UI ๊ตฌํ˜„
      • ๋‹จ์ˆœ ๋ฐฐ๊ฒฝ ์ œ์ž‘์— ๊ทธ์น˜์ง€ ์•Š๊ณ , ์ฐจ๋Ÿ‰ ์ƒํƒœ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐ๋ž™์…˜ ๊ธฐ๋Šฅ๊นŒ์ง€ ์—ฐ๊ฒฐ
  • ๐Ÿ“Š ์„ค๋น„ยทํ™˜๊ฒฝ ํ†ตํ•ฉ ๊ด€์ œ ์‹œ์Šคํ…œ โ€“ SCADA ํ”„๋กœ์ ํŠธ (2026.05)

    ๐Ÿ‘‰ Frontend / DB / MQTT ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋‹ด๋‹น โ†’ ๋กœ๊ทธ์ธยทํšŒ์›๊ฐ€์ž…, ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ, ๋น„์ƒ ์•Œ๋žŒ, ๊ณต์ • ํŽ˜์ด์ง€, ์„ค๋น„ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ยทDB ์ €์žฅ
    • ์—ญํ• : Frontend / DB / MQTT ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋‹ด๋‹น

    • ๋‚ด์šฉ: ์Šค๋งˆํŠธํŒฉํ† ๋ฆฌ ํ™˜๊ฒฝ์—์„œ ์„ค๋น„ยท๊ณต์ •ยทํ™˜๊ฒฝ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” SCADA ๊ธฐ๋ฐ˜ ๊ด€์ œ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ

      • Frontend ๊ตฌํ˜„: Vue 3 ๊ธฐ๋ฐ˜ ํ™”๋ฉด ๊ตฌํ˜„ ๋ฐ ์ „์ฒด ํŽ˜์ด์ง€ UI ์‹œ์ธ์„ฑ ๊ฐœ์„ 
      • ๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž…: ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…, ์ธ์ฆ ๊ด€๋ จ ํ™”๋ฉด ๊ตฌ์„ฑ
      • ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ: ๊ด€๋ฆฌ์ž ๊ด€์ ์˜ ์‚ฌ์šฉ์ž ๋ชฉ๋ก ์กฐํšŒ, ๊ณ„์ • ์ƒํƒœ ๋ฐ ์—ญํ•  ๊ด€๋ฆฌ ํ™”๋ฉด ๊ตฌํ˜„
      • ๋น„์ƒ ์•Œ๋žŒ: ์„ค๋น„ ์ด์ƒ ์ƒํ™ฉ์„ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์ƒ ์•Œ๋žŒ UI ๊ตฌ์„ฑ
      • ๊ณต์ • ํŽ˜์ด์ง€: ๊ณต์ •๋ณ„ ์„ค๋น„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ํ™”๋ฉด ๊ตฌํ˜„
      • ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘: Python์œผ๋กœ MQTT ๊ธฐ๋ฐ˜ ์„ค๋น„ ๋ฐ์ดํ„ฐ ๋ฐœํ–‰ ๊ตฌ์กฐ ๊ตฌ์ถ•
      • ๋ฐ์ดํ„ฐ ์—ฐ๋™: Node-RED์—์„œ MQTT ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  MySQL DB์— ์ €์žฅํ•˜๋Š” ํ๋ฆ„ ๊ตฌํ˜„
      • ํ˜‘์—…: FE ํ˜‘์—… ์„ธํŒ… ๊ฐ€์ด๋“œ ์ž‘์„ฑ, ๋ธŒ๋žœ์น˜ ์ „๋žต ๋ฐ PR ๊ธฐ๋ฐ˜ ํ˜‘์—… ์ฐธ์—ฌ
    • ๊ธฐ์ˆ : Vue 3, Pinia, Vue Router, Axios, Tailwind CSS, ECharts, Python, MQTT, Node-RED, MySQL, GitHub

    • ์„ฑ๊ณผ:

      • ์„ค๋น„ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ โ†’ MQTT ์†ก์‹  โ†’ Node-RED ์ˆ˜์‹  โ†’ DB ์ €์žฅ โ†’ Frontend ์‹œ๊ฐํ™”๋กœ ์ด์–ด์ง€๋Š” ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ฒฝํ—˜
      • ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…, ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ, ๋น„์ƒ ์•Œ๋žŒ, ๊ณต์ • ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ ๊ด€์ œ ์‹œ์Šคํ…œ ์ฃผ์š” ํ™”๋ฉด ๊ตฌํ˜„
      • ๋‹จ์ˆœ ํ™”๋ฉด ๊ตฌํ˜„์„ ๋„˜์–ด ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ยท์ €์žฅยท์กฐํšŒยท์‹œ๊ฐํ™” ํ๋ฆ„์„ ํ•จ๊ป˜ ์ดํ•ดํ•˜๋ฉฐ Frontend ๊ฐœ๋ฐœ ์ง„ํ–‰
      • FE ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ํ˜‘์—… ๊ทœ์น™์„ ์ •๋ฆฌํ•˜์—ฌ ํŒ€ ๊ฐœ๋ฐœ ํšจ์œจ ๊ฐœ์„ 
  • ๐Ÿญ AMHS(Automated Material Handling System) ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ โ€“ ์Šค๋งˆํŠธํŒฉํ† ๋ฆฌ ํ”„๋กœ์  (2026.04)

    ๐Ÿ‘‰FE2 ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ โ†’ ์žฅ๋น„ ๋ชฉ๋ก, ์•Œ๋ฆผ ์ด๋ ฅ, ๋กœ๊ทธ์ธ, ์ •๋น„ ๊ด€๋ฆฌ, ์ž„๊ณ„๊ฐ’ ์„ค์ •, ์ถ”์  ๋ถ„์„ ํŽ˜์ด์ง€ ์ค‘์‹ฌ ๊ตฌํ˜„
    • ์—ญํ• : FE2 ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ
    • ๋‚ด์šฉ: ๋ฐ˜๋„์ฒด/์Šค๋งˆํŠธํŒฉํ† ๋ฆฌ ํ™˜๊ฒฝ์˜ AMHS(Automated Material Handling System)์—์„œ ์‚ฌ์šฉ๋˜๋Š” OHT, AGV ๋“ฑ ๋ฌผ๋ฅ˜ ์žฅ๋น„์˜ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์›น ๊ธฐ๋ฐ˜ ํ”„๋ก ํŠธ์—”๋“œ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ
      • ๋‹ด๋‹น ํŽ˜์ด์ง€ ๊ตฌํ˜„: ์žฅ๋น„ ๋ชฉ๋ก(SC-03), ์•Œ๋ฆผ ์ด๋ ฅ(SC-04), ๋กœ๊ทธ์ธ(SC-05), ์ •๋น„ ๋ชฉ๋ก(SC-06), ์ •๋น„ ์ƒ์„ธ(SC-07), ์ž„๊ณ„๊ฐ’ ์„ค์ •(SC-08), ์žฅ๋น„ ์ถ”์  ๋ถ„์„(SC-10) ํŽ˜์ด์ง€๋ฅผ ๋‹ด๋‹นํ•˜์—ฌ ์‚ฌ์šฉ์ž ํ๋ฆ„์— ๋งž๋Š” ํ™”๋ฉด ๊ตฌ์กฐ์™€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
      • ์„ธ๋ถ€ ํ™”๋ฉด ๊ตฌ์„ฑ: ์žฅ๋น„ ์ƒํƒœ ๋ฐฐ์ง€, ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜ ๋ชฉ๋ก UI, ์•Œ๋ฆผ ํžˆ์Šคํ† ๋ฆฌ ํƒญ, ์ •๋น„ ์ƒํƒœ ์ „์ด, ๊ด€๋ฆฌ์ž์šฉ ์ž„๊ณ„๊ฐ’ ์„ค์ •, ์ถ”์  ๋ถ„์„ ์ฐจํŠธ ๋“ฑ ์‹ค์ œ ์šด์˜ ํ™”๋ฉด ์ค‘์‹ฌ์œผ๋กœ ๊ตฌํ˜„
      • ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ ๋ฐ ๊ตฌ์กฐ ์„ค๊ณ„: AppLayout, StatusBadge, DataTable, FilterBar, alertStore, authStore, router ๊ตฌ์กฐ๋ฅผ ๋‹ด๋‹นํ•˜๋ฉฐ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI์™€ ๊ณตํ†ต ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„
      • ์ƒํƒœ๊ด€๋ฆฌ ๋ฐ ์ธ์ฆ ์ฒ˜๋ฆฌ: Pinia๋ฅผ ํ™œ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ, ์‚ฌ์šฉ์ž ์—ญํ• , ์•Œ๋ฆผ ๋ฐ์ดํ„ฐ, ํ™”๋ฉด ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋ผ์šฐํŠธ ๊ฐ€๋“œ ๋ฐ ์—ญํ• (Role) ๊ธฐ๋ฐ˜ ๋ฉ”๋‰ด ๋ถ„๊ธฐ ์ ์šฉ
      • ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ๊ธฐ๋Šฅ ๊ตฌํ˜„: STOMP + SockJS ๊ธฐ๋ฐ˜ WebSocket ๊ตฌ์กฐ๋ฅผ ์ ์šฉํ•ด ์„œ๋ฒ„ ์•Œ๋ฆผ ํ† ํ”ฝ์„ ๊ตฌ๋…ํ•˜๊ณ , ์ˆ˜์‹  ๋ฉ”์‹œ์ง€๋ฅผ alertStore์™€ Toast UI์— ๋ฐ˜์˜ํ•˜์—ฌ ๋ฏธํ™•์ธ ์•Œ๋ฆผ ๊ฐœ์ˆ˜์™€ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ํ‘œ์‹œ ๊ตฌํ˜„
      • ์ฐจํŠธ ๋ฐ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ECharts๋ฅผ ํ™œ์šฉํ•ด ์žฅ๋น„ ์ถ”์  ๋ถ„์„, ์„ผ์„œ ๋ฐ์ดํ„ฐ, ํ†ต๊ณ„์„ฑ ํ™”๋ฉด์„ ์‹œ๊ฐํ™”ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ํ๋ฆ„์— ๋งž์ถฐ mock ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ํ›„ API ์—ฐ๋™ ๊ตฌ์กฐ๋กœ ํ™•์žฅ
      • API ์—ฐ๋™: Axios์™€ JWT ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์ ์šฉํ•ด ๋กœ๊ทธ์ธ, ์žฅ๋น„ ์กฐํšŒ, ์•Œ๋ฆผ ์ด๋ ฅ, ์ •๋น„ ๋ฐ์ดํ„ฐ, ์ž„๊ณ„๊ฐ’ ์„ค์ • ๋“ฑ ์ธ์ฆ์ด ํ•„์š”ํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ
    • ๊ธฐ์ˆ : Vue 3, Vite, Pinia, Vue Router, Axios, ECharts, STOMP, SockJS, CSS Variables, Composable Pattern, Docker, Nginx
    • ์„ฑ๊ณผ:
      • AMHS ์šด์˜์— ํ•„์š”ํ•œ ์žฅ๋น„ ์กฐํšŒ, ์•Œ๋ฆผ ํ™•์ธ, ์ •๋น„ ๊ด€๋ฆฌ, ๋ถ„์„ ๊ธฐ๋Šฅ์„ ์›น UI๋กœ ๊ตฌํ˜„ํ•˜๋ฉฐ ์Šค๋งˆํŠธํŒฉํ† ๋ฆฌ ํ”„๋ก ํŠธ์—”๋“œ ์‹ค๋ฌด ํ๋ฆ„ ๊ฒฝํ—˜
      • FE2 ๋‹ด๋‹น ํŽ˜์ด์ง€์™€ ๊ณตํ†ต ์ž์›์„ ํ•จ๊ป˜ ์„ค๊ณ„ยท๊ตฌํ˜„ํ•˜๋ฉฐ ํŽ˜์ด์ง€ ๊ฐœ๋ฐœ๋ฟ ์•„๋‹ˆ๋ผ ๊ตฌ์กฐ ๋ถ„๋ฆฌ, ์ƒํƒœ๊ด€๋ฆฌ, ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ์—ฐ๋™๊นŒ์ง€ ๊ฒฝํ—˜
  • ๐Ÿญ ํ˜„๋Œ€์˜คํ† ์—๋ฒ„ ์Šค๋งˆํŠธํŒฉํ† ๋ฆฌ ๋ถ€ํŠธ์บ ํ”„ ๋จธ์‹ ๋น„์ „ ํ”„๋กœ์ ํŠธ (2026.03)

    ๐Ÿ‘‰ ๋จธ์‹ ๋น„์ „ ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ 2์ข…: ์‹ค๋‚ด AR ๋„ค๋น„๊ฒŒ์ด์…˜ ์‹œ์Šคํ…œ / ์Šค๋งˆํŠธ ํŒฉํ† ๋ฆฌ ๋ฐ•์Šค ํ’ˆ์งˆ ๊ฒ€์‚ฌ ๋ฐ ๋ถ„๋ฅ˜ ์‹œ์Šคํ…œ

    ๐Ÿงญ ์‹ค๋‚ด AR ๋„ค๋น„๊ฒŒ์ด์…˜ ์‹œ์Šคํ…œ

    • ์—ญํ• :
      ์ „์ฒด ํ”„๋กœ์ ํŠธ ๊ธฐํš, ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์„ฑ, ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋ชจ๋ธ ์ ์šฉ, ๊ฒฝ๋กœ ์•ˆ๋‚ด ๋กœ์ง ๊ตฌํ˜„, UI/UX ์„ค๊ณ„ ๋ฐ ์‹œ์Šคํ…œ ํ†ตํ•ฉ ๋‹ด๋‹น

    • ๋‚ด์šฉ:

      • ์‹ค๋‚ด ๊ณต๊ฐ„์—์„œ๋Š” GPS ๊ธฐ๋ฐ˜ ๊ธธ์•ˆ๋‚ด๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ์ ์— ์ฐฉ์•ˆํ•˜์—ฌ, ์นด๋ฉ”๋ผ ์ž…๋ ฅ ์˜์ƒ์œผ๋กœ ํ˜„์žฌ ์œ„์น˜์™€ ๋ฐฉํ–ฅ์„ ์ธ์‹ํ•˜๊ณ  ๋ชฉ์ ์ง€๊นŒ์ง€์˜ ์ด๋™ ๋ฐฉํ–ฅ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์•ˆ๋‚ดํ•˜๋Š” ์‹œ์Šคํ…œ ๊ตฌํ˜„
      • ๋‹จ์ˆœํžˆ ์œ„์น˜๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฐ ๊ทธ์น˜์ง€ ์•Š๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์ฆ‰์‹œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง์ง„ / ์ขŒํšŒ์ „ / ์šฐํšŒ์ „ / ํ›„์ง„๊ณผ ๊ฐ™์€ ํ–‰๋™ ์ค‘์‹ฌ ๋ช…๋ น์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋กœ์ง ์„ค๊ณ„
      • ๋ชฉ์ ์ง€ ์„ ํƒ โ†’ ํ˜„์žฌ ํ™”๋ฉด ์ž…๋ ฅ โ†’ ๋ฐฉํ–ฅ ์˜ˆ์ธก โ†’ ๊ฒฝ๋กœ ๊ณ„์‚ฐ โ†’ UI ๋ฐ˜์˜์˜ ํ๋ฆ„์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ, ๋จธ์‹ ๋น„์ „ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์ œ ์‚ฌ์šฉ์ž ํ–‰๋™์œผ๋กœ ์—ฐ๊ฒฐ
      • ์‹œ์—ฐ ๊ณผ์ •์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ง๊ด€์ ์œผ๋กœ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํฐ ๋ฐฉํ–ฅ ํ‘œ์‹œ, ์‹œ๊ฐ์  ํ”ผ๋“œ๋ฐฑ ๋“ฑ UI/UX ์š”์†Œ๋ฅผ ํ•จ๊ป˜ ์„ค๊ณ„
    • ๊ธฐ์ˆ :

      • Python
      • PyTorch
      • OpenCV / NumPy
      • Flask / REST API
      • HTML / CSS / JavaScript
    • ์„ฑ๊ณผ:

      • ์‹ค๋‚ด ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜„์žฌ ์œ„์น˜/๋ฐฉํ–ฅ์„ ์ธ์‹ํ•˜๊ณ  ๋ชฉ์ ์ง€๊นŒ์ง€์˜ ์ด๋™ ๋ฐฉํ–ฅ์„ ์•ˆ๋‚ดํ•˜๋Š” AR ๋„ค๋น„๊ฒŒ์ด์…˜ ํ”„๋กœํ† ํƒ€์ž… ๊ตฌํ˜„
      • ๋จธ์‹ ๋น„์ „ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ”๋กœ ํ–‰๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” UX ์ค‘์‹ฌ ์„ค๊ณ„ ๊ฒฝํ—˜ ํ™•๋ณด
      • ์ž…๋ ฅโ€“์ถ”๋ก โ€“๊ฒฝ๋กœ ๊ณ„์‚ฐโ€“UI ๋ฐ˜์˜๊นŒ์ง€ ์ด์–ด์ง€๋Š” end-to-end ์‹œ์Šคํ…œ ํ†ตํ•ฉ ๊ฒฝํ—˜ ์ถ•์ 

    ๐Ÿ“ฆ ์Šค๋งˆํŠธ ํŒฉํ† ๋ฆฌ ๋ฐ•์Šค ํ’ˆ์งˆ ๊ฒ€์‚ฌ ๋ฐ ๋ถ„๋ฅ˜ ์‹œ์Šคํ…œ

    • ์—ญํ• :
      ์ „์ฒด ์‹œ์Šคํ…œ ๊ธฐํš, ๋น„์ „ ์ถ”๋ก  ํ๋ฆ„ ์„ค๊ณ„, ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ตœ์ข… ํŒ์ • ๋กœ์ง ๊ตฌํ˜„, MQTT ํ†ต์‹  ๊ตฌ์กฐ ์„ค๊ณ„, ESP32 ๋ชจํ„ฐ/์„œ๋ณด ์ œ์–ด ๋ฐ ์‹œ์—ฐ ํ†ตํ•ฉ ๋‹ด๋‹น

    • ๋‚ด์šฉ:

      • ์ œ์กฐ ํ˜„์žฅ์—์„œ ๋ฐ•์Šค ์™ธ๊ด€์˜ ์ฐข๊น€, ๊ตฌ๋ฉ, ๊ฐœ๋ด‰ ์ƒํƒœ ๋“ฑ์˜ ์ด์ƒ ์—ฌ๋ถ€๋ฅผ ๋จธ์‹ ๋น„์ „์œผ๋กœ ํŒ๋ณ„ํ•˜๊ณ , ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ž๋™ ๋ถ„๋ฅ˜๋˜๋„๋ก ์„ค๊ณ„ํ•œ ์Šค๋งˆํŠธ ํŒฉํ† ๋ฆฌ ์‹œ์Šคํ…œ ๊ตฌํ˜„
      • ๋‹จ์ผ ํ”„๋ ˆ์ž„ ๊ฒฐ๊ณผ์— ๋ฐ”๋กœ ์˜์กดํ•˜์ง€ ์•Š๊ณ , ๋ฐ•์Šค๊ฐ€ ์นด๋ฉ”๋ผ ์‹œ์•ผ์— ๋“ค์–ด์˜จ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ๋ฒ—์–ด๋‚  ๋•Œ๊นŒ์ง€๋ฅผ ํ•˜๋‚˜์˜ ๊ฒ€์‚ฌ ์„ธ์…˜(session) ์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ์ตœ์ข… ์ƒํƒœ๋ฅผ ํŒ์ •
      • ํ”„๋ ˆ์ž„๋ณ„ ์˜ˆ์ธก๊ฐ’์„ ๋ˆ„์ ํ•ด NORMAL, DEFECTIVE, RECHECK ์ƒํƒœ๋ฅผ ๊ฒฐ์ •ํ•จ์œผ๋กœ์จ, ์ผ์‹œ์ ์ธ ์˜ค๊ฒ€์ถœ์ด๋‚˜ ํ”๋“ค๋ฆผ์— ๊ฐ•ํ•œ ํŒ์ • ๋กœ์ง ์„ค๊ณ„
      • ์ตœ์ข… ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ๋ฅผ MQTT๋กœ ESP32์— ์ „์†กํ•˜๊ณ , ESP32๊ฐ€ ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ปจ๋ฒ ์ด์–ด์™€ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์ œ์–ดํ•ด ์ƒํƒœ๋ณ„๋กœ ์ž๋™ ๋ถ„๋ฅ˜ํ•˜๋„๋ก ๊ตฌํ˜„
      • ์นด๋ฉ”๋ผ โ†’ ๋น„์ „ ์ถ”๋ก  โ†’ ์ƒํƒœ ํŒ๋‹จ โ†’ MQTT ์ „์†ก โ†’ ESP32 ์ œ์–ด โ†’ ๋ฌผ๋ฆฌ์  ๋ถ„๋ฅ˜๊นŒ์ง€ ์ด์–ด์ง€๋Š” ์Šค๋งˆํŠธ ํŒฉํ† ๋ฆฌํ˜• end-to-end ํ๋ฆ„ ๊ตฌ์„ฑ
    • ๊ธฐ์ˆ :

      • Python
      • YOLO / PyTorch
      • OpenCV / NumPy
      • MQTT / PubSubClient
      • ESP32 / Arduino IDE / ESP32Servo
      • DC Motor / L298N / Servo Motor
    • ์„ฑ๊ณผ:

      • ๋ฐ•์Šค ํ’ˆ์งˆ ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์ œ ํ•˜๋“œ์›จ์–ด ์ œ์–ด์™€ ์—ฐ๊ฒฐํ•ด, ์ •์ƒ / ๋ถˆ๋Ÿ‰ / ์žฌ๊ฒ€์‚ฌ ์ž๋™ ๋ถ„๋ฅ˜ ํ”„๋กœํ† ํƒ€์ž… ๊ตฌํ˜„
      • ๋‹จ์ˆœ ๊ฒฐํ•จ ๊ฒ€์ถœ ๋ชจ๋ธ์ด ์•„๋‹ˆ๋ผ, AI ํŒ์ •์ด ์‹ค์ œ ๊ณต์ • ๋™์ž‘์œผ๋กœ ์ด์–ด์ง€๋Š” ์ž๋™ํ™” ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ยท๊ตฌํ˜„ํ•œ ๊ฒฝํ—˜ ํ™•๋ณด
      • ๋น„์ „, ํ†ต์‹ , ์ž„๋ฒ ๋””๋“œ ์ œ์–ด๋ฅผ ํ†ตํ•ฉํ•ด ํ˜„์žฅํ˜• ์Šค๋งˆํŠธ ํŒฉํ† ๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฒฝํ—˜ ์ถ•์ 

๐Ÿ”น Embedded / AI Projects

  • ๐Ÿš™ ์ž์œจ์ฃผํ–‰ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋Œ€ํšŒ ๊ธˆ์ƒ( 2025.09 ~ 2025.10)

    ๐Ÿ‘‰ MATLAB/Simulink ๊ธฐ๋ฐ˜ ์ž์œจ์ฃผํ–‰ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ - ๋Œ€ํ•œ์ „๊ธฐํ•™ํšŒ ์ž์œจ์ฃผํ–‰๊ฒฝ์ง„๋Œ€ํšŒ
    • ์—ญํ• : ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ตฌํ˜„
    • ๋‚ด์šฉ:
      • RoadRunner + Simulink๋ฅผ ํ™œ์šฉํ•ด ์ž์œจ์ฃผํ–‰ ์ฐจ๋Ÿ‰์˜ ์ฐจ์„  ์œ ์ง€, ์ฐจ์„  ๋ณ€๊ฒฝ, ์žฅ์• ๋ฌผ ํšŒํ”ผ, Cut-in ๋Œ€์‘ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜
      • Vision Sensor, Radar, LiDAR ๋“ฑ ๊ฐ€์ƒ ์„ผ์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , PID ์ œ์–ด ๋ฐ ๊ฒฝ๋กœ Planner ๋กœ์ง์„ ์„ค๊ณ„
      • ๋‹ค์–‘ํ•œ ์ฃผํ–‰ ํ™˜๊ฒฝ(์ง์„ , ๊ณก์„ , ์žฅ์• ๋ฌผ, ๋Œ๋ฐœ ์ƒํ™ฉ)์—์„œ ์ธ์‹ ๋ฐ ์ œ์–ด ์„ฑ๋Šฅ ๊ฒ€์ฆ
    • ๊ธฐ์ˆ : MATLAB, Simulink, RoadRunner, Automated Driving Toolbox, Navigation Toolbox
  • ๐Ÿš— Is Not Break Down(2025.07 ~ 2025.09)

    ๐Ÿ‘‰๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI ์‹œ์Šคํ…œ (์˜์ƒยท์Œ์„ฑยทOBD-II) โ†’ ์‹ค์‹œ๊ฐ„ ๊ฒฝ๊ณ  & ์šด์ „์ž ์•ˆ์ „์„ฑ ํ™•๋ณด
    • ์—ญํ• : ๋ฉ”์ธ ๊ฐœ๋ฐœ์ž
    • ๋‚ด์šฉ: ์šด์ „์ž์˜ ๊ธ‰๋ฐœ์ง„ ๋ฐ ํŽ˜๋‹ฌ ์˜ค์กฐ์ž‘ ์ƒํ™ฉ์„ ์กฐ๊ธฐ์— ๊ฐ์ง€ํ•˜๋Š” ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ
      • ์ž…๋ ฅ:
        • ์–ผ๊ตด ํ‘œ์ •(FER, IMX500) โ†’ ๋†€๋žŒยท๋ถ„๋…ธ ๊ฐ์ • ํƒ์ง€
        • ์Œ์„ฑ(openSMILE) โ†’ ๊ธด์žฅยท๋‹นํ™ฉ ๋ฐœํ™” ํŒจํ„ด ๋ถ„์„
        • ์ฐจ๋Ÿ‰ ์„ผ์„œ(OBD-II) โ†’ ์†๋„, RPM, ์Šค๋กœํ‹€, ๋ธŒ๋ ˆ์ดํฌ ์‹ ํ˜ธ ์‹ค์‹œ๊ฐ„ ์ˆ˜์ง‘
      • ๊ตฌ์กฐ:
        • Producer-Consumer ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ์ฒ˜๋ฆฌ
        • ์˜์ƒ/์Œ์„ฑ/์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•˜์—ฌ ์œตํ•ฉ(Fusion)
        • ์ด์ƒ ์ƒํ™ฉ ๋ฐœ์ƒ ์‹œ ์‹ค์‹œ๊ฐ„ ๊ฒฝ๊ณ  ํŒ๋‹จ ๋ฐ UI ํ‘œ์‹œ
    • ๊ธฐ์ˆ : Raspberry Pi 5, TensorFlow Lite (FER ๋ชจ๋ธ), openSMILE, Python ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, OBD-II ์‹œ๋ฆฌ์–ผ ํ†ต์‹ 
    • ์„ฑ๊ณผ:
      • ์‹ค์‹œ๊ฐ„ ๊ฒฝ๊ณ  ์‹œ์Šคํ…œ ๊ตฌํ˜„: UI์— Alert ์•„์ด์ฝ˜ ์ „ํ™˜ + ์ด๋ฒคํŠธ ๋กœ๊น…
      • ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ ์ถ”๊ฐ€: ์ฟจ๋‹ค์šด ํƒ€์ด๋จธ, persist_min_frames ๋กœ์ง ์ ์šฉ โ†’ ์˜คํƒ๋ฅ  ๊ฐ์†Œ
      • ์˜์˜: ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ ์œตํ•ฉ(AI + ์„ผ์„œ)์„ ํ†ตํ•œ ์šด์ „์ž ์•ˆ์ „์„ฑ ํ™•๋ณด ๊ฐ€๋Šฅ์„ฑ ๊ฒ€์ฆ
  • ๐Ÿ ์ด์ƒ๊ธฐ์˜จ ๋Œ€์‘ ๊ฟ€๋ฒŒ ์Šค๋งˆํŠธ ๊ด€๋ฆฌ ๊ธฐ์ˆ  ๊ฐœ๋ฐœ (WCL-INU ์—ฐ๊ตฌ์‹ค) (2025.01 ~ )

    ๐Ÿ‘‰YOLOv5/v11 ๊ธฐ๋ฐ˜ ๋ฒŒ ํƒ์ง€/๊ณ„์ˆ˜ ๋ชจ๋ธ โ†’ ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ์…‹ ์ œ์ž‘ ๋ฐ ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•
    • ์—ญํ• : ๋ฐ์ดํ„ฐ์…‹ ์ œ์ž‘ ๋ฐ ๋ชจ๋ธ ํ•™์Šต ๋‹ด๋‹น
    • ๋‚ด์šฉ: YOLOv5/v8์„ ํ™œ์šฉํ•œ ๊ฟ€๋ฒŒ ํƒ์ง€ ๋ฐ ๊ณ„์ˆ˜ ์—ฐ๊ตฌ
      • ๊ธฐ์กด ์˜์ƒ์—์„œ ๋ฒŒ์„ ํƒ์ง€ํ•˜๊ธฐ ์œ„ํ•ด labelImg๋ฅผ ์‚ฌ์šฉํ•œ ์ˆ˜์ฒœ ์žฅ ๋‹จ์œ„์˜ ์ˆ˜์ž‘์—… ๋ผ๋ฒจ๋ง ์ง„ํ–‰
      • YOLO ํฌ๋งท(.txt) ๋ณ€ํ™˜ ํ›„ ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ์…‹ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ(images/train, labels/train ๋“ฑ) ์ง์ ‘ ๊ตฌ์„ฑ
      • ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ: ๋ฒŒ์ด ์—†๋Š” ํ”„๋ ˆ์ž„์—๋„ ๋นˆ ๋ผ๋ฒจ ํŒŒ์ผ ์ƒ์„ฑํ•˜์—ฌ ๋ชจ๋ธ์˜ false positive ์ตœ์†Œํ™”
      • ํ•™์Šต/๊ฒ€์ฆ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•: train.py ์‹คํ–‰ ํ™˜๊ฒฝ ์„ธํŒ…, ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹, GPU/๊ฐ€์ƒํ™˜๊ฒฝ ๊ด€๋ฆฌ
    • ๊ธฐ์ˆ : Python, YOLOv5/v8, PyTorch, LabelImg, ๋ฐ์ดํ„ฐ์…‹ ๊ด€๋ฆฌ(~/bee/dataset)
    • ์„ฑ๊ณผ:
      • ๋ฒŒ ํƒ์ง€ ์ •ํ™•๋„๋ฅผ ๋†’์ธ ์ปค์Šคํ…€ YOLO ๋ชจ๋ธ ํ•™์Šต ์ง„ํ–‰ ์ค‘
      • ๊ทธ๋ฆผ์žยท๊ฒน์นจ ๋“ฑ ์–ด๋ ค์šด ์ƒํ™ฉ์—์„œ๋„ ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ํƒ์ง€ ์„ฑ๋Šฅ ํ™•๋ณด
      • ์—ฐ๊ตฌ์‹ค ๋‚ด๋ถ€์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ์‹คํ—˜์šฉ ๋ฐ์ดํ„ฐ์…‹ ๋ฐ ํ•™์Šต ์ฝ”๋“œ๋ฒ ์ด์Šค ๊ตฌ์ถ•
  • ๐Ÿš™ RC์นด ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ (2025.05 ~ 2025.06)

    ๐Ÿ‘‰ Flask ์ŠคํŠธ๋ฆฌ๋ฐ + RC ์‹ ํ˜ธ ์ˆ˜์‹  โ†’ ์ž์œจ์ฃผํ–‰ & ์ˆ˜๋™ ์ „ํ™˜
    • ์—ญํ• : ์‹œ์Šคํ…œ ํ†ตํ•ฉ ๊ฐœ๋ฐœ
    • ๋‚ด์šฉ:
      • Raspberry Pi 5 + Picamera2๋ฅผ ํ™œ์šฉํ•ด RC์นด ์ฃผํ–‰ ์˜์ƒ์„ Flask ์›น ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ
      • OpenCV ๊ธฐ๋ฐ˜ ์ฐจ์„  ์ธ์‹ ๋ฃฐ ๋ฒ ์ด์Šค ์กฐํ–ฅ ์ œ์–ด๋กœ ๋ผ์ธํŠธ๋ ˆ์ด์‹ฑ ์ž์œจ์ฃผํ–‰ ๊ตฌํ˜„
      • Radiolink AT9 ์กฐ์ข…๊ธฐ & R9DS ์ˆ˜์‹ ๊ธฐ์—์„œ PWM ์‹ ํ˜ธ๋ฅผ ๋ฐ›์•„, ์ˆ˜๋™ ๋ชจ๋“œ๋กœ ์ „ํ™˜ ์‹œ RC ์ž…๋ ฅ ์šฐ์„  ์ œ์–ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„
      • Arduino Nano๋ฅผ ์„œ๋ธŒ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์‚ฌ์šฉํ•ด Servo(์กฐํ–ฅ) ๋ฐ ESC(๋ชจํ„ฐ) ์ œ์–ด๋ฅผ ์•ˆ์ •ํ™”, Raspberry Pi์™€ ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์œผ๋กœ ํ†ตํ•ฉ
    • ๊ธฐ์ˆ : Raspberry Pi 5, Picamera2, Arduino Nano, Python (Flask, OpenCV), PWM ์‹ ํ˜ธ ์ฒ˜๋ฆฌ
    • ์„ฑ๊ณผ:
      • ์ž์œจ์ฃผํ–‰ โ†” ์ˆ˜๋™ ์ „ํ™˜ ๋ชจ๋“œ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์Šค์œ„์นญ ๊ฐ€๋Šฅ
      • ๊ธด๊ธ‰์‚ฌ์ถœ(Emergency Kill Switch) ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ์•ˆ์ „์„ฑ ํ™•๋ณด
      • Flask ๊ธฐ๋ฐ˜ ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ฃผํ–‰ ์˜์ƒ์„ ํ™•์ธํ•˜๋ฉด์„œ ์ œ์–ด ๊ฐ€๋Šฅ โ†’ ์›๊ฒฉ ๊ด€์ œ ํ™˜๊ฒฝ ์‹œ์—ฐ ์„ฑ๊ณต
      • ์‹ค์ œ ํ•˜๋“œ์›จ์–ด(์กฐ์ข…๊ธฐ/์ˆ˜์‹ ๊ธฐ + RC์นด ํ”Œ๋žซํผ)์™€ ์†Œํ”„ํŠธ์›จ์–ด( Flask ์„œ๋ฒ„)๋ฅผ ํ†ตํ•ฉํ•˜๋ฉฐ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ์ „์ฃผ๊ธฐ ๊ฒฝํ—˜
    • ์˜์˜:
      • ๋‹จ์ˆœ ๋ผ์ธํŠธ๋ ˆ์ด์‹ฑ์„ ๋„˜์–ด, ์ˆ˜๋™/์ž์œจ ์ฃผํ–‰ ํ†ตํ•ฉ ๋ฐ ์•ˆ์ „ ๊ธฐ๋Šฅ(๊ธด๊ธ‰์‚ฌ์ถœ) ๊นŒ์ง€ ๊ตฌํ˜„
      • ํ•™๋ถ€ ์ˆ˜์ค€์—์„œ ์‹ค์ œ ์ฐจ๋Ÿ‰ ์‹œ์Šคํ…œ์˜ HMI(์‚ฌ๋žŒ-๊ธฐ๊ณ„ ์ธํ„ฐํŽ˜์ด์Šค) ์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋ฅผ ์†Œํ˜• RC์นด์— ์ ์šฉํ•œ ์‚ฌ๋ก€
  • ๐Ÿฆฝ ํ•ธ๋“ค ์••๋ ฅ ํŒจํ„ด ๊ธฐ๋ฐ˜ ๋ฐ˜์ž์œจ์ฃผํ–‰ ๋ณดํ–‰๊ธฐ (2024.09 ~ 2025.05)

    ๐Ÿ‘‰FSR ์••๋ ฅ์„ผ์„œ + ์ž์ด๋กœ์„ผ์„œ + ๋ชจํ„ฐ ์ œ์–ด โ†’ ๋ฐ˜์ž์œจ์ฃผํ–‰ ๋ณดํ–‰๊ธฐ / ์šฐ์ˆ˜์ƒ ์ˆ˜์ƒ, ๋…ผ๋ฌธ 2ํŽธ ๋ฐœํ‘œ
  • ๐Ÿˆถ ํ•œ๊ธ€ ๋ฌธ์ž ์ธ์‹ ์ธ๊ณต์‹ ๊ฒฝ๋ง (2024.10 ~ 2024.12)

    ๐Ÿ‘‰115ํด๋ž˜์Šค ํ•œ๊ธ€ ๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ + Forward/Backprop ์ง์ ‘ ๊ตฌํ˜„ โ†’ AI pipeline ๊ฒฝํ—˜
    • ๋‚ด์šฉ:
      • ํ•œ๊ธ€ ๋ฌธ์ž ์ธ์‹ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด 64ร—64 ํ‘๋ฐฑ ๋น„ํŠธ๋งต ๊ธฐ๋ฐ˜ ํ•œ๊ธ€ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์…‹์„ ์ž์ฒด ์ œ์ž‘
      • "์ถฉ, ์ฒญ, ๋‚จ, ๋„" ๋“ฑ ๋‹ค์–‘ํ•œ ํ•œ๊ธ€ ๊ธ€์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํฐํŠธยทํ”ฝ์…€ ์œ„์น˜ ๋ณ€ํ˜•์„ ๊ฐ€๋ฏธํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ 100์žฅ์”ฉ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋‹ค์–‘์„ฑ ํ™•๋ณด
      • ํด๋ž˜์Šค ์ˆ˜๋ฅผ ํ™•์žฅํ•˜์—ฌ ์ด 115๊ฐœ ํด๋ž˜์Šค(one-hot ์ธ์ฝ”๋”ฉ ๊ตฌ์กฐ) ๋กœ ๋ผ๋ฒจ๋ง, ๋‹ค์ค‘ ํด๋ž˜์Šค ๋ถ„๋ฅ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ
      • ์‹ ๊ฒฝ๋ง ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ , ์ˆœ์ „ํŒŒ(Forward Propagation) ์™€ ์—ญ์ „ํŒŒ(Backpropagation) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ Python๊ณผ C ์–ธ์–ด๋กœ ์ง์ ‘ ๊ตฌํ˜„
      • ํ•™์Šต๋ฅ , ๋ฐฐ์น˜ ํฌ๊ธฐ, ๋ฐ˜๋ณต ํšŸ์ˆ˜ ๋“ฑ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง์ ‘ ํŠœ๋‹ํ•˜๋ฉฐ ์„ฑ๋Šฅ ๋ณ€ํ™”๋ฅผ ์‹คํ—˜์ ์œผ๋กœ ๋ถ„์„
    • ๊ธฐ์ˆ  ์Šคํƒ: Python, C ์–ธ์–ด, Custom Neural Network Implementation, ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ & ์ฆ๊ฐ•
    • ์„ฑ๊ณผ:
      • ๋‹จ์ˆœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์ด ์•„๋‹Œ ์ €์ˆ˜์ค€ ๊ตฌํ˜„์„ ํ†ตํ•ด ์ธ๊ณต์‹ ๊ฒฝ๋ง์˜ ์ˆ˜ํ•™์ /ํ”„๋กœ๊ทธ๋ž˜๋ฐ์  ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๊นŠ์ด ์ดํ•ด
      • ํ›ˆ๋ จ ์ •ํ™•๋„์™€ ํ…Œ์ŠคํŠธ ์ •ํ™•๋„๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ์˜ค๋ฒ„ํ”ผํŒ…/๋ฒ”์šฉ์„ฑ ๋ฌธ์ œ๋ฅผ ์ฒด๊ฐ, ๋ฐ์ดํ„ฐ ๋‹ค์–‘์„ฑ(ํฐํŠธ/์œ„์น˜ ๋ณ€ํ˜•)์˜ ํ•„์š”์„ฑ์„ ๊ฒ€์ฆ
      • ์ตœ์ข…์ ์œผ๋กœ ๋‹จ์ˆœ ์ฝ”๋“œ ์‹ค์Šต์„ ๋„˜์–ด, ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์ถ• โ†’ ๋ชจ๋ธ ํ•™์Šต/ํ‰๊ฐ€ โ†’ ํ•œ๊ณ„ ๋ถ„์„๊นŒ์ง€ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ธ๊ณต์ง€๋Šฅ ๋ชจ๋ธ ๊ฐœ๋ฐœ ์‚ฌ์ดํด(AI pipeline) ์„ ์˜จ์ „ํžˆ ๊ฒฝํ—˜
    • ์˜์˜:
      • โ€œํ•œ๊ธ€ ์ธ์‹โ€์ด๋ผ๋Š” ์‹ค์ œ ๊ณผ์ œ๋ฅผ ํ†ตํ•ด AI ์ด๋ก ์„ ์‹ค์Šต๊ณผ ์—ฐ๊ฒฐ
      • PyTorch/TensorFlow์™€ ๊ฐ™์€ ๊ณ ์ˆ˜์ค€ ํ”„๋ ˆ์ž„์›Œํฌ ์ด์ „ ๋‹จ๊ณ„์—์„œ, ์‹ ๊ฒฝ๋ง์˜ ๋‚ด๋ถ€ ์ž‘๋™์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ฉฐ ์›๋ฆฌ๋ฅผ ์ฒด๋“
  • ๐Ÿ“ก METLAB ์—ฐ๊ตฌ ์ฒดํ—˜ ํ”„๋กœ๊ทธ๋žจ ๋Œ€ํšŒ ์ตœ์šฐ์ˆ˜์ƒ (2024.07 ~ 2024.09)

    ๐Ÿ‘‰์—ฐ๊ตฌ ํŒ€์žฅ -> ESP32-CAM CSI + ์˜์ƒ ๋ฐ์ดํ„ฐ ์œตํ•ฉ โ†’ ์ž์œจ์ฃผํ–‰์ž๋™์ฐจ ์•…์ฒœํ›„ ์ธ์‹ ์ •ํ™•๋„ ๊ฐœ์„  / ์ด์žฅ์ƒ ์ˆ˜์ƒ
    • ์—ญํ• : ์—ฐ๊ตฌ ํŒ€์žฅ
    • ์ฃผ์ œ: ์•…์ฒœํ›„ ์ƒํ™ฉ์—์„œ ์ž์œจ์ฃผํ–‰ ์ธ์‹ ์ •ํ™•๋„ ๊ฐœ์„ 
    • ๋‚ด์šฉ:
      • ์ž์œจ์ฃผํ–‰ ์ฐจ๋Ÿ‰์ด ์•…์ฒœํ›„(๋น„, ์•ˆ๊ฐœ, ๋ˆˆ ๋“ฑ) ์ƒํ™ฉ์—์„œ ์นด๋ฉ”๋ผ ๊ธฐ๋ฐ˜ ์ธ์‹ ์ •ํ™•๋„๊ฐ€ ๊ธ‰๊ฒฉํžˆ ์ €ํ•˜๋˜๋Š” ๋ฌธ์ œ์— ์ฃผ๋ชฉ
      • ESP32-CAM์„ ํ™œ์šฉํ•ด ์˜์ƒ ๋ฐ์ดํ„ฐ์™€ ๋™์‹œ์— Wi-Fi CSI(Channel State Information) ์‹ ํ˜ธ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ, ์‹œ๊ฐยท๋ฌด์„  ์ฑ„๋„ ํŠน์„ฑ์„ ๊ฒฐํ•ฉํ•œ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์ถ•
      • ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์ฒ˜๋ฆฌ(๊ฒฐ์ธก์น˜ ์ œ๊ฑฐ, Normalization, ํŠน์ง• ์„ ํƒ) ํ›„ ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ(Random Forest) ๋ชจ๋ธ์„ ์ ์šฉํ•˜์—ฌ, ์•…์ฒœํ›„ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฐ์ฒด ์ธ์‹ ์„ฑ๋Šฅ์„ ๋น„๊ตยทํ‰๊ฐ€
    • ๊ธฐ์ˆ  ์Šคํƒ: ESP-IDF, ESP-CSI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, Python(pandas, scikit-learn), Random Forest ๋ชจ๋ธ, ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ/๋ถ„์„
    • ์„ฑ๊ณผ:
      • ๋‹จ์ผ ์˜์ƒ ๋ฐ์ดํ„ฐ ๋Œ€๋น„ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ฐ์ดํ„ฐ(์˜์ƒ + CSI) ๊ธฐ๋ฐ˜ ๋ชจ๋ธ์ด ์•ˆ๊ฐœยท์šฐ์ฒœ ์ƒํ™ฉ์—์„œ ์ธ์‹ ์ •ํ™•๋„๊ฐ€ ์œ ์˜๋ฏธํ•˜๊ฒŒ ํ–ฅ์ƒ๋จ์„ ๊ฒ€์ฆ
      • ESP32-CAM + Wi-Fi CSI๋ฅผ ๊ฒฐํ•ฉํ•œ ์ €๋น„์šฉยท์ €์ „๋ ฅํ˜• ์„ผ์„œ ์œตํ•ฉ ๋ฐฉ์‹์˜ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์ธ
      • ์ธ์ฒœ๋Œ€ํ•™๊ต ์ •๋ณด๊ธฐ์ˆ ๋Œ€ํ•™ ์—ฐ๊ตฌ ์ฒดํ—˜ ํ™œ๋™ ์ด์žฅ์ƒ ์ˆ˜์ƒ
  • โš™๏ธ STM32 ์‹ค์‹œ๊ฐ„ ์ œ์–ด ํ”„๋กœ์ ํŠธ (2024.05 ~ 2024.06)

    ๐Ÿ‘‰์ ์™ธ์„  ์„ผ์„œยท์„œ๋ณด๋ชจํ„ฐยท7-Segment๋ฅผ ๋กœ์šฐ๋ ˆ๋ฒจ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ œ์–ด ํฌํ•จํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ˜์‘ํ˜• ์ œ์–ด ์‹œ์Šคํ…œ
    • ์—ญํ• : ์„ผ์„œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ ๋ฐ ์„œ๋ณด๋ชจํ„ฐยท์„ธ๊ทธ๋จผํŠธ ์ œ์–ด ๋กœ์ง ๊ตฌํ˜„ ๋‹ด๋‹น

    • ๋‚ด์šฉ:

      • ์ ์™ธ์„ (IR) ์„ผ์„œ๋ฅผ ํ™œ์šฉํ•ด ๊ณต์ด ํ†ต๊ณผํ•˜๋Š” ์ˆœ๊ฐ„์„ ๊ฐ์ง€
      • ๊ฐ์ง€ ์‹ ํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ณด๋ชจํ„ฐ๊ฐ€ ๋™์ž‘ํ•ด ๊ณต์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๋™์ž‘ ๊ตฌํ˜„
      • ๊ณต์ด ๋–จ์–ด์งˆ ๋•Œ๋งˆ๋‹ค 7-Segment ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ํ†ตํ•ด ์นด์šดํŠธ๋ฅผ ์‹ค์‹œ๊ฐ„ ํ‘œ์‹œ
      • ๋‹จ์ˆœํ•œ HAL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์ด ์•„๋‹ˆ๋ผ, ๋ ˆ์ง€์Šคํ„ฐ ๋‹จ์œ„ ์„ค์ •(ADC, GPIO, Timer, PWM) ์„ ํ†ตํ•ด Low-Level ์ œ์–ด๋ฅผ ์ง์ ‘ ๊ตฌํ˜„
      • ์•„ํฌ๋ฆด ๊ตฌ์กฐ๋ฌผ์„ ํ™œ์šฉํ•ด ๊ฒฝ์‚ฌ๋กœ ์ œ์ž‘ ๋ฐ ๊ธฐ์šธ๊ธฐ ์กฐ์ ˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ โ†’ ๋‹ค์–‘ํ•œ ์‹คํ—˜ ํ™˜๊ฒฝ ๊ตฌ์ถ•
    • ๊ธฐ์ˆ :

      • STM32 ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ (C, CMSIS ๊ธฐ๋ฐ˜)
      • ADC (Analog to Digital Converter) ๋ ˆ์ง€์Šคํ„ฐ ์ง์ ‘ ์ œ์–ด โ†’ IR ์„ผ์„œ ์ž…๋ ฅ๊ฐ’ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ
      • Timer & PWM ๋ ˆ์ง€์Šคํ„ฐ ํ™œ์šฉ โ†’ ์„œ๋ณด๋ชจํ„ฐ ๊ฐ๋„ ์ œ์–ด (ํ•˜๋“œ์›จ์–ด ํƒ€์ด๋ฐ ์ •ํ™•๋„ ํ™•๋ณด)
      • GPIO Low-Level ์ œ์–ด โ†’ 7-Segment ์ง์ ‘ ๊ตฌ๋™
      • ์‹ค์‹œ๊ฐ„์„ฑ ๋ณด์žฅ: ์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฐ˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, busy-wait ์ง€์–‘ โ†’ ์ฆ‰๊ฐ ๋ฐ˜์‘ ๊ตฌํ˜„
      • ๋ฐ์ดํ„ฐ์‹œํŠธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„: HAL ์ถ”์ƒํ™”๊ฐ€ ์•„๋‹Œ ๋ ˆ์ง€์Šคํ„ฐ ์ฃผ์†Œ๋ฅผ ์ง์ ‘ ๋งคํ•‘ํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๋™์ž‘ ์›๋ฆฌ๋ถ€ํ„ฐ ํŠผํŠผํ•˜๊ฒŒ ๊ตฌ์ถ•
      • ์•„ํฌ๋ฆด ๊ธฐ๋ฐ˜ ์‹คํ—˜ ํ•˜๋“œ์›จ์–ด ์ œ์ž‘
    • ์„ฑ๊ณผ:

      • STM32 ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ์‹œํŠธ๋ฅผ ๊นŠ์ด ์ดํ•ดํ•˜๊ณ , Low-Level ์ œ์–ด ๋Šฅ๋ ฅ ํ™•๋ณด
      • ์—ฌ๋Ÿฌ ์„ผ์„œ๋ฅผ ๋™์‹œ์— ๋‹ค๋ฃจ๋ฉฐ ์ž„๋ฒ ๋””๋“œ ์‹ค์‹œ๊ฐ„ ์ œ์–ด ์‹œ์Šคํ…œ ๊ตฌํ˜„ ๊ฒฝํ—˜ ์ถ•์ 
      • ๋‹จ์ˆœ ๊ตฌํ˜„ ์ˆ˜์ค€์„ ๋„˜์–ด ํ•˜๋“œ์›จ์–ด ์ตœ์ ํ™” ๋ฐ ์‹ ๋ขฐ์„ฑ ๋†’์€ ๋™์ž‘์„ ๋‹ฌ์„ฑ
  • ๐ŸŽฎ ๊ฐ์ฒด์ง€ํ–ฅ SW ํ”„๋กœ์ ํŠธ (2023.10 ~ 2023.12)

    ๐Ÿ‘‰C++ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฒฝ์น˜๊ธฐ ๊ฒŒ์ž„๊ณผ A* Pathfinding ์‹œ๊ฐํ™”๋ฅผ ๊ตฌํ˜„, ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

    ๐Ÿ•น๏ธ ๋ฒฝ์น˜๊ธฐ ๊ฒŒ์ž„ (Wall Hitting Game)

    • ์—ญํ• : ๊ฒŒ์ž„ ๋กœ์ง ๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋‹ด๋‹น
    • ๋‚ด์šฉ:
      • Paddle, Ball, Bomb, Heart ๋“ฑ์˜ ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•˜์—ฌ ์ƒ์†, ์˜ค๋ฒ„๋ผ์ด๋”ฉ, ์˜ค๋ฒ„๋กœ๋”ฉ ๊ฐœ๋…์„ ์ ์šฉ
      • ๊ณต ํŠ€๊น€, Paddle ์ถฉ๋Œ, ํญํƒ„ ์•„์ดํ…œ, ๋ชฉ์ˆจ ๊ฐ์†Œ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒŒ์ž„ ์ด๋ฒคํŠธ ๊ตฌํ˜„
    • ๊ธฐ์ˆ :
      • C++ (๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ์ƒ์†/์˜ค๋ฒ„๋ผ์ด๋”ฉ/์˜ค๋ฒ„๋กœ๋”ฉ)
      • SFML Graphics (๊ณต, Paddle, ํญํƒ„, ๋ฐฐ๊ฒฝ ์‹œ๊ฐํ™”)
      • SFML Audio (์ถฉ๋Œ, ์•„์ดํ…œ ํš๋“, ๊ฒŒ์ž„์˜ค๋ฒ„ ํšจ๊ณผ์Œ)
    • ์„ฑ๊ณผ:
      • ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…์„ ์‹ค์ œ ๊ฒŒ์ž„ ์ œ์ž‘์— ์ ์šฉ
      • ์‹ค์‹œ๊ฐ„ ๋ฐ˜์‘ํ˜• ๋™์ž‘์œผ๋กœ ์™„์„ฑ๋„ ์žˆ๋Š” ๋ฏธ๋‹ˆ๊ฒŒ์ž„ ์ œ์ž‘

    ๐Ÿง A* ๊ฒฝ๋กœ ํƒ์ƒ‰ ์‹œ๊ฐํ™” (A* Pathfinding Visualization)

    • ์—ญํ• : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ์‹œ๊ฐํ™” ๊ตฌํ˜„ ๋‹ด๋‹น
    • ๋‚ด์šฉ:
      • ๋งˆ์šฐ์Šค ์ขŒํด๋ฆญ์œผ๋กœ ๋ชฉ์ ์ง€ ์ง€์ • โ†’ ์žฅ์• ๋ฌผ์„ ํ”ผํ•ด ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰
      • ์›€์ง์ด๋Š” ๋ฒฝ์ด ์žˆ์„ ๊ฒฝ์šฐ์—๋„ ์‹ค์‹œ๊ฐ„ ๊ฒฝ๋กœ ์žฌ๊ณ„์‚ฐ
      • ๊ฒฝ๋กœ ํƒ์ƒ‰ ๊ณผ์ •(Visited, Path)์„ ํŒŒ๋ž€์ƒ‰ยท๋…ธ๋ž€์ƒ‰ ์…€๋กœ ์‹œ๊ฐํ™”
    • ๊ธฐ์ˆ :
      • C++ (ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„)
      • A* ์•Œ๊ณ ๋ฆฌ์ฆ˜ (ํœด๋ฆฌ์Šคํ‹ฑ ๊ธฐ๋ฐ˜ ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰)
      • SFML Graphics (๋งต, ์žฅ์• ๋ฌผ, ํƒ์ƒ‰ ๊ณผ์ •, ๊ฒฝ๋กœ ์‹œ๊ฐํ™”)
    • ์„ฑ๊ณผ:
      • A* ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์‹ค์‹œ๊ฐ„ ์‹œ๊ฐํ™”๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ํƒ์ƒ‰ ๊ณผ์ •์„ ๋ˆˆ์œผ๋กœ ํ™•์ธ ๊ฐ€๋Šฅ
      • ํŽญ๊ท„ ์บ๋ฆญํ„ฐ๊ฐ€ ์žฅ์• ๋ฌผ์„ ํ”ผํ•˜๋ฉฐ ๋ชฉ์ ์ง€๊นŒ์ง€ ์ด๋™ํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„
  • ๐Ÿ“š ์Šค๋งˆํŠธ ๋…์„œ๋Œ€ โ€“ INU Maker ๊ฒฝ์ง„๋Œ€ (Maker Fair, 2022.09~11)

    ๐Ÿ‘‰์˜จ์Šต๋„ยท๊ฑฐ๋ฆฌ์„ผ์„œ + LCD + ์กฐ๋ช… ์ œ์–ด โ†’ ํ•™์Šต ํšจ์œจ ํ–ฅ์ƒ IoT ๋…์„œ๋Œ€
    • ์—ญํ• : ํŒ€ ๊ฐœ๋ฐœ์ž (์ž„๋ฒ ๋””๋“œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌํ˜„)
    • ๋‚ด์šฉ: ๋…์„œ ํ™˜๊ฒฝ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์„ผ์„œ ๋ฐ ์ œ์–ด ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉํ•œ ์Šค๋งˆํŠธ ๋…์„œ๋Œ€ ์ œ์ž‘
      • ์˜จ์Šต๋„ ์„ผ์„œ(DHT11): ๋…์„œ ํ™˜๊ฒฝ์˜ ์˜จ์Šต๋„ ์ธก์ • โ†’ ์ ์ • ๋ฒ”์œ„ ๋ฒ—์–ด๋‚˜๋ฉด LED ์•Œ๋ฆผ
      • RTC ๋ชจ๋“ˆ(DS1302): ๋‚ ์งœ/์‹œ๊ฐ„ ํ‘œ์‹œ ๋ฐ ํ•™์Šต ํƒ€์ด๋จธ ๊ธฐ๋Šฅ ์ œ๊ณต
      • ๊ฑฐ๋ฆฌ ์„ผ์„œ: ์‚ฌ์šฉ์ž์˜ ์ฑ…๊ณผ์˜ ๊ฑฐ๋ฆฌ ๊ฐ์ง€ โ†’ ๋ˆˆ๊ณผ ์ฑ… ์‚ฌ์ด ๊ฐ„๊ฒฉ ์œ ์ง€ ์œ ๋„
      • LCD ๋””์Šคํ”Œ๋ ˆ์ด: ์‹œ๊ฐ„ยท๋‚ ์งœยทํƒ€์ด๋จธ ์ƒํƒœยท์Šต๋„ ์ •๋ณด๋ฅผ ์ง๊ด€์ ์œผ๋กœ ํ‘œ์‹œ
      • ์กฐ๋ช… ์ œ์–ด(์Šคํƒ ๋“œ LED): ๋ฒ„ํŠผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ๊ธฐ 3๋‹จ๊ณ„ ์กฐ์ ˆ ๊ฐ€๋Šฅ (PWM ํ™œ์šฉ)
      • ๋ชจ๋“œ ์ „ํ™˜ ๊ธฐ๋Šฅ: ๋ฒ„ํŠผ์„ ํ†ตํ•ด ํƒ€์ด๋จธ ๋ชจ๋“œ โ†” ๋‚ ์งœ ๋ชจ๋“œ ์ „ํ™˜
    • ๊ธฐ์ˆ : Arduino, C/C++, ์„ผ์„œ ์ œ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(DHT, Wire, DS1302, LCD I2C), PWM ์ œ์–ด, ๋””์ง€ํ„ธ ์ž…์ถœ๋ ฅ
    • ์„ฑ๊ณผ:
      • ๋‹จ์ˆœ ์กฐ๋ช… ๊ธฐ๊ธฐ๋ฅผ ๋„˜์–ด ์‚ฌ์šฉ์ž ํ•™์Šต ํšจ์œจ ๋ฐ ๊ฑด๊ฐ•์„ ๊ณ ๋ คํ•œ IoTํ˜• ๋…์„œ๋Œ€ ๊ตฌํ˜„
      • ๊ต๋‚ด Maker ๊ฒฝ์ง„๋Œ€ํšŒ ์ถœํ’ˆ, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๋ฐ ํ†ตํ•ฉ ์ œ์–ด ๊ฒฝํ—˜ ํ™•๋ณด

๐Ÿ”น Web / App Development

  • ๐ŸŒ INU ์ •๋ณด๊ธฐ์ˆ ๋Œ€ ์ „์šฉ SNS โ€“ ESC ์†Œ๋ชจ์ž„ (ESC Club, 2024.09~2025.01)

    ๐Ÿ‘‰ํ”„๋ก ํŠธ์—”๋“œ ํŒ€์žฅ โ†’ UI/UX ์„ค๊ณ„, React ๊ตฌํ˜„, JWT ์ธ์ฆ, API ํ†ต์‹  / ๊ณต๋ชจ์ „ ์ถœ์ „
    • ์—ญํ• : ํ”„๋ก ํŠธ์—”๋“œ ํŒ€์žฅ
    • ๋‚ด์šฉ: ์ธ์ฒœ๋Œ€ ์ •๋ณด๊ธฐ์ˆ ๋Œ€ํ•™ ์žฌํ•™์ƒ/์กธ์—…์ƒ์„ ์œ„ํ•œ ์ „์šฉ SNS/์•ฑ ๊ฐœ๋ฐœ
      • UI/UX ์„ค๊ณ„: ์•ฑ ์ „์ฒด ํ™”๋ฉด ํ๋ฆ„ ๋ฐ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์„ค๊ณ„ (๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…, ๊ฒŒ์‹œํŒ, ๋Œ“๊ธ€, ์•Œ๋ฆผ ๋“ฑ)
      • ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌํ˜„: React ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€ ์ œ์ž‘, ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ
      • ์ธ์ฆ ๋ฐ ๋ณด์•ˆ: JWT ํ† ํฐ ๋ฐœ๊ธ‰ ๋ฐ ๊ฒ€์ฆ ํ๋ฆ„์„ ํ”„๋ก ํŠธ์—”๋“œ ๋‹จ์—์„œ ๊ตฌํ˜„ โ†’ ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž…/์ด๋ฉ”์ผ ์ธ์ฆ ์ฒ˜๋ฆฌ
      • ๋ฐ์ดํ„ฐ ํ†ต์‹ : Axios๋ฅผ ํ†ตํ•œ API ์—ฐ๋™, GET/POST ์š”์ฒญ ์ฒ˜๋ฆฌ, ์‚ฌ์šฉ์ž ์ •๋ณด์™€ ๊ฒŒ์‹œ๊ธ€ CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„
      • ํŒ€ ๋ฆฌ๋”ฉ: ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ํŒŒํŠธ ๋ฆฌ๋”ฉ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ ํ˜‘์—… ๊ด€๋ฆฌ
    • ๊ธฐ์ˆ : React, CSS ๋ชจ๋“ˆ, Axios, JWT ์ธ์ฆ, GitHub ํ˜‘์—…
    • ์„ฑ๊ณผ:
      • ์ •๋ณด๊ธฐ์ˆ ๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๋ชจ์ „ ์ถœ์ „
      • ์‹ค์ œ ์‚ฌ์šฉ์ž ์ค‘์‹ฌ์˜ UI/UX ์„ค๊ณ„๋ถ€ํ„ฐ ๊ตฌํ˜„, ๋ณด์•ˆ(์ธ์ฆ) ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ ์—ฐ๋™๊นŒ์ง€ ํ”„๋ก ํŠธ์—”๋“œ ์ „๋ฐ˜์„ ๊ฒฝํ—˜
  • ๐Ÿƒ RUN ๊ธฐ๋ก ๊ด€๋ฆฌ Web (2024.11~2024.12)

    ๐Ÿ‘‰Flask + SQLite ๊ธฐ๋ฐ˜ ๋Ÿฌ๋‹ ๊ธฐ๋ก ์ €์žฅ/์กฐํšŒ โ†’ ์™ธ๋ถ€ API ์—ฐ๋™ ํ™•์žฅ
    • ์—ญํ• : ๊ฐœ๋ฐœ์ž
    • ๋‚ด์šฉ: ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์™€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ ์›น์•ฑ ๊ฐœ๋ฐœ
      • DB ํ™œ์šฉ ์ค‘์‹ฌ: SQLite์— ์ €์žฅ๋œ ๊ธฐ๋ก ๋ฐ์ดํ„ฐ๋ฅผ Flask๋ฅผ ํ†ตํ•ด ๋ถˆ๋Ÿฌ์™€ ์›น ํ™”๋ฉด์— ์ถœ๋ ฅ
      • ๊ธฐ๋Šฅ:
        • ๊ฐœ์ธ ๊ธฐ๋ก ์ž…๋ ฅ โ†’ SQLite DB์— ์ €์žฅ
        • ๊ธฐ๋ก ์กฐํšŒ โ†’ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ํ…Œ์ด๋ธ” ํ˜•์‹์œผ๋กœ ํ‘œ์‹œ
        • API ์—ฐ๋™: ์™ธ๋ถ€ API๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์˜ ๋Ÿฌ๋‹ ๊ธฐ๋ก๊นŒ์ง€ ๋ถˆ๋Ÿฌ์™€ ํ•จ๊ป˜ ์กฐํšŒ ๊ฐ€๋Šฅ
      • ๊ตฌํ˜„ ํ๋ฆ„: DB ์—ฐ๋™ + API ํ™œ์šฉ์„ ํ†ตํ•ด ๋‹จ์ˆœ ๋กœ์ปฌ ๊ธฐ๋ก ๊ด€๋ฆฌ์—์„œ ํ™•์žฅ๋œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ตฌ์กฐ ์„ค๊ณ„
    • ๊ธฐ์ˆ : Flask, SQLite, HTML/CSS (๊ธฐ๋ณธ ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌ์„ฑ), API ์—ฐ๋™
    • ์„ฑ๊ณผ:
      • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์™ธ๋ถ€ API๋ฅผ ๋™์‹œ์— ํ™œ์šฉํ•œ ์›น์•ฑ ๊ตฌ์กฐ ๊ฒฝํ—˜
      • ํ”„๋ก ํŠธ์—”๋“œ + DB ์—ฐ๋™ + ์™ธ๋ถ€ API ์‘๋‹ต ์ฒ˜๋ฆฌ๊นŒ์ง€ ํฌํ•จํ•ด ์‹ค์Šตํ˜• ํ’€์Šคํƒ ๊ฐœ๋ฐœ ๊ณผ์ • ์ฒดํ—˜
  • ๐Ÿ“… ๋นˆ์นธ๋งŒ๋‚จ web (2023.10~2023.12)

    ๐Ÿ‘‰์ผ์ • ์กฐ์œจ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋ฐœ โ†’ ๋ชจ์ž„์‹œ๊ฐ„ Top3 ์ž๋™ ์ถ”์ฒœ / ํ•™์žฅ์ƒ ์ˆ˜์ƒ(์šฐ์ˆ˜์ƒ) + ์ฝ”์—‘์Šค ํฌ์Šคํ„ฐ ๋ฐœํ‘œ
    • ์—ญํ• : ์ผ์ • ์กฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋ฐœ
    • ๋‚ด์šฉ: ๋‹ค์ˆ˜ ์ธ์›์˜ ์‹œ๊ฐ„ํ‘œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋™์œผ๋กœ ๋ชจ์ž„ ์‹œ๊ฐ„์„ ์ฐพ์•„์ฃผ๋Š” ์›น ์„œ๋น„์Šค
      • ์‚ฌ์šฉ์ž ์‹œ๊ฐ„ํ‘œ๋ฅผ ๋น„๊ตํ•ด ๊ณตํ†ต ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„๋Œ€๋ฅผ ์ž๋™ ํƒ์ƒ‰
      • ์ธ์›์ˆ˜ยท์กฐ๊ฑด(ํ‰์ผ/์ฃผ๋ง, ์ตœ์†Œ ์‹œ๊ฐ„ ๋“ฑ)์— ๋”ฐ๋ผ ์ตœ์  ๋ชจ์ž„ ์‹œ๊ฐ„ Top3๋ฅผ ๋žญํ‚น์œผ๋กœ ์ถ”์ฒœ
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹จ์ˆœ ํ•ฉ์ง‘ํ•ฉ/๊ต์ง‘ํ•ฉ ๊ณ„์‚ฐ์ด ์•„๋‹ˆ๋ผ, ์ฐธ์—ฌ์œจ์„ ๊ณ ๋ คํ•œ ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™” ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„
    • ์„ฑ๊ณผ:
      • ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ๋กœ์ง(์‹œ๊ฐ„ ์กฐ์œจ)์„ ๊ตฌํ˜„ํ•˜์—ฌ ํŒ€์ด ์™„์„ฑ๋„ ๋†’์€ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ฐœํ‘œํ•  ์ˆ˜ ์žˆ์—ˆ์Œ
      • ์ธ์ฒœ๋Œ€ํ•™๊ต ์ •๋ณด๊ธฐ์ˆ ๋Œ€ํ•™ ๊ณต๋ชจ์ „ ํ•™์žฅ์ƒ ์ˆ˜์ƒ
      • ์„œ์šธ ์ฝ”์—‘์Šค์—์„œ ํฌ์Šคํ„ฐ ๋ฐœํ‘œ ์ง„ํ–‰, ์—ฐ๊ตฌ ์„ฑ๊ณผ๋ฅผ ๋Œ€์™ธ์ ์œผ๋กœ ๊ณต์œ 

Pinned Loading

  1. Embedded_SW_project Embedded_SW_project Public

    ์ž„๋ฒ ๋””๋“œ์†Œํ”„ํŠธ์›จ์–ด ํ•™์Šต ํ”„๋กœ์ ํŠธ

    C