프로젝트

나도 메이커! 메이커스 여러분들의 작품/프로젝트를 공유하는 공간입니다.

DIY Gamebuino 만들기

2016-09-12 16:40:56

안녕하세요! Klant{;]입니다.

어느덧 무더위가 지나고 선선한 가을이 찾아왔습니다. 

여러분들도 긴팔 옷들을 꺼내고 계신가요?ㅎㅎ

 

이번 프로젝트는 '오렌지보드 나노'를 이용해 만든 프로젝트를 여러분게 소개드릴려고 합니다. 

오렌지보드 나노의 경우 조그만한 사이즈로 아두이노 UNO와 동일한 스펙을 사용할 수 있다는 점이 큰 장점인 것 같은데요!

아무래도 프로젝트를 만들다보니 큰 사이즈의 보드보다 컴팩트한 사이즈의 보드를 더 선호하게 되는 것 같습니다. 

지금부터 여러분께 소개해드릴 프로젝트!! 어떤 프로젝트일까요? 지금 만나보시죠!

 

 

 

 

 

 

개요

 

오렌지보드를 활용해 만든 이번 프로젝트는 'DIY Gamebuino 만들기' 입니다. 

GameBuino가 뭐냐구요? 아직 Gamebuino에 대해 생소하신 분들이 많이 계실텐데요~

Gamebuino가 뭔지 살펴보도록 할까요?

 

Gamebuino를 알아보기 전에 Arduboy에 대해 알아 볼 필요가 있을 것 같은데요!

Arduboy라.... 뭔가 이름부터 아두이노와 관련이 있을 것 같은 이름이죠?

 

 

Arduboy는 아두이노 Micro, leonardo에 들어가는 MCU인 ATmega32u4를 사용해 만든 미니 게임기입니다.

Kick starter(크라우드 펀딩)에서 성공적으로 펀딩을 받은 제품이기도 하죠!

Arduboy는 공식 홈페이지를 통해 유저들 개개인이 만든 게임을 공유할 수 있고, 다른 유저가 만든 게임을 직접 해볼 수도 있습니다. 정말 재밌겠죠?

자세한 내용은 코코아팹의 Arduboy 리뷰를 읽어보시면 좋을 것 같습니다.

 

Gamebuino는 Arduboy와 양대 산맥을 이루는 arduino 게임기입니다. 

Arduboy와 같이 공식 홈페이지를 통해 사용자가 직접 만든 게임을 서로 공유할 수 있으며, 다른 사용자가 만든 게임을 직접해볼 수도 있습니다. 

Gamebuino에 대해 좀 더 자세히 알아볼까요? 

 

 

- CPU : atmega328 @ 16Mhz

- Display : 84*48px monochrome + auto backlight

- Sound : magnetic speaker, 4 channels

- Input : Arrows + A, B, C Button

- Communication : 1x micro USB, 1x micro SD card, 2x I2C, 1xICSP

- Battery : ~12-24h life, 300mAh LiPo battery, charged through USB

- Power : 3.3V, 150mA max

- Dimmensions : ~credit card sized : 90*45*12 mm (3.5*1.8*0.5″)

 

제품 사양을 스윽 훍어보고 나서 가장 먼저 든 생각은 '오렌지보드로도 만들 수 있겠다'였습니다.

사용된 부품들이 평소에 프로젝트에서 많이 사용되는 부품들이였기 때문이죠ㅎㅎ

눈치 빠른 분들은 눈치를 채셨겠지만, Gamebuino는 아두이노 UNO에 탑재된 atmega328을 사용합니다. 

이 말인 즉슨 오렌지보드로 못만들 이유가 없다는 것이죠!

 

완전한 완제품을 만든 것은 아니지만, 여러 삽질(?)을 하며, 오렌지보드 나노를 이용해 gamebuino를 구현해보았습니다. 

여러분들은 삽질을 하면 안되겠죠? 

 

 

gamebuino를 제작하면서 검색한 자료들을 바탕으로 Gamebuino를 DIY하는 방법과 과정에 대해 소개하려고 합니다. 

얼른 만들어 재밌는 고전 픽셀 게임들을 즐거보도록 해야겠죠?~ㅎㅎ

 

 

자 그럼 지금부터 시작해볼까요? 

 

 

 

 

 

 

 

관련 튜토리얼 

 

이번 프로젝트에서는 Nokia 5110, 피에조부저, 스위치를 사용합니다. 

코코아팹 컨텐츠를 참고해 미리 사용법을 익혀주세요!

* 제작을 진행하시기전 아래 링크를 통해 각 모듈의 라이브러리 다운로드와 함수 사용법을 인지하시는 것을 권장드립니다.

 

- Nokia 5110 활용하기

- 피에조 부저 사용하기

- 스위치 사용하기

 

 

 

 

 

 

부품 목록

 

Gamebuino 제작에 사용할 부품은 아래와 같습니다.

 

