SlideShare a Scribd company logo
1 of 54
Download to read offline
OROCABOY3 제작기
2019.12.21
By Baram
OROCABOY 란?
GAMEBOY 짝퉁?
OROCABOY 란?
ARDUBOY
OROCABOY 란?
● MCU를 공부할 수 있는 게임기 형태의 개발
보드
● 오픈소스를 활용하고 모든 과정은 공개
● 오프라인 보다는 온라인 협업
● 무료 소프트웨어를 이용하여 제작
History
OROCABOY1 - 2017
● 아두이노용 게임 라이브러리를
STM32L432 Nucleo 보드에 포팅해서
Eclipse 개발 환경으로 Gamebuino
게임들을 구동
● 특별한 케이스 없이 자유롭게 제작
History
OROCABOY2 - 2018
● Gamebuino META 라이브러리를
STM32F469DIS 보드에 포팅하고
케이스를 레트로 디자인으로 제작
● MCU에서 구동할 수 있도록 NES
에뮬레이터를 포팅
● DOOM 게임 포팅
● 게임 제작 시도(?)
History
OROCABOY3 - 2019
● 직접 보드를 제작하여 레트로
에뮬레이터 게임기를 만들자는 컨셉
● TouchGFX
● 에뮬레이터
● 3D 프린팅
준비 단계
스스로에게 동기 부여
함께할 사람들과의 많은 대화
협업을 위한 준비
구글 Slides
만들려고 하는 작품의 컨셉이나 아이디어
등을 정리하고 블럭도등 개발시 필요한
정보 작성
구글 Sheets
BOM 정리나 부품 사양등 정리가 필요한
항목들 작성
OROCA 카페
작품의 중간 결과물들을 공유
카카오톡
실시간으로 필요한 사항을 논의하거나
결정을 위한 커뮤니케이션
구글 Slides
기획 단계
무엇을 만들까?
어떻게 만들까?
재미있을까?
비용은 얼마나 들까?
만들었을때 우리가 얻는건
무엇일까?
키워드
● TouchGFX
○ ST에서 제공하는 임베디드 GUI 플랫폼으로
OROCABOY의 런처에 적용
● 게임 에뮬레이터
○ Gameboy나 NES같은 게임 에뮬레이터 포팅
● 3D 프린팅
○ 케이스를 3D 프린팅을 해서 실제 게임기 같은
형태로 제작
외형
● 일반적인 가로형 레트로 게임기 형태
버튼
● 버튼은 최대한 기존 상용 제품들 활용
GUI
● ODROID-GO와 유사한 형태의 런처 구현
H/w 블럭도
● 사용되는 부품들을 선정하고 블럭도를 작성
개발 환경
● 회로설계 및 아트웍
○ KiCAD
● 펌웨어 작성
○ TrueSTUDIO
● 3D CAD
○ FreeCAD
회로/아트웍
무료 프로그램인 KiCAD를
이용하자
국내에서 구할수 있는
부품으로..
수땜할 수 있는 부품으로..
비용 최소화를 위해 최소한의
부품만 사용
KiCAD 회로도면 작성
부품들에 대한 파트 도면을 만들고 선들을
연결하여 기본 회로도면 작성
KiCAD 아트웍
작성된 회로도면으로 부품의 풋프린트를
만들고 선을연결하여 PCB 도면 작성
KiCAD 3D 모델링
● KiCAD의 3D 모델링 기능을 활용하여 보드제작
모습 예상 가능
보드 제작
저렴하게 PCB 제작하자. 시간을
희생하고 저렴하게..
수땜 작업을 위한 BOM 준비..
제발 보드가 동작되기를 기도
PCB 제작
● 국내에서도 저렴하게 제작가능(실제 제작은 중국)
● 2주 정도 소요됨
PCB 제작
● PCB 색상 지정 가능 (색상에 따른 비용은 차이 없음)
● 품질이 생각보다 나쁘지 않음
BOM 작성
● 제작시 필요한 부품 리스트와 구매처등 정리하여
구매함.
보드 수땜 제작
● 동작하길 기도하면서 정성것 땜하기
펌웨어 개발
펌웨어 개발환경 구축하기
부트로더 만들기
런처 만들기
에뮬레이터 포팅
할게 많다 ...
개발 환경
● 시리얼 통신을 이용한 펌웨어 다운로드
● MCU 내장 부트로더를 이용하여 JTAG 장비 없이
부트로더 다운로드
Memory Map 구성
● MCU의 Memory 사용 용도 설계
런처에서 에뮬레이터 실행 구조 설계
● Slot 방식의 펌웨어 실행
런처에서 에뮬레이터 실행 구조 설계
● Slot 방식의 펌웨어 실행
GUI 구현
● TouchGFX를 이용하여 에뮬레이터 실행을 위한 GUI
구현
부트로더 및 테스트
● 부트로더 구현하고 명령행 방식의 기능 테스트
펌웨어 구현
● 런처 펌웨어를 구현하고 부트로더를 통해서
업데이트 진행
에뮬레이터 포팅
● Slot에서 실행될 에뮬레이터를 포팅 진행
● 펌웨어 라이브러리 재사용할 수 있는 구조
3D 케이스 설계
원과 사각형만으로 대부분
간단한 케이스 정도 설계 가능.
역설계는 어렵다.
3D 프린터 출력을 고려한 설계
역설계
도면이 없는 부품들의 치수를 측정하여
도면을 새로 생성
FreeCAD로 케이스 설계
조립성을 고려하여 파트를 분할 하고
케이스를 설계 진행
Open형 케이스 설계
● 크기를 최소화 하고 MCU B/D 교체 가능
Closed형 케이스 설계
● 완전한 형태의 케이스, 두께가 조금 뚜꺼워짐
케이스 3D프린팅
시간이 오래 걸림.
메이커 스페이스 없었으면
어쩔뻔..
색상 고르는 재미
Open형 케이스 출력
● 전체 4시간의 출력 시간 소요
Closed형 케이스 출력
● 전체 10시간의 출력 시간 소요
자료 공유
진행했던 모든 자료 오픈
널리널리 퍼트리자.
펌웨어/하드웨어/Case등 자료 링크 공유
● https://cafe.naver.com/openrt/21725
펌웨어/하드웨어/Case등 자료 링크 공유
● https://cafe.naver.com/openrt/21725
펌웨어/하드웨어/Case등 자료 링크 공유
● https://cafe.naver.com/openrt/21725
제작 영상 만들기
간단히 아이폰의 iMovie로 편집
제작 영상 기록은 문서와는
또다른 느낌
제작 영상
자~ 그래서...
“게임기는 만들지 말고
구입하자”
25만원
25만원
Thank You

