ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toInfrastructure
์๋ฌธ ์ฝ๊ธฐ
ESP32์ I2C OLED ๊ธฐ๋ฐ์ ์ ์ ๋ ฅ Retro Gaming Console ๊ตฌํ
I Built a Retro Gaming Console Using ESP32 and OLED Display ๐ฎ
AI ์์ฝ
Context
๋ฆฌ์์ค๊ฐ ์ ํ๋ Embedded ํ๊ฒฝ์์ ๋ค์์ ๊ฒ์ ์์ง์ ๊ตฌ๋ํ๊ธฐ ์ํ ๊ฒฝ๋ ์ํคํ ์ฒ ์ค๊ณ ํ์์ฑ ์ ๊ธฐ. ํ๋์จ์ด ๋น์ฉ ์ต์ํ์ ์ค์๊ฐ ์ ๋ ฅ ๋ฐ์์ฑ ํ๋ณด๋ฅผ ํตํ ๋ ๋ฆฝํ ๊ฒ์ ๋จธ์ ๊ตฌํ ๋ชฉํ.
Technical Solution
- I2C ํ๋กํ ์ฝ ๊ธฐ๋ฐ์ OLED Display ์ฐ๊ฒฐ์ ํตํ ๋ฐ์ดํฐ ์ ์ก ํจ์จ ์ต์ ํ
- GPIO ์ง์ ์ ์ด๋ฅผ ํตํ Push Button ์ ๋ ฅ์ Low-latency ๋ฐ์์ฑ ํ๋ณด
- ์ํ ๋จธ์ (State Management) ์ค๊ณ๋ฅผ ํตํ ๋ฉ๋ด ์์คํ ๊ณผ ๊ฒ์ ๋ฐํ์ ๊ฐ์ ์ปจํ ์คํธ ์ ํ ๊ตฌํ
- Pixel Drawing ๋ฐ Sprite ๋ ๋๋ง ๋ก์ง ๊ตฌํ์ผ๋ก ์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ด ๊ทธ๋ํฝ ์ฒ๋ฆฌ ์ต์ ํ
- Event-driven ๋ฐฉ์์ Collision Detection ๋ฐ Scoring ์์คํ ์ ์ฉ์ผ๋ก ๊ฒ์ ๋ก์ง์ ๋ ๋ฆฝ์ฑ ํ๋ณด
- Buzzer ์ถ๋ ฅ์ ํ์ฉํ ๋จ์ ํ์ค ์ ์ด ๊ธฐ๋ฐ์ ์ฌ์ด๋ ํผ๋๋ฐฑ ์์คํ ํตํฉ
์ค์ฒ ํฌ์ธํธ
1. I2C ํต์ ์๋์ ๋์คํ๋ ์ด ๊ฐฑ์ ์ฃผ๊ธฐ(Refresh Rate) ๊ฐ์ ๋ณ๋ชฉ ์ง์ ํ์ธ
2. GPIO ์ ๋ ฅ ์ ๋๋ฐ์ด์ฑ(Debouncing) ์ฒ๋ฆฌ๋ฅผ ํตํ ์ ๋ ฅ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ
3. ์๋ฒ ๋๋ ํ๊ฒฝ์ ์ ํ๋ Heap ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํ ์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ ๋ต ๊ฒํ
4. ๊ฒ์๋ณ ๊ณตํต ์ธํฐํ์ด์ค ์ ์๋ฅผ ํตํ ์๋ก์ด ๊ฒ์ ๋ชจ๋์ ํ์ฅ์ฑ ํ๋ณด