"Imbedded - 테이블탑 프로젝터"의 두 판 사이의 차이

MIE capstone
이동: 둘러보기, 검색
1번째 줄: 1번째 줄:
==프로젝트 소개==
+
==프로젝트 개요==
'''테이블탑 프로젝터'''는 프로젝터를 이용하여 테이블 위에 게임 화면을 투사하고, 터치 센서를 통해 사용자와 상호작용할 수 있는 인터랙티브 게임 플랫폼입니다. 다양한 보드게임과 카드게임을 디지털화하여 여러 사용자가 함께 즐길 수 있는 새로운 형태의 게임 환경을 제공합니다.
 
  
===프로젝트 ===
+
===프로젝트 소개===
 +
'''프로젝트 명'''
 
테이블탑 프로젝터 (Tabletop Projector)
 
테이블탑 프로젝터 (Tabletop Projector)
  
===프로젝트 기간===
+
'''프로젝트 요약'''
2025년 3월 ~ 2025년 6월
+
'''테이블탑 프로젝터'''는 프로젝터를 이용하여 테이블 위에 게임 화면을 투사하고, 터치 센서를 통해 사용자와 상호작용할 수 있는 인터랙티브 게임 플랫폼입니다. 다양한 보드게임과 카드게임을 디지털화하여 여러 사용자가 함께 즐길 수 있는 새로운 형태의 게임 환경을 제공합니다.
 
 
===팀 소개===
 
{| class="wikitable" style="text-align:center"
 
! 팀명 colspan="5" | '''Imbedded'''
 
|-
 
! 역할
 
! 이름
 
! 담당 업무
 
! 연락처
 
|-
 
| 팀장
 
| 구**
 
| 프로젝트 관리, 터치 시스템
 
| -
 
|-
 
| 팀원
 
| 김**
 
| 터치 시스템, 시스템 통합
 
| -
 
|-
 
| 팀원
 
| 류**
 
| 터치 시스템, 회로 설계
 
| -
 
|-
 
| 팀원
 
| 조**
 
| 기구 설계, 커버 제작
 
| -
 
|-
 
| 팀원
 
| 전**
 
| AI/객체인식, API 연동
 
| -
 
|}
 
 
 
===개발 소요 비용===
 
* '''초기 계획''' (2025.4): 183천원
 
* '''최종 예산''' (2025.6): 404.8천원
 
* '''증액 사유''': 카메라 성능 업그레이드, 아크릴 커버 제작, PCB 전문 제작
 
 
 
==프로젝트 개요==
 
  
===초기 개발 컨셉===
+
'''프로젝트 개발 컨셉'''
'''프로젝트 비전'''
+
본 프로젝트는 테이블 위에 보드게임 화면을 투사하고, 사용자의 터치 입력으로 직접 상호작용할 수 있는 플랫폼을 구현하는 것입니다. 이를 통해 여러 사람이 각자 휴대기기에 국한되지 않고 하나의 공용 공간에서 함께 게임을 즐길 수 있으며, 전통 보드게임의 정적인 특성을 넘어 화면 위의 영상과 동적으로 교감하며 플레이할 수 있어 온라인 게임이 가지는 ‘대면 상호작용의 부재’ 문제를 해소합니다.
  
보드게임 화면을 책상에 투사하고 영상을 터치함으로써 상호작용이 가능한 장치를 제작하여, 여러 사람들이 개인용 기기로만 접할 수 있었던 게임을 함께 참여할 수 있게 공통된 책상에 투사해주는 시스템을 구현한다. 전통적인 보드게임의 정적인 특성에서 벗어나, 사용자와 영상의 상호작용으로 동적인 보드게임이 가능해지며, 온라인 게임의 약점으로 꼽혀왔던 사람들과의 대면 부족이라는 문제를 해결할 수 있다.
+
===프로젝트 배경 및 기대효과===
 
 
'''핵심 가치'''
 
* '''확장 가능성''': 리눅스 플랫폼 특성상 개발 환경이 잘 갖추어져 있어 향후 추가 보드게임 개발 가능
 
* '''직관적 조작''': 빠른 터치 속도 및 영상인식을 통한 자연스러운 사용자 상호작용
 
* '''사회적 연결''': 대면 보드게임의 장점과 디지털 게임의 편의성 결합
 
 
 
===프로젝트 요약===
 
본 프로젝트는 프로젝터와 터치 센서를 결합하여 테이블 위에서 다양한 인터랙티브 게임을 즐길 수 있는 플랫폼을 개발하는 것을 목표로 한다. 라즈베리파이를 중심으로 한 제어 시스템과 벨로스탯(Velostat)을 활용한 터치 모듈, 카메라를 통한 실물 카드 인식 시스템을 구현하여 디지털과 아날로그의 장점을 결합한 새로운 게임 경험을 제공한다.
 
 
 
===프로젝트의 배경 및 기대효과===
 
 
<div style="background-color:#f8f9fa; border-left:4px solid #1976d2; padding:20px; margin:10px 0;">
 
<div style="background-color:#f8f9fa; border-left:4px solid #1976d2; padding:20px; margin:10px 0;">
 
'''배경'''
 
'''배경'''
79번째 줄: 27번째 줄:
 
</div>
 
</div>
  
===프로젝트 개발 목표===
+
===프로젝트 목표===
 +
* '''확장 가능성''': 리눅스 플랫폼 특성상 개발 환경이 잘 갖추어져 있어 향후 추가 보드게임 개발 가능
 +
* '''직관적 조작''': 빠른 터치 속도 및 영상인식을 통한 자연스러운 사용자 상호작용
 +
* '''사회적 연결''': 대면 보드게임의 장점과 디지털 게임의 편의성 결합
  
'''초기 목표 (2025.4 제안서 기준)'''
+
==동작 시나리오==
{| class="wikitable" style="text-align:center"
+
<div style="background-color:#f5f5f5; padding:20px; border-radius:10px; margin:20px 0;">
|-
+
<h3 style="color:#1976d2; margin-top:0;">🎯 시스템 동작 흐름</h3>
! style="background-color:#1976d2; color:white;" | 평가 항목
+
<ol style="font-size:16px; line-height:2;">
! style="background-color:#1976d2; color:white;" | 평가방법
+
<li><strong>시스템 시작</strong>: 프로젝터 전원 ON, 라즈베리파이 부팅</li>
! style="background-color:#1976d2; color:white;" | 초기 목표치
+
<li><strong>게임 선택</strong>: 터치를 통해 메인 화면에서 원하는 게임 선택</li>
! style="background-color:#1976d2; color:white;" | 최종 목표치 (수정)
+
<li><strong>게임 진행</strong>
! style="background-color:#1976d2; color:white;" | 비중(%)
+
  <ul>
|-
+
  <li>1차 게임(체스): 터치로 기물 이동</li>
| '''터치 정확도'''
+
  <li>2차 게임(카드게임): 실물 카드를 테이블에 배치, 카메라가 인식하여 게임 진행</li>
| 터치 인식 간격 (mm)
+
  <li>3차 게임(TRPG): GPT API를 활용한 스토리 진행</li>
| < 30mm
+
  </ul>
| style="background-color:#ffecb3;" | '''< 20mm'''
+
</li>
| 35
+
<li><strong>게임 종료</strong>: 메인 화면으로 복귀</li>
|-
+
</ol>
| '''터치 응답시간'''
 
| 20회 반복 측정 (ms)
 
| < 5ms
 
| style="background-color:#ffecb3;" | '''< 100ms'''
 
| 20
 
|-
 
| '''카드 객체인식 정확도'''
 
| 100프레임당 인식률 (%)
 
| > 50%
 
| style="background-color:#c8e6c9;" | '''> 90%'''
 
| 10
 
|-
 
| '''게임 응답속도'''
 
| 입력-반응 사이 시간 (ms)
 
| < 100ms
 
| < 100ms
 
| 25
 
|-
 
| '''지원 게임 가짓수'''
 
| 빌드된 게임 개수
 
| 3+ 개
 
| style="background-color:#ffecb3;" | '''2+ 개'''
 
| 10
 
|-
 
| '''화면투사 선명도'''
 
| sharpness 계산 (%)
 
| > 70%
 
| > 70%
 
| 10
 
|}
 
 
 