More Related Content

What's hot

망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
종인 전
 

What's hot (20)

강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요강좌 01 ARM 프로세서 개요
강좌 01 ARM 프로세서 개요
 
SkyRover Firmware
SkyRover FirmwareSkyRover Firmware
SkyRover Firmware
 
SiegeMode! C++ Advanced Project Ver
SiegeMode! C++ Advanced Project VerSiegeMode! C++ Advanced Project Ver
SiegeMode! C++ Advanced Project Ver
 
아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작
 
RPG Maker와 Ruby로 코딩 시작하기 Day 1
RPG Maker와 Ruby로 코딩 시작하기 Day 1RPG Maker와 Ruby로 코딩 시작하기 Day 1
RPG Maker와 Ruby로 코딩 시작하기 Day 1
 
망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9망고100 보드로 놀아보자 9
망고100 보드로 놀아보자 9
 
Skyrover project
Skyrover projectSkyrover project
Skyrover project
 
Hello std.io 유명환_20140125
Hello std.io 유명환_20140125Hello std.io 유명환_20140125
Hello std.io 유명환_20140125
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리
 
Open Source and the License
Open Source and the LicenseOpen Source and the License
Open Source and the License
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
우분투에서 안드로이드 개발환경 갖추기 ; 안드로이드 스튜디오
 
Grunt.js Review
Grunt.js ReviewGrunt.js Review
Grunt.js Review
 
PyCon 2017 예제로 살펴보는 PyQt
PyCon 2017 예제로 살펴보는 PyQtPyCon 2017 예제로 살펴보는 PyQt
PyCon 2017 예제로 살펴보는 PyQt
 
Node and Express Configuration
Node and Express ConfigurationNode and Express Configuration
Node and Express Configuration
 
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
 
PyCon2018 PyQt로 만드는 웹 기반 어플리케이션 만들기
PyCon2018 PyQt로 만드는 웹 기반 어플리케이션 만들기PyCon2018 PyQt로 만드는 웹 기반 어플리케이션 만들기
PyCon2018 PyQt로 만드는 웹 기반 어플리케이션 만들기
 
[14.03.17] KennyMaze
[14.03.17] KennyMaze[14.03.17] KennyMaze
[14.03.17] KennyMaze
 
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
KGC2015_C# 스크립트를 사용한 게임서버 모니터링 시스템개발
 

Similar to OROCABOY3 제작기

모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
funmeate
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
MinGeun Park
 

Similar to OROCABOY3 제작기 (20)

Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나
 
신광섭
신광섭신광섭
신광섭
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
130907 2 게임 메이커 기본 개념
130907 2 게임 메이커 기본 개념130907 2 게임 메이커 기본 개념
130907 2 게임 메이커 기본 개념
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
 
[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
Unity소개
Unity소개Unity소개
Unity소개
 
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
[KGC2011_박민근] 신입 게임 개발자가 알아야 할 것들
 
Game engine 2011
Game engine 2011Game engine 2011
Game engine 2011
 
MGS 툴세미나
MGS 툴세미나MGS 툴세미나
MGS 툴세미나
 
GDC와 NDC 근참기
GDC와 NDC 근참기GDC와 NDC 근참기
GDC와 NDC 근참기
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 

Recently uploaded

Recently uploaded (8)

실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 

OROCABOY3 제작기