๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํšŒ๋กœ๊ด€๋ จ

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ๋ฒ• ์™„๋ฒฝ ๊ฐ€์ด๋“œ – ๊ผญ ์•Œ์•„์•ผ ํ•  ํ•ต์‹ฌ ์ •๋ณด

๐Ÿ“ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ๋ฒ• ์™„๋ฒฝ ๊ฐ€์ด๋“œ

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ, ์™œ ์ค‘์š”ํ•œ๊ฐ€?

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด(Raspberry Pi)๋Š” ์†Œํ˜• ์ปดํ“จํ„ฐ๋กœ, ๋‹ค์–‘ํ•œ ์ „์ž ํ”„๋กœ์ ํŠธ์™€ IoT, ๋กœ๋ด‡, ์Šค๋งˆํŠธํ™ˆ ๋“ฑ์—์„œ ๋„๋ฆฌ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํšŒ๋กœ ์—ฐ๊ฒฐ์ด ์ž˜๋ชป๋˜๋ฉด ๋ถ€ํ’ˆ ์†์ƒ์ด๋‚˜ ์˜ค์ž‘๋™์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์˜ฌ๋ฐ”๋ฅธ ์—ฐ๊ฒฐ๋ฒ•์„ ์•„๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ๋ฒ•์˜ ํ•ต์‹ฌ์„ ๋‹จ๊ณ„๋ณ„๋กœ ์‰ฝ๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ› ๏ธ


๐Ÿ“ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด GPIO๋ž€?

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์˜ GPIO(General Purpose Input/Output) ํ•€์€ ์™ธ๋ถ€ ์„ผ์„œ, LED, ๋ชจํ„ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ€ํ’ˆ๊ณผ ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

ํ•€ ์ข…๋ฅ˜ ์„ค๋ช…
3.3V, 5V ์ „์› ๊ณต๊ธ‰์šฉ
GND ๊ทธ๋ผ์šด๋“œ(์ ‘์ง€)
GPIO ์ž…๋ ฅ/์ถœ๋ ฅ ์‹ ํ˜ธ ์ œ์–ด
I2C, SPI, UART ํ†ต์‹ ์šฉ(์„ผ์„œ, ๋ชจ๋“ˆ ์—ฐ๊ฒฐ)

TIP: ํšŒ๋กœ ์—ฐ๊ฒฐ ์ „, ๋ฐ˜๋“œ์‹œ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ์ „์›์„ ๊บผ์ฃผ์„ธ์š”!
์ž˜๋ชป๋œ ์—ฐ๊ฒฐ๋กœ ์ธํ•œ ์‡ผํŠธ ๋ฐฉ์ง€์™€ ์•ˆ์ „์„ ์œ„ํ•ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.


๐Ÿ† ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ ์ค€๋น„๋ฌผ Top 7

  1. ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ๋ณธ์ฒด
  2. ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ
  3. ์ ํผ ์ผ€์ด๋ธ”
  4. ์ €ํ•ญ(Resistor)
  5. LED, ๋ฒ„ํŠผ ๋“ฑ ๋ถ€ํ’ˆ
  6. ๋ฉ€ํ‹ฐ๋ฏธํ„ฐ(ํ…Œ์ŠคํŠธ์šฉ)
  7. ํŒŒ์ด์ฌ ๋“ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ
์ค€๋น„๋ฌผ ์šฉ๋„ ์ถ”์ฒœ ๋‚œ์ด๋„
๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ โ˜…โ˜†โ˜†โ˜†โ˜†
๋ธŒ๋ ˆ๋“œ๋ณด๋“œ ์ž„์‹œ ํšŒ๋กœ ๊ตฌ์„ฑ โ˜…โ˜†โ˜†โ˜†โ˜†
์ ํผ ์ผ€์ด๋ธ” ์‹ ํ˜ธ ์—ฐ๊ฒฐ โ˜…โ˜†โ˜†โ˜†โ˜†
์ €ํ•ญ ์ „๋ฅ˜ ์ œํ•œ โ˜…โ˜…โ˜†โ˜†โ˜†
LED/๋ฒ„ํŠผ ํ…Œ์ŠคํŠธ ๋ถ€ํ’ˆ โ˜…โ˜†โ˜†โ˜†โ˜†
๋ฉ€ํ‹ฐ๋ฏธํ„ฐ ์ „์••/์ €ํ•ญ ์ธก์ • โ˜…โ˜…โ˜…โ˜†โ˜†
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ ์ฝ”๋“œ ์‹คํ–‰ โ˜…โ˜…โ˜†โ˜†โ˜†