<div class="mw-collapsible mw-collapsed" style="border:1px solid #ddd; padding:10px; margin:10px 0;">
 
<div style="font-weight:bold; background-color:#f5f5f5; padding:5px;">목표 수정 사유 (클릭하여 확인)</div>
 
<div class="mw-collapsible-content" style="padding-top:10px;">
 
* '''터치 정확도''': 30mm → 20mm (하드웨어 성능 향상으로 목표 강화)
 
* '''터치 응답시간''': 5ms → 100ms (하드웨어 한계를 고려한 현실적 조정)
 
* '''카드 인식률''': 50% → 90% (카메라 성능 향상과 알고리즘 개선으로 목표 강화)
 
* '''게임 가짓수''': 3개 → 2개 (프로젝트 기간 내 완성도 높은 구현을 위한 조정)
 
</div>
 
 
</div>
 
</div>
  
==개념 설계==
+
==구현 내용==
 
+
===장치 선정===
===시스템 목적 계통도===
 
테이블탑 프로젝터는 다음 5가지 핵심 가치를 중심으로 설계되었습니다:
 
 
 
<div style="display:flex; flex-wrap:wrap; gap:20px; margin:20px 0;">
 
<div style="flex:1; min-width:300px; background-color:#e3f2fd; padding:20px; border-radius:10px;">
 
<h4 style="color:#1976d2; margin-top:0;">💡 편의성 (직관성, 조작감)</h4>
 
* '''직관성''': 터치와 프로젝터의 빔을 이용하는 테이블탑 프로젝터는 간편한 UI를 제공하여 처음 사용하는 사용자에게도 직관적으로 사용법을 알 수 있도록 설계
 
* '''조작감''': 뮤직 플레이어의 UI와 유사하게 구성하여 게임이 목록화되고, 각 게임마다의 사진과 설명을 화면 대부분에 할당하여 표시
 
* 터치라는 익숙한 입력 방식을 통해 스마트폰 사용 경험자들이 쉽게 장치를 조작하고 실행할 수 있도록 구현
 
</div>
 
 
 
<div style="flex:1; min-width:300px; background-color:#e8f5e9; padding:20px; border-radius:10px;">
 
<h4 style="color:#388e3c; margin-top:0;">⚡ 성능 (신속성, 정밀성)</h4>
 
* '''신속성''': 터치 압력 감지용 Velostat 소재의 저항값이 민감하게 변하는 구간을 선택하여 정전식 터치방식인 스마트폰과 유사한 압력대를 감지
 
* '''정밀성''': 저항값이 변하는 지점을 통해 정확한 터치 지점을 좌표 계산하여 mm단위의 정밀한 터치점을 찾아내고, 압력의 세기도 구분하여 범용적인 활용 가능
 
* 터치 모듈을 구동하는 연산을 아두이노로 분리하여 라즈베리파이에서는 게임 소프트웨어에 리소스를 최대한 투자
 
* 프로젝터는 해상도보다는 높은 밝기값을 지원하는 제품을 선택하여 주변 빛에 의한 프로젝션 영상의 선명도를 최대한 보존
 
</div>
 
 
 
<div style="flex:1; min-width:300px; background-color:#fff3e0; padding:20px; border-radius:10px;">
 
<h4 style="color:#f57c00; margin-top:0;">🔧 확장가능성 (범용성, 확장성)</h4>
 
* '''모듈성''': 라즈베리파이, 터치 모듈, 프로젝터, 카메라 각각이 모듈로 구성되어 요구되는 테이블 크기, 게임 성능 등에 따라 시스템 변경 가능
 
* '''표준화된 단자''': HDMI, USB, FPC/FFC 케이블 등 표준화된 단자를 사용하여 다양한 환경, 가격 조건, 성능 조건에 따라 적합한 시스템 성능 구축 가능
 
* '''포팅 편의성''': 소스가 LINUX 환경에서 실행되며, 터치 시스템을 하드웨어 부분에서 지원하므로 터치입력 처리만 구현하면 어렵지 않게 이식 가능
 
</div>
 
 
 
<div style="flex:1; min-width:300px; background-color:#fce4ec; padding:20px; border-radius:10px;">
 
<h4 style="color:#c2185b; margin-top:0;">🛡️ 내구성</h4>
 
* '''높은 내구성''': 프로젝터, 라즈베리파이, 카메라 모듈은 표준화된 입출력 단자가 존재하여 체결성이 높고 여러번의 탈착에도 높은 내구성 보장
 
* '''PCB 구현''': 터치 모듈의 복잡한 회로를 PCB 기판으로 구현하고 케이블의 단자를 FPC/FFC 규격으로 압축하여 부품의 탈착, 이동에도 높은 내구성 유지
 
</div>
 
 
 
<div style="flex:1; min-width:300px; background-color:#f3e5f5; padding:20px; border-radius:10px;">
 
<h4 style="color:#7b1fa2; margin-top:0;">💰 경제성</h4>
 
* '''비용 절감''': 압력인식 패널, 고가의 카메라 등을 사용하지 않고 저렴한 회로기판과 velostat 소재, 이미지처리 기법과 객체인식 모델을 활용하여 센서 비용 최소화
 
* '''확장성을 통한 경제성''': 같은 기능을 가진 저렴한 모델(저렴한 프로젝터, 라즈베리파이 4 이하의 CPU 등)로 교체하여 단가 절감 가능성 확보
 
</div>
 
</div>
 
 
 
===입력장치 검토 및 선정===
 
 
 
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
<h4 style="background-color:#2196f3; color:white; padding:10px; margin:0;">🔍 입력장치 상세 비교</h4>
+
<h4 style="background-color:#2196f3; color:white; padding:10px; margin:0;">입력장치</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
<div class="mw-collapsible-content" style="padding:20px;">
  
216번째 줄: 87번째 줄:
 
</div>
 
</div>
 
</div>
 
</div>
 
===제어장치 검토 및 선정===
 
  
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
<h4 style="background-color:#4caf50; color:white; padding:10px; margin:0;">🎮 제어장치 상세 비교</h4>
+
<h4 style="background-color:#4caf50; color:white; padding:10px; margin:0;">제어장치</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
<div class="mw-collapsible-content" style="padding:20px;">
  
245번째 줄: 114번째 줄:
 
</div>
 
</div>
 
</div>
 
</div>
 
===통신모듈 검토 및 선정===
 
  
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
<h4 style="background-color:#ff9800; color:white; padding:10px; margin:0;">📡 통신모듈 상세 비교</h4>
+
<h4 style="background-color:#ff9800; color:white; padding:10px; margin:0;">통신모듈</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
<div class="mw-collapsible-content" style="padding:20px;">
  
270번째 줄: 137번째 줄:
 
</div>
 
</div>
  
===출력장치 검토 및 선정===
 
  
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
<h4 style="background-color:#9c27b0; color:white; padding:10px; margin:0;">📽️ 출력장치 상세 비교</h4>
+
<h4 style="background-color:#9c27b0; color:white; padding:10px; margin:0;">출력장치</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
<div class="mw-collapsible-content" style="padding:20px;">
  
293번째 줄: 159번째 줄:
 
</div>
 
</div>
  
===부품 평가 및 선정 결과===
+
===커버 설계===
 
 
개념설계 단계에서 수행한 부품별 평가 결과
 
 
 
<div style="overflow-x:auto;">
 
