Imbedded - 테이블탑 프로젝터
목차
프로젝트 소개
테이블탑 프로젝터는 프로젝터를 이용하여 테이블 위에 게임 화면을 투사하고, 터치 센서를 통해 사용자와 상호작용할 수 있는 인터랙티브 게임 플랫폼입니다. 다양한 보드게임과 카드게임을 디지털화하여 여러 사용자가 함께 즐길 수 있는 새로운 형태의 게임 환경을 제공합니다.
프로젝트 명
테이블탑 프로젝터 (Tabletop Projector)
프로젝트 기간
2025.3~2025.6
팀 소개
팀명: Imbedded
서울시립대학교 기계정보공학과 2020430001 구효본 (팀장)
서울시립대학교 기계정보공학과 2022430012 김지호
서울시립대학교 기계정보공학과 2020430008 류정현
서울시립대학교 기계정보공학과 2021430035 조수민
서울시립대학교 기계정보공학과 2020430028 전진형
개발 소요 비용
404.8천원 (초기 계획: 183천원)
프로젝트 개요
초기 개발 컨셉
프로젝트 비전
보드게임 화면을 책상에 투사하고 영상을 터치함으로써 상호작용이 가능한 장치를 제작하여, 여러 사람들이 개인용 기기로만 접할 수 있었던 게임을 함께 참여할 수 있게 공통된 책상에 투사해주는 시스템을 구현합니다. 전통적인 보드게임의 정적인 특성에서 벗어나, 사용자와 영상의 상호작용으로 동적인 보드게임이 가능해지며, 온라인 게임의 약점으로 꼽혀왔던 사람들과의 대면 부족이라는 문제를 해결할 수 있습니다.
핵심 가치
- 확장 가능성: 리눅스 플랫폼 특성상 개발 환경이 잘 갖추어져 있어 향후 추가 보드게임 개발 가능
- 직관적 조작: 빠른 터치 속도 및 영상인식을 통한 자연스러운 사용자 상호작용
- 사회적 연결: 대면 보드게임의 장점과 디지털 게임의 편의성 결합
프로젝트 요약
본 프로젝트는 프로젝터와 터치 센서를 결합하여 테이블 위에서 다양한 인터랙티브 게임을 즐길 수 있는 플랫폼을 개발하는 것을 목표로 합니다. 라즈베리파이를 중심으로 한 제어 시스템과 벨로스탯(Velostat)을 활용한 터치 모듈, 카메라를 통한 실물 카드 인식 시스템을 구현하여 디지털과 아날로그의 장점을 결합한 새로운 게임 경험을 제공합니다.
프로젝트의 배경 및 기대효과
배경
- 기존 보드게임의 한계: 종이 카드, 고정된 규칙, 제한된 게임 도구로 인한 정적인 플레이 방식
- 온라인 게임의 한계: 개인용 기기 중심으로 인한 대면 상호작용 부족, 사회적 단절 현상
- 기술적 공백: 프로젝터 활용 프로젝트는 있으나 터치 기능과 카메라 기반 객체 인식을 결합한 사례 부족
- 시장 요구: COVID-19 이후 소규모 모임 증가, 홈 엔터테인먼트 수요 증가
기대효과
- 보드게임 혁신: 기존 카드와 기물 중심에서 벗어나 복잡하고 다양한 규칙 적용 가능
- 접근성 향상: 플레이어가 복잡한 룰을 모두 숙지하지 않아도 시스템 보조로 원활한 게임 진행
- 사회적 가치: 온라인 게임의 사회적 단절 문제 보완, 공동 참여형 콘텐츠 발전
- 콘텐츠 확장성: 소프트웨어 업데이트를 통한 지속적인 새로운 룰 추가, 기존 IP 재활용
- 상업적 가능성: 보드게임 개발사에게 새로운 개발 방향성 제시
프로젝트 개발 목표
초기 목표 (2025.4 제안서 기준)
| 평가 항목 | 평가방법 | 초기 목표치 | 최종 목표치 (수정) | 비중(%) |
|---|---|---|---|---|
| 터치 정확도 | 터치 인식 간격 (mm) | < 30mm | < 20mm | 35 |
| 터치 응답시간 | 20회 반복 측정 (ms) | < 5ms | < 100ms | 20 |
| 카드 객체인식 정확도 | 100프레임당 인식률 (%) | > 50% | > 90% | 10 |
| 게임 응답속도 | 입력-반응 사이 시간 (ms) | < 100ms | < 100ms | 25 |
| 지원 게임 가짓수 | 빌드된 게임 개수 | 3+ 개 | 2+ 개 | 10 |
| 화면투사 선명도 | sharpness 계산 (%) | > 70% | > 70% | 10 |
목표 수정 사유
- 터치 정확도: 30mm → 20mm (하드웨어 성능 향상으로 목표 강화)
- 터치 응답시간: 5ms → 100ms (하드웨어 한계를 고려한 현실적 조정)
- 카드 인식률: 50% → 90% (카메라 성능 향상과 알고리즘 개선으로 목표 강화)
- 게임 가짓수: 3개 → 2개 (프로젝트 기간 내 완성도 높은 구현을 위한 조정)
개념 설계
시스템 목적 계통도
테이블탑 프로젝터는 다음 5가지 핵심 가치를 중심으로 설계되었습니다:
편의성 (직관성, 조작감)
- 직관성: 터치와 프로젝터의 빔을 이용하는 테이블탑 프로젝터는 간편한 UI를 제공하여 처음 사용하는 사용자에게도 직관적으로 사용법을 알 수 있도록 설계
- 조작감: 뮤직 플레이어의 UI와 유사하게 구성하여 게임이 목록화되고, 각 게임마다의 사진과 설명을 화면 대부분에 할당하여 표시
- 터치라는 익숙한 입력 방식을 통해 스마트폰 사용 경험자들이 쉽게 장치를 조작하고 실행할 수 있도록 구현
성능 (신속성, 정밀성)
- 신속성: 터치 압력 감지용 Velostat 소재의 저항값이 민감하게 변하는 구간을 선택하여 정전식 터치방식인 스마트폰과 유사한 압력대를 감지
- 정밀성: 저항값이 변하는 지점을 통해 정확한 터치 지점을 좌표 계산하여 mm단위의 정밀한 터치점을 찾아내고, 압력의 세기도 구분하여 범용적인 활용 가능
- 터치 모듈을 구동하는 연산을 아두이노로 분리하여 라즈베리파이에서는 게임 소프트웨어에 리소스를 최대한 투자
- 프로젝터는 해상도보다는 높은 밝기값을 지원하는 제품을 선택하여 주변 빛에 의한 프로젝션 영상의 선명도를 최대한 보존
확장가능성 (범용성, 확장성)
- 모듈성: 라즈베리파이, 터치 모듈, 프로젝터, 카메라 각각이 모듈로 구성되어 요구되는 테이블 크기, 게임 성능 등에 따라 시스템 변경 가능
- 표준화된 단자: HDMI, USB, FPC/FFC 케이블 등 표준화된 단자를 사용하여 다양한 환경, 가격 조건, 성능 조건에 따라 적합한 시스템 성능 구축 가능
- 포팅 편의성: 소스가 LINUX 환경에서 실행되며, 터치 시스템을 하드웨어 부분에서 지원하므로 터치입력 처리만 구현하면 어렵지 않게 이식 가능
내구성
- 높은 내구성: 프로젝터, 라즈베리파이, 카메라 모듈은 표준화된 입출력 단자가 존재하여 체결성이 높고 여러번의 탈착에도 높은 내구성 보장
- PCB 구현: 터치 모듈의 복잡한 회로를 PCB 기판으로 구현하고 케이블의 단자를 FPC/FFC 규격으로 압축하여 부품의 탈착, 이동에도 높은 내구성 유지
경제성
- 비용 절감: 압력인식 패널, 고가의 카메라 등을 사용하지 않고 저렴한 회로기판과 velostat 소재, 이미지처리 기법과 객체인식 모델을 활용하여 센서 비용 최소화
- 확장성을 통한 경제성: 같은 기능을 가진 저렴한 모델(저렴한 프로젝터, 라즈베리파이 4 이하의 CPU 등)로 교체하여 단가 절감 가능성 확보
입력장치 검토 및 선정
1. 압력 감지 소자 (Velostat)
- 특성: 전기 전도성을 띄는 소재로 압력 혹은 비틀림에 의해 전기 저항이 낮아지는 성질을 보유
- 구조: 구리선을 상부와 하부에 교차로 배치하여 압력에 의해 구리선 사이의 전류가 흐르는 양을 감지하고, 이를 통해 압력점을 추정
- 장점: 저비용, 넓은 면적 커버 가능, 압력 세기 구분 가능
- 단점: 정밀도가 전용 터치스크린 대비 낮음
2. 저항막 방식 터치스크린 패널
- 특성: ITO 처리된 필름 및 글라스의 2중 레이어로 구성되어 화면을 누르면 레이어가 서로 맞닿으며 발생한 전류와 저항의 변화를 감지
- 장점: 높은 정밀도, 상용화된 기술
- 단점: 높은 비용, 크기 제한, 압력 세기 구분 어려움
3. 카메라 모듈 (IMX-219)
- 특성: 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 제품보다 높은 화질, 작은 사이즈로 소형화 가능
- 단점: 낮은 밝기 성능으로 주변 조명에 민감
- 적용성: 높음
부품 평가 및 선정 결과
다음은 개념설계 단계에서 수행한 부품별 평가 결과입니다:
| 분류 | 설계안 | 직관성 | 조작감 | 신속성 | 정밀성 | 확장성 | 내구성 | 경제성 | 합계 | 순위 |
|---|---|---|---|---|---|---|---|---|---|---|
| 입력장치 | Velostat | - | 중 | 중 | 중 | 상 | 상 | 상 | 15 | 1 |
| 터치 패널 | - | 중 | 중 | 상 | 하 | 하 | 하 | 10 | 2 | |
| IMX219 | - | - | - | 상 | - | - | 중 | 5 | 1 | |
| OV5648 | - | - | - | 하 | - | - | 상 | 4 | 2 | |
| 제어장치 | 아두이노 우노 | - | - | - | - | 상 | 중 | 상 | 8 | 1 |
| 아두이노 프로미니 | - | - | - | - | 하 | 중 | 중 | 5 | 2 | |
| 라즈베리파이4B | - | - | 하 | 하 | 중 | - | 상 | 7 | 2 | |
| 라즈베리파이 5 | - | - | 상 | 상 | 상 | - | 중 | 11 | 1 | |
| 통신모듈 | USB 유선 | 상 | 상 | 상 | 상 | 중 | 중 | 상 | 19 | 1 |
| 블루투스 무선 | 중 | 하 | 하 | 상 | 상 | 상 | 중 | 15 | 2 | |
| HDMI | 상 | - | - | 상 | 상 | 상 | 상 | 15 | 1 | |
| 출력장치 | PJD86533WS | - | - | - | 하 | 중 | 중 | 중 | 10 | 1 |
| HY450 | - | - | - | 중 | 중 | 중 | 상 | 10 | 1 |
평가 기준 정의
- 직관성: 직관적으로 사용법을 알 수 있는가?
- 조작감: 적은 힘으로 터치 구동이 가능한가?
- 신속성: 장치의 반응속도가 빠른가?
- 정밀성: 화면의 가시성, 터치의 정밀도가 높은가?
- 확장성: 부품 교체 및 업그레이드가 용이한가?
- 내구성: 이동 및 보관 시 배선이 끊어지거나 부품이 손상될 우려는 없는가?
- 경제성: 제품의 비용이 합리적인가?
선정 결과 상기 평가를 통해 다음과 같이 부품을 선정하였습니다:
- 입력장치: Velostat + IMX219
- 제어장치: Arduino Uno + Raspberry Pi 5
- 통신모듈: USB 유선 + HDMI 유선
- 출력장치: ViewSonic PJD86533WS (1차) / MAGCUBIC HY450 (대안)
초기 시스템 설계
초기 하드웨어 구성 (제안서 기준)
터치 입력 시스템
- 크기: 120 × 90 cm² (최종: 400 × 400 mm로 축소)
- 센서: Velostat 압력 센서 + 구리 테이프 매트릭스
- 제어: Arduino + 멀티플렉서/시프트 레지스터 조합
영상 처리 시스템
- 메인 컨트롤러: Raspberry Pi 4 (최종: Raspberry Pi 5)
- 카메라: SONY IMX 219 8MP (최종: IMX-708 12MP 광각으로 업그레이드)
- 해상도: 3280×2464 (최종: 4608×2592)
출력 시스템
- 프로젝터: Viewsonic PJD8653ws (최종: XGIMI Halo+로 변경)
- 해상도: 1280×800 (최종: 1920×1080)
- 밝기: 3000 ANSI (최종: 더 높은 성능)
초기 게임 계획
1차 게임 - 4인 체스
- 목적: 터치 시스템 정확도 및 딜레이 측정
- 특징: 마우스 클릭을 터치로 대체하는 간단한 포팅
- 상태: ✅ 완료 (계획대로 구현)
2차 게임 - 카드게임
- 초기 계획: 유희왕 등 복잡한 카드게임
- 변경 사유:
* 유희왕: 뒷면 카드 규칙으로 전면 인식 시스템과 부적합 * 매직: 동시 인식 카드 수 과다, 플레이 영역 초과
- 최종 구현: Texas Hold'em Poker (프로토타입) + 포켓몬 카드게임 (개발 중)
3차 게임 - TRPG
- 계획: LLM API 활용한 사회자 역할 AI
- 목적: AI를 통한 게임 진행 관리, 공정한 랜덤성 제공
- 상태: 📝 개발 중 (캐릭터 생성 시스템 완료, GPT API 연동 예정)
설계 변경사항
하드웨어 변경사항
터치 모듈
- 초기: 터치 지점 오차범위 5mm 이하
- 변경: 터치 지점 오차범위 20mm 이하
- 사유: 벨로스탯에 구리선을 부착할 때 구리선의 폭(5mm)과 간격(20mm) 설정 시, 사람의 손가락이 닿는 면적(8mm)이 신호선들 사이에 고르게 퍼지지 못하는 문제 발생. 초기 알고리즘은 터치 입력 네 곳을 바탕으로 상세한 터치점의 위치를 정하는 것이였으나, 터치 시 네 곳이 동시에 눌리는 것이 아닌 한 곳만 눌리게 되면서 이러한 알고리즘의 적용이 불가능해짐. 시간과 수정의 용이성을 고려하여 소프트웨어의 UI를 수정하는 방법으로 문제 해결.
커버 설계
- 초기: 미니리프트 2개 사용, 볼 조인트 방식 소형문
- 변경: 미니리프트 1개 사용, 미니 경첩 부착 소형문
- 사유:
* 두 리드 스크류를 용접하여 하나로 연결하더라도 약 7kg에 달하는 프로젝터를 들어 올릴 수 있는 충분한 토크가 발생하는지 불확실 * 용접 과정에서 리드 스크류의 길이가 미세하게나마 짧아질 경우, 리프트 작동 자체에 문제가 생길 수 있음 * 실험적 경험에 비추어 볼 때, 한 개의 미니 리프트만으로도 프로젝터를 지지하고 높낮이를 안정적으로 조절할 수 있다는 점이 확인됨 * 5mm 아크릴 재질에서 볼 조인트 소켓 가공 어려움
소프트웨어 변경사항
1차 게임 요소
- 체스 게임: 변동 없음
2차 게임 요소
- 초기 계획: 유희왕 등 카드게임
- 변경: 포커 게임으로 선구현, 포켓몬 카드게임 개발 시도중
- 카메라 모델 변경: imx219 → imx708 120도 광각
- 사유:
* 유희왕: 뒷면으로 카드를 내는 규칙이 존재하여 현재 시스템에서는 카드의 전면이 드러나야 카메라로 정보를 얻고 게임 로직을 수행할 수 있어 적용이 어려움 * 매직 더 게더링: 동시에 인식해야하는 카드가 대부분 50장에 달해 라즈베리파이의 연산능력으로 객체인식을 수행함에 있어 어려움이 존재. 또한 플레이 영역이 터치패드와 프로젝션 범위을 넘어설 우려가 있어 제작 후보에서 제외 * 포켓몬 카드 게임: 턴 선택, 카드의 효과, 데미지 등 PyQt UI로 대체가능한 요소가 다수 존재. 유희왕이나 매직 더 게더링과 달리 뒷면 규칙이 없으며 최대 인식 요구 갯수가 최대 13장으로 라즈베리파이의 연산성능으로 처리가 가능하다고 판단됨
3차 게임 요소
- LLM API를 활용한 TPRG: 변동 없음
동작 시나리오
1. 시스템 시작: 프로젝터 전원 ON, 라즈베리파이 부팅 2. 게임 선택: 터치를 통해 메인 화면에서 원하는 게임 선택 3. 게임 진행
* 1차 게임(체스): 터치로 기물 이동 * 2차 게임(카드게임): 실물 카드를 테이블에 배치, 카메라가 인식하여 게임 진행 * 3차 게임(TRPG): GPT API를 활용한 스토리 진행
4. 게임 종료: 메인 화면으로 복귀
구현 내용
시스템 구성
하드웨어 구성
- 제어부: Raspberry Pi 5
- 출력부: 프로젝터 (XGIMI Halo+)
- 입력부: 터치 모듈 (Velostat 기반), 카메라 모듈 (IMX-708)
- 구조부: 아크릴 커버, 미니 리프트
소프트웨어 구성
- OS: Raspberry Pi OS
- 개발 언어: Python, C++
- 주요 라이브러리: PyQt5, OpenCV, GPIO
- API: GPT API (3차 게임용)
기구부 설계 및 구현
커버 설계
- 재질: 5mm 두께 무광 아크릴 (검정색)
- 크기: 프로젝터 크기에 맞춘 맞춤 제작
- 특징:
* 미니 리프트 1개를 사용한 높이 조절 기능 (커버 후면 손잡이) * 미니 경첩을 이용한 여닫이 소형문 * 측면 방열구멍 설계 * 카메라 모듈 장착부 * 프로젝터 하부면적보다 큰 견고한 아크릴판을 리프트 상단에 부착하여 안정성 확보
터치 패드 구조
- 크기: 400mm × 400mm
- 층 구조: 마감천(인조가죽) - Velostat - 구리 테이프
- 구리선 배치: 5mm 폭, 20mm 간격
- 마감 소재: 인조가죽 (적절한 반사 특성과 부드러운 사용자 경험 제공)
제어부 및 회로 구현
터치 모듈 회로
- PCB 설계: 크로스토크 방지를 위한 3W 규칙 적용
- 도선 사양: 두께 20mil, 간격 12mil (0.5A 기준)
- 사용 전류: 약 0.3A~0.5A (벨로스탯 가변저항 동작)
- 주요 부품:
* 4051D 8-channel multiplexer × 10개 * 595D 8-Bit Shift Registers × 10개 * LMV324 Operational Amplifiers × 1개 * 저항: 10KΩ × 10개, 1KΩ × 10개 * 커패시터: 100nF 16V × 100개 * LED × 10개
- 연결: 2×20 커넥터 사용으로 접촉 불량 최소화
- 제어: 아두이노 우노 모델 사용 (아두이노 미니는 성능 이슈로 터치 반응 불규칙)
카메라 시스템
- 모델: IMX-708 (12MP 자동초점 120도 광각)
- 기존 모델(imx219) 대비 개선사항:
* 화질 향상으로 카드 인식률 개선 * 화각 확대로 촬영 범위 증가 * 자동 초점 기능 추가
- 위치: 프로젝터 상단 커버 내부
- 기능: 실물 카드 인식, 게임 상황 촬영
소프트웨어 설계 및 구현
1차 게임 - 체스
- 기반: 오픈소스 체스 게임을 라즈베리파이 OS에 포팅
- UI 개선:
* 기보나, 수 돌리기 등 불필요한 UI 삭제 * 배경화면을 밝게 설정하여 빔프로젝터 저밝기 환경 대응 * 체스판 크기 확대로 터치 부정확성 보완
- 특징: 4명이 동시에 즐길 수 있는 변형 체스
2차 게임 - 카드 게임
게임 UI 설계 필요조건 1. 모든 UI 상호작용은 터치로만 구현 2. 프로젝터 위치에 따른 카메라 비추는 반경 변화 고려하여 인식 기물을 화면 중앙 배치 3. 다중 플레이어를 위한 각 플레이어별 개인 보드 배치 4. 라즈베리파이 부하 고려하여 캡처 방식으로 카메라 인식 구현 5. 초보자 돌발행동 방지를 위한 변수 요소 사전 비활성화 6. 게임 진행을 위한 사회자 역할 메시지 창 구현
Texas Hold'em Poker (프로토타입)
- 목적: 라즈베리파이 카메라 성능과 객체 인식 성능 검증
- 카드 인식: YOLO 모델 활용 (테스트 이미지 90% 이상 인식률)
- 게임 로직:
* 플레이어 인원 선택 (2-5명) * SB, BB 자동 배팅 * 콜, 체크, 폴드, 레이즈, 올인 배팅 옵션 * 프리플랍-플랍-턴-리버 단계별 진행 * 자동 승자 판별 및 배팅액 분배 * 파산 방지를 위한 3000칩 자동 지급
- UI 특징:
* 각 플레이어별 개인 보드 (테이블 외각 배치) * 중앙 커뮤니티 카드 배치 (카메라 인식 범위 고려) * 배팅액에 따른 애니메이션 효과 * 쇼다운 상황 특수 효과
- 변수 처리:
* 비순차 배팅 방지 * 턴 종료 전 카드 공개 방지 * 배팅액에 따른 선택지 제한
카드 인식 프로세스 1. 카메라 설정
* 해상도: 4608×2592 (IMX-708 최대 해상도) * FPS: 30 (33333㎲ 프레임 지속시간) * AwbMode: 0 (자동 화이트 밸런스) * Sharpness: 1.5 (기본값보다 높은 선명도)
2. 이미지 전처리
* 카메라 캡처 → 'image' 변수 저장 * 이진화 처리 (프로젝터 밝은 환경 고려한 임계값 설정) * 카드 최소 영역, 가로세로 비율 제한 (실제 카드 63mm×88mm 기준)
3. 카드 검출
* detect_card_edges() 함수로 카드 윤곽 검출 * 4개 끝점 좌표 확보 * 여백 포함한 crop으로 문양/숫자 손상 방지
4. 이미지 보정
* 샤프닝 커널 적용으로 확대 시 화질 저하 보완 * 인식 모델 최적화를 위한 이미지 품질 향상
5. 모델 인식
* YOLO 모델 적용 * 인식률 30% 이상 결과 중 최고 신뢰도 선택 * 좌표 정보 활용한 카드 순서 정렬 (Y좌표 오차 허용)
6. 게임 로직 반영
* 인식 결과를 게임 상태에 반영 * 승자 판별 로직 실행
포켓몬 카드 게임 (개발 중)
- API 활용: 16,000여 장의 카드 데이터베이스
- 특수 효과: 스타디움 카드에 따른 배경 변화
- 과제: 한국판 카드 인식 모델 부재 (대부분 영문판으로 학습된 모델)
- 해결방안: 영문판 카드 구매 또는 한국판 카드 일부 학습 모델 제작
3차 게임 - TRPG
- 맵 생성: Polytopia Map Generator 오픈소스 활용 (GNU GPL 라이선스)
- 캐릭터 시스템:
* D&D 기반 12개 직업 선택 * 스펠 사용 가능 직업: Bard, Cleric, Druid, Paladin, Sorcerer, Warlock, Wizard * 직업별 차별화된 스펠 목록
- 맵 구현: QWebEngineView를 사용하여 HTML 기반 맵을 PyQt5 UI에 통합
- 스토리 진행: GPT API를 활용한 동적 시나리오 생성 (예정)
현재 진행상황
하드웨어 완성도
터치 모듈 (완료)
- PCB 제작 완료 및 부품 납땜 완료
- 터치패드 마감재 선정 완료 (인조가죽)
- 캘리브레이션 코드 개발 필요
커버 (완료)
- 아크릴 판재 레이저 커팅 완료
- 조립 완료
- 카메라 정확한 설치 위치 협의 필요
소프트웨어 완성도
1차 게임 (완료)
- 체스 게임 UI 개선 완료
- 터치 인터페이스 최적화 완료
2차 게임 (80% 완료)
- Texas Hold'em Poker 게임 로직 완성
- 카드 인식 시스템 구현 완료
- 포켓몬 카드 게임 UI 설계 완료
- 포켓몬 카드 인식 모델 해결 필요
3차 게임 (60% 완료)
- 캐릭터 생성 시스템 구현 완료
- 맵 생성 기능 구현 완료
- GPT API 연동 개발 중
향후 진행 계획 및 일정
하드웨어 개선 계획
터치 모듈
- 터치 캘리브레이션 코드 추가
- 가변적 화면 비율 대응 적응형 소프트웨어 개발
- 초기 시작 시 마커 터치를 통한 캘리브레이션 기능 구현
커버
- 카메라 모듈 최종 위치 확정
- 슬라이드 레일 설치 여부 결정 (카메라 깊이에 따라)
소프트웨어 개발 계획
2차 게임 요소
- 포켓몬 카드 게임 본격 개발
- 한국판 카드 인식 해결 (영문판 구매 또는 학습 모델 제작)
- 카드 정보 기반 화려한 효과 구현
3차 게임 요소
- GPT API 연동 완료
- 동적 시나리오 생성 시스템 구현
통합 및 테스트
시스템 통합
- 모듈 간 통합 테스트
- 터치 팀과 소프트웨어 팀 UI 크기 조율
- 커버 팀과 카메라 위치 설정 협의
최종 테스트
- 50cm 카메라 케이블 준비 후 최종 위치 설정
- 캘리브레이션 코드 적용 테스트
- 전체 시스템 통합 테스트
개발 일정표
| 개발 내용 | 담당자 | 5월 1-2주 | 5월 3주 | 6월 1주 | 6월 2주 | 6월 3주 |
|---|---|---|---|---|---|---|
| 터치 캘리브레이션 코드 추가 | 터치팀 | ■ | ■ | |||
| 프로젝터 하우징 | 구효본, 조수민 | ■ | ■ | |||
| 1차 프로그램 통합 및 에러처리 | 터치팀 | ■ | ■ | |||
| 1차 통합 테스트 | 터치팀 | ■ | ||||
| 2차 프로그램 통합 | 터치팀, 전진형 | ■ | ||||
| 최종 통합 테스트 | 전체 | ■ | ||||
| Feedback 및 디버깅 | 전체 | ■ | ■ | |||
| 최종 프로젝트 발표 준비 | 전체 | ■ |
프로젝트 결과
현재 달성 성과
하드웨어
- 터치 모듈: PCB 제작 완료, 마감천 선정 완료
- 커버: 설계 변경 완료 및 제작 완료
- 카메라: IMX-708로 성능 향상 완료
소프트웨어
- 1차 게임(체스): 프로젝터 환경 최적화 완료
- 2차 게임(포커): 완전 구현, 카드 인식률 90% 이상 달성
- 3차 게임(TRPG): 캐릭터 및 맵 생성 시스템 구현
평가 항목 달성도
- 터치 정확도: 20mm 달성 (목표치 충족)
- 터치 응답시간: 측정 예정
- 게임 응답속도: 측정 예정
- 지원 게임 가짓수: 2개 구현 (체스, 포커) + 1개 개발중 (TRPG)
- 화면투사 선명도: 측정 예정
미구현 내용 및 향후 과제
- 포켓몬 카드 게임 한국판 인식 모델
- TRPG GPT API 연동
- 터치 캘리브레이션 자동화
- 카메라 최종 위치 확정
- 전체 시스템 통합 테스트
프로젝트 평가
중간 평가 (2025년 6월 1일 기준)
진행률
- 하드웨어: 90% 완료
- 소프트웨어: 75% 완료
- 시스템 통합: 30% 완료
주요 성과
- 설계 변경을 통한 현실적 목표 재설정
- 터치 모듈 하드웨어 완성
- 카드 인식 시스템 성공적 구현
- 복수 게임 구현을 통한 플랫폼 확장성 입증
주요 과제
- 한국어 카드 인식 문제 해결
- 시스템 통합 및 안정성 확보
- 사용자 경험 최적화
예산 내역
총 예산 변화
- 초기 계획 (2025.4): 183천원
- 최종 예산 (2025.6): 404.8천원
- 증액 사유: 카메라 업그레이드, 아크릴 판재, PCB 전문 제작
상세 내역 비교
| 구분 | 초기 계획 (천원) | 최종 실제 (천원) | 주요 변경사항 |
|---|---|---|---|
| 기본 부품 | 175 | 175 | 동일 |
| 카메라 업그레이드 | - | 54.2 | IMX219 → IMX708 |
| 아크릴 판재 | - | 79.4 | 커버 제작 |
| PCB 제작 | - | 60.0 | 전문 제작 |
| 기타 추가 부품 | 8 | 36.2 | 터치패드 보호재 등 |
| 총계 | 183 | 404.8 | 221.8천원 증액 |
기술적 상세사항
Velostat 압력 센서 기술
원리와 특성
- 소재: 전도성 폴리에틸렌 수지 필름에 탄소 블랙 항정전기 플라스틱 침투
- 표면 저항: 31,000 Ω/cm² (일반적으로 100,000Ω/□ 미만)
- 물리적 특성: 열접착 가능, 유연성, 뛰어난 내마모성
- 온도 범위: -45°C ~ +65°C (-50°F ~ 150°F)
- 크기: 280mm × 280mm, 두께 4mil/0.1mm
매트릭스 구성
- 구리 테이프: 5mm 폭으로 최적화 (실험적 검증)
- 배치: 한 면에 구리 열(column), 다른 면에 구리 행(row)
- 보호: 50μm PE(폴리에틸렌) 필름으로 방수 처리
터치 인식 회로
핵심 구성요소
- SN74HC595: 반응 신호 제어, 하나의 활성 열(column) 스위칭
- CD4051D: 터치 천의 반응 신호 제어, ADC 연결된 활성 행(row) 선택
- 연산 증폭기: 미약한 신호 증폭
- Arduino: 시프트 레지스터와 멀티플렉서 제어, 직렬 데이터 수신
PCB 설계 기준
- 크로스토크 방지: 3W 규칙 적용
- 도선 사양: 20mil 두께, 12mil 간격
- 신호 무결성 확보
카메라 인식 기술
하드웨어 사양
- 센서: Sony IMX708 (12MP, 자동초점, 120도 광각)
- 해상도: 최대 4608×2592
- 인터페이스: CSI (Camera Serial Interface)
이미지 처리 파이프라인 1. 고해상도 캡처 (4608×2592) 2. 이진화 및 윤곽 검출 3. 카드 영역 추출 4. 샤프닝 필터 적용 5. 딥러닝 모델 인식 6. 결과 검증 및 정렬
인식 정확도 향상 기법
- 프로젝터 조명 환경 고려한 임계값 설정
- 카드 크기 비율 검증 (63mm×88mm 기준)
- 여백 포함 crop으로 정보 손실 방지
- 좌표 기반 카드 순서 정렬
개발 환경 및 도구
하드웨어 환경
- 제어 보드: Raspberry Pi 5
- 개발 보드: Arduino Uno
- 카메라: IMX-708 12MP 광각
- 프로젝터: XGIMI Halo+
소프트웨어 환경
- OS: Raspberry Pi OS
- 언어: Python 3.9, C++
- 프레임워크: PyQt5, OpenCV 4.5
- 딥러닝: YOLO v5
- API: OpenAI GPT API
개발 도구
- PCB 설계: KiCad
- 3D 모델링: Fusion 360 (초기 설계)
- 코드 편집: VS Code
- 이미지 처리: OpenCV, PIL
참고 자료 및 오픈소스
활용 오픈소스
- 체스 게임: 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
팀 구성 및 역할 분담
구성원별 전문 분야
| 팀원명 | 주요 역할 | 세부 담당 업무 |
|---|---|---|
| 구효본 (팀장) | 프로젝트 관리, 터치 시스템 | 일정 관리, 진행사항 관리, 터치 하드웨어 구현 |
| 김지호 | 터치 시스템, 통합 | 터치 시스템 설계 및 구현, input 시스템 통합 |
| 류정현 | 게임 소프트웨어 | 게임 포팅 및 플랫폼 구현 |
| 조수민 | 기구 설계, 통합 | 외장 디자인 설계, input 시스템 통합 |
| 전진형 | AI/객체인식, API | 객체인식 시스템, API 통합 구현 |
느낀점
(프로젝트 완료 후 작성 예정)
부록
문제 해결 과정
터치 정확도 문제
- 문제: 초기 설계 목표 5mm 정확도 달성 어려움
- 원인: 손가락 접촉면적과 센서 간격 불일치
- 해결: UI 재설계를 통한 실용적 접근
카메라 성능 문제
- 문제: IMX219 화질 및 화각 부족
- 해결: IMX708 광각 카메라로 업그레이드
게임 복잡도 문제
- 문제: 유희왕, 매직 더 게더링 구현 복잡도 과다
- 해결: 포켓몬 카드게임으로 범위 조정
예산 관리
- 초기 예산: 183천원
- 최종 예산: 404.8천원
- 주요 증액 요인: 성능 향상을 위한 부품 업그레이드
향후 확장 가능성
- 추가 게임 장르 지원
- AI 대전 상대 구현
- 온라인 멀티플레이어 지원
- 모바일 앱 연동
프로젝트 느낀점
- 하드웨어 제약사항을 고려한 현실적 목표 설정의 중요성
- 프로토타입을 통한 조기 검증의 필요성
- 팀 내 소통과 역할 분담의 중요성
- 오픈소스 활용을 통한 개발 효율성 증대