포토인터럽터를 사용한 코인기 제작

코인기 제작

코인기를 넣고 싶었는데, 아무리 봐도 10인치 바탑에는 기존 코인기(https://goo.gl/s7XVrT)를 넣을 공간이 보이지 않았습니다.
방법이 없을까 폭풍검색하다 보니 라즈겜동에 영민님이 올리신 글(http://cafe.naver.com/raspigamer/8350)에서 힌트를 얻어 직접 제작해 보았습니다.

포토인터럽터

포토인터럽터(https://goo.gl/hEd9E2)는 적외선 센서를 통해 뭔가 지나가면 신호를 보내주는 부품입니다.
아직까지 라즈베리파이나 아두이노에 대해 무지하여 또 다시 검색해 보니 파이썬으로 라즈베리파이의 GPIO를 제어할 수가 있더군요.

코인기 구성

대략적으로 아래와 같이 동작하고 싶었습니다.

  • 기존 Select 버튼 (Coin용) : Select 버튼 배선에 스위치를 달아서, 내가 할때는 Select 버튼을 활성화, 남이 할때는 비활성화
  • 코인기 : 포토인터럽터를 GPIO에 연결하여 동전이 지나갈때, 기존 Select 버튼 누른것과 같은 신호를 전송

포토인터럽터 제어를 위한 파이썬 코드는 아래의 링크를 참고하였습니다.

전자적 이론이 부족하다 보니, 풀업/풀다운이 뭔지를 몰라 한참해맸는데요. 아주 쉽게 정리된 블로그가 있네요

미니바탑의 측면에는 구멍을 뚥고 코인기 슬롯으로 꾸며주었습니다.
처음에는 구글링한 이미지를 사용했는데요.
최종적으로는 코인기 슬롯에 자판기에서 사용하는 것(https://goo.gl/K4o4u3)으로 교체하였습니다.

 

바탑의 내부에는 동전이 지나갈 수 있도록 우드락으로 동전길을 만들어주고, 포토인터럽터를 중간에 끼워줬습니다.
동전통은 다이소에서 1000원짜리 나무그릇을 사용하였습니다.

SELECT 버튼에는 키 스위치(https://goo.gl/jzsBFm)를 연결해주었습니다.
열쇠로 잠궈두면 버튼을 통한 무한 코인은 못하게 됩니다.

GPIO 연결 및 제어

코인기를 위해 GPIO는 아래와 같이 연결하였습니다.
빨간색 네모로 표시한 부분이 포터인터럽터를 연결한 부위입니다.

파이썬에서 GPIO를 제어하기 위해 관련 패키지를 설치하였습니다. 

코인기를 위해 작성한 파이썬 코드입니다.
GPIO 모드를 BOARD로 설정하였고, 위의 그림처럼 COIN과 SELECT를 핀번호를 설정하였습니다.

동전이 지나가면 이벤트 핸들러가 실행되는데요. 동전으로 적외선 센서가 막혔을때 0, 동전이 지나가면 1 값이 찍힙니다.
0값일때 SELECT 버튼과 연결된 GPIO쪽으로 GPIO.LOW와 GPIO.HIGH를 출력했습니다.

 

자동 실행

부팅시 자동으로 실행되도록 하기 위해서는 서비스에 등록할 수 있습니다.

1) /lib/systemd/system/coin.service

2) 시스템 부팅시 자동실행되도록 서비스 등록

저는 retropi 환경이므로, 그냥 쉽게 autostart.sh 에서 실행될 수 있도록 수정하였습니다.
/opt/retropie/configs/all/autostart.sh 의 맨 윗줄에 아래와 같이 등록합니다.

Notice

  • 이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스
  • 저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.
  • 댓글에 대한 답변은 늦을 수도 있습니다.
  • 1 댓글

    1. 핑백: 10인치 바탑 게임기 제작기 - Kimstar 3.0

    댓글 남기기