{| class="wikitable" style="text-align:center; min-width:800px;"
 
|-
 
! rowspan="2" style="background-color:#2196f3; color:white;" | 분류
 
! rowspan="2" style="background-color:#2196f3; color:white;" | 설계안
 
! colspan="7" style="background-color:#2196f3; color:white;" | 평가 기준
 
! rowspan="2" style="background-color:#2196f3; color:white;" | 합계
 
! rowspan="2" style="background-color:#2196f3; color:white;" | 순위
 
|-
 
! style="background-color:#64b5f6;" | 직관성
 
! style="background-color:#64b5f6;" | 조작감
 
! style="background-color:#64b5f6;" | 신속성
 
! style="background-color:#64b5f6;" | 정밀성
 
! style="background-color:#64b5f6;" | 확장성
 
! style="background-color:#64b5f6;" | 내구성
 
! style="background-color:#64b5f6;" | 경제성
 
|-
 
| rowspan="4" | '''입력장치'''
 
| style="background-color:#c8e6c9;" | '''Velostat'''
 
| -
 
| 중
 
| 중
 
| 중
 
| 상
 
| 상
 
| 상
 
| '''15'''
 
| '''1'''
 
|-
 
| 터치 패널
 
| -
 
| 중
 
| 중
 
| 상
 
| 하
 
| 하
 
| 하
 
| 10
 
| 2
 
|-
 
| style="background-color:#c8e6c9;" | '''IMX219'''
 
| -
 
| -
 
| -
 
| 상
 
| -
 
| -
 
| 중
 
| '''5'''
 
| '''1'''
 
|-
 
| OV5648
 
| -
 
| -
 
| -
 
| 하
 
| -
 
| -
 
| 상
 
| 4
 
| 2
 
|-
 
| rowspan="4" | '''제어장치'''
 
| style="background-color:#c8e6c9;" | '''아두이노 우노'''
 
| -
 
| -
 
| -
 
| -
 
| 상
 
| 중
 
| 상
 
| '''8'''
 
| '''1'''
 
|-
 
| 아두이노 프로미니
 
| -
 
| -
 
| -
 
| -
 
| 하
 
| 중
 
| 중
 
| 5
 
| 2
 
|-
 
| 라즈베리파이4B
 
| -
 
| -
 
| 하
 
| 하
 
| 중
 
| -
 
| 상
 
| 7
 
| 2
 
|-
 
| style="background-color:#c8e6c9;" | '''라즈베리파이 5'''
 
| -
 
| -
 
| 상
 
| 상
 
| 상
 
| -
 
| 중
 
| '''11'''
 
| '''1'''
 
|-
 
| rowspan="3" | '''통신모듈'''
 
| style="background-color:#c8e6c9;" | '''USB 유선'''
 
| 상
 
| 상
 
| 상
 
| 상
 
| 중
 
| 중
 
| 상
 
| '''19'''
 
| '''1'''
 
|-
 
| 블루투스 무선
 
| 중
 
| 하
 
| 하
 
| 상
 
| 상
 
| 상
 
| 중
 
| 15
 
| 2
 
|-
 
| style="background-color:#c8e6c9;" | '''HDMI'''
 
| 상
 
| -
 
| -
 
| 상
 
| 상
 
| 상
 
| 상
 
| '''15'''
 
| '''1'''
 
|-
 
| rowspan="2" | '''출력장치'''
 
| style="background-color:#c8e6c9;" | '''PJD86533WS'''
 
| -
 
| -
 
| -
 
| 하
 
| 중
 
| 중
 
| 중
 
| '''10'''
 
| '''1'''
 
|-
 
| style="background-color:#c8e6c9;" | '''HY450'''
 
| -
 
| -
 
| -
 
| 중
 
| 중
 
| 중
 
| 상
 
| '''10'''
 
| '''1'''
 
|}
 
</div>
 
 
 
<div class="mw-collapsible mw-collapsed" style="border:1px solid #ddd; padding:10px; margin:10px 0;">
 
<div style="font-weight:bold; background-color:#f5f5f5; padding:5px;">📊 평가 기준 정의 (클릭하여 확인)</div>
 
<div class="mw-collapsible-content" style="padding-top:10px;">
 
* '''직관성''': 직관적으로 사용법을 알 수 있는가?
 
* '''조작감''': 적은 힘으로 터치 구동이 가능한가?
 
* '''신속성''': 장치의 반응속도가 빠른가?
 
* '''정밀성''': 화면의 가시성, 터치의 정밀도가 높은가?
 
* '''확장성''': 부품 교체 및 업그레이드가 용이한가?
 
* '''내구성''': 이동 및 보관 시 배선이 끊어지거나 부품이 손상될 우려는 없는가?
 
* '''경제성''': 제품의 비용이 합리적인가?
 
</div>
 
</div>
 
 
 
<div style="background-color:#e8f5e9; border-radius:10px; padding:20px; margin:20px 0;">
 
<h4 style="color:#2e7d32; margin-top:0;">✅ 최종 선정 결과</h4>
 
상기 평가를 통해 다음과 같이 부품을 선정:
 
* '''입력장치''': Velostat + IMX219 (→ IMX-708로 업그레이드)
 
* '''제어장치''': Arduino Uno + Raspberry Pi 5 
 
* '''통신모듈''': USB 유선 + HDMI 유선
 
* '''출력장치''': ViewSonic PJD86533WS (1차) / MAGCUBIC HY450 (대안) → XGIMI Halo+ (최종)
 
</div>
 
 
 
==초기 시스템 설계==
 
 
 
===초기 하드웨어 구성 (제안서 기준)===
 
<div style="display:flex; flex-wrap:wrap; gap:20px;">
 
<div style="flex:1; min-width:300px; background-color:#f5f5f5; padding:15px; border-radius:5px;">
 
<h4 style="color:#1976d2;">터치 입력 시스템</h4>
 
* 크기: 120 × 90 cm² (최종: 400 × 400 mm로 축소)
 
* 센서: Velostat 압력 센서 + 구리 테이프 매트릭스
 
* 제어: Arduino + 멀티플렉서/시프트 레지스터 조합
 
</div>
 
 
 
<div style="flex:1; min-width:300px; background-color:#f5f5f5; padding:15px; border-radius:5px;">
 
<h4 style="color:#388e3c;">영상 처리 시스템</h4>
 
* 메인 컨트롤러: Raspberry Pi 4 (최종: Raspberry Pi 5)
 
* 카메라: SONY IMX 219 8MP (최종: IMX-708 12MP 광각으로 업그레이드)
 
* 해상도: 3280×2464 (최종: 4608×2592)
 
</div>
 
 
 
<div style="flex:1; min-width:300px; background-color:#f5f5f5; padding:15px; border-radius:5px;">
 
<h4 style="color:#7b1fa2;">출력 시스템</h4>
 
* 프로젝터: Viewsonic PJD8653ws (최종: XGIMI Halo+로 변경)
 
* 해상도: 1280×800 (최종: 1920×1080)
 
* 밝기: 3000 ANSI (최종: 더 높은 성능)
 
</div>
 
</div>
 
 
 
===초기 게임 계획===
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
 
<h4 style="background-color:#4caf50; color:white; padding:10px; margin:0;">🎮 게임 개발 계획</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
 
 
'''1차 게임 - 4인 체스''' ✅ '''완료'''
 
* 목적: 터치 시스템 정확도 및 딜레이 측정
 
* 특징: 마우스 클릭을 터치로 대체하는 간단한 포팅
 
* 상태: ✅ 완료 (계획대로 구현)
 
 
 
'''2차 게임 - 카드게임''' 🔄 '''변경 및 개발 중'''
 
* 초기 계획: 유희왕 등 복잡한 카드게임
 
* 변경 사유:
 
  * 유희왕: 뒷면 카드 규칙으로 전면 인식 시스템과 부적합
 
  * 매직: 동시 인식 카드 수 과다, 플레이 영역 초과
 