NO 부품명 수량 상세설명
1 오렌지보드 NANO 1 Arduino NANO
2 Nokia 5110 LCD 1  
3 택트 스위치 7 mini
4 피에조 부저 1  
5 10KΩ 저항 4  
6 1KΩ 저항 1  
7 330Ω 저항 1  
8 브레드보드 2 half + 
9 점퍼케이블 20개 이상  

 

부품명 오렌지보드 NANO Nokia 5110 택트 스위치 피에조부저
부품 사진
부품명 저항 브레드 보드 점퍼 케이블
부품사진

 

 

 

 

 

 

 

하드웨어 메이킹 

 

* GameBuino 라이브러리를 사용할 것이기 때문에 라이브러리에서 지정한 포맷에 맞게(아래 그림대로) 연결을 해주셔야합니다. 다른 방식으로 연결을 원하시는 분은 Gamebuino 라이브러리(h, cpp 파일)를 찾아서 수정을 진행해주셔야 합니다.

 

브레드보드 레이아웃

 

1. Nokia 5110

1. RST A0
2. CS or CE A1
3. DC A2
4. DIN 11
5. CLK 13
6. VCC 3.3V
7. LIGHT (선택 사항) GND
8. GND GND

* nokia 5110 LCD의 종류(제조사)의 1번부터의 나열 방향일 다를 수 있습니다. 그럴 경우 위 표를 참고해 연결을 진행해주시면 됩니다! ;)

 

 

 

 

2. 스위치

Up Button D9
Right Button D7
Down Button D6
Left Button D8
A Button D4
B Button D2
C Button A3

 

 

 

 

3. 피에조 부저

Piezo Buzzer D3

* 8Ω 스피커를 사용하는 것이 좋으나 저는 피에조 부저로 대체하였습니다. 8Ω 스피커를 가지고 계신 분들은 스피커를 사용하시는게 좋겠죠? 이때 100Ω 저항을 연결해주셔야 합니다. 

 

 

 

 

 

 

소프트웨어 코딩

 

1. Gamebuino 라이브러리 다운로드

Gamebuino WiKi에 접속해 Gamebuino 라이브러리를 다운로드 받습니다.

혹은 아래 링크를 통해서 zip 파일을 다운로드 받으시면 됩니다. 

>> Gamebuino 라이브러리 다운로드 <<

 

 

 

다운로드 받은 zip 파일의 압축을 해제한 후 Arduino의 libraries(program files -> Arduino -> libraries) 폴더에 이동시킵니다. 

 

*라이브러리 설치에 대한 방법은 아래 코코아팹 컨텐츠를 참고하시면, 라이브러리를 추가하는 방법에 대해 상세한 설명을 보실 수 있습니다. 

>> 라이브러리 설치하기 << 

 

 

 

라이브러리까지 추가가 완료되었다면, 예제 소스를 통해 하드웨어 연결은 제대로 하였는지, 그리고 diy Gamebuino에서 게임이 잘 작동하는지 확인해봐야겠죠? 

아두이노 IDE를 실행한 후 [파일] - [예제] - [Gamebuino] - [2.Intermediate] - [Pong]을 실행시켜줍니다. 

 

 

 

보드 종류(Arduino Nano)와 포트를 설정해준 후 오렌지보드 나노에 업로드를 시켜볼까요? 두근 두근~ 

 

 

 

아래 그림과 같이 nokia 5110 LCD에 화면에 게임 메인 화면이 출력되면 우선 LCD는 이상없이 연결이 완료된 것입니다! ;)

화면에서도 알 수 있다시피 메인 화면에서는 3개의 버튼을 통해 조작을 할 수 있습니다. 각 버튼에 대한 조작은 아래와 같습니다.

 

A Button 게임 시작
B Button 음량 조절
C Button SD 카드 불러오기(검색)

 

 

 

자 그럼 각 버튼들이 잘 동작하는지 게임을 통해서 테스트를 해보도록 할까요? 

Pong Game의 경우 Up Button과 Down Button을 통해서 게임 조작을 할 수 있도록 되어있네요. 

게임 효과음이 잘 나오는지 확인을 통해 피에조 부저가 잘 연결되었는지 확인해 볼 수 있겠죠?

게임 중 C Button을 누르면 메인 화면으로 돌아가게 됩니다!

게임에 신난 Klant! ;) 컴퓨터를 이기기 위해 기를 쓰고 했네요ㅎㅎ

 

간단한 게임을 통해 동작에 이상없는지 테스트를 마췄습니다.

이 간단한 게임으로는 뭔가 성이 차지 않죠?

자 그럼 이제 Gamebuino 사용자들이 제작한 재미난 게임들을 직접 해보도록 할까요? 

빨리 보고싶으시다구요? 자~ 지금 바로 알아보도록 할게요! ;) GO! GO!

 

 

 

 

 

 

2. 게임 설치하기

 

자 이제 직접 만든 diy Gamebuino에 다른 게임을 업로드 해보도록 하겠습니다. 

Gamebuino에 게임을 업로드하는 방법은 총 2가지가 있습니다. 방법은 아래와 같습니다. 

 