๐Ÿ› ๏ธ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ๋ฒ• Step-by-Step

1. GPIO ํ•€ ๋ฐฐ์น˜๋„ ํ™•์ธํ•˜๊ธฐ

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ๋ชจ๋ธ๋งˆ๋‹ค GPIO ํ•€ ๋ฐฐ์น˜๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์‚ฌ์šฉ ์ค‘์ธ ๋ชจ๋ธ์˜ ํ•€๋งต์„ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•˜์„ธ์š”.

[๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด 40ํ•€ GPIO ์˜ˆ์‹œ]
(1) 3.3V   (2) 5V
(3) GPIO2  (4) 5V
(5) GPIO3  (6) GND
...

TIP: ํ•€ ๋ฒˆํ˜ธ์™€ ๊ธฐ๋Šฅ์„ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์„ธ์š”!
์‹ค์ˆ˜๋กœ 5V์— ์‹ ํ˜ธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๋ถ€ํ’ˆ์ด ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


2. ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ์™€ ์ ํผ ์ผ€์ด๋ธ” ์—ฐ๊ฒฐ

  • ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ๋Š” ๋‚ฉ๋•œ ์—†์ด ํšŒ๋กœ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด ์ดˆ๋ณด์ž์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ ํผ ์ผ€์ด๋ธ”์„ ์‚ฌ์šฉํ•ด ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์˜ GPIO ํ•€๊ณผ ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜์„ธ์š”.
[์˜ˆ์‹œ]
๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด GPIO17 → ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ → LED → ์ €ํ•ญ(220Ω) → GND

3. LED ํšŒ๋กœ ์—ฐ๊ฒฐ ์˜ˆ์ œ

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํšŒ๋กœ์ธ LED ์ ๋“ฑ ํšŒ๋กœ๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

[ํšŒ๋กœ ๊ตฌ์„ฑ]
1. GPIO17(11๋ฒˆ ํ•€) → LED์˜ ๊ธด ๋‹ค๋ฆฌ(์• ๋…ธ๋“œ)
2. LED์˜ ์งง์€ ๋‹ค๋ฆฌ(์บ์†Œ๋“œ) → ์ €ํ•ญ(220Ω)
3. ์ €ํ•ญ → GND(6๋ฒˆ ํ•€)
# LED ์ ๋“ฑ ํŒŒ์ด์ฌ ์ฝ”๋“œ ์˜ˆ์‹œ
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)

GPIO.output(17, True)  # LED ON
time.sleep(2)
GPIO.output(17, False) # LED OFF

GPIO.cleanup()

4. ๋ฒ„ํŠผ ์ž…๋ ฅ ํšŒ๋กœ ์—ฐ๊ฒฐ ์˜ˆ์ œ

๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ LED๊ฐ€ ์ผœ์ง€๋Š” ํšŒ๋กœ์ž…๋‹ˆ๋‹ค.

[ํšŒ๋กœ ๊ตฌ์„ฑ]
1. ๋ฒ„ํŠผ ํ•œ์ชฝ → GPIO18(12๋ฒˆ ํ•€)
2. ๋ฒ„ํŠผ ๋‹ค๋ฅธ ์ชฝ → GND(14๋ฒˆ ํ•€)
3. LED ํšŒ๋กœ๋Š” ์œ„์™€ ๋™์ผํ•˜๊ฒŒ ์—ฐ๊ฒฐ
# ๋ฒ„ํŠผ ์ž…๋ ฅ ํŒŒ์ด์ฌ ์ฝ”๋“œ ์˜ˆ์‹œ
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

try:
    while True:
        if GPIO.input(18) == GPIO.HIGH:
            GPIO.output(17, True)
        else:
            GPIO.output(17, False)
        time.sleep(0.1)
finally:
    GPIO.cleanup()

โšก ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • ์ „์› ์—ฐ๊ฒฐ ์ „, ํšŒ๋กœ ์ ๊ฒ€ ํ•„์ˆ˜!
  • 3.3V์™€ 5V ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉ
  • GND(์ ‘์ง€) ์—ฐ๊ฒฐ ๋ˆ„๋ฝ ์ฃผ์˜
  • ์ •์ „๊ธฐ ๋ฐฉ์ง€(์†์„ ๊นจ๋—์ด, ๊ธˆ์† ์ ‘์ด‰ ํ”ผํ•˜๊ธฐ)
  • ํ•€ ๋ฒˆํ˜ธ ํ˜ผ๋™ ์ฃผ์˜

