Skip to content
superclass.io

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

HCI, Arduino, Game4 min read

스쿼트로 점프킹 하기 Pt.2

스쿼트로 점프킹 하기 시리즈
  • 스쿼트로 점프킹 하기 Pt.1
  • 스쿼트로 점프킹 하기 Pt.2

근전도 센서를 포기하고

근전도 센서가 아니면 어떤 방법으로 스쿼트 자세를 파악할 수 있을지 고민을 하다가 헬창드래곤과의 싸움에서 굴복하고 방에서 놀고 있는 링피트를 발견했습니다.

버려진 링피트

레그 스트랩에 조이콘(닌텐도 스위치 컨트롤러)을 끼우고 움직이면 조이콘의 가속도 센서가 다리의 움직임을 파악합니다

레그 스트랩과 링콘

스위치의 블루투스 신호를 캡쳐하는 것 보다 컨트롤러를 직접 만드는게 쉬울 것 같고 이 프로젝트 방향성을 잃지도 않으니 링콘을 빼고 레그 스트랩만 사용하기로 했습니다. 컨트롤러는 가속도 센서를 이용해서 만들어보기로 합니다.

사용하는 부품들

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

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

이전 글에서 소개한 부품은 따로 소개하지 않습니다.

가속도 센서 조립

이번엔 근전도 센서 대신 MPU-6050 6축 자이로 가속도 센서를 이용하기로 합니다. 6축은 6자유도를 의미하며 이 센서에 대한 자세한 내용은 여기에서 확인 할 수 있습니다.

9축 센서도 존재하는데 9축은 6축에 지자기 3축을 포함해서 x, y, z 방향으로의 수평 이동을 측정할 수 있습니다. 하지만 이번 프로젝트에서는 수평이동 없이 회전 운동만을 측정하기 때문에 비싼 9축대신 6축을 사용하기로 합니다.

MPU-6050

센서에 핀 붙히기

센서 패키지를 까보면 아래와 같이 센서와 소켓핀이 -, ㄱ 모양으로 하나씩 총 2개 들어있습니다

센서 패키지

적당한 녀석으로 납땜해줍니다. 센서 납땜

결론부터 말하자면 결국 다른 센서를 또 납땜 했는데 기판에 조립하려면 ㄱ 모양보단 -모양 핀을 납땜 했었어야 했습니다.

손잡이 출력

가속도 센서는 이제 아두이노에 연결만 하면되니 잠깐 접어둡시다. 손잡이는 캐릭터의 좌/우 이동(키보드 방향키)을 담당합니다. 손잡이가 없으면 좌우 이동은 키보르도 해야하기 때문에 불편합니다. 이 프로젝트의 목표는 Keyboard-free 한 게임 환경에서 몸과 마음이 모두 힘든 게임을 지향하기 때문에 버튼이 달린 손잡이가 필요합니다.

모델링 실력이 부족하므로 최대한 단순하게 속이 빈 원통 모양으로 3d 모델링을 하고 출력을 해줍니다.

손잡이 출력

다 뽑혔습니다 출력 끝

Raft를 제거하고 다듬어줍니다 raft 제거

짠! 망했습니다!
너트가 구멍보다 커서 스위치를 고정할 수 없습니다. 망했다

만들고보니 너트가 들어가도 문제였습니다. 너트를 스위치의 나사산과 결합해야하는데 원통이 길고 좁아서 결합할 수가 없었습니다.

그래서 이번에는손잡이의 윗부분을 분리해서 스위치를 결합한 후 뚜겅을 덮어 고정하는 방식으로 수정했습니다.

새로운 모델

짠! 또 망했습니다!
이번엔 뚜껑 사이즈를 잘못계산해서 들어가지가 않습니다 또 실패

그래서 다시 뽑았습니다 이번엔 성공

raft가 잘 안떨어져서 사포로 갈아냈는데 스위치가 들어갈 구멍 모양이 이상해졌습니다. 어쨌든 스위치는 잘 들어가니 문제는 없습니다.

스위치 - 뚜껑 - 와셔 - 너트 순으로 결합해서 고정합니다. 스위치 결합

결합이 끝나면 이런 모양이 됩니다. 결합 완료

이제 스위치에 전선만 납땜하고 아두이노에 연결하면 스위치는 끝납니다.

스위치와 아두이노를 연결한 케이블로는 3.5파이 aux 케이블을 이용합니다. 케이블

aux 케이블을 이용하면 좋은 점은 전원 케이블 1개(vcc or gnd)와 데이터 케이블 2~3(3극, 4극에 따라서)개를 선 하나로 퉁칠 수 있어서 사용할때 훨씬 깔끔합니다.

위 사진처럼 F소켓 쪽에 가깝게 자르고 케이블 스트리퍼로 바깥 피복을 벗겨주면 검정, 빨강, 노랑 케이블이 존재합니다.

그럼 테스터기를 가져와서 어떤 케이블이 어떤 핀에 연결되어있는지 찍어봅니다. 테스터기

여기에서 aux 핀 구조를 확인하면 좀 더 이해가 쉬울 것 같습니다.

어떤 선을 이용하던 상관 없습니다. 여기에선 검정색과 빨간색 선을 이용해봅시다. 이제 스위치와 aux 케이블의 긴 쪽을 연결합니다. 나머지 짧은 쪽은 아두이노와 연결하는데 사용합니다. 스위치와 케이블 연결