- SD 카드 : hex 파일을 SD카드에 저장한 후 SD카드에서 게임을 불러오는 방법

- USB : USB 케이블을 통해 PC에서 ino 파일을 통해 게임을 업로드하는 방법

 

현재 SD Card 사용 이슈가 있어 이번 포스팅에서는 USB를 통해 Gamebuino에 게임을 올려보도록 할게요! ;)

 

 

게임을 다운로드하기 위해 Gamebuino 홈페이지에 접속합니다.

홈페이지에 접속 후 상단의 메뉴 바에서 Game을 클릭하면, 다양한 게임들이 나오는 것을 확인할 수 있습니다. 

우왓! 벌써부터 설레는데요?

 

 

 

어떤 게임을 해볼지 고심하던 중 저는 UFO-RACE라는 게임을 선택하였습니다ㅎㅎ

아래 그림과 같이 게임에 마우스를 오버해 그림에 표시된 다운로드 버튼을 클릭해줍니다.

 

 

 

다운로드 버튼을 클릭하면 대부분의 게임들이 Github 페이지로 이동하게 됩니다. 

아래 그림에 표시된 Clone or download 버튼을 클릭해 Download Zip을 선택하여 파일을 다운로드 받아줍니다. 

 

 

 

다운로드 받은 UFO-Race-Master의 압축을 푼 후 디렉토리의 src 폴더에 들어가면 ino파일이 있는 것을 확인할 수 있습니다. 

 

 

 

디렉토리 안에 있는 ino 파일 중 하나를 클릭하여 실행시켜 줍니다. 

highscore ino 파일을 눌러도 IDE에서 uforce ino파일이 실행되는 것을 확인할 수 있습니다. 

그 이유는 uforce 파일이 메인 ino 파일이기 때문인데요. 메인 ino 파일이라는 점은 void setup과 loop문을 가지고 있는 파일이라는 이야기입니다. 

다시 말하면, ino 파일을 모듈처럼 사용할 수 있다는 이야기입니다. 

예를들어 같은 디렉토리에 존재하는 다른 ino 파일에서 함수만을 만들어 놓고, main ino 파일에서 그 함수들을 가져다가 사용할 수 있다는 점이죠. 

이 부분에 대해서는 코코아팹 포럼에 질문이 올라오기도 했는데요. 포럼 내용은 아래 링크를 참고하시면 될 것 같습니다! ;) 

>> 탭으로 스케치 여러개 사용하는 방법 <<

 

main에 되는 ino파일을 Gamebuino에 업로드 시켜줍니다. 참 쉽죠?

 

 

 

이상 없이 게임이 동작하는 모습입니다. 게임 메뉴, 게임 셋팅, 랭킹 등록까지 게임의 퀄리티가 상당하지 않나요? ;)

 

 

 

 

 

 

 

동영상

 

게임 플레이 영상입니다! ;) 재밌게 게임을 즐겨볼까요?

 

 

 

 

 

 

 

마치며...

 

자 이렇게 DIY Gamebuino를 제작하는 과정에 대해 소개드렸습니다!

해외 자료들을 찾아가며, gamebuino를 제작해보았는데요. 가장 어려웠던 부분은 정보의 양이였던 것 같습니다. 

하지만 일련의 시행 착오도 큰 도움이 되었던 것 같습니다.

 

추가적으로 gamebuino의 게임을 직접 만들어 볼 수도 있습니다. 

Gamebuino에서 제공하는 emulator를 통해 게임을 제작한 후 hex 파일로 

게임 제작과 관련된 내용은 아래 링크를 통해 확인해보시면 좋을 것 같습니다! ;)

 

>> Gamebuino emulator << 

>> Gamebuino Hex Convertor <<

 

Klant

코코아팹, kocoafab, 오픈소스 하드웨어, opensouce hardware, 오렌지보드, orange board, 오렌지보드 나노, orange board Nano, 게임기 만들기, Gamebuino, DIY, 아두이노, Arduino
profile

임성도 2016-09-18 11:26:44

신기한 내용이네요 ^^

profile

수박쨈 2016-09-20 10:32:10

이 분이 한국의 토니스타크인가요?? 못만드는게 없으시네

profile

정상훈 2016-10-11 14:02:49

좋은내용 감사합니다 ㅎㅎㅎㅎㅎ

profile

정상훈 2016-10-11 14:02:51

좋은내용 감사합니다 ㅎㅎㅎㅎㅎ

profile

심정환 2016-10-27 15:31:10

감사합니다

profile

윤지환 2016-11-06 18:47:10

감사합니다

profile

최용혁 2017-05-28 20:48:50

감사합니다

profile

chaniborg 2017-12-20 20:29:39

수박쩀님 한국의 토니스타크라니 ㅋㅋ 그럼 아두이노로 자비스도 만들어 지나요?ㅋㅋ

profile

chaniborg 2017-12-20 20:29:39

수박쩀님 한국의 토니스타크라니 ㅋㅋ 그럼 아두이노로 자비스도 만들어 지나요?ㅋㅋ