* 최종 구현:
 
  * Texas Hold'em Poker (프로토타입) ✅
 
  * 포켓몬 카드게임 (개발 중) 🔄
 
 
 
'''3차 게임 - TRPG''' 📝 '''개발 중'''
 
* 계획: LLM API 활용한 사회자 역할 AI
 
* 목적: AI를 통한 게임 진행 관리, 공정한 랜덤성 제공
 
* 상태: 📝 개발 중 (캐릭터 생성 시스템 완료, GPT API 연동 예정)
 
</div>
 
</div>
 
 
 
==설계 변경사항==
 
 
 
===하드웨어 변경사항===
 
<div class="mw-collapsible" style="border:2px solid #ff5252; margin:10px 0;">
 
<h4 style="background-color:#ff5252; color:white; padding:10px; margin:0;">⚠️ 중요 하드웨어 변경사항</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
 
 
<div style="background-color:#ffebee; padding:15px; margin:10px 0; border-left:4px solid #ff5252;">
 
<h5 style="color:#c62828;">터치 모듈 변경</h5>
 
* '''초기''': 터치 지점 오차범위 5mm 이하
 
* '''변경''': 터치 지점 오차범위 20mm 이하
 
* '''사유''':
 
  * 벨로스탯에 구리선을 부착할 때 구리선의 폭(5mm)과 간격(20mm) 설정 시, 사람의 손가락이 닿는 면적(8mm)이 신호선들 사이에 고르게 퍼지지 못하는 문제 발생
 
  * 초기 알고리즘은 터치 입력 네 곳을 바탕으로 상세한 터치점의 위치를 정하는 것이였으나, 터치 시 네 곳이 동시에 눌리는 것이 아닌 한 곳만 눌리게 되면서 이러한 알고리즘의 적용이 불가능해짐
 
  * 시간과 수정의 용이성을 고려하여 소프트웨어의 UI를 수정하는 방법으로 문제 해결
 
</div>
 
 
 
<div style="background-color:#ffebee; padding:15px; margin:10px 0; border-left:4px solid #ff5252;">
 
<h5 style="color:#c62828;">커버 설계 변경</h5>
 
* '''초기''': 미니리프트 2개 사용, 볼 조인트 방식 소형문
 
* '''변경''': 미니리프트 1개 사용, 미니 경첩 부착 소형문
 
* '''사유''':
 
  * 두 리드 스크류를 용접하여 하나로 연결하더라도 약 7kg에 달하는 프로젝터를 들어 올릴 수 있는 충분한 토크가 발생하는지 불확실
 
  * 용접 과정에서 리드 스크류의 길이가 미세하게나마 짧아질 경우, 리프트 작동 자체에 문제가 생길 수 있음
 
  * 실험적 경험에 비추어 볼 때, 한 개의 미니 리프트만으로도 프로젝터를 지지하고 높낮이를 안정적으로 조절할 수 있다는 점이 확인됨
 
  * 5mm 아크릴 재질에서 볼 조인트 소켓 가공 어려움
 
</div>
 
</div>
 
</div>
 
 
 
===소프트웨어 변경사항===
 
<div class="mw-collapsible" style="border:2px solid #1976d2; margin:10px 0;">
 
<h4 style="background-color:#1976d2; color:white; padding:10px; margin:0;">💡 소프트웨어 개선사항</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
 
 
'''1차 게임 요소'''
 
* 체스 게임: 변동 없음 ✅
 
 
 
'''2차 게임 요소''' 🔄
 
<div style="background-color:#e3f2fd; padding:15px; margin:10px 0; border-left:4px solid #1976d2;">
 
* '''초기 계획''': 유희왕 등 카드게임
 
* '''변경''': 포커 게임으로 선구현, 포켓몬 카드게임 개발 시도중
 
* '''카메라 모델 변경''': IMX-219 → IMX-708 120도 광각
 
* '''변경 사유''':
 
  * '''유희왕''': 뒷면으로 카드를 내는 규칙이 존재하여 현재 시스템에서는 카드의 전면이 드러나야 카메라로 정보를 얻고 게임 로직을 수행할 수 있어 적용이 어려움
 
  * '''매직 더 게더링''': 동시에 인식해야하는 카드가 대부분 50장에 달해 라즈베리파이의 연산능력으로 객체인식을 수행함에 있어 어려움이 존재. 또한 플레이 영역이 터치패드와 프로젝션 범위을 넘어설 우려가 있어 제작 후보에서 제외
 
  * '''포켓몬 카드 게임''': 턴 선택, 카드의 효과, 데미지 등 PyQt UI로 대체가능한 요소가 다수 존재. 유희왕이나 매직 더 게더링과 달리 뒷면 규칙이 없으며 최대 인식 요구 갯수가 최대 13장으로 라즈베리파이의 연산성능으로 처리가 가능하다고 판단됨
 
</div>
 
 
 
'''3차 게임 요소'''
 
* LLM API를 활용한 TPRG: 변동 없음 ✅
 
</div>
 
</div>
 
 
 
==동작 시나리오==
 
<div style="background-color:#f5f5f5; padding:20px; border-radius:10px; margin:20px 0;">
 
<h3 style="color:#1976d2; margin-top:0;">🎯 시스템 동작 흐름</h3>
 
<ol style="font-size:16px; line-height:2;">
 
<li><strong>시스템 시작</strong>: 프로젝터 전원 ON, 라즈베리파이 부팅</li>
 
<li><strong>게임 선택</strong>: 터치를 통해 메인 화면에서 원하는 게임 선택</li>
 
<li><strong>게임 진행</strong>
 
  <ul>
 
  <li>1차 게임(체스): 터치로 기물 이동</li>
 
  <li>2차 게임(카드게임): 실물 카드를 테이블에 배치, 카메라가 인식하여 게임 진행</li>
 
  <li>3차 게임(TRPG): GPT API를 활용한 스토리 진행</li>
 
  </ul>
 
</li>
 
<li><strong>게임 종료</strong>: 메인 화면으로 복귀</li>
 
</ol>
 
</div>
 
 
 
==구현 내용==
 
 
 
===시스템 구성===
 
<div style="display:flex; flex-wrap:wrap; gap:20px; margin:20px 0;">
 
<div style="flex:1; min-width:300px; background-color:#e3f2fd; padding:20px; border-radius:10px;">
 
<h4 style="color:#1976d2; margin-top:0;">🔧 하드웨어 구성</h4>
 
* '''제어부''': Raspberry Pi 5
 
* '''출력부''': 프로젝터 (XGIMI Halo+)
 
* '''입력부''': 터치 모듈 (Velostat 기반), 카메라 모듈 (IMX-708)
 
* '''구조부''': 아크릴 커버, 미니 리프트
 
</div>
 
 
 
<div style="flex:1; min-width:300px; background-color:#e8f5e9; padding:20px; border-radius:10px;">
 
<h4 style="color:#388e3c; margin-top:0;">💻 소프트웨어 구성</h4>
 
* '''OS''': Raspberry Pi OS
 
* '''개발 언어''': Python, C++
 
* '''주요 라이브러리''': PyQt5, OpenCV, GPIO
 
* '''API''': GPT API (3차 게임용)
 
</div>
 
</div>
 
 
 
===기구부 설계 및 구현===
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
 
<h4 style="background-color:#ff9800; color:white; padding:10px; margin:0;">🏗️ 기구부 상세 설계</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
 
 
 
'''커버 설계'''
 
'''커버 설계'''
 
<div style="background-color:#fff3e0; padding:15px; margin:10px 0; border-radius:5px;">
 
<div style="background-color:#fff3e0; padding:15px; margin:10px 0; border-radius:5px;">
646번째 줄: 172번째 줄:
 
</div>
 
</div>
  
 +
 +
===터치패드 설계===
 
'''터치 패드 구조'''
 
'''터치 패드 구조'''
 
