Search
Duplicate

1.micro 파이썬 시작하기

목차(클릭하세요)
사실 피지컬 컴퓨팅 교육은 중학교- 마이크로비트, 고등학교-아두이노가 최적화 과정인데 고등학교 교육과정에서 실제로 더 많은 활용가치를 가지는 파이썬을 피지컬 컴퓨팅과 융합하기 위한 고민중 [해결책1]-라즈베리파이 피코, ESP32, 파이보드, 마이크로 비트 등이 존재함 [해결책2] 근데 또 해결책1의 경우에는 회로 연결하느라 정작 코드작동 로직이나 센서와 엑츄에이터 상호작용에는 신경을 덜 쓰는 문제를 해결하기 위해 파이파이 키트를 기반으로 글을 연재
마이크로 파이썬은 라즈베리파이 피코, ESP32보드, 파이파이키트 등을 제어하기 위한 프로그래밍 언어

1. 마이크로 파이썬의 이해

1-1. 왜 존재하는가?

작은 컴퓨터(마이크로컨트롤러)에서 파이썬을 돌릴 수 있게 만든 경량 버전”
일반 파이썬 = 고성능 데스크탑 게임
마이크로파이썬 = 같은 게임의 모바일 버전
핵심 기능은 같지만, 제한된 자원(메모리, 저장공간)에 맞게 최적화됨
특히, 마이크로 파이썬에는 하드웨어를 제어할 수 있는 모듈(Machine 등)이 포함되어 있음

일반 파이썬 vs 마이크로파이썬

구분
일반 파이썬
마이크로파이썬
실행 환경
PC, 서버 (RAM 수GB)
ESP32, Pico (RAM 수백KB)
용도
데이터 분석, 웹 개발, AI
센서 제어, IoT, 로봇
라이브러리
numpy, pandas 등 수만 개
핵심 라이브러리만 포함
특징
풍부한 기능
하드웨어 직접 제어 가능
주의
마이크로 파이썬 사용 불가:
numpy, pandas 같은 대용량 라이브러리
파일 입출력 제한적 (플래시 메모리만 사용)
대신 사용가능
machine - 하드웨어 제어 (Pin, PWM, I2C 등)
network - WiFi 연결
time - 시간 지연 (sleep)

1-2.마이크로 파이썬의 핵심 특징

1-2-1. 하드웨어 직접 제어

from machine import Pin led = Pin(2, Pin.OUT) # 2번 핀을 출력으로 led.on() # LED 켜기
Python
복사

1-2-2. 즉시 실행 (REPL)

코드 입력 → 즉시 결과 확인
센서 테스트, 디버깅에 편리

1-2-3. 저전력 동작

배터리로 작동하는 IoT 기기에 최적
sleep 모드 지원

1-3. 주 사용보드

ESP32 - WiFi/Bluetooth 내장, 가성비 좋음
Raspberry Pi Pico - 저렴, 교육용 최적
micro:bit - 초등~중학생용

1-4. ESP32?

Espressif Systems에서 개발한 마이크로컨트롤러이며, IoT 프로젝트에서 가성비가 꽤 좋은 편 
"WiFi/Bluetooth가 내장된 초소형 컴퓨터 - 아두이노보다 강력하고 가격은 비슷"

1-4-1. 주요사양

항목
사양
프로세서
Xtensa 듀얼코어 32bit (240MHz)
메모리
RAM 520KB, Flash 4MB
무선통신
WiFi (802.11 b/g/n), Bluetooth 4.2
GPIO
34핀 (일부는 특수 용도)
전원
3.3V 동작, USB 또는 배터리
크기
약 5cm x 2.5cm (보드 종류별 차이)

1-4-2. 알아둘점

핀 배치 주의사항

사용 가능 GPIO

안전하게 사용: 4, 5, 12-19, 21-23, 25-27, 32-33 주의해서 사용: 2 (내장 LED), 34-39 (입력 전용) 사용 금지: 0, 6-11 (부팅/플래시 메모리 전용)

전압 주의

ESP32는 3.3V 동작!
5V 센서 연결 시 레벨 시프터 필요
직접 5V 연결하면 보드 손상 위험

2. 마이크로 파이썬 IDE

2-1. Thonny

"초보자를 위한 파이썬 전용 IDE - 마이크로파이썬 보드 제어가 특히 쉬움"
왜 vsc를 추천하지 않는가?
VSCode = 전문가용 멀티툴 (100가지 기능, 설정 복잡)
Thonny = 파이썬 전용 스위스 아미 나이프 (필요한 기능만, 즉시 사용)
무거운 기능 없이 파이썬 학습/실습에 최적화
vsc개발환경 준비하느니 thonny 개발환경으로 준비 ex)아두이노 실습에는 스케치 쓰는 것처럼.

2-2. Thonny의 강점

2-2-1. 제로 설정

설치 후 바로 실행 가능
파이썬 인터프리터 내장 (별도 설치 불필요)
라이브러리 설치도 GUI 클릭 한 번

2-2-2. 초보자 친화적 인터페이스

변수 값 실시간 표시
단계별 실행 (Step Over/Into)
에러 메시지 한글 지원 (일부)

