지금까지 쓴 피지컬 컴퓨팅 관련 글은 모두 다른 기계 장치나 센서(스마트 카메라, 초음파 센서 등)가 필요한 작품이었습니다. 이러한 장치가 없는 사람들은 따라 하기 힘든 내용일 것이라 생각됩니다.
따라서 오늘은 할로코드만 사용하여 만들 수 있는 작품을 소개하려고 합니다.
앞서 이야기했듯이 할로코드에도 여러 센서와 기능들이 탑재되어 있습니다. 오늘은 그중 버튼과 led를 이용하여 초시계를 만들어 보겠습니다. 오늘 만들 초시계의 포인트는 총 12개의 led를 10초 동안 순차적으로 켜지게 하는 것과, 10초 단위로 빛의 세기가 달라지게 하는 것입니다.
지금부터 작품 제작 과정을 설명하겠습니다.
오늘은 장치가 어떻게 작동하는지 눈으로 확인을 먼저 한 후에 과정을 설명하겠습니다.
위 영상에서 보이는 것과 같이 led 빛이 한 바퀴 도는데 10초가 걸리고, 그 후에는 빛의 세기를 조금 더 세게 바꾸어서 다시 10초 동안 돌게 됩니다.
오늘 만들 작품의 준비물은 앞서 이야기했듯이 할로코드만 있으면 됩니다. 코딩을 다 한 후에 컴퓨터 없이 사용하기 위해서는 배터리도 있으면 좋을 것 같습니다.
이제 코딩할 준비를 해보겠습니다.
mblock를 실행하고 할로코드를 컴퓨터와 연결한 후 할로코드 장치를 추가합니다.
오늘은 다른 센서가 필요 없기 때문에 확장 아이콘은 누르지 않습니다.
지금부터 코딩을 시작해 보겠습니다.
코딩 시작 전에 오늘은 변수를 2개 설정해 주어야 합니다. 하나는 빛이 들어와야 하는 led를 설정해 주기 위해 필요하고, 나머지 하나는 빛의 세기를 조절하기 위해 필요합니다.
위와 같이 변수를 만들면 됩니다.
먼저 버튼을 눌렀을 때 실행되도록 하기 위해 이벤트 꾸러미에서 버튼을 눌렀을 때 블록을 가지고 옵니다. 그리고 시작할 때의 변수 값을 지정해 줍니다. 빛의 세기 변수는 10으로 설정(너무 적으면 빛이 약해서 구분이 안됨)하고 led번호는 첫 번째 led부터 켜져야 하므로 1로 설정합니다.
그리고 반복 횟수는 빛이 더 이상 밝아지지 않을 때까지 반복합니다. 최대로 낼 수 있는 빛의 세기는 255입니다. 따라서 빛의 세기가 255 이상이면 반복을 중단합니다.
이제 빛이 하나씩 켜지도록 시간을 설정해 보겠습니다. 총 12개의 빛이 10초 동안 켜져야 하므로, 처음 led에서 다음 led로 넘어갈 때 기다려야 하는 시간은 10/12초입니다. 실제로 이렇게 설정하고 10초 동안 한 바퀴를 돌 수 있는지 영상을 통해 확인해 보겠습니다.
정상적으로 작동하기 때문에 아래와 같은 블록을 만들어서 반복하기에 삽입합니다.
다음 led 빛이 1번부터 12번까지 순서대로 하나씩 켜져야 하기 때문에
위 블록을 가지고 옵니다. 그리고 led 번호가 1씩 올라가면서 바뀌어야 하기 때문에 처음에 만들어놓은 led번호 변수를 1 대신 넣습니다. 그리고 빛의 세기도 바뀌어야 하기 때문에 R 255 대신 빛 세기 변수를 넣습니다.
그리고 led 번호를 1씩 변경해야 하기 때문에
위 블록을 뒤에 연결합니다. 지금까지 나온 블록을 반복하기 안에 넣으면
위와 같은 모습이 됩니다.
여기까지는 led 빛이 10/12초 만에 하나씩 켜지게 하는 과정이었습니다. 지금부터는 한 바퀴 돌았을 때 빛의 세기가 달라지는 코딩을 해보겠습니다.
먼저 led가 한 바퀴 돌았을 때 바뀌어야 하므로 조건문을 만들고 led 번호가 13이 되면을 삽입합니다.
여기서 12가 아니라 13으로 설정한 이유는, 12로 설정할 경우 마지막 led가 켜지지 않고 바로 위 조건문이 실행되기 때문입니다. 따라서 12번째 led가 켜지고 난 다음 13이 될 때 조건문이 실행되도록 하기 위해 13으로 설정하였습니다.
led가 13이 되면 led 번호를 1로 초기화해야 합니다. 그리고 빛 세기를 50만큼 변경합니다. 여기서 50은 제가 임의로 설정한 값이기 때문에 다르게 바꾸어도 관계없습니다. 두 변수를 설정한 값을 조건문에 넣으면
위와 같은 모습이 됩니다. 이제 이 조건문을 반복하기 안에 넣고, 모든 블록을 결합해 보겠습니다.
완성된 코드는 위와 같습니다.
지금까지 할로코드를 이용하여 초시계를 만들어 보았습니다.
이렇게 다른 센서나 장치 없이 할로코드만 이용해도 여러 작품을 만들 수 있습니다.
할로코드가 있다면 자녀 혹은 학생과 함께 만들어 보아도 좋을 것 같습니다.
감사합니다.