<div style="background-color:#e8f5e9; padding:15px; margin:10px 0; border-radius:5px;">
 
<div style="background-color:#e8f5e9; padding:15px; margin:10px 0; border-radius:5px;">
656번째 줄: 184번째 줄:
 
</div>
 
</div>
  
===제어부 및 회로 구현===
 
<div class="mw-collapsible" style="border:1px solid #ddd; margin:10px 0;">
 
<h4 style="background-color:#4caf50; color:white; padding:10px; margin:0;">⚡ 전자 회로 상세</h4>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
  
'''터치 모듈 회로'''
+
===소프트웨어 설계===
<div style="background-color:#f5f5f5; padding:15px; margin:10px 0; border-radius:5px;">
+
====1차 게임====
<h5 style="color:#2e7d32;">PCB 설계 사양</h5>
 
* '''설계 원칙''': 크로스토크 방지를 위한 3W 규칙 적용
 
* '''도선 사양''': 두께 20mil, 간격 12mil (0.5A 기준)
 
* '''사용 전류''': 약 0.3A~0.5A (벨로스탯 가변저항 동작)
 
</div>
 
 
 
<div style="background-color:#e8f5e9; padding:15px; margin:10px 0; border-radius:5px;">
 
<h5 style="color:#2e7d32;">주요 부품 목록</h5>
 
* '''4051D''' 8-channel multiplexer × 4개
 
* '''595D''' 8-Bit Shift Registers × 5개
 
* '''LMV324''' Operational Amplifiers × 18개
 
* '''저항''': 470Ω × 32개
 
</div>
 
 
 
<div style="background-color:#c8e6c9; padding:15px; margin:10px 0; border-radius:5px;">
 
<h5 style="color:#1b5e20;">시스템 구성</h5>
 
* '''연결''': 2×20 커넥터 사용으로 접촉 불량 최소화
 
* '''제어''': 아두이노 우노 모델 사용 (아두이노 미니는 성능 이슈로 터치 반응 불규칙)
 
</div>
 
</div>
 
</div>
 
 
 
'''카메라 시스템'''
 
<div style="background-color:#f3e5f5; padding:15px; margin:10px 0; border-radius:5px;">
 
<h5 style="color:#6a1b9a;">📷 IMX-708 카메라 사양</h5>
 
* '''모델''': IMX-708 (12MP 자동초점 120도 광각)
 
* '''기존 모델(IMX-219) 대비 개선사항''':
 
  * ✅ 화질 향상으로 카드 인식률 개선
 
  * ✅ 화각 확대로 촬영 범위 증가
 
  * ✅ 자동 초점 기능 추가
 
* '''위치''': 프로젝터 상단 커버 내부
 
* '''기능''': 실물 카드 인식, 게임 상황 촬영
 
</div>
 
 
 
===소프트웨어 설계 및 구현===
 
 
 
====1차 게임 - 체스====
 
 
<div style="background-color:#e3f2fd; padding:20px; margin:20px 0; border-radius:10px;">
 
<div style="background-color:#e3f2fd; padding:20px; margin:20px 0; border-radius:10px;">
 
<h4 style="color:#1976d2; margin-top:0;">♟️ 4인 체스 구현</h4>
 
<h4 style="color:#1976d2; margin-top:0;">♟️ 4인 체스 구현</h4>
710번째 줄: 197번째 줄:
 
</div>
 
</div>
  
====2차 게임 - 카드 게임====
+
 
 +
====2차 게임 ====
  
 
<div class="mw-collapsible" style="border:2px solid #4caf50; margin:10px 0;">
 
<div class="mw-collapsible" style="border:2px solid #4caf50; margin:10px 0;">
781번째 줄: 269번째 줄:
 
   * 승자 판별 로직 실행</li>
 
   * 승자 판별 로직 실행</li>
 
</ol>
 
</ol>
</div>
 
 
'''포켓몬 카드 게임 (개발 중)''' 🔄
 
<div style="background-color:#ffebee; padding:15px; margin:10px 0; border-radius:5px;">
 
* '''API 활용''': 16,000여 장의 카드 데이터베이스
 
* '''특수 효과''': 스타디움 카드에 따른 배경 변화
 
* '''과제''': 한국판 카드 인식 모델 부재 (대부분 영문판으로 학습된 모델)
 
* '''해결방안''': 영문판 카드 구매 또는 한국판 카드 일부 학습 모델 제작
 
</div>
 
</div>
 
 
</div>
 
</div>
  
803번째 줄: 281번째 줄:
 
* '''맵 구현''': QWebEngineView를 사용하여 HTML 기반 맵을 PyQt5 UI에 통합
 
* '''맵 구현''': QWebEngineView를 사용하여 HTML 기반 맵을 PyQt5 UI에 통합
 
* '''스토리 진행''': GPT API를 활용한 동적 시나리오 생성 (예정)
 
* '''스토리 진행''': GPT API를 활용한 동적 시나리오 생성 (예정)
</div>
 
 
==현재 진행상황==
 
 
<div style="background-color:#f5f5f5; padding:20px; margin:20px 0; border-radius:10px;">
 
<h3 style="color:#1976d2; margin-top:0;">📊 2025년 6월 중간보고 기준 진행률</h3>
 
 
<div style="display:flex; flex-wrap:wrap; gap:20px; margin-top:20px;">
 
<div style="flex:1; min-width:300px;">
 
<h4 style="color:#388e3c;">🔧 하드웨어 완성도</h4>
 
 
'''터치 모듈''' ✅ '''완료'''
 
* PCB 제작 완료 및 부품 납땜 완료
 
* 터치패드 마감재 선정 완료 (인조가죽)
 
* 캘리브레이션 코드 개발 필요 ⚠️
 
 
'''커버''' ✅ '''완료'''
 
* 아크릴 판재 레이저 커팅 완료
 
* 조립 완료
 
* 카메라 정확한 설치 위치 협의 필요 ⚠️
 
</div>
 
 
<div style="flex:1; min-width:300px;">
 
<h4 style="color:#1976d2;">💻 소프트웨어 완성도</h4>
 
 
'''1차 게임''' ✅ '''완료'''
 
* 체스 게임 UI 개선 완료
 
* 터치 인터페이스 최적화 완료
 
 
'''2차 게임''' 🔄 '''80% 완료'''
 
* Texas Hold'em Poker 게임 로직 완성 ✅
 
* 카드 인식 시스템 구현 완료 ✅
 
* 포켓몬 카드 게임 UI 설계 완료 ✅
 
* 포켓몬 카드 인식 모델 해결 필요 ⚠️
 
 
'''3차 게임''' 📝 '''60% 완료'''
 
* 캐릭터 생성 시스템 구현 완료 ✅
 
* 맵 생성 기능 구현 완료 ✅
 
* GPT API 연동 개발 중 🔄
 
</div>
 
</div>
 
 
<div style="margin-top:20px;">
 
<h4>전체 진행률</h4>
 
<div style="background-color:#e0e0e0; height:30px; border-radius:15px; overflow:hidden;">
 
<div style="background-color:#4caf50; height:100%; width:75%; text-align:center; line-height:30px; color:white; font-weight:bold;">
 
75%
 
</div>
 
</div>
 
</div>
 
</div>
 
 
==향후 진행 계획 및 일정==
 
 
===하드웨어 개선 계획===
 
<div style="background-color:#e3f2fd; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#1976d2; margin-top:0;">🔧 터치 모듈</h4>
 
* 터치 캘리브레이션 코드 추가
 
* 가변적 화면 비율 대응 적응형 소프트웨어 개발
 
* 초기 시작 시 마커 터치를 통한 캘리브레이션 기능 구현
 
</div>
 
 
<div style="background-color:#e8f5e9; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#388e3c; margin-top:0;">🏗️ 커버</h4>
 
* 카메라 모듈 최종 위치 확정
 
* 슬라이드 레일 설치 여부 결정 (카메라 깊이에 따라)
 