2-2-3. 마이크로파이썬 보드 완벽 지원

ESP32, Raspberry Pi Pico 즉시 인식
보드 파일 시스템 GUI 제공
REPL(대화형 셸) 통합

2-2-4. 가벼움

설치 용량 약 40MB
실행 속도 빠름
저사양 PC에서도 원활

3. 통합 개발환경 토니(Thonny)설치

3-1. 다운로드

파이썬 버전에 맞게 원하는 버전을 다운로드 하여 설치
설치가 완료되면 다음 메시지를 볼 수 있음
이후 초기셋팅시 한국어로 설정한 다음, let’s go
대략 이런 느낌의 초기화면, 아래쪽 쉘 창에서 기본적인 파이썬 코드 입력 후 결과 확인도 가능

4. 피지컬 교구

3-1. ESP32보드

ESP32보드만 사서는 안되고, 개발확장 보드를 함께 구매해서 사용해야 함
개발 확장 보드는 ESP32 DEVKIT으로 검색할 수 있으며, 사용가능한 핀의 개수에 따라 30개, 36개, 38개 등이 있으며, 여기서는 30핀을 기준으로 다양한 프로젝트를 구현해 나갈 예정
[본체]
[개발확장 보드]
esp32 DevKIT보드의 GPIO핀
특별히 주의할점: 개발확장보드에 있는 전원부는 단순히 전원공급용이며, 코딩시 사용할 수 없음
외형 구조상의 특이점
보드를 인식시키고 코드를 실행하려면 USB-A타입을 이용해 반드시 컴퓨터와 ESP32보드를 직접연결해야함
보드에 전원을 공급하면 켜지는 빨간색 LED
GPIO 2에 내부적으로 연결된 내장형 파란색 LED
[참고 영상]

3-2.파이파이 키트

네패스 코코아팹에서 개발한 파이썬 기반 SW,AI교육 교구
이미 기본 센서와 엑츄에이터가 연결되어 있어, 선 연결없이 빠르게 실습 가능
네오픽셀, 조도센서, 온습도 센서, 터치센서, OLED, 컬러센서와 엑추에이터, 광섬유 기둥으로 구성된 램프

3-3. ESP32 실습환경 구축

3-3-1. 드라이버 설치

1.
컴퓨터와 ESP32보드를 연결
연결된 보드는 장치관리자의 ‘포트’에서 COM포트 번호 확인 가능

3-3-2. 펌웨어 설치

thony개발환경에서 펌웨어 자동설치하기
바탕화면 혹은 다른 곳에 마이크로파이썬 실습을 위한 폴더를 생성
실행 메뉴에서 ‘인터프리터 환경 설정’을 선택한 뒤, Micro Python(ESP32)를 선택
인스톨 버튼을 누른 다음, 각종 옵션을 선택하여 펌웨어 업데이트 시작
버전 설치는 최신버전(26년 1월2일 기준 1.27.0)
왼쪽 하단에 ‘Done!’메시지가 나올때 까지 절대 대기해야 함
이때 전원코드를 빼버리면 하드웨어복구가 불가능한 상황이 생길 수 있음
이제 모든 준비가 끝났으니 장치 영역이 인식되는지 확인
펌웨어 업데이트는 한번만 설치하면 됨!
[장치영역 인식 전]
[장치영역 인식 후]

3-3-3. LED 깜빡이기 (즉시실행 방법)

사전지식: GPIO 2에 내부적으로 연결된 내장형 파란색 LED가 존재
1.
코드 확인
from machine import Pin import time as t # GPIO 2번을 출력 모드로 설정 led = Pin(2, Pin.OUT) # LED 켜기 led.on() t.sleep(1) # LED 켜기 led.off()
Python
복사
2.
코드 실행: 현재 스크립트 실행버튼(단축키:F5)을 클릭

3-3-4. 스크립트(코드)실행의 2가지 방법

크게 2가지
1.
컴퓨터에서 바로 실행하는 방법과 ESP32보드에 업로드하는 방식
컴퓨터 실행방식은 메모리에 저장되지 않음
ESP32보드 업로드 방식은 파일 이름을 main.py로 바꾼 후 저장하는 방식
ESP32보드는 전원이 공급되면
1순위: boot.py파일을 실행한 뒤,
2순위: 장치의 시작 프로그램이자 자동 실행 스크립트로 인식되는 ‘main.py’파일을 실행하게 됨

3-3-5. 스크립트(코드) 저장방식

실전연습: 코드를 다음과 같이 일부 변경(blink)
from machine import Pin import time led = Pin(2, Pin.OUT) while True: led.on() # LED 켜기 time.sleep(1) # 1초 대기 led.off() # LED 끄기 time.sleep(1) # 1초 대기
Python
복사
파일명을 반드시 main.py로
아래 그림과 같이 Micro python장치에 추가된 것을 확인 가능
본체의 왼쪽 reset버튼을 누르면 프로그램이 시작
만약 프로그램을 중지하고 싶다면(=esp32보드에 저장된 스크립트가 계속 실행되는 것을 멈추려면?)
단축키:Ctrl + C