![](https://img1.daumcdn.net/relay/cafe/original/?fname=http%3A%2F%2Fwww.software.kr%2Fthumbnail%2F1%2Fgq4WeovPh1psKvtOVg3EfQZWgrYTMUVbUhVJr3QFkQqhr8ZKv_2BgxbVqWMcNvJj9M.do)
인터넷 검색창에 ‘피지컬’을 입력하면, 팔과 어깨에 근육이 잔뜩 붙어있는 몸 좋은 운동선수나 영화배우 사진이 검색된다. 이번 칼럼의 주인공은 근육 대신, 센서와 스피커, LED, 모터가 잔뜩 붙어있는 몸 좋은 컴퓨팅 시스템-피지컬 컴퓨팅이다.
❚도대체 피지컬 컴퓨팅이 뭐야
피지컬 컴퓨팅의 개념은 컴퓨터과학보다 뉴미디어아트 분야에서 정립되고 발전되었다. 많은 서적에서 피지컬 컴퓨팅을 ‘디지털 기술 및 장비를 이용하여 사용자로부터 물리적인 방식으로 정보를 입력 받아[Sensors] 처리한 결과를 물리적 방식[Actuators]으로 출력하는 컴퓨팅’ 방식으로 설명하고 있다.
피지컬 컴퓨팅에 대해 알아보기 위해 우선 현재 소프트웨어교육에서 다루는 피지컬 컴퓨팅의 모체(母體)라고 할 수 있는 뉴미디어아트에서의 피지컬 컴퓨팅에 대해 살펴보자. 2008년 2월에 블로그 newmedia20.tistory.com에 탑재된 글에서 뉴미디어아트의 모습을 엿볼 수 있다.
작업 환경을 간단히 설명하자면, 센서를 이용하여, 사람들의 움직임 등을 인식하고, 그 데이터를 마이크로 컨트롤러라는 데이터 처리 칩으로 보내고, 다시 시리얼 케이블 또는 USB 케이블을 통해 컴퓨터로 보내진다. 이때, 연속된 숫자 값을 보내기도 하고, ON 인지 OFF 인지를 보내기도 하는데, 컴퓨터에서는 그 값을 이용하여, 비디오 플레이에 변화를 주기도 하고, 라이트를 껐다가 켜기도 하고, 스크린의 오브젝트들을 움직이거나 크기, 색상 등에 변화를 주기도 한다.
상기 문단의 ‘작업환경’을 ‘소프트웨어교육에서의 피지컬 컴퓨팅’으로 바꾸어도 전혀 어색하지 않다. 실제로 뉴미디어아트에서는 아두이노, 조도센서, 피에조 스피커, LED조명을 많이 쓴다. 뉴미디어아트 작품을 몇 점 소개하면 다음과 같다.
![](https://img1.daumcdn.net/relay/cafe/original/?fname=http%3A%2F%2Fwww.software.kr%2Fthumbnail%2F1%2Fgq4WeovPh1psKvtOVg3EfQZWgrYTMUVbUhVJr3QFkQrN6Jcho6AcJMNVxQNJQxFg.do) | ![](https://img1.daumcdn.net/relay/cafe/original/?fname=http%3A%2F%2Fwww.software.kr%2Fthumbnail%2F1%2Fgq4WeovPh1psKvtOVg3EfQZWgrYTMUVbUhVJr3QFkQruZo4gosaLVDzTacw6UowL.do) |
Dotty Duven의 tate Britain : 관람객이 갤러리 바닥에 설치된 막대를 만지면, 그 위에 설치된 라이트가 켜진다. | Peter Cho의 Takeluma : 설치된 마이크를 이용하여 음성을 입력하면 실시간으로 분석되어 자음, 모음의 기호에 따라 시각화된다. |
공통점은 예술이 도화지나 캔버스, 액자 밖으로 나와서 관람객과 상호작용하며 그들의 자극을 다양한 센서를 통해 입력받아 다시 관람객들에게 예술 작품으로 출력한다는 것이다. 우리가 소프트웨어교육에서 하고자 하는 피지컬 컴퓨팅도 이와 같다고 할 수 있다.
![](https://img1.daumcdn.net/relay/cafe/original/?fname=http%3A%2F%2Fwww.software.kr%2Fthumbnail%2F1%2Fgq4WeovPh1psKvtOVg3EfQZWgrYTMUVbUhVJr3QFkQqO7nD2qjMY8gXZ7mZjiljq.do)
컴퓨팅사고력으로 고안되고 설계된 알고리즘이 CPU와 모니터 속에만 있지 않고, 실세계와 연결되면서 사용자 및 환경으로부터 다양하고 유의미한 감각 정보를 제공받아 처리하고 문제를 해결하는 데에 도움을 줄 뿐만 아니라 실제로 문제를 해결하는 효율적이고 강력한 방법과 도구로 활용되는 것이 소프트웨어교육에서의 피지컬 컴퓨팅의 개념이자 지향점이 된다. 이를 도식화하면 다음과 같다.
컴퓨터 시스템(하드웨어 및 소프트웨어)의 발전 역사를 살펴보면, 컴퓨터는 우리 인간과 보다 깊이있는 상호작용을 가능하도록 발전해왔다. 먼저 하드웨어 분야에서, 지금 글을 쓰고 있는 필자의 워드 프로세서에서도 계속 ‘똑똑’ 말을 걸고 있는 ‘커서’를 예로 들고자 한다. 초창기 컴퓨터는 ‘커서’(물론 커서라는 개념도 없었지만)를 우측으로 옮기려고 한다면, ‘커서 우 100단위’ 정도의 명령을 적은 천공카드를 시스템에 넣거나, 진공관 및 트랜지스터를 이용해야 했다. 이후 시간이 훌쩍 흘러 키보드 자판의 →이 발명되었고, 또 시간이 흘러 마우스 입력장치가 발명되었다. 그리고 지금은 터치 형태로 입력을 할 수 있다. 점점 실제 인간의 행동에 가까워짐을 발견할 수 있다. 천공카드와 →키를 누르는 것은, 커서를 오른쪽으로 가게 하는 것과 억지로 연결된 약속이지만, 마우스를 오른쪽으로 가져가는 것과 터치 패드 위에서 손가락을 오른쪽으로 이동하는 것은 직관적이고 실제적이고 자연스럽다. 피지컬 하드웨어로의 발전이다.
소프트웨어도 마찬가지이다. 임의의 명령을 기계어로 코딩할 때, 천공관-트랜지스터-……-텍스트 기반 언어-블록 기반 언어로 역사는 발전했고, 우리는 보다 쉽고 편안하고 자연스럽게 코딩을 할 수 있다. 한국어 기반의 프로그래밍 언어를 개발했다는 소식도 들었다.
최초의 코딩이 “Hello, World!”이었듯이, 컴퓨터 시스템 속에는 언제나 실세계와의 의사소통이라는 씨앗을 품고 있었고, 하드웨어 및 소프트웨어 기능과 역량이 충분히 발전된 4차산업혁명 시기에 우리는 피지컬 컴퓨팅이라는 이름의 꽃을 피울 수 있게 된 것이다.
❚피지컬 컴퓨팅 교육도구, 많기도 하다
![](https://img1.daumcdn.net/relay/cafe/original/?fname=http%3A%2F%2Fwww.software.kr%2Fthumbnail%2F1%2Fgq4WeovPh1psKvtOVg3EfQZWgrYTMUVbUhVJr3QFkQrWkXnd1iWnpTPVpPK5a1g_2B.do)
피지컬 컴퓨팅 교육도구는 센서의 구성 및 활용방법에 따라 크게 2가지로 나눌 수 있다.
단, 다음의 구분법은 연구자 및 학자에 따라 조금씩 상이할 수 있다.
서킷보드-센서 조립형
![](https://img1.daumcdn.net/relay/cafe/original/?fname=http%3A%2F%2Fwww.software.kr%2Fthumbnail%2F1%2Fgq4WeovPh1psKvtOVg3EfQZWgrYTMUVbUhVJr3QFkQpvmopn5eJq2swFcFqQ_2BP6M.do)
회로가 납땜되어 있는 서킷보드나 격자 모양으로 회로가 구성된 브레드보드(일명 빵판)에 CPU를 비롯한 다양한 센서, 모터, 스피커 등의 입・출력 장치를 사용자가 직접 조립하는 형태. 마시오 벤지Massimo Banzi가 개발한 아두이노Arduino가 대표적이다. 아두이노의 컨트롤러 보드는 버전별로 여러 종류가 있어서 사용자의 컴퓨팅 학습수준 단계 및 구현하고자 하는 과제의 형태에 따라 선택하여 활용하면 된다. 개발자 마시오 벤지가 아두이노를 오픈소스로 공개함에 따라 유사한 하드웨어들이 쏟아져 나오고 있다.
아두이노는 C/C++ 기반의 프로그래밍 언어를 이용해 작업을 한다. 텍스트 기반 언어라고 겁 먹을 필요 없다. 블록 기반 언어인 ScratchX(Scratch의 확장버전)와 엔트리를 사용하여 아두이노를 쉽게 활용할 수 있다.
보드와 각종 센서들을 일일이 연결해주는 과정이 있어서 기초적인 공학 지식을 함께 배울 수 있고, 과제에 따라 다양한 조립과 변형이 가능해 포터블 시스템 및 웨어러블 컴퓨터의 작품 사례를 많이 만날 수 있다.
필자의 수업 경험에 따르면 중학생 이상 또는 초등 영재학급 수업에 적용 가능하고, 작은 부품이 많고 회로 연결 하나하나가 결과물에 영향을 주기 때문에 비교적 소규모 학습자 그룹과 3시간 이상의 차시 계획이 필요하다.
참고로, 블록 조립으로 회로 연결의 어려움을 없애고 초등학생 및 저연령 학습자에게 적합하도록 개발된 레고위두Lego Wedo나 리틀비츠LittleBits 등의 교육자료도 있다.
서킷보드-센서 일체형
말 그대로 보드와 센서가 하나의 하드웨어로 구성된 것을 의미한다. 일반적으로 생각하는 로봇이 그 예가 되겠다. 학교 현장에서 많이 쓰이는 햄스터로봇은 바닥(라인) 센서를 비롯하여 가속도 센서, 온도 센서, 조도 센서, 전방 거리센서 및 LED, 피에조 스피커 등 다양한 입・출력장치가 내장되어 있는 피지컬 컴퓨팅 교구이다. 또한 2개의 외부 확장 단자를 이용하여 내장되지 않은 센서나 모터를 추가로 연결할 수도 있다.
하지만 현재 많은 학교・기관의 학생수업과 교사교육에서 햄스터로봇은 주로 길찾아가기나 미로빠져나오기 정도의 활동에 활용되고 있다. 다양한 센서에서 입력 받은 데이터를 실생활 문제 해결에 사용해야 하는 피지컬 컴퓨팅이 제대로 구현되지 못하고 있는 현실이다.
이제 모터 말고 다른 센서들도 써보자. 사물인터넷I.o.T 시스템도 햄스터로봇으로 구현할 수 있다. 만약 설정한 온도에 따라 스스로 선풍기 전원을 ON/OFF하는 시스템도 만들 수 있다. 하드웨어로는 햄스터로봇의 온도 센서, 선풍기(외부 확장) 모터를 연결하고, 소프트웨어로는 스크래치나 엔트리로 온도 변수에 따른 선풍기 모터 작동 알고리즘을 코딩하면 된다. 비슷한 방법으로 어두워지면 자동으로 켜지고 밝아지는 자동으로 밝아지는 자동차 헤드라이트를 만들 수도 있고, 전방 거리 센서를 활용하여 손을 가까이 가져가면 스스로 뚜껑이 열리는 휴지통을 만들 수도 있다.
그밖에
위에서 언급한 피지컬 컴퓨팅 도구 외에도 아주 많은 컴퓨팅 도구들이 있다. 조립형과 일체형의 중간 성질의 것도 있고, 추가 센서를 연결할 수 있는 일체형 도구도 있다. 학생들의 흥미과 관심도에 따라, 주어진 과제의 종류와 내용에 따라 다양한 컴퓨팅 도구 중에서 선택하는 과정 역시 소프트웨어교육의 의의라고 생각한다. 또한 거의 모든 컴퓨팅 도구들이 비슷한 기능을 비슷한 프로그래밍 언어로 구현하기에, 하나의 피지컬 컴퓨팅 도구만 잘 숙달해도 다른 컴퓨팅 도구로의 전이와 확대가 쉬울 것이다.
❚내 폰이 피지컬 컴퓨팅 도구라고?!
마지막으로 살펴볼 피지컬 컴퓨팅 도구는 스마트폰과 스마트폰 어플리케이션 제작툴이다.
본 칼럼 역시 스마트폰 화면으로 읽고 있는 독자들이 많을 것이다. 스마트폰은 작지만 생각보다 많은 기능과 센서를 내장하고 있다. 주변의 밝기는 인식하는 조도센서, 스크린의 방향을 자동으로 보정해주는 중력센서, 단말기의 속도 변화, 충격 등의 힘 변화를 감지하는 가속도 센서, 현재 위치와 시간 등을 확인할 수 있는 GPS센서, 지구 자기장의 세기를 파악해 나침반처럼 사용할 수 있는 지자기 센서, 외부 음성 신호를 전기 신호로 입력하는 마이크센서, 단말기의 관성력을 이용하여 높이, 회전, 기울기 등을 감지하는 자이로스코프센서, 적외선을 이용하여 단말기와 사용자의 신체 간에 가까운 정도를 인식하는 근접센서, 손바닥에 반사되는 적외선을 감지하여 손 동작을 인식하는 제스처센서, 빛을 감지해 세기의 정도를 데이터로 변환시켜 사진으로 저장하는 카메라센서 등이 있다. 그 외에도 조명, 소리 등을 출력할 수 있는 기능도 내장되어 있다.
그리고 이러한 하드웨어를 활용할 수 있는 소프트웨어 알고리즘은 앱인벤터2라는 블록 기반 프로그래밍 언어로 제작할 수 있다(단, 안드로이드OS용). 앱인벤터2 역시 MIT에서 만든 언어로 스크래치와 같은 블록 기반 언어라 어렵지 않게 코딩할 수 있다.
다음 시간에는 피지컬 컴퓨팅 도구인 스마트폰과 블록 기반 프로그래밍 언어인 앱인벤터2를 이용하여 실생활의 문제를 해결한 수업 사례를 공유하고, 학생들의 컴퓨팅사고력 신장을 위한 다양한 교수학습 방법을 고민해보는 기회를 갖고자 한다.