p168
도입박스
일상에서 겪는 다양한 문제나 궁금증을 풀기 위해 피지컬 컴퓨팅을 활용할 수 있다. 최근에 만들고 싶은 물건이나 해결할 문제가 있을까?
- 마지막 챕터를 두 개의 서로 다른 성격의 프로젝트에 적용하는 것으로 만들면 좋을거 같습니다.
인터렉티브 동화책
스크래치를 이용하면 애니메이션과 사운드 효과가 있는 이야기책을 만들 수 있다. (앞 단원의 국어 주제랑 연계하면 좋겠습니다.) 그런데 기존에 만든 이야기책은 키보드를 눌러서 시작하는 방식이었다. 만약 진짜 책을 펼치면서 스크래치의 이야기책이 진행된다면 어떨까? 책이라는 도구가 컴퓨터로 만들어진 인터렉티브 동화책의 인터페이스가 될 수 있을 것이다.

문제 이해하고 분석하기
- 기존에는 키보드 버튼을 눌러서 이야기책이 시작되도록 만들었다.
- 닫힌 책을 펼쳤을 때, 이야기책이 시작되도록 만들고 싶다.
- 책을 닫으면 이야기책도 끝나도록 만들고 싶다.
- 책이 닫혔는지, 펼쳤는지 상태를 알 수 있는 방법이 필요하다.
- 어떤 센서를 이용하면 알 수 있을까?
입출력 설계하기
- 센서보드에서 있는 센서를 이용해서 책이 펼쳐졌는지 알 수 있는 방법을 찾아야한다.
- 센서보드에는 버튼, 슬라이더, 빛센서, 소리센서가 기본적으로 있다.
- 책이 펼쳐질 때 표지가 닿는 부분에 버튼을 둘까?
- 책이 펼쳐질 때의 소리를 이용해볼까?
- 빛센서를 이용해서 알아낼 수 있는 방법은 없을까?
입력 장치 만들기
- 책 안쪽에 구멍을 뚫어 빛센서를 두기로 했다.
- 책이 닫혀있을 때에는 빛센서가 가려져서 밝기 값이 작아진다.
- 책이 펼쳐질 때에는 빛센서 주변이 밝아져서 밝기 값이 커진다.
- 밝기 값이 어떻게 차이가 나는지 직접 실험해보고 책이 펼쳐짐을 알 수 있는 가장 적합한 값의 범위를 알아보자.

프로그래밍
- 기존에 키보드 키가 눌렸을 때 이야기책이 시작되던 부분을 빛센서 값의 변화로 바꿔보자.

실행 및 오류 수정
- 책이 펼쳐지면 빛 센서값이 커지고 '이야기 시작' 명령이 실행된다.
- 그런데 책이 펼쳐진 상태에서는 밝기값이 커서 '이야기 시작' 명령이 불필요하게 반복적으로 실행되어 이야기책이 계속 처음으로 돌아간다.
- 이야기책이 시작된 이후에는 더이상 '이야기 시작' 명령을 실행할 필요가 없다.
- 현재 이야기가 시작되었는지를 알 수 있는 '변수'를 만들고, 이 오류를 해결해보자.

더 생각해보기
- 책을 닫으면 이야기가 끝나는 기능도 추가해보자.
- 책 이외에도 이야기책을 조작할 수 있는 새로운 인터페이스를 생각해보자.
- 어떤 센서를 이용할 수 있을까?
미디어아트 설치작품 만들기
3단원에서 랜덤워크 드로잉 프로젝트를 만들어보았다. 매번 조금씩 다른 결과물이 나오는 작품이지만 좀 더 재밌게 만들어볼 수는 없을까? 미술관에 가면 관람객이 지나가거나 손을 움직여서 상호작용하는 멋진 미디어아트 작품들을 접하게 된다. 센서보드를 이용해서 랜덤워크 드로잉 작품을 멋지게 전시해보자.
문제 이해하고 분석하기
- 랜덤워크 드로잉 작품이 미술관에 전시되고 있다고 상상해보자.
- 작품 앞에 다가가면 드로잉이 시작되면 좋을거 같다.
- 작품 앞에서 어떤 행동을 해서 더 다양한 결과물로 표현이 되면 재밌지 않을까?
- 어떤 센서들을 이용할 수 있을까?
입출력 설계하기
- 사람이 다가가는 것을 알 수 있는 방법으로는 '근접센서'나 '거리센서'라는게 있다.
- 우리가 가진 센서보드에는 근접센서나 거리센서가 없지만 주어진 센서로 비슷한 효과를 만들 수 있지 않을까?
- 빛 센서를 이용해서 사람이 다가가면 센서 주변이 어두워지게 만들어서 근접센서 효과를 만들 수 있다.
- 그 외에도 관객이 소리를 질러 랜덤워크로 표현되는 작품에 변화를 줄 수 있다.
- 소리의 크기에 따라 선의 굵기나 길이가 달라지게 하면 어떨까?
프로그래밍
- 관객이 다가가서 빛 센서값이 작아지면 그림을 그리도록 수정하였다.
- 관객이 내는 소리에 따라 변수 '보폭'의 값이 변할 수 있도록 수정하였다.