스위치와 케이블 연결부가 불안할 것 같아서 수축튜브로 감싸주기로 했습니다. 멍청하게도 납땜 전에 끼우고 했었어야 했는데 반대쪽으로 들어가지 않습니다. 수축튜브도 실패

어차피 수축튜브가 있다고 해서 신호가 더 잘 가는 것도 아니니 그냥 깔끔하게 포기합니다.

이제 손잡이 뚜껑과 몸체를 결합합니다. 뚜껑 연결

계속된 모델링 실패에 뇌정지가 와서 뚜껑과 몸체의 유격이 없게 뽑은 나머지 잘 들어가지 않으므로 힘으로 쑤셔 넣으면 들어갑니다. 역시 몸과 마음이 모두 힘든 게임

이렇게 손잡이가 완성됐습니다. 손잡이 완성

아두이노 연결

이제 이 값들을 컴퓨터로 보내 줄 아두이노를 연결합니다. 그 전에 아두이노에 핀을 납땜해줍니다.

아두이노

적당한 크기의 만능기판을 준비하고 부품을 배치한 후 위치와 절단 포인트를 그려줍니다. 부품위치와 절단 포인트

그리고 절단 선대로 잘라줍니다. 과정은 넘어갔지만 기판을 고정한 후 줄로 살짝 갈아서 길을 내주고 톱으로 잘라주면 됩니다. 이 과정에서 먼지가 엄청 나오기 떄문에 마스크를 쓰고 작업하고 환기까지 해주도록 합니다. 기판 절단 완료

기판에 그려뒀던 부품 위치는 절단 후 알코올로 닦다가 같이 닦여버렸습니다. 이건 제가 멍청했던걸로~

핀이 연결된 아두이노를 기판에 연결해야합니다. 이전에 표시해 둔 위치에 아두이노를 꽂고 납땜합니다. 테이프로 고정해두면 뒤집어도 떨어지지 않아서 납땜하는데 편합니다. 아두이노 기판에 납땜

그리고 기판에 aux f 소켓을 납땜하려고 피복을 더 벗기는데 ?? ???

얼떨결에 접합수술을 완료하고 다시 붙힌 빨간 케이블

테스터기로 찍어봤지만 연결되지 않습니다 과정에 대한 사진은 없지만 검-빨 케이블이 내부에서 검-노 케이블로 바뀝니다. 다른 aux 케이블도 이렇게 되는지는 모르겠습니다만 혹시 따라하실 분들은 참고하시고 꼭 테스터기로 찍어보세요

어차피 검-노 케이블 쓸꺼였으면 접합은 쓸모 없었다~

어쨌든 이렇게 삽질을 통해서 모든 부품들을 기판에 납땜했습니다 납땜 완료

아두이노를 컴퓨터에 연결하면 빛이 들어옵니다 컴퓨터에 연결

스위치를 눌렀을 때 좌우 방향키를 눌러서 이동을 할 수 있도록 스케치를 작성하고 테스트 해봅니다.

아두이노를 허벅지에 고정해야하기 때문에 최대한 납작하게 만들기 위해 기판 뒤에 튀어나온 핀들을 잘라서 정리해줍니다. 핀 정리 핀이 생각보다 두꺼워서 프라모델 니퍼로는 꿈쩍도 하지 않으니 좀 큰 녀석으로 조졌습니다.

핀을 잘랐지만 뾰족해서 바로 사용하면 허벅지가 아프기 때문에 빵판 위에 올려서 고정합니다. 빵판에 고정

링피트 레그 스트랩이 드디어 등장합니다. 조이콘을 넣는 망에 넣기에는 크기가 많이 크기 때문에 밴드와 허벅지 사이에 넣어서 고정합니다. 다리에 고정

스케치는 MPU-6050 센서 라이브러리 예시 코드를 적당히 변형시켜서 작성했습니다.

케이스를 만들어서 끼워줍니다. 역시 계산에 실패해서 너무 작게 나온 나머지 뚜껑은 덮을 수 없었습니다. 케이스 씌우기

역시 raft는 떼기 힘들기 때문에 뜻밖의 데코가 되었습니다 raft 제거 실패

이대로 레그스트랩에 넣을 수 있을줄 알았지만 생각보다 크기가 너무 컸습니다. 그래서 머니 클립을 뽑아서 붙힌 후 스크랩에 끼워서 사용하기로 했습니다

먼저 클립을 뽑고 머니클립

먼저 뽑아놓은 케이스 뒷면에 순간접착제로 붙힙니다 케이스에 붙히기 클램프로 누름

그럼 레그스트랩에 이렇게 고정할 수 있습니다 고정

외전

정품 보드는 너무 비싸서 호환보드를 썼더니 usb 연결부 납땜이 떨어졌습니다. 어떻게 이런 일이 가능한지는 모르겠지만 보드가 기판에 바로 납땜되어있어서 사실상 수리가 불가능합니다.

usb 분리 1

usb 분리 2

그럴 일은 없겠지만 혹시나 따라서 만드실 때는 보드와 기판 사이에 핀 소켓을 사용해서 교체 가능하도록 만드시면 될 것 같습니다.