[아두이노야 놀자]<8>E-센서보드와 마이크

마이크를 이용한 게임을 보신 적이 있나요. 마이크에 입을 대고 바람을 불면 바람개비가 돌아가거나 열기구가 떠오릅니다. 우리도 마이크를 이용한 게임 하나를 만들어 볼까요.

먼저 마이크를 이용해 게임을 만들려면 마이크 센서가 있어야 합니다. 다양한 마이크 센서가 있겠지만 E-센서보드(엔트리 센서보드)에 마이크가 기본적으로 달려 있어서 따로 구할 필요가 없습니다. 준비물은 아두이노와 USB케이블, E-센서보드만 있으면 됩니다. 아두이노 보드와 센서 보드를 꾹 눌러서 완전히 결합되게 해주시면 됩니다. 그리고 엔트리 하드웨어 연결 프로그램에서 'E-센서보드(유선연결)'로 연결해야 하는 것 잊지 마세요.

마이크 센서를 이용해 엔트리봇이 로봇 고양이를 피할 수 있게 만들어봅시다.

[아두이노야 놀자]<8>E-센서보드와 마이크

[그림1]처럼 '로봇 고양이'와 원하는 배경을 추가해줍니다. 고양이 X좌표를 300으로 변경해 실행 화면 오른쪽 밖으로 내보냅니다. 그 쪽에서 엔트리봇을 습격하러 올 테니까요. 그리고 크기를 50으로 줄여줍니다. 엔트리봇 크기도 80으로 줄이고 드래그해 왼쪽에 배치합니다.

[아두이노야 놀자]<8>E-센서보드와 마이크

[그림2]처럼 마이크 센서 값에서 엔트리봇 y좌표 값을 빼서, 두 값의 차이가 얼마나 큰지 알아냅니다. 그 두 값 차이에 0.05를 곱해서 20분의 1 크기로 만듭니다. 조금씩 이동하기 위해서입니다. 그렇게 줄여진 값에 4를 빼서 엔트리봇 기본 위치를 밑으로 내려줍니다.

그런데 분명 4를 뺐는데 아무 소리도 없을 때 엔트리봇 y좌표가 -80을 향합니다. 왜 그럴까요. 엔트리봇 y좌표 값이 음수일 때 y좌표 값을 빼면 양수가 됩니다. 그 양수에 0.05를 곱해서 크기를 줄여줍니다. 그 값이 4보다 작으면 -4를 뺐을 때 다시 음수가 되므로 엔트리봇은 아래로 움직이게 됩니다.

그런데 엔트리봇 y좌표가 음수로 커질수록 4를 빼기 전 값이 4에 가까워집니다. 결국 값이 4가 되면 4를 뺐을 때 0이 되므로 엔트리봇은 더 이상 움직이지 않을 것입니다. 그 값이 4가 되려면 엔트리봇 y좌표가 -80이어야 합니다. 그래서 -80을 향하는 것입니다.

[아두이노야 놀자]<8>E-센서보드와 마이크

[그림3]처럼 만일 엔트리봇이 로봇 고양이에게 닿았다면 모든 코드를 멈추고 게임을 끝냅니다.

[아두이노야 놀자]<8>E-센서보드와 마이크

이번엔 [그림4]처럼 '로봇 고양이' 오브젝트를 선택합니다. 게임을 시작하면 2초마다 복제본을 생성합니다.

[아두이노야 놀자]<8>E-센서보드와 마이크

복제본이 생성되면 [그림5]처럼 복제본은 -120, 120 사이 y좌표에서 등장합니다. 엔트리 실행 화면 세로 범위는 -135~135입니다.

[아두이노야 놀자]<8>E-센서보드와 마이크

로봇 고양이가 왼쪽으로 이동하다가 화면 밖으로 나가게 되면 [그림6]처럼 복제본을 삭제합니다.

[아두이노야 놀자]<8>E-센서보드와 마이크

[그림7]처럼 마이크 센서 값을 엔트리봇에만 사용하면 허전하니까 로봇 고양이 속도에도 적용해 보겠습니다.

다른 역할 오브젝트를 추가해 마이크 센서 값을 또 적용해보세요. 아니면 마이크를 이용해서 엔트리봇이 로봇 고양이를 공격하게 만들 수도 있겠네요. 점수도 추가해 보는 건 어떨까요.

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

위방향 화살표