목차(클릭하세요)
사실 피지컬 컴퓨팅 교육은 중학교- 마이크로비트, 고등학교-아두이노가 최적화 과정인데
고등학교 교육과정에서 실제로 더 많은 활용가치를 가지는 파이썬을 피지컬 컴퓨팅과 융합하기 위한 고민중
[해결책1]-라즈베리파이 피코, ESP32, 파이보드, 마이크로 비트 등이 존재함
[해결책2] 근데 또 해결책1의 경우에는 회로 연결하느라 정작 코드작동 로직이나 센서와 엑츄에이터 상호작용에는 신경을 덜 쓰는 문제를 해결하기 위해 파이파이 키트를 기반으로 글을 연재
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
전압 주의
•
ESP32는 3.3V 동작!
•
5V 센서 연결 시 레벨 시프터 필요
•
직접 5V 연결하면 보드 손상 위험
2. 마이크로 파이썬 IDE
2-1. Thonny
•
"초보자를 위한 파이썬 전용 IDE - 마이크로파이썬 보드 제어가 특히 쉬움"
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핀
•
•
특별히 주의할점: 개발확장보드에 있는 전원부는 단순히 전원공급용이며, 코딩시 사용할 수 없음
•
외형 구조상의 특이점
•
보드에 전원을 공급하면 켜지는 빨간색 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































