피코 만나기 - 첫 만남과 환경 설정¶
🎯 이 장에서 배우는 것¶
- [ ] 라즈베리파이 피코가 무엇인지 설명할 수 있다
- [ ] Thonny IDE를 설치하고 피코를 연결할 수 있다
- [ ] 첫 MicroPython 프로그램을 실행할 수 있다
- [ ] print() 함수로 다양한 메시지를 출력할 수 있다
💡 왜 이걸 배우나요?¶
지금까지 프로그래밍은 화면 안에서만 일어났어. print("Hello")를 실행하면 모니터에 글자가 나타나는 게 전부였지.
그런데 피지컬 컴퓨팅은 달라. 코드를 실행하면 진짜 LED가 켜지고, 모터가 돌아가고, 센서가 온도를 측정해. 화면 밖 현실 세계에서 일이 벌어지는 거야!
이번 장에서 만날 라즈베리파이 피코는 손톱만 한 컴퓨터야. 이 작은 친구에게 코드를 넣으면, 진짜로 물건을 움직이고 불을 켜는 장치를 만들 수 있어.
스마트홈, 로봇, IoT 기기... 다 이런 작은 컴퓨터로 만들어져. 오늘 네가 배우는 게 바로 그 시작점이야!
📚 핵심 개념¶
개념 1: 라즈베리파이 피코¶
-
비유로 시작: "피코는 마치 아주 작은 컴퓨터와 같아요. 너희가 쓰는 데스크톱이나 노트북처럼 프로그램을 실행할 수 있지만, 모니터나 키보드 없이 혼자서 일을 처리하는 데 특화되어 있어요."
-
정확한 정의: "정확히 말하면, 피코는 마이크로컨트롤러(MCU)예요. 센서로 데이터를 읽고, LED나 모터 같은 장치를 제어하는 작은 두뇌 역할을 해요. 우리가 사용할 피코 2W는 WiFi와 블루투스까지 내장되어 있어서 인터넷에도 연결할 수 있어요."
-
예시로 확인: "예를 들어, 방 온도가 30도가 넘으면 자동으로 선풍기를 켜는 장치를 만들 수 있어요. 피코가 온도 센서를 읽고, 조건을 확인하고, 선풍기 전원을 제어하는 거죠."
쉽게 말하면: 피코 = 센서 읽고 + 생각하고 + 장치 제어하는 초소형 컴퓨터
개념 2: Thonny IDE¶
-
비유로 시작: "Thonny는 마치 코드를 쓰는 공책과 실행 버튼이 합쳐진 도구예요. 코드를 작성하고, 버튼 하나로 피코에 전달해서 실행시킬 수 있어요."
-
정확한 정의: "정확히 말하면, Thonny는 통합 개발 환경(IDE)이에요. 코드 편집기 + 실행기 + 오류 확인 도구가 하나로 합쳐진 프로그램이죠. 특히 MicroPython과 피코를 지원해서 우리 수업에 딱이에요."
-
예시로 확인: "예를 들어, Thonny에서
print("Hello")를 쓰고 초록색 실행 버튼을 누르면, 피코가 바로 그 명령을 실행해요."
쉽게 말하면: Thonny = 코드 쓰고 피코에 전달하는 리모컨 프로그램
개념 3: MicroPython¶
-
비유로 시작: "MicroPython은 마치 피코가 알아듣는 언어예요. 우리가 한국어로 대화하듯, 피코와 대화하려면 MicroPython으로 말해야 해요."
-
정확한 정의: "정확히 말하면, MicroPython은 Python을 아주 작은 컴퓨터에서도 돌아가게 만든 버전이에요. 문법은 Python과 거의 같지만, 피코처럼 메모리가 적은 장치에서도 실행돼요."
-
예시로 확인: "예를 들어, 학교에서 배운
print(),if,for같은 Python 문법이 MicroPython에서도 똑같이 동작해요."
쉽게 말하면: MicroPython = 피코용으로 가볍게 만든 Python 사촌
개념 4: BOOTSEL 버튼¶
-
비유로 시작: "BOOTSEL 버튼은 마치 피코의 뇌 수술 모드를 켜는 버튼이에요. 이 버튼을 누른 채로 USB를 연결하면, 피코가 '나 준비됐어, 새 프로그램 넣어줘!'라고 기다려요."
-
정확한 정의: "정확히 말하면, BOOTSEL(Boot Select)을 누르면 피코가 USB 대용량 저장 장치 모드로 시작해요. 이때 MicroPython 펌웨어 파일을 피코에 복사할 수 있어요."
-
예시로 확인: "처음 피코를 설정할 때 딱 한 번만 이 방법을 써요. 그 다음부터는 그냥 USB만 연결하면 Thonny가 알아서 인식해요."
쉽게 말하면: BOOTSEL = 피코에 처음 언어를 가르칠 때 누르는 버튼
🔨 따라하기¶
Step 1: Thonny 설치하기¶
목표: 컴퓨터에 Thonny IDE를 설치한다
- 웹 브라우저에서 https://thonny.org 접속
- 오른쪽 위에서 운영체제(Windows/Mac)에 맞는 버전 다운로드
- 다운로드한 파일 실행
- Next → Next → Install → Finish (기본 설정 그대로!)
여기서 잠깐! 🤔
설치할 때 "Add to PATH" 같은 옵션이 나와도 그냥 기본값으로 진행해. 복잡한 설정은 필요 없어!
Step 2: 피코에 MicroPython 펌웨어 설치하기¶
목표: 피코가 MicroPython을 이해할 수 있게 언어를 설치한다
준비물: 라즈베리파이 피코 2W, USB 케이블
순서:
- 피코의 BOOTSEL 버튼을 찾아 (피코 윗면의 작은 흰색 버튼)
- BOOTSEL을 꾹 누른 상태에서 USB 케이블을 컴퓨터에 연결
- 연결 후 BOOTSEL 버튼에서 손을 뗌
- 컴퓨터에 RPI-RP2라는 USB 드라이브가 나타남
- Thonny 실행
- 메뉴에서 도구(Tools) → 옵션(Options) 클릭
- 인터프리터(Interpreter) 탭 선택
- 드롭다운에서 MicroPython (Raspberry Pi Pico) 선택
- 아래쪽 Install or update MicroPython 클릭
- Target volume: RPI-RP2 선택
- MicroPython variant: Raspberry Pi Pico 2 W 선택
- Install 클릭!
여기서 잠깐! 🤔
"RPI-RP2 드라이브가 안 보여요!" → BOOTSEL 버튼을 누른 상태에서 USB를 연결했는지 확인해. 순서가 바뀌면 안 돼!
Step 3: 피코 연결 확인하기¶
목표: Thonny가 피코를 제대로 인식했는지 확인한다
- 펌웨어 설치 후 USB를 뺐다가 다시 연결 (이번엔 BOOTSEL 안 눌러도 돼!)
- Thonny 오른쪽 아래 확인
MicroPython v1.x.x • Raspberry Pi Pico 2 W
이렇게 뜨면 성공! 🎉
만약 "Could not find device" 나 "포트를 찾을 수 없음" 메시지가 나오면: - USB 케이블을 다른 포트에 연결해보기 - Thonny를 껐다가 다시 켜보기 - 도구 → 옵션 → 인터프리터에서 포트를 직접 선택해보기
Step 4: 첫 번째 프로그램 - Hello World!¶
목표: 피코에서 첫 프로그램을 실행한다
코드:
# === WHAT: 첫 번째 MicroPython 프로그램 ===
# 피코가 "Hello, World!"를 출력하는 코드예요
# --- WHY: 왜 필요한지 ---
# 피코가 제대로 연결됐는지, 코드가 잘 실행되는지 확인하려면
# 가장 간단한 프로그램부터 테스트해야 해요
# HOW: 어떻게 동작하는지
print("Hello, World!") # 괄호 안의 문자열을 화면에 출력해요
실행 방법:
1. Thonny 위쪽 흰색 편집 창에 코드 입력
2. 초록색 실행 버튼(▶) 클릭 또는 F5 키
3. "Where to save?" 창이 뜨면 MicroPython device 선택
4. 파일 이름: hello.py 입력 후 OK
실행 결과:
Hello, World!
Thonny 아래쪽 Shell 창에 이 메시지가 나타나면 성공! 🎉
여기서 잠깐! 🤔
축하해! 너 방금 하드웨어를 프로그래밍한 거야. 지금까지 컴퓨터 안에서만 코드가 돌아갔다면, 이제는 피코라는 외부 장치에서 코드가 실행된 거지!
Step 5: print() 더 실험해보기¶
목표: print() 함수의 다양한 사용법을 익힌다
코드:
# === WHAT: print() 함수 실험 ===
# 다양한 데이터를 출력해보는 코드예요
# --- WHY: 왜 필요한지 ---
# 나중에 센서 값을 확인하거나 디버깅할 때 print()를 많이 써요
# 지금 충분히 연습해두면 좋아요!
# HOW: 어떻게 동작하는지
# 1. 문자열 출력
print("안녕하세요!") # 한글도 잘 돼요
# 2. 숫자 출력
print(2024) # 따옴표 없이 숫자 그대로
# 3. 계산 결과 출력
print(10 + 20) # 30이 출력돼요
# 4. 여러 개 한 번에 출력
print("나이:", 17, "살") # 쉼표로 연결
# 5. 변수 사용
name = "피코" # 변수에 값 저장
print("내 이름은", name) # 변수 내용 출력
실행 결과:
안녕하세요!
2024
30
나이: 17 살
내 이름은 피코
Step 6: 변수로 자기소개 프로그램 만들기¶
목표: 변수를 활용해 간단한 프로그램을 만든다
코드:
# === WHAT: 자기소개 프로그램 ===
# 변수를 사용해서 피코가 자기소개를 하는 코드예요
# --- WHY: 왜 필요한지 ---
# 변수는 데이터를 저장하는 상자예요
# 센서 값, 설정값 등을 저장할 때 변수를 써요
# HOW: 어떻게 동작하는지
# 내 정보를 변수에 저장
device_name = "Pico 2W" # 장치 이름
year = 2024 # 올해 연도
feature = "WiFi와 Bluetooth" # 특징
# 저장된 정보로 자기소개
print("=== 자기소개 ===")
print("저는", device_name, "입니다!")
print("탄생년도:", year)
print("특기:", feature, "가 됩니다!")
print("================")
실행 결과:
=== 자기소개 ===
저는 Pico 2W 입니다!
탄생년도: 2024
특기: WiFi와 Bluetooth 가 됩니다!
================
여기서 잠깐! 🤔
변수 이름은 의미 있게 지어야 해. a, b, x 같은 이름보다 device_name, temperature 같은 이름이 나중에 읽기 편해!
📝 전체 코드¶
# === 피코 첫 만남 - 완성 코드 ===
# 이 코드를 복사해서 Thonny에 붙여넣고 실행해보세요!
# 1단계: 첫 인사
print("="*30)
print("🎉 피코와의 첫 만남!")
print("="*30)
# 2단계: 피코 정보
device = "Raspberry Pi Pico 2W"
language = "MicroPython"
status = "연결 성공"
print()
print("📌 장치 정보")
print(" - 장치:", device)
print(" - 언어:", language)
print(" - 상태:", status)
# 3단계: 간단한 계산
a = 10
b = 20
result = a + b
print()
print("📌 계산 테스트")
print(" ", a, "+", b, "=", result)
# 4단계: 마무리
print()
print("="*30)
print("✅ 환경 설정 완료!")
print("다음 시간: LED 제어하기 💡")
print("="*30)
실행 결과:
==============================
🎉 피코와의 첫 만남!
==============================
📌 장치 정보
- 장치: Raspberry Pi Pico 2W
- 언어: MicroPython
- 상태: 연결 성공
📌 계산 테스트
10 + 20 = 30
==============================
✅ 환경 설정 완료!
다음 시간: LED 제어하기 💡
==============================
⚠️ 자주 하는 실수¶
실수 1: BOOTSEL 버튼 타이밍 실수¶
증상: USB 연결해도 RPI-RP2 드라이브가 안 보임
원인: BOOTSEL 버튼을 누르기 전에 USB를 먼저 연결함
해결:
❌ 잘못된 순서:
1. USB 연결
2. BOOTSEL 누름
→ 이미 일반 모드로 부팅됨!
✅ 올바른 순서:
1. BOOTSEL 버튼 꾹 누름
2. USB 연결 (버튼 누른 상태로!)
3. 3초 후 버튼에서 손 뗌
→ RPI-RP2 드라이브 나타남!
실수 2: 따옴표 빠뜨리기¶
증상: NameError: name 'Hello' is not defined
원인: 문자열에 따옴표를 안 썼음
해결:
# 잘못된 코드
print(Hello World) # Hello를 변수로 인식해서 에러!
# 올바른 코드
print("Hello World") # 따옴표로 문자열임을 표시!
실수 3: 괄호 빠뜨리기¶
증상: SyntaxError: invalid syntax
원인: print 뒤에 괄호를 안 썼음
해결:
# 잘못된 코드
print "Hello" # Python 2 문법 (오래된 버전)
# 올바른 코드
print("Hello") # Python 3 / MicroPython 문법
실수 4: 인터프리터 설정 안 함¶
증상: 코드 실행해도 아무 반응 없음, 또는 컴퓨터에서 실행됨
원인: Thonny가 피코가 아닌 컴퓨터 Python으로 설정됨
해결:
1. 도구(Tools) → 옵션(Options) 클릭
2. 인터프리터(Interpreter) 탭
3. "MicroPython (Raspberry Pi Pico)" 선택
4. OK 클릭
5. Thonny 오른쪽 아래에 "MicroPython" 표시 확인!
실수 5: USB 케이블 문제¶
증상: 피코 LED는 켜지는데 컴퓨터가 인식 안 함
원인: 충전 전용 USB 케이블 사용 (데이터 선이 없음)
해결:
충전 전용 케이블 vs 데이터 케이블
충전 전용: 🔌 --- 전원만 ---→ 충전 가능, 인식 불가
데이터용: 🔌 --- 전원+데이터 ---→ 충전도 되고 인식도 됨!
💡 해결법: 스마트폰 데이터 동기화용 케이블로 교체
✅ 스스로 점검하기¶
-
피코는 어떤 종류의 컴퓨터인가요? (힌트: 3글자, ㅁㅇㅋ로 시작)
-
피코에 처음 펌웨어를 설치할 때 누르는 버튼의 이름은?
-
print(10 + 5)를 실행하면 무엇이 출력될까요? -
다음 코드의 실행 결과는?
name = "Python" print("Hello", name) -
왜 BOOTSEL 버튼을 누른 상태에서 USB를 연결해야 할까요?
정답 확인
1. **마이크로컨트롤러(MCU)** - 센서 읽기, 장치 제어에 특화된 작은 컴퓨터 2. **BOOTSEL** 버튼 - Boot Select의 줄임말 3. **15** - print()가 계산을 먼저 하고 결과를 출력함 4. **Hello Python** - 쉼표로 연결하면 공백으로 구분되어 출력됨 5. BOOTSEL을 누른 상태로 연결해야 **USB 대용량 저장 장치 모드**로 부팅되어 펌웨어 파일을 복사할 수 있음. 그냥 연결하면 일반 모드로 시작돼서 펌웨어 설치가 안 됨!🚀 더 해보기¶
도전 1: 나만의 자기소개 (쉬움)¶
위 코드에서 변수 값을 바꿔서 너의 자기소개를 출력해봐!
my_name = "여기에_네_이름"
my_school = "여기에_학교_이름"
my_hobby = "여기에_취미"
print("안녕! 나는", my_name)
print("학교:", my_school)
print("취미:", my_hobby)
도전 2: 구구단 한 줄 출력 (중간)¶
변수와 계산을 활용해서 구구단 한 줄을 출력해봐!
dan = 7 # 7단
num = 1 # 1부터 시작
print(dan, "x", num, "=", dan * num)
# 출력: 7 x 1 = 7
# 이제 num을 2, 3, 4... 로 바꿔가며 출력해봐!
도전 3: 아스키 아트 출력 (어려움) ⭐¶
여러 줄의 print()를 사용해서 그림을 출력해봐!
print(" *")
print(" ***")
print(" *****")
print("*******")
print(" |")
# 크리스마스 트리!
# 네가 좋아하는 모양을 만들어봐!
# 힌트: 하트 ♥, 별 ★, 집 🏠 등
🔗 다음 장으로¶
오늘 배운 것: - ✅ 라즈베리파이 피코가 뭔지 - ✅ Thonny 설치하고 피코 연결하기 - ✅ MicroPython 펌웨어 설치 - ✅ print()로 메시지 출력하기 - ✅ 변수 사용하기
다음 장 "LED의 세계"에서는 드디어 눈에 보이는 결과를 만들어! 코드로 LED를 켜고, 끄고, 깜빡이게 만들 거야. 화면에 글자만 나오던 시대는 끝났어. 이제 진짜 세상을 움직이는 코드를 짜보자! 💡✨