</div>
 
 
===소프트웨어 개발 계획===
 
<div style="background-color:#fff3e0; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#f57c00; margin-top:0;">🎮 2차 게임 요소</h4>
 
* 포켓몬 카드 게임 본격 개발
 
* 한국판 카드 인식 해결 (영문판 구매 또는 학습 모델 제작)
 
* 카드 정보 기반 화려한 효과 구현
 
</div>
 
 
<div style="background-color:#f3e5f5; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#7b1fa2; margin-top:0;">🎲 3차 게임 요소</h4>
 
* GPT API 연동 완료
 
* 동적 시나리오 생성 시스템 구현
 
</div>
 
 
===통합 및 테스트===
 
<div style="background-color:#ffebee; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#c62828; margin-top:0;">🔄 시스템 통합</h4>
 
* 모듈 간 통합 테스트
 
* 터치 팀과 소프트웨어 팀 UI 크기 조율
 
* 커버 팀과 카메라 위치 설정 협의
 
</div>
 
 
<div style="background-color:#e0f2f1; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#00695c; margin-top:0;">✅ 최종 테스트</h4>
 
* 50cm 카메라 케이블 준비 후 최종 위치 설정
 
* 캘리브레이션 코드 적용 테스트
 
* 전체 시스템 통합 테스트
 
</div>
 
 
===개발 일정표===
 
<div style="overflow-x:auto;">
 
{| class="wikitable" style="text-align:center;"
 
|-
 
! style="background-color:#2196f3; color:white;" | 개발 내용
 
! style="background-color:#2196f3; color:white;" | 담당자
 
! style="background-color:#2196f3; color:white;" | 5월 1-2주
 
! style="background-color:#2196f3; color:white;" | 5월 3주
 
! style="background-color:#2196f3; color:white;" | 6월 1주
 
! style="background-color:#2196f3; color:white;" | 6월 2주
 
! style="background-color:#2196f3; color:white;" | 6월 3주
 
|-
 
| 터치 캘리브레이션 코드 추가
 
| 터치팀
 
| style="background-color:#4caf50;" | ■
 
| style="background-color:#4caf50;" | ■
 
|
 
|
 
|
 
|-
 
| 프로젝터 하우징
 
| 구**, 조**
 
| style="background-color:#4caf50;" | ■
 
| style="background-color:#4caf50;" | ■
 
|
 
|
 
|
 
|-
 
| 1차 프로그램 통합 및 에러처리
 
| 터치팀
 
|
 
| style="background-color:#ff9800;" | ■
 
| style="background-color:#ff9800;" | ■
 
|
 
|
 
|-
 
| 1차 통합 테스트
 
| 터치팀
 
|
 
|
 
| style="background-color:#2196f3;" | ■
 
|
 
|
 
|-
 
| 2차 프로그램 통합
 
| 터치팀, 전**
 
|
 
|
 
|
 
| style="background-color:#9c27b0;" | ■
 
|
 
|-
 
| 최종 통합 테스트
 
| 전체
 
|
 
|
 
|
 
| style="background-color:#f44336;" | ■
 
|
 
|-
 
| Feedback 및 디버깅
 
| 전체
 
|
 
|
 
|
 
| style="background-color:#f44336;" | ■
 
| style="background-color:#f44336;" | ■
 
|-
 
| 최종 프로젝트 발표 준비
 
| 전체
 
|
 
|
 
|
 
|
 
| style="background-color:#607d8b;" | ■
 
|}
 
 
</div>
 
</div>
  
 
==프로젝트 결과==
 
==프로젝트 결과==
 
+
===최종 평가===
===현재 달성 성과===
 
<div style="display:flex; flex-wrap:wrap; gap:20px; margin:20px 0;">
 
<div style="flex:1; min-width:300px; background-color:#e8f5e9; padding:20px; border-radius:10px;">
 
<h4 style="color:#2e7d32; margin-top:0;">🔧 하드웨어</h4>
 
* '''터치 모듈''': PCB 제작 완료, 마감천 선정 완료
 
* '''커버''': 설계 변경 완료 및 제작 완료
 
* '''카메라''': IMX-708로 성능 향상 완료
 
</div>
 
 
 
<div style="flex:1; min-width:300px; background-color:#e3f2fd; padding:20px; border-radius:10px;">
 
<h4 style="color:#1976d2; margin-top:0;">💻 소프트웨어</h4>
 
* '''1차 게임(체스)''': 프로젝터 환경 최적화 완료
 
* '''2차 게임(포커)''': 완전 구현, 카드 인식률 90% 이상 달성
 
* '''3차 게임(TRPG)''': 캐릭터 및 맵 생성 시스템 구현
 
</div>
 
</div>
 
 
 
===평가 항목 달성도===
 
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
 
|-
 
|-
1,031번째 줄: 318번째 줄:
 
|}
 
|}
  
===미구현 내용 및 향후 과제===
+
===최종 시연 영상===
<div style="background-color:#ffebee; padding:20px; margin:20px 0; border-radius:10px;">
 
<h4 style="color:#c62828; margin-top:0;">⚠️ 미완성 항목</h4>
 
* 포켓몬 카드 게임 한국판 인식 모델
 
* TRPG GPT API 연동
 
* 터치 캘리브레이션 자동화
 
* 카메라 최종 위치 확정
 
* 전체 시스템 통합 테스트
 
</div>
 
  
==프로젝트 평가==
 
 
===중간 평가 (2025년 6월 1일 기준)===
 
<div style="background-color:#f5f5f5; padding:20px; margin:20px 0; border-radius:10px;">
 
<h4 style="color:#1976d2; margin-top:0;">📊 진행률</h4>
 
<div style="display:flex; gap:20px; margin-bottom:20px;">
 
<div style="flex:1;">
 
* '''하드웨어''': 90% 완료
 
* '''소프트웨어''': 75% 완료
 
* '''시스템 통합''': 30% 완료
 
</div>
 
</div>
 
 
<h4 style="color:#388e3c; margin-top:20px;">✅ 주요 성과</h4>
 
* 설계 변경을 통한 현실적 목표 재설정
 
* 터치 모듈 하드웨어 완성
 
* 카드 인식 시스템 성공적 구현
 
* 복수 게임 구현을 통한 플랫폼 확장성 입증
 
 
<h4 style="color:#f57c00; margin-top:20px;">🔍 주요 과제</h4>
 
* 한국어 카드 인식 문제 해결
 
* 시스템 통합 및 안정성 확보
 
* 사용자 경험 최적화
 
</div>
 
 
==예산 내역==
 
 
===총 예산 변화===
 
<div style="background-color:#fff3e0; padding:20px; margin:20px 0; border-radius:10px;">
 
<h4 style="color:#e65100; margin-top:0;">💰 예산 변경 내역</h4>
 
* '''초기 계획''' (2025.4): 183천원
 
* '''최종 예산''' (2025.6): 404.8천원
 
* '''증액''': 221.8천원 (121% 증가)
 
* '''증액 사유''': 카메라 업그레이드, 아크릴 판재, PCB 전문 제작
 
</div>
 
 
===상세 내역 비교===
 
