"Imbedded - 테이블탑 프로젝터"의 두 판 사이의 차이
EmSys2025B (토론 | 기여) (→동작 시나리오) |
EmSys2025B (토론 | 기여) (→1차 게임) |
||
| 187번째 줄: | 187번째 줄: | ||
===소프트웨어 설계=== | ===소프트웨어 설계=== | ||
====1차 게임==== | ====1차 게임==== | ||
| − | + | '''4인 체스 구현''' | |
| − | |||
* '''기반''': 오픈소스 체스 게임을 라즈베리파이 OS에 포팅 | * '''기반''': 오픈소스 체스 게임을 라즈베리파이 OS에 포팅 | ||
* '''UI 개선''': | * '''UI 개선''': | ||
| 196번째 줄: | 195번째 줄: | ||
* '''특징''': 4명이 동시에 즐길 수 있는 변형 체스 | * '''특징''': 4명이 동시에 즐길 수 있는 변형 체스 | ||
</div> | </div> | ||
| − | |||
====2차 게임 ==== | ====2차 게임 ==== | ||
2025년 6월 20일 (금) 23:40 판
프로젝트 개요
프로젝트 소개
프로젝트 명 테이블탑 프로젝터 (Tabletop Projector)
프로젝트 요약 테이블탑 프로젝터는 프로젝터를 이용하여 테이블 위에 게임 화면을 투사하고, 터치 센서를 통해 사용자와 상호작용할 수 있는 인터랙티브 게임 플랫폼입니다. 다양한 보드게임과 카드게임을 디지털화하여 여러 사용자가 함께 즐길 수 있는 새로운 형태의 게임 환경을 제공합니다.
프로젝트 개발 컨셉 본 프로젝트는 테이블 위에 보드게임 화면을 투사하고, 사용자의 터치 입력으로 직접 상호작용할 수 있는 플랫폼을 구현하는 것입니다. 이를 통해 여러 사람이 각자 휴대기기에 국한되지 않고 하나의 공용 공간에서 함께 게임을 즐길 수 있으며, 전통 보드게임의 정적인 특성을 넘어 화면 위의 영상과 동적으로 교감하며 플레이할 수 있어 온라인 게임이 가지는 ‘대면 상호작용의 부재’ 문제를 해소합니다.
프로젝트 배경 및 기대효과
배경
- 기존 보드게임의 한계: 종이 카드, 고정된 규칙, 제한된 게임 도구로 인한 정적인 플레이 방식
- 온라인 게임의 한계: 개인용 기기 중심으로 인한 대면 상호작용 부족, 사회적 단절 현상
- 기술적 공백: 프로젝터 활용 프로젝트는 있으나 터치 기능과 카메라 기반 객체 인식을 결합한 사례 부족
- 시장 요구: COVID-19 이후 소규모 모임 증가, 홈 엔터테인먼트 수요 증가
기대효과
- 보드게임 혁신: 기존 카드와 기물 중심에서 벗어나 복잡하고 다양한 규칙 적용 가능
- 접근성 향상: 플레이어가 복잡한 룰을 모두 숙지하지 않아도 시스템 보조로 원활한 게임 진행
- 사회적 가치: 온라인 게임의 사회적 단절 문제 보완, 공동 참여형 콘텐츠 발전
- 콘텐츠 확장성: 소프트웨어 업데이트를 통한 지속적인 새로운 룰 추가, 기존 IP 재활용
- 상업적 가능성: 보드게임 개발사에게 새로운 개발 방향성 제시
프로젝트 목표
- 확장 가능성: 리눅스 플랫폼 특성상 개발 환경이 잘 갖추어져 있어 향후 추가 보드게임 개발 가능
- 직관적 조작: 빠른 터치 속도 및 영상인식을 통한 자연스러운 사용자 상호작용
- 사회적 연결: 대면 보드게임의 장점과 디지털 게임의 편의성 결합
동작 시나리오
시스템 동작 흐름
- 시스템 시작: 프로젝터 전원 ON, 라즈베리파이 부팅
- 게임 선택: 터치를 통해 메인 화면에서 원하는 게임 선택
- 게임 진행
- 1차 게임(체스): 터치로 기물 이동
- 2차 게임(카드게임): 실물 카드를 테이블에 배치, 카메라가 인식하여 게임 진행
- 3차 게임(TRPG): GPT API를 활용한 스토리 진행
- 게임 종료: 메인 화면으로 복귀
구현 내용
장치 선정
입력장치
1. 압력 감지 소자 (Velostat) ✅ 선정
- 특성: 전기 전도성을 띄는 소재로 압력 혹은 비틀림에 의해 전기 저항이 낮아지는 성질을 보유
- 구조: 구리선을 상부와 하부에 교차로 배치하여 압력에 의해 구리선 사이의 전류가 흐르는 양을 감지하고, 이를 통해 압력점을 추정
- 장점:
* ✅ 저비용 * ✅ 넓은 면적 커버 가능 * ✅ 압력 세기 구분 가능
- 단점:
* ❌ 정밀도가 전용 터치스크린 대비 낮음
2. 저항막 방식 터치스크린 패널
- 특성: ITO 처리된 필름 및 글라스의 2중 레이어로 구성되어 화면을 누르면 레이어가 서로 맞닿으며 발생한 전류와 저항의 변화를 감지
- 장점:
* ✅ 높은 정밀도 * ✅ 상용화된 기술
- 단점:
* ❌ 높은 비용 * ❌ 크기 제한 * ❌ 압력 세기 구분 어려움
3. 카메라 모듈 (IMX-219) → IMX-708로 업그레이드
- 특성: 3296 x 2480의 해상도를 지원하는 CMOS 카메라 센서
- 용도: 프로젝터의 구조 특성상 객체인식 등에 활용하기 위해 전체 이미지에 비해 작은 사이즈의 ROI만을 사용
- 장점: 고해상도로 확대 시 이미지 손실 최소화
- 단점: IMX-708 대비 낮은 성능
4. 카메라 모듈 (OV5647)
- 특성: 2592 x 1944의 해상도를 지원하는 CMOS 카메라 센서
- 장점: IMX-219 모델에 비해 저렴한 가격
- 단점: 카메라의 해상도가 낮아 성능 제한
제어장치
1. Arduino uno ✅ 선정
- 역할: 터치모듈의 연산, Shift register와 Multiplexer 제어를 위한 MCU(Micro Controller Unit)
- 장점: 터치 장치에 별개로 연결되어 배선 길이를 줄여 모듈성 향상, 연산 소모를 분할하여 라즈베리파이 리소스 부담 절약
- 적용성: 높음
2. Arduino pro mini
- 특성: 아두이노 우노와 유사한 MCU 장치로, 크기가 더 작다는 장점
- 장점: 소형화에 유리, 아두이노 우노와 동일한 성능
- 단점: USB 연결, 핀 체결이 우노에 비해 어려워 작동 테스트 단계에서 사용이 번거로움
3. Raspberry Pi 4B
- 특성: HDMI와 USB 연결을 기본적으로 지원하며, 1.8GHz Arm CPU, 4GB의 SDRAM 메모리 보유
- 장점: 이더넷 연결과 블루투스 모델을 자체지원하여 추후 기능 확장에 유용
- 적용성: 중간
4. Raspberry Pi 5 ✅ 선정
- 특성: 라즈베리파이 4B에서 향상된 2.4GHz Arm CPU, SDRAM 8GB의 메모리로 쾌적한 소프트웨어 실행환경 제공
- 장점: 고성능으로 복잡한 게임 로직 처리 가능
- 단점: 4B 모델에 비해 높은 비용
- 적용성: 높음
통신모듈
1. USB 유선 ✅ 선정
- 특성: 아두이노와 라즈베리파이 사이의 시리얼 통신용 연결단자
- 장점: 확장성이 높고 범용성이 높아 다양한 시스템에 터치 모듈 사용 가능, 전원을 컴퓨터로부터 받을 수 있어 아두이노에 충분한 전력 공급
- 적용성: 높음
2. 블루투스 무선
- 특성: 아두이노와 라즈베리파이 사이의 시리얼 통신용 블루투스 모듈
- 장점: 라즈베리파이의 내장 블루투스 모듈 활용 가능, 유선에 비해 통신선의 제약이 없고 미관상 유리
- 단점: 통신 딜레이 및 배터리의 필요성 요구
- 적용성: 중간
3. HDMI 유선 ✅ 선정
- 특성: 라즈베리파이와 프로젝터를 연결해주는 단자로 범용적인 영상 데이터 전송 규격
- 장점: 고화질 영상 지원, 범용적 사용으로 손쉬운 교체 가능
- 적용성: 높음
출력장치
1. ViewSonic PJD86533WS
- 특성: 1280*800의 해상도를 지원하며 1m에서 100인치의 투사거리를 갖는 3000ANSI 루멘 밝기의 프로젝터
- 장점: 초단초점 지원으로 Tabletop Projector 프로젝트 목적에 부합, 밝은 밝기로 낮에도 충분히 사용 가능, 조금만 거리를 벌려도 투사 영상 크기가 넓어져 다양한 책상에 적용 가능
- 적용성: 높음
2. MAGCUBIC HY450
- 특성: 1920*1080의 해상도를 지원하며 1.2m에서 100인치의 투사거리를 갖는 900ANSI 루멘 밝기의 프로젝터
- 장점: ViewSonic 제품보다 높은 화질, 작은 사이즈로 소형화 가능
- 단점: 낮은 밝기 성능으로 주변 조명에 민감
- 적용성: 높음
최종 선택: XGIMI Halo+ ✅
- 특성: 1920*1080 해상도, 높은 밝기 성능
- 선정 이유: 초기 계획 대비 성능 향상을 위해 업그레이드
커버 설계
커버 설계
- 재질: 5mm 두께 무광 아크릴 (검정색)
- 크기: 프로젝터 크기에 맞춘 맞춤 제작
- 특징:
* 미니 리프트 1개를 사용한 높이 조절 기능 (커버 후면 손잡이) * 미니 경첩을 이용한 여닫이 소형문 * 측면 방열구멍 설계 * 카메라 모듈 장착부 * 프로젝터 하부면적보다 큰 견고한 아크릴판을 리프트 상단에 부착하여 안정성 확보
터치패드 설계
터치 패드 구조
- 크기: 400mm × 400mm
- 층 구조: 마감천(인조가죽) - Velostat - 구리 테이프
- 구리선 배치: 5mm 폭, 20mm 간격
- 마감 소재: 인조가죽 (적절한 반사 특성과 부드러운 사용자 경험 제공)
</div> </div>
소프트웨어 설계
1차 게임
4인 체스 구현
- 기반: 오픈소스 체스 게임을 라즈베리파이 OS에 포팅
- UI 개선:
* 기보나, 수 돌리기 등 불필요한 UI 삭제 * 배경화면을 밝게 설정하여 빔프로젝터 저밝기 환경 대응 * 체스판 크기 확대로 터치 부정확성 보완
- 특징: 4명이 동시에 즐길 수 있는 변형 체스
</div>
2차 게임
🃏 카드 게임 상세 구현
게임 UI 설계 필요조건
1. ✅ 모든 UI 상호작용은 터치로만 구현
2. ✅ 프로젝터 위치에 따른 카메라 비추는 반경 변화 고려하여 인식 기물을 화면 중앙 배치
3. ✅ 다중 플레이어를 위한 각 플레이어별 개인 보드 배치
4. ✅ 라즈베리파이 부하 고려하여 캡처 방식으로 카메라 인식 구현
5. ✅ 초보자 돌발행동 방지를 위한 변수 요소 사전 비활성화
6. ✅ 게임 진행을 위한 사회자 역할 메시지 창 구현
Texas Hold'em Poker (프로토타입) ✅
개발 목적
- 라즈베리파이 카메라 성능과 객체 인식 성능 검증
- 카드 인식: YOLO 모델 활용 (테스트 이미지 90% 이상 인식률)
게임 로직
- 플레이어 인원 선택 (2-5명)
- SB, BB 자동 배팅
- 콜, 체크, 폴드, 레이즈, 올인 배팅 옵션
- 프리플랍-플랍-턴-리버 단계별 진행
- 자동 승자 판별 및 배팅액 분배
- 파산 방지를 위한 3000칩 자동 지급
UI 특징
- 각 플레이어별 개인 보드 (테이블 외각 배치)
- 중앙 커뮤니티 카드 배치 (카메라 인식 범위 고려)
- 배팅액에 따른 애니메이션 효과
- 쇼다운 상황 특수 효과
변수 처리
- 비순차 배팅 방지
- 턴 종료 전 카드 공개 방지
- 배팅액에 따른 선택지 제한
카드 인식 프로세스
📸 카메라 설정
- 해상도: 4608×2592 (IMX-708 최대 해상도)
- FPS: 30 (33333㎲ 프레임 지속시간)
- AwbMode: 0 (자동 화이트 밸런스)
- Sharpness: 1.5 (기본값보다 높은 선명도)
🔍 이미지 처리 파이프라인
- 이미지 전처리 * 카메라 캡처 → 'image' 변수 저장 * 이진화 처리 (프로젝터 밝은 환경 고려한 임계값 설정) * 카드 최소 영역, 가로세로 비율 제한 (실제 카드 63mm×88mm 기준)
- 카드 검출 * detect_card_edges() 함수로 카드 윤곽 검출 * 4개 끝점 좌표 확보 * 여백 포함한 crop으로 문양/숫자 손상 방지
- 이미지 보정 * 샤프닝 커널 적용으로 확대 시 화질 저하 보완 * 인식 모델 최적화를 위한 이미지 품질 향상
- 모델 인식 * YOLO 모델 적용 * 인식률 30% 이상 결과 중 최고 신뢰도 선택 * 좌표 정보 활용한 카드 순서 정렬 (Y좌표 오차 허용)
- 게임 로직 반영 * 인식 결과를 게임 상태에 반영 * 승자 판별 로직 실행
3차 게임 - TRPG
🎲 TRPG 게임 구현
- 맵 생성: Polytopia Map Generator 오픈소스 활용 (GNU GPL 라이선스)
- 캐릭터 시스템:
* D&D 기반 12개 직업 선택 * 스펠 사용 가능 직업: Bard, Cleric, Druid, Paladin, Sorcerer, Warlock, Wizard * 직업별 차별화된 스펠 목록
- 맵 구현: QWebEngineView를 사용하여 HTML 기반 맵을 PyQt5 UI에 통합
- 스토리 진행: GPT API를 활용한 동적 시나리오 생성 (예정)
프로젝트 결과
최종 평가
| 평가 항목 | 목표치 | 현재 상태 | 달성 여부 |
|---|---|---|---|
| 터치 정확도 | < 20mm | 20mm 달성 | 충족 |
| 터치 응답시간 | < 100ms | 측정 예정 | 진행 중 |
| 게임 응답속도 | < 100ms | 측정 예정 | 진행 중 |
| 지원 게임 가짓수 | 2+ 개 | 2개 구현 + 1개 개발중 | 충족 |
| 화면투사 선명도 | > 70% | 측정 예정 | 진행 중 |
최종 시연 영상
프로젝트 리뷰
팀 구성 및 역할 분담
| 팀원명 | 주요 역할 | 세부 담당 업무 |
|---|---|---|
| 구** (팀장) | 프로젝트 관리, 터치 시스템 |
|
| 김** | 터치 시스템, 통합 |
|
| 류** | 터치 시스템 |
|
| 조** | 기구 설계, 통합 |
|
| 전** | AI/객체인식, API |
|
향후 확장 가능성
- 추가 게임 장르 지원
- AI 대전 상대 구현
- 온라인 멀티플레이어 지원
- 모바일 앱 연동
프로젝트를 진행하며 느낀 점
- 하드웨어 제약사항을 고려한 현실적 목표 설정의 중요성
- 프로토타입을 통한 조기 검증의 필요성
- 팀 내 소통과 역할 분담의 중요성
- 오픈소스 활용을 통한 개발 효율성 증대
참고 자료 및 오픈소스
활용 오픈소스
활용 오픈소스
- 체스 게임: GNU GPL 라이선스
- YOLO 카드 인식: GitHub 공개 모델
- Polytopia Map Generator: GNU GPL 라이선스
- 포켓몬 카드 API: 16,000장 데이터베이스
기술 참고 문헌
기술 참고 문헌
[1] M. Kciuk, Z. Kowalik, G. Lo Sciuto, S. Sławski, and S. Mastrostefano, "Intelligent medical Velostat pressure sensor mat based on artificial neural network and Arduino embedded system," Applied System Innovation, vol. 6, no. 5, p. 84, Sep. 2023, doi: 10.3390/asi6050084.
[2] L. Yuan, H. Qu, and J. Li, "Velostat sensor array for object recognition," IEEE Sensors Journal, vol. 22, no. 2, pp. 1692–1701, Jan. 15, 2022 </div>
Imbedded - 테이블탑 프로젝터
"디지털과 아날로그가 만나는 새로운 게임 플랫폼"