[아두이노야 놀자]<9>E-센서보드와 슬라이드

오디오 볼륨을 섬세하게 조절하려면 무엇이 필요하나요? 보통 손잡이를 돌려서 조절하지만, 슬라이드를 밀어 조절하기도 합니다. DJ나 방송국에서 흔히 볼 수 있어요. 그런데 이 슬라이드, 게임에도 적용할 수 있어 보여요. '핑퐁' 게임은 어떨까요?

이전에 활용해 봤던 조도 센서, 마이크 센서와 슬라이드 공통점은 무엇일까요. 아날로그 포트에 연결해서 아날로그 신호를 입력할 수 있다는 점입니다. E-센서보드 슬라이드는 '가변저항' 모듈입니다. 여러분이 저항 값을 수동으로 조절할 수 있습니다.

E-센서보드 구성을 다시 봅시다. 슬라이드는 아날로그 2번 포트에 연결됐습니다. 아날로그 2번 값을 받아와 적용하면 됩니다. 준비물은 아두이노와 USB케이블, E-센서보드입니다. 아두이노 보드와 센서보드를 꾹 눌러 완전히 결합하면 됩니다. 엔트리 하드웨어 연결 프로그램에서 'E-센서보드(유선연결)'로 연결해야 합니다.

[아두이노야 놀자]<9>E-센서보드와 슬라이드

[그림1]처럼 3개 오브젝트를 추가합니다. 이제 센서1, 2를 조작하도록 만들겠습니다.

[아두이노야 놀자]<9>E-센서보드와 슬라이드

[그림2]처럼 슬라이드 아날로그 값의 범위는 0~1023입니다. 이것을 -90~90 사이로 좁혀서, y좌표에 적용합니다. 한 오브젝트에서 코딩하고 다른 오브젝트에 복사하면 편리합니다.

[아두이노야 놀자]<9>E-센서보드와 슬라이드

[그림3]처럼 공이 움직이는 속도를 조절하기 위해 '속도' 변수를 추가합니다. 기본값은 3으로 지정합니다. 난이도를 높이고 싶다면 기본값을 크게 지정해주세요.

게임을 시작하면 공의 방향을 오른쪽으로 정합니다.

[아두이노야 놀자]<9>E-센서보드와 슬라이드

[그림4]처럼 너무 아래나 위로 향하지 않도록 50~130 사이 수로 정해줍니다. 그리고 명령을 반복하다가 왼쪽이나 오른쪽 벽에 닿으면 명령을 끝내도록 합니다.

공은 '속도' 값만큼의 속도로 움직입니다.

[아두이노야 놀자]<9>E-센서보드와 슬라이드

[그림5]처럼 위나 아래쪽 벽에 닿으면 밖으로 나가지 않도록 튕기고, 공 속도는 아주 조금씩 상승합니다. 0.01로 지정하면 너무 빨라져서 0.001을 더하기로 했습니다.

센서 오브젝트(이하 막대기)에 닿았을 때에도 튕겨야 합니다. 먼저

[아두이노야 놀자]<9>E-센서보드와 슬라이드

[그림6]처럼 막대기에 닿았을 때 공이 걸려서 튕겨나가지 못하는 현상을 막기 위해 이동하던 방향의 반대 방향으로 한 번 물러나줍니다. 그리고 공의 방향을 반대로 바꿔 튕기도록 해 줍니다. 그런데 정방향으로만 튕기면 지루할 수도 있어요. 그래서 방향을 약간 비틀어주기 위해 350~370 사이 값에서 공의 방향을 빼 줍니다. 각도는 0~360이기 때문에, -10~10 사이 값에서 빼는 것과 똑같습니다.

이렇게 핑퐁 게임을 완성했습니다. 얼마나 빠른 속도까지 버티는지 시도해보세요. 슬라이드2를 키보드로 조작할 수 있게 만들거나, 새 가변저항 모듈을 센서보드에 연결해 조작하도록 만들면 2인용 게임으로 재탄생시킬 수 있어요.

도움말=김지원 커넥트재단 연구원

위방향 화살표