{| class="wikitable" style="text-align:center;"
 
|-
 
! style="background-color:#ff9800; color:white;" | 구분
 
! style="background-color:#ff9800; color:white;" | 초기 계획 (천원)
 
! style="background-color:#ff9800; color:white;" | 최종 실제 (천원)
 
! style="background-color:#ff9800; color:white;" | 주요 변경사항
 
|-
 
| 기본 부품
 
| 175
 
| 175
 
| 동일
 
|-
 
| 카메라 업그레이드
 
| -
 
| style="background-color:#ffecb3;" | '''54.2'''
 
| IMX219 → IMX708
 
|-
 
| 아크릴 판재
 
| -
 
| style="background-color:#ffecb3;" | '''79.4'''
 
| 커버 제작
 
|-
 
| PCB 제작
 
| -
 
| style="background-color:#ffecb3;" | '''60.0'''
 
| 전문 제작
 
|-
 
| 기타 추가 부품
 
| 8
 
| style="background-color:#ffecb3;" | '''36.2'''
 
| 터치패드 보호재 등
 
|-
 
! style="background-color:#f57c00; color:white;" | '''총계'''
 
! style="background-color:#f57c00; color:white;" | '''183'''
 
! style="background-color:#f57c00; color:white;" | '''404.8'''
 
! style="background-color:#f57c00; color:white;" | '''221.8천원 증액'''
 
|}
 
 
==기술적 상세사항==
 
 
<div class="mw-collapsible" style="border:2px solid #2196f3; margin:10px 0;">
 
<h3 style="background-color:#2196f3; color:white; padding:10px; margin:0;">🔬 기술 상세 정보</h3>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
 
===Velostat 압력 센서 기술===
 
<div style="background-color:#e3f2fd; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#1976d2;">원리와 특성</h4>
 
* '''소재''': 전도성 폴리에틸렌 수지 필름에 탄소 블랙 항정전기 플라스틱 침투
 
* '''표면 저항''': 31,000 Ω/cm² (일반적으로 100,000Ω/□ 미만)
 
* '''물리적 특성''': 열접착 가능, 유연성, 뛰어난 내마모성
 
* '''온도 범위''': -45°C ~ +65°C (-50°F ~ 150°F)
 
* '''크기''': 280mm × 280mm, 두께 4mil/0.1mm
 
 
<h4 style="color:#1976d2;">매트릭스 구성</h4>
 
* '''구리 테이프''': 5mm 폭으로 최적화 (실험적 검증)
 
* '''배치''': 한 면에 구리 열(column), 다른 면에 구리 행(row)
 
* '''보호''': 50μm PE(폴리에틸렌) 필름으로 방수 처리
 
</div>
 
 
===터치 인식 회로===
 
<div style="background-color:#e8f5e9; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#388e3c;">핵심 구성요소</h4>
 
* '''SN74HC595''': 반응 신호 제어, 하나의 활성 열(column) 스위칭
 
* '''CD4051D''': 터치 천의 반응 신호 제어, ADC 연결된 활성 행(row) 선택
 
* '''연산 증폭기''': 미약한 신호 증폭
 
* '''Arduino''': 시프트 레지스터와 멀티플렉서 제어, 직렬 데이터 수신
 
 
<h4 style="color:#388e3c;">PCB 설계 기준</h4>
 
* '''크로스토크 방지''': 3W 규칙 적용
 
* '''도선 사양''': 20mil 두께, 12mil 간격
 
* '''신호 무결성 확보'''
 
</div>
 
 
===카메라 인식 기술===
 
<div style="background-color:#fff3e0; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#f57c00;">하드웨어 사양</h4>
 
* '''센서''': Sony IMX708 (12MP, 자동초점, 120도 광각)
 
* '''해상도''': 최대 4608×2592
 
* '''인터페이스''': CSI (Camera Serial Interface)
 
 
<h4 style="color:#f57c00;">이미지 처리 파이프라인</h4>
 
1. 고해상도 캡처 (4608×2592)
 
2. 이진화 및 윤곽 검출
 
3. 카드 영역 추출
 
4. 샤프닝 필터 적용
 
5. 딥러닝 모델 인식
 
6. 결과 검증 및 정렬
 
 
<h4 style="color:#f57c00;">인식 정확도 향상 기법</h4>
 
* 프로젝터 조명 환경 고려한 임계값 설정
 
* 카드 크기 비율 검증 (63mm×88mm 기준)
 
* 여백 포함 crop으로 정보 손실 방지
 
* 좌표 기반 카드 순서 정렬
 
</div>
 
</div>
 
</div>
 
 
==개발 환경 및 도구==
 
 
<div style="display:flex; flex-wrap:wrap; gap:20px; margin:20px 0;">
 
<div style="flex:1; min-width:300px; background-color:#e3f2fd; padding:20px; border-radius:10px;">
 
<h4 style="color:#1976d2; margin-top:0;">🔧 하드웨어 환경</h4>
 
* '''제어 보드''': Raspberry Pi 5
 
* '''개발 보드''': Arduino Uno
 
* '''카메라''': IMX-708 12MP 광각
 
* '''프로젝터''': XGIMI Halo+
 
</div>
 
 
<div style="flex:1; min-width:300px; background-color:#e8f5e9; padding:20px; border-radius:10px;">
 
<h4 style="color:#388e3c; margin-top:0;">💻 소프트웨어 환경</h4>
 
* '''OS''': Raspberry Pi OS
 
* '''언어''': Python 3.9, C++
 
* '''프레임워크''': PyQt5, OpenCV 4.5
 
* '''딥러닝''': YOLO v5
 
* '''API''': OpenAI GPT API
 
</div>
 
 
<div style="flex:1; min-width:300px; background-color:#fff3e0; padding:20px; border-radius:10px;">
 
<h4 style="color:#f57c00; margin-top:0;">🛠️ 개발 도구</h4>
 
* '''PCB 설계''': KiCad
 
* '''3D 모델링''': Fusion 360 (초기 설계)
 
* '''코드 편집''': VS Code
 
* '''이미지 처리''': OpenCV, PIL
 
</div>
 
</div>
 
 
==참고 자료 및 오픈소스==
 
 
<div style="background-color:#f5f5f5; padding:20px; margin:20px 0; border-radius:10px;">
 
<h3 style="color:#1976d2; margin-top:0;">📚 참고 자료</h3>
 
 
<h4>활용 오픈소스</h4>
 
* 체스 게임: GNU GPL 라이선스
 
* YOLO 카드 인식: GitHub 공개 모델
 
* Polytopia Map Generator: GNU GPL 라이선스
 
* 포켓몬 카드 API: 16,000장 데이터베이스
 
 
<h4>기술 참고 문헌</h4>
 
