- 피지컬 컴퓨팅의 개념과 입력·처리·출력 구조를 설명할 수 있다.
- 문제 해결에 적합한 피지컬 컴퓨팅 장치(보드·센서·액추에이터)를 비교하여 선택할 수 있다.
- 선택한 장치로 네트워크에 연결되는 사물인터넷 시스템을 설계할 수 있다.
생각 열기 — 시들어 가는 화분을 구하라
교실 창가의 화분이 방학 때마다 말라 죽습니다. 물을 줄 사람이 없으니까요. "물 주는 것을 잊지 말자"라는 다짐은 늘 실패했습니다. 그렇다면 발상을 바꿔서 — 스스로 물을 주는 화분을 만들면 어떨까요?
스스로 물을 주는 화분에 필요한 능력 세 가지를 떠올려 보세요. ① 흙이 말랐다는 것을 아는 능력(감지) ② 물을 줄지 말지 판단하는 능력(처리) ③ 실제로 물을 주는 능력(동작). 이 세 가지를 기계로 만드는 것이 바로 오늘 배울 피지컬 컴퓨팅입니다!
피지컬 컴퓨팅이란
소프트웨어가 현실 세계로 손을 뻗는 방법
피지컬 컴퓨팅(physical computing)은 디지털 세계의 소프트웨어가 현실(physical) 세계와 상호 작용하는 컴퓨팅이에요. 모니터 속에만 있던 프로그램이 센서로 세상을 '느끼고', 모터와 전구로 세상을 '움직이지요'. 2차시에서 배운 사물인터넷의 '사물' 하나하나가 바로 피지컬 컴퓨팅 시스템입니다.
피지컬 컴퓨팅의 기본 구조 — 입력(센서) → 처리(마이크로컨트롤러) → 출력(액추에이터)
피지컬 컴퓨팅 시스템이 혼자 동작하면 자동화 장치에 그치지만, 1차시에서 배운 네트워크로 연결되어 데이터를 주고받으면 사물인터넷 시스템이 됩니다. 화분이 흙의 수분을 측정해 물을 주는 것은 피지컬 컴퓨팅, 그 기록을 클라우드에 보내 내 스마트폰에서 확인하고 원격으로 제어하는 것은 사물인터넷이죠!
두뇌 고르기 — 마이크로컨트롤러 보드
문제에 맞는 두뇌를 선택하는 것이 설계의 시작
피지컬 컴퓨팅의 '두뇌' 역할을 하는 대표적인 보드 세 가지를 비교해 봅시다. 어느 것이 가장 좋은 보드일까요? — 정답은 "문제에 따라 다르다"입니다.
| 구분 | 아두이노 | 라즈베리파이 | 마이크로비트 |
|---|---|---|---|
| 정체 | 마이크로컨트롤러 보드 | 초소형 컴퓨터 (리눅스 OS 구동) | 교육용 마이크로컨트롤러 |
| 강점 | 센서·모터 제어에 최적, 저렴, 켜자마자 즉시 동작 | 강력한 성능 — 카메라 영상 분석, 서버, AI까지 | LED·버튼·센서 내장, 블록 코딩 지원으로 입문 쉬움 |
| 주의점 | OS가 없어 복잡한 연산은 부적합 | 상대적으로 비싸고 전력 소모 큼 | 확장에는 별도 부품 필요 |
| 언어 | C/C++ (스케치) | 파이썬 등 대부분 | 블록, 파이썬, 자바스크립트 |
| 어울리는 문제 | 화분 물 주기, 신호등, 선풍기 등 실시간 제어 | AI 스피커, CCTV 분석 등 고성능 처리 | 걸음 수 측정기, 간단한 게임 등 빠른 프로토타입 |
감각과 근육 — 센서와 액추에이터 도감
무엇을 감지하고, 무엇을 움직일 것인가
👀 센서 — 시스템의 감각 기관 (입력)
온도·습도 센서
공기나 물체의 온도, 습도를 측정 → 에어컨·온실·드라이기 제어
조도 센서
빛의 밝기를 측정 → 자동 가로등, 스마트 커튼
초음파 거리 센서
소리의 반사 시간으로 거리 측정 → 주차 보조, 장애물 회피 로봇
인체 감지(PIR) 센서
적외선으로 사람의 움직임 감지 → 자동문, 방범 장치
토양 수분 센서
흙 속 수분량 측정 → 스마트 화분, 스마트팜
가스·미세먼지 센서
공기 중 유해 물질 감지 → 공기청정기, 화재 경보
💪 액추에이터 — 시스템의 근육 (출력)
LED
빛으로 상태 표시 → 신호등, 전광판, 무드등
DC 모터
빙글빙글 회전 → 선풍기, 바퀴, 드론 프로펠러
서보 모터
정확한 각도로 회전 → 로봇 팔, 자동 창문, 차단기
부저·스피커
소리 출력 → 알람, 경보, 멜로디
펌프·밸브
물이나 기체의 흐름 제어 → 자동 급수, 가스 차단
디스플레이
글자·그림 표시 → 스마트 시계, 안내판
센서와 액추에이터를 골라 연결하고 동작 조건을 정하면, 실시간 그래프와 함께 시스템이 동작합니다. 환경값을 직접 움직이거나 '자동 변화'를 켜서 관찰해 보세요. 코드가 어떻게 바뀌는지도 주목!
① 스마트 화분: 토양 수분 + 펌프, "30 미만이면 켜기" → 자동 변화를 켜고 펌프가 언제 도는지 관찰 ② 자동 가로등: 조도 + LED, "25 미만이면 켜기" ③ 여름철 자동 선풍기: 온도 + 팬, "75 초과면 켜기"(환경값을 온도라 생각하세요) ④ 주차 경보기: 거리 + 부저, "20 미만이면 켜기" + 소리 켜기 — 차가 가까워지면?
IoT 시스템 설계 절차
좋은 시스템은 좋은 설계에서 — 단계를 눌러 보세요
문제 정의
누구의 어떤 불편을 해결할까?
장치 선택
무엇을 감지하고 무엇을 움직일까?
데이터 흐름 설계
데이터가 어디로 흘러 어떤 판단을 거칠까?
네트워크 연결
어떤 통신으로 인터넷과 이어질까?
구현·테스트·개선
만들고, 시험하고, 다듬는다
아래 항목을 채우고 [설계도 생성]을 누르면 나만의 시스템 설계서가 만들어집니다. 완성된 설계서는 인쇄하거나 캡처해서 발표 자료로 쓰세요!
| 해결할 문제 | |
| 센서 (입력) | |
| 액추에이터 (출력) | |
| 보드 · 네트워크 | |
| 동작 규칙 |
✔ 센서가 측정하는 것이 정말 문제 해결에 필요한 정보인가요? ✔ 액추에이터의 동작이 문제를 '실제로' 해결하나요? ✔ 동작 규칙의 기준값(예: 30%)은 왜 그 값인가요? ✔ 네트워크가 끊겼을 때도 안전하게 동작하나요? — 네 가지에 답할 수 있다면 훌륭한 설계입니다!
확인 문제
바로바로 채점! 해설까지 꼭 읽어 보세요.
3차시 확인 문제
4문항 · 즉시 채점
1피지컬 컴퓨팅 시스템의 예로 가장 적절한 것은?
2"카메라로 교실 출입자를 인식해 기록하는 시스템"에 가장 적합한 보드는?
3'스스로 물 주는 화분'에 꼭 필요한 센서–액추에이터 조합은?
4IoT 시스템 설계 절차에서 가장 먼저 해야 할 일은?
더 알아보기
교육과정 너머, 궁금한 만큼 깊이!
심화진짜 아두이노 코드는 이렇게 생겼어요
가상 실험실에서 본 '스마트 화분' 규칙을 실제 아두이노 코드(C/C++)로 쓰면 이렇습니다.
const int PUMP_PIN = 7; // 펌프를 연결한 디지털 핀 번호
void setup() {
pinMode(PUMP_PIN, OUTPUT); // 펌프 핀을 출력으로
Serial.begin(9600); // 컴퓨터와 통신 시작
}
void loop() { // 무한 반복!
int moisture = analogRead(A0); // 토양 수분 읽기 (0~1023)
int percent = map(moisture, 0, 1023, 0, 100);
if (percent < 30) { // 30% 미만이면
digitalWrite(PUMP_PIN, HIGH); // 펌프 켜기
} else {
digitalWrite(PUMP_PIN, LOW); // 펌프 끄기
}
delay(1000); // 1초 쉬고 다시 측정
}
setup()은 전원이 켜질 때 한 번, loop()는 영원히 반복 —
가상 실험실의 "반복하기" 의사코드와 똑같은 구조죠? 마이크로비트라면 같은 내용을 블록 코딩으로,
라즈베리파이라면 파이썬으로 쓸 수 있어요. 언어는 달라도 '감지→판단→동작'의 논리는 같습니다.
코드 속 A0과 7은 변수 이름이 아니라 보드 위 실제 핀의 위치예요.
센서는 아날로그 핀에, 펌프(액추에이터)는 디지털 핀에 — 코드와 회로가 핀 번호로 만납니다.
도구부품이 없어도 OK — 온라인 가상 시뮬레이터
실제 부품 없이도 브라우저에서 피지컬 컴퓨팅을 연습할 수 있는 무료 도구들이 있어요.
- 팅커캐드 서킷 (Tinkercad Circuits) — 드래그앤드롭으로 아두이노 회로를 꾸미고 코드까지 실행. 입문용으로 최고!
- Wokwi — 아두이노는 물론 ESP32, 라즈베리파이 피코까지 시뮬레이션하는 본격 도구.
- 마이크로비트 공식 에디터(makecode.microbit.org) — 화면 속 가상 마이크로비트가 코드를 즉시 실행해 줘요.
설계 캔버스에서 만든 시스템을 방학 동안 가상 시뮬레이터로 직접 구현해 보는 건 어떨까요?
심화세상을 움직이는 보이지 않는 컴퓨터 — 임베디드 시스템
세탁기, 전기밥솥, 엘리베이터, 자동차 한 대에는 수십~수백 개의 작은 컴퓨터가 숨어 있어요. 이렇게 특정 기능을 위해 기계 속에 내장된(embedded) 컴퓨터를 임베디드 시스템이라고 합니다. 아두이노로 만드는 작품들도 임베디드 시스템의 친척뻘이죠.
자동차의 브레이크 제어처럼 정해진 시간 안에 반드시 반응해야 하는 임베디드 시스템에는 실시간 운영체제(RTOS)가 쓰여요. "0.01초 늦은 정답은 오답"인 세계 — 그래서 임베디드 개발자에게는 하드웨어와 소프트웨어를 모두 이해하는 융합 역량이 필요하답니다. 전 세계 CPU의 약 98%는 PC가 아니라 임베디드 기기에 들어간다는 사실!
🚗 자동차 임베디드 탐험 — 자동차 한 대에 숨어 있는 작은 컴퓨터들, 버튼을 눌러 찾아보세요!
진로피지컬 컴퓨팅·IoT 분야의 직업들
임베디드 소프트웨어 개발자
가전, 자동차, 로봇 속 소프트웨어를 만들어요.
IoT 플랫폼 개발자
수백만 기기의 데이터를 처리하는 클라우드 시스템을 설계해요.
로보틱스 엔지니어
센서와 액추에이터의 결정체인 로봇을 만들어요.
메이커·하드웨어 창업가
아이디어를 제품으로! 크라우드펀딩으로 시작하는 사람도 많아요.
스마트팩토리 엔지니어
공장의 설비를 센서로 연결해 생산을 최적화해요.
한눈에 정리
- 피지컬 컴퓨팅 = 센서(입력) → 마이크로컨트롤러(처리) → 액추에이터(출력)로 현실과 상호 작용하는 컴퓨팅
- 보드 선택의 기준은 가격이 아니라 문제의 성격 — 실시간 제어는 아두이노, 고성능은 라즈베리파이, 입문은 마이크로비트
- 센서는 감각, 액추에이터는 근육 — 문제에 필요한 것을 근거 있게 고른다
- 설계 절차: 문제 정의 → 장치 선택 → 데이터 흐름 → 네트워크 → 구현·테스트·개선
- 피지컬 컴퓨팅 + 네트워크 = 사물인터넷 시스템