스쿼트로 점프킹 하기 - Part 1

배너: 스쿼트로 점프킹 하기 - Part 1
스쿼트로 점프킹 하기 시리즈

게임을 어떻게 하면 재밌게 할 수 있을까?

점프킹이라는 게임을 아시나요? 예전에 유행했던 항아리 게임과 비슷한 변태 같이 어려운 게임입니다. 아래 영상을 보시면 어떤 게임인지 이해하기 쉬울 것 같습니다.

영상이 안보이시는 분들은 여기 참고

스페이스바를 오래 누를수록 점프하는 높이가 높아지고 좌우 방향키로 이동할 수 있습니다. 사용하는 키가 단순하고 적당히 어려운 난이도, 스페이스를 누르면서 파워를 충전하는 모습이 스쿼트와 비슷해보여서 이거 스쿼트로 하면 재밌겠다! 싶었습니다. 재앙의 시작

어떻게 만들까?

앞서 설명했듯이 스페이스(점프), 좌우 방향키(좌우 이동) 세 개의 키로만 플레이가 가능합니다. 이 세 개의 키를 어떻게 구성해서 입력을 만들어낼 수 있을까요?

메인 컨트롤러

우선 키보드 입력을 만들어내기 위해서 아두이노 마이크로를 이용했습니다.

아두이노 마이크로

아두이노 마이크로는 아두이노 레오나르도의 소형화 버전입니다. 아두이노를 처음 공부할 때 많이 사용하는 아두이노 우노와의 차이점은 칩셋으로 우노는 ATmega328P를 사용하고 마이크로(또는 레오나르도는) ATmega32u4를 사용합니다.

ATmega32u4는 328P와는 다르게 HID(Human Interface Device)로 인식이 가능합니다. 키보드, 마우스와 같은 장비들이 HID입니다. 그래서 마이크로를 사용하면 별도의 플러그인이나 소프트웨어 개발 없이 USB 연결만으로 컴퓨터로 키보드 입력 신호를 보낼 수 있습니다.

센서

게이머가 스쿼트를 하고 있는 중인 것을 어떤 방법으로 인식할 수 있을까요?

아래 사진은 스쿼트 과정에서 사용되는 근육입니다.

스쿼트에 사용되는 근육

사진: https://steemit.com/kr/@felixcmg/31zml4-1

스쿼트 과정 중 대퇴사두근(quadriceps)과 햄스트링(hamstring)을 사용하니까 스쿼트를 하면 이 부분이 이완 또는 수축을 측정하면 스쿼트 자세를 측정할 수 있을 것이라 생각했습니다.

근육의 이완/수축을 측정하기 위해서 근전도 센서를 사용해봅시다.

근전도 센서

이제 만들어봅시다

스쿼트 점프킹 부품 준비

근전도 센서를 이용해서 점프킹을 하기 위해서 필요한 준비물입니다.

근전도 센서가 더럽게 비싸므로 근전도 센서와 아두이노를 바로 납땜하지 않고 핀 헤더 (소켓)을 이용해서 탈착식으로 만들면 좋을 것 같았습니다.

부품 목록과 구매처

전 항상 이런 글을 볼 때마다 부품을 어디서 샀는지 찾기 힘든게 불편했습니다. 그래서 여기에서는 제가 과정 중 사용한 부품을 모두 공개합니다.

위에서 나열된 부품들은 아래에서 구입할 수 있습니다. 찾을 수 없는 경우에는 동일한 성능을 가진 대체품으로 링크합니다.

부품을 사기 전에 블로그 글을 끝까지 읽어주세요

근전도 센서는 어떻게 사용할까?

뒷면 앞면
뒷면 사진 앞면사진

세 군데에 각각 패드를 붙혀서 사용합니다

근전도 센서 패드를 부착한 모습

나중에 알았지만 이 패드도 1회용입니다 근데 더럽게 비쌈

부품 조립하기

앞서 말했듯이 근전도 센서는 어마무시하게 비싸므로 핀헤더를 달아서 탈착식으로 만들기 위해 핀헤더와 소켓을 적당한 크기(3칸)으로 잘라줍니다.

먼저 핀헤더는 핀 사이에 홈이 있어서 프라모델용 니퍼로도 쉽게 잘립니다. 핀헤더 절단

따라하실 분들은 힘 줄 때 잘라지면서 작은 조각이 튕겨나가니 조심하세요

하지만 소켓은 홈도 없고 잘 잘리지도 않습니다. 소켓을 자르기 위해 줄과 톱을 준비합니다.

소켓 절단 준비물

바이스 등으로 움직이지 않게 고정한 후 줄로 자를 위치보다 한칸 더 길게 잘라줍니다.

소켓 절단

반절정도 잘리면 핀의 내부가 드러나고 여기부터는 꺾어서 끊어낼 수 있습니다. 너무 짧게 딱 세 칸만 자르면 세번째 핀이 빠질 수 있으니 넉넉잡아 네번째 칸 위치를 잘라주는 것이 중요합니다.

소켓 절단면 다듬기

톱으로 자르고 꺾어서 끊어낸 소켓의 절단면은 너무 거칠기 때문에 바이스에 고정시켜놓고 줄로 다듬어줍니다.

소켓 납땜

+, -, SIG 핀에 소켓을 납땜합니다. 반대편에 있는 RAW, SHID, GND 핀은 근전도 raw data를 읽을 때 사용하고 SIG 핀으로는 0~1023까지의 1024단계의 아날로그 데이터를 넘겨줍니다.

아두이노에 연결

전선 3가닥을 적당한 크기(2~3m)로 잘라주고 한쪽 끝을 핀 헤더 소켓에 납땜해줍니다. 이 과정은 깜빡하고 사진을 안찍었네요. 반대쪽은 아두이노에 연결해주면 됩니다. +, -, SIG를 각각 5V, GND, A0 핀에 연결합니다.

전선에 납 먹이기

전선이 한가닥으로 된 단선이면 상관 없겠지만 여러 가닥이 꼬여서 만들어진 연선이라면 전선을 꼿꼿이 편 다음 납을 먹여주면 아두이노에 쉽게 연결 할 수 있습니다.

센서 값은 A0 핀으로 analog read를 하면 읽어올 수 있습니다. 참고

망했다

예, 망했습니다.

허벅지에 붙혀도 값이 이상하게 나오길래 팔에 붙혀서 주먹을 쥐었다 폈다를 반복했습니다.

주먹을 쥐었다/폈다는 구분이 가능하나 쥐고 있는 동안에는 피크를 유지 하지 못하고 떨어집니다. 스쿼트를 얼마나 유지하냐에 따라서 점프 높이가 달라지게 만들어야하므로 좋은 결과가 아닙니다.

주먹을 쥘 당시에는 큰 힘이 들어갔다가 동작을 유지하는 동안에는 그 힘을 유지하지 못해서 떨어지는 것으로 생각 됩니다. 단순히 스쿼트 횟수를 측정하는데는 문제가 없지만 자세를 구분하기 위해서 근전도 센서의 사용은 적절하지 못한 것 같다고 생각해서 결국 근전도 센서 사용을 포기하고 다른 방법을 찾기로 했습니다.

다음 글에 계속.