[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>
 
 
==팀 구성 및 역할 분담==
 
  
 +
==프로젝트 리뷰==
 +
===팀 구성 및 역할 분담===
 
<div style="overflow-x:auto;">
 
<div style="overflow-x:auto;">
 
{| class="wikitable" style="text-align:center; width:100%;"
 
{| class="wikitable" style="text-align:center; width:100%;"
1,265번째 줄: 365번째 줄:
 
* GPT API 연동 및 TRPG 시스템 구현
 
* GPT API 연동 및 TRPG 시스템 구현
 
|}
 
|}
</div>
 
 
==프로젝트 리뷰==
 
 
<div class="mw-collapsible mw-collapsed" style="border:2px solid #4caf50; margin:20px 0;">
 
<h3 style="background-color:#4caf50; color:white; padding:10px; margin:0;">💭 개발 과정 회고</h3>
 
<div class="mw-collapsible-content" style="padding:20px;">
 
 
===문제 해결 과정===
 
<div style="background-color:#e8f5e9; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#2e7d32;">터치 정확도 문제</h4>
 
* '''문제''': 초기 설계 목표 5mm 정확도 달성 어려움
 
* '''원인''': 손가락 접촉면적과 센서 간격 불일치
 
* '''해결''': UI 재설계를 통한 실용적 접근
 
</div>
 
 
<div style="background-color:#e3f2fd; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#1976d2;">카메라 성능 문제</h4>
 
* '''문제''': IMX219 화질 및 화각 부족
 
* '''해결''': IMX708 광각 카메라로 업그레이드
 
</div>
 
 
<div style="background-color:#fff3e0; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#f57c00;">게임 복잡도 문제</h4>
 
* '''문제''': 유희왕, 매직 더 게더링 구현 복잡도 과다
 
* '''해결''': 포켓몬 카드게임으로 범위 조정
 
</div>
 
 
<div style="background-color:#ffebee; padding:15px; margin:10px 0; border-radius:5px;">
 
<h4 style="color:#c62828;">예산 관리</h4>
 
* '''초기 예산''': 183천원
 
* '''최종 예산''': 404.8천원
 
* '''주요 증액 요인''': 성능 향상을 위한 부품 업그레이드
 
 
</div>
 
</div>
  
1,306번째 줄: 373번째 줄:
 
* 모바일 앱 연동
 
* 모바일 앱 연동
  
===프로젝트 느낀점===
+
 
 +
===프로젝트를 진행하며 느낀 점===
 
* 하드웨어 제약사항을 고려한 현실적 목표 설정의 중요성
 
* 하드웨어 제약사항을 고려한 현실적 목표 설정의 중요성
 
* 프로토타입을 통한 조기 검증의 필요성
 
* 프로토타입을 통한 조기 검증의 필요성
1,312번째 줄: 380번째 줄:
 
* 오픈소스 활용을 통한 개발 효율성 증대
 
* 오픈소스 활용을 통한 개발 효율성 증대
 
</div>
 
</div>
 +
</div>
 +
 +
== 참고 자료 및 오픈소스==
 +
===활용 오픈소스===
 +
<h4>활용 오픈소스</h4>
 +
* 체스 게임: GNU GPL 라이선스
 +
* YOLO 카드 인식: GitHub 공개 모델
 +
* Polytopia Map Generator: GNU GPL 라이선스
 +
* 포켓몬 카드 API: 16,000장 데이터베이스
 +
 +
 +
===기술 참고 문헌===
 +
<h4>기술 참고 문헌</h4>
 +
[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>
 
</div>
  
1,322번째 줄: 406번째 줄:
 
</div>
 
</div>
 
</div>
 
</div>
 +
  
 
[[Category:임베디드시스템]]
 
[[Category:임베디드시스템]]
 
[[Category:2025년프로젝트]]
 
[[Category:2025년프로젝트]]
 
[[Category:게임플랫폼]]
 
[[Category:게임플랫폼]]

2025년 6월 20일 (금) 23:38 판

프로젝트 개요

프로젝트 소개

프로젝트 명 테이블탑 프로젝터 (Tabletop Projector)

프로젝트 요약 테이블탑 프로젝터는 프로젝터를 이용하여 테이블 위에 게임 화면을 투사하고, 터치 센서를 통해 사용자와 상호작용할 수 있는 인터랙티브 게임 플랫폼입니다. 다양한 보드게임과 카드게임을 디지털화하여 여러 사용자가 함께 즐길 수 있는 새로운 형태의 게임 환경을 제공합니다.

프로젝트 개발 컨셉 본 프로젝트는 테이블 위에 보드게임 화면을 투사하고, 사용자의 터치 입력으로 직접 상호작용할 수 있는 플랫폼을 구현하는 것입니다. 이를 통해 여러 사람이 각자 휴대기기에 국한되지 않고 하나의 공용 공간에서 함께 게임을 즐길 수 있으며, 전통 보드게임의 정적인 특성을 넘어 화면 위의 영상과 동적으로 교감하며 플레이할 수 있어 온라인 게임이 가지는 ‘대면 상호작용의 부재’ 문제를 해소합니다.

프로젝트 배경 및 기대효과

배경

  • 기존 보드게임의 한계: 종이 카드, 고정된 규칙, 제한된 게임 도구로 인한 정적인 플레이 방식
  • 온라인 게임의 한계: 개인용 기기 중심으로 인한 대면 상호작용 부족, 사회적 단절 현상
  • 기술적 공백: 프로젝터 활용 프로젝트는 있으나 터치 기능과 카메라 기반 객체 인식을 결합한 사례 부족
  • 시장 요구: COVID-19 이후 소규모 모임 증가, 홈 엔터테인먼트 수요 증가

기대효과

  • 보드게임 혁신: 기존 카드와 기물 중심에서 벗어나 복잡하고 다양한 규칙 적용 가능
  • 접근성 향상: 플레이어가 복잡한 룰을 모두 숙지하지 않아도 시스템 보조로 원활한 게임 진행
  • 사회적 가치: 온라인 게임의 사회적 단절 문제 보완, 공동 참여형 콘텐츠 발전
  • 콘텐츠 확장성: 소프트웨어 업데이트를 통한 지속적인 새로운 룰 추가, 기존 IP 재활용
  • 상업적 가능성: 보드게임 개발사에게 새로운 개발 방향성 제시

프로젝트 목표

  • 확장 가능성: 리눅스 플랫폼 특성상 개발 환경이 잘 갖추어져 있어 향후 추가 보드게임 개발 가능
  • 직관적 조작: 빠른 터치 속도 및 영상인식을 통한 자연스러운 사용자 상호작용
  • 사회적 연결: 대면 보드게임의 장점과 디지털 게임의 편의성 결합

동작 시나리오

🎯 시스템 동작 흐름

  1. 시스템 시작: 프로젝터 전원 ON, 라즈베리파이 부팅
  2. 게임 선택: 터치를 통해 메인 화면에서 원하는 게임 선택
  3. 게임 진행
    • 1차 게임(체스): 터치로 기물 이동
    • 2차 게임(카드게임): 실물 카드를 테이블에 배치, 카메라가 인식하여 게임 진행
    • 3차 게임(TRPG): GPT API를 활용한 스토리 진행
  4. 게임 종료: 메인 화면으로 복귀

구현 내용

장치 선정

입력장치

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명이 동시에 즐길 수 있는 변형 체스


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 (기본값보다 높은 선명도)
🔍 이미지 처리 파이프라인
  1. 이미지 전처리 * 카메라 캡처 → 'image' 변수 저장 * 이진화 처리 (프로젝터 밝은 환경 고려한 임계값 설정) * 카드 최소 영역, 가로세로 비율 제한 (실제 카드 63mm×88mm 기준)
  2. 카드 검출 * detect_card_edges() 함수로 카드 윤곽 검출 * 4개 끝점 좌표 확보 * 여백 포함한 crop으로 문양/숫자 손상 방지
  3. 이미지 보정 * 샤프닝 커널 적용으로 확대 시 화질 저하 보완 * 인식 모델 최적화를 위한 이미지 품질 향상
  4. 모델 인식 * YOLO 모델 적용 * 인식률 30% 이상 결과 중 최고 신뢰도 선택 * 좌표 정보 활용한 카드 순서 정렬 (Y좌표 오차 허용)
  5. 게임 로직 반영 * 인식 결과를 게임 상태에 반영 * 승자 판별 로직 실행

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% 측정 예정 진행 중

최종 시연 영상

프로젝트 리뷰

팀 구성 및 역할 분담

팀원명 주요 역할 세부 담당 업무
구** (팀장) 프로젝트 관리, 터치 시스템
  • 전체 일정 관리 및 진행사항 모니터링
  • 터치 하드웨어 설계 및 구현
  • 팀원 간 업무 조율 및 의사결정
김** 터치 시스템, 통합
  • 터치 시스템 PCB 설계 및 제작
  • 아두이노-라즈베리파이 통신 구현
  • Input 시스템 통합 및 디버깅
류** 터치 시스템
  • 가변저항 소재를 활용한 터치패드 설계/제작
  • 터치 시스템 회로 설계
  • 터치 프로그램 개발
조** 기구 설계, 통합
  • 외장 디자인 설계 (아크릴 커버)
  • 3D 모델링 및 기구부 제작
  • 하드웨어 통합 및 조립
전** AI/객체인식, API
  • YOLO 기반 카드 인식 시스템 구현
  • OpenCV 이미지 처리 파이프라인 개발
  • GPT API 연동 및 TRPG 시스템 구현

향후 확장 가능성

  • 추가 게임 장르 지원
  • 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 - 테이블탑 프로젝터

"디지털과 아날로그가 만나는 새로운 게임 플랫폼"