TIP: ๋ฉ€ํ‹ฐ๋ฏธํ„ฐ๋กœ ์ „์••/์ €ํ•ญ์„ ์ธก์ •ํ•˜๋ฉฐ ํšŒ๋กœ๋ฅผ ์ ๊ฒ€ํ•˜๋ฉด ๋”์šฑ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“ฆ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ๋ฒ• Top 10 ์‹ค์ „ ํŒ

  1. ํ•€๋งต ํ”„๋ฆฐํŠธํ•ด์„œ ์˜†์— ๋‘๊ธฐ
  2. ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ ์‚ฌ์šฉ์œผ๋กœ ๋‚ฉ๋•œ ์—†์ด ์‹คํ—˜
  3. ์ €ํ•ญ์€ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉ(ํŠนํžˆ LED, ์„ผ์„œ)
  4. GND ์—ฐ๊ฒฐ์€ ํ•ญ์ƒ ํ™•์ธ
  5. ์ฝ”๋“œ ์‹คํ–‰ ์ „ ํšŒ๋กœ ์žฌ์ ๊ฒ€
  6. ํ•€ ๋ฒˆํ˜ธ์™€ BCM/BOARD ๋ชจ๋“œ ๊ตฌ๋ถ„
  7. ํ…Œ์ŠคํŠธ ํ›„ GPIO.cleanup() ํ˜ธ์ถœ
  8. ์„ผ์„œ/๋ชจ๋“ˆ ๋ฐ์ดํ„ฐ์‹œํŠธ ํ™•์ธ
  9. ์ „์› ๊ณต๊ธ‰์€ ์•ˆ์ •์ ์œผ๋กœ
  10. ์‹ค์ˆ˜ ์‹œ ์ฆ‰์‹œ ์ „์› ์ฐจ๋‹จ
ํŒ ๋ฒˆํ˜ธ ์‹ค์ „ ํŒ ๋‚ด์šฉ ํšจ๊ณผ/์ด์œ 
1 ํ•€๋งต ํ”„๋ฆฐํŠธ ์‹ค์ˆ˜ ๋ฐฉ์ง€
2 ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ ์‚ฌ์šฉ ๋น ๋ฅธ ์‹คํ—˜, ์ˆ˜์ • ์šฉ์ด
3 ์ €ํ•ญ ์‚ฌ์šฉ ๋ถ€ํ’ˆ ๋ณดํ˜ธ
4 GND ์—ฐ๊ฒฐ ํ™•์ธ ํšŒ๋กœ ์•ˆ์ •์„ฑ
5 ์ฝ”๋“œ ์‹คํ–‰ ์ „ ํšŒ๋กœ ์ ๊ฒ€ ์˜ค์ž‘๋™ ๋ฐฉ์ง€
6 BCM/BOARD ๋ชจ๋“œ ๊ตฌ๋ถ„ ์ฝ”๋“œ ์˜ค๋ฅ˜ ์˜ˆ๋ฐฉ
7 GPIO.cleanup() ํ˜ธ์ถœ ๋ฆฌ์†Œ์Šค ํ•ด์ œ
8 ๋ฐ์ดํ„ฐ์‹œํŠธ ํ™•์ธ ์ •ํ™•ํ•œ ์—ฐ๊ฒฐ
9 ์•ˆ์ •์  ์ „์› ๊ณต๊ธ‰ ์‹œ์Šคํ…œ ๋ณดํ˜ธ
10 ์‹ค์ˆ˜ ์‹œ ์ „์› ์ฐจ๋‹จ ์•ˆ์ „ ํ™•๋ณด

โœ… ๊ฒฐ๋ก : ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ, ์–ด๋ ต์ง€ ์•Š์•„์š”!

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํšŒ๋กœ ์—ฐ๊ฒฐ๋ฒ•์€ ๊ธฐ๋ณธ ์›๋ฆฌ์™€ ์ฃผ์˜์‚ฌํ•ญ๋งŒ ์ž˜ ์ง€ํ‚ค๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•€๋งต ํ™•์ธ, ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ ํ™œ์šฉ, ์ €ํ•ญ ์‚ฌ์šฉ, GND ์—ฐ๊ฒฐ ๋“ฑ ํ•ต์‹ฌ ํฌ์ธํŠธ๋งŒ ๊ธฐ์–ตํ•˜์„ธ์š”!
์‹ค์Šต์„ ํ†ตํ•ด ์ ์  ๋” ๋ณต์žกํ•œ ํšŒ๋กœ๋„ ๋„์ „ํ•ด ๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.
์•ˆ์ „ํ•˜๊ณ  ์ฆ๊ฑฐ์šด ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํ”„๋กœ์ ํŠธ ๋˜์„ธ์š”! ๐Ÿ€"