- 0604: 게임 개발 시작
- 0604: CPU만으로는 모든 픽셀에 대해 비교연산하기에 시간이 부족
-> 비교를 하드웨어적으로 시도 - 0604: 한점 기준으로 하니 너무 민감함
-> Region of Interest에서 픽셀 카운트로 색 위치 판별 - 0604: 광원에 따라 색이 다르게 감지되어 카운트 안되는 에러 발생
-> 색깔 감지 범위를 넉넉하게 마진을 두어 변하는 현실 색에 둔감하게 반응하도록 수정 - 0604: 유저 깃발 상태 판별 머신 완성
- 0605: 오토 화이트벨런스(AWV) 켜봄 -> 색깔 감지가 이상해짐 -> 끄는걸로
- 0605: 게임상태머신 개발 시작 -> 0607 게임 상태머신 개발 완료 -> 깃발 색 구분이 동일한 색이 되는 에러 발견-수정
-
0605: 게임 랜덤 커맨드 머신 개발 시작
난수발생기에서 12bit값을 받아 랜덤한 State(blue, white, both) 반복 출력 -
트러블슈팅 : 기존 방식의 경우 각 깃발마다 4bit 신호를 받아 4개씩 범위로 state를 출력 -> else if문을 활용할경우 상태 우선순위 가중치가 생겨 특정 state만 자주 발생
-해결방법 => rnd[11:0]을 12로 나눈 몫마다 state하나씩 지정하여 변수값 하나에 저장
변수값에 따라서 rand_cmd에 할당하여 저장
- 0610: 보간 필터 완성 -> 필터를 거칠 경우 색의 변화가 너무 심함 -> 우리 목적에 맞지않음.
- 0604: SCCB 통신 모듈
- 0604: text_display 모듈 개발 시작
->화면에 문자열을 출력하는 모듈을 설계 - 0604: 출력 위치가 오른쪽으로 치우침
→ 문자열 전체 길이를 고려하지 않고 X 시작 위치만 고정
→ 텍스트 길이 기반 중앙 정렬 로직으로 수정 - 0604: 출력 기준 해상도가 VGA(640×480)로 되어 있음
→ 실제 사용 환경은 카메라 해상도 320×240
→ 화면 크기에 맞게 텍스트 정렬 및 영역 조건 수정 - 0604: 글자 수에 따라 일부 문자열 생략됨
→ 전체 13칸 배열로 고정한 후, 문자열 길이를 기반으로 앞뒤 공백 균등 분배하여 해결 - 0604: 공백을 'A'(8'd0)로 처리해 a가 출력되는 문제 발생
→ 공백 전용 인덱스(예: 8'd63)로 처리하도록 수정 - 0604: backtick(`) 글자가 공백처럼 출력되지 않음
→ font ROM에서 backtick 위치에 실제 공백 모양(8'h00) 비트맵을 삽입하여 해결 - 0605: commend enum을 외부 모듈과 연결할 때 타입 불일치로 에러 발생
→ logic [3:0] 타입으로 포맷팅해서 명시적 연결 처리함 (sel_char → text_display) - 0605: 문자열 정중앙 정렬을 위해 공백 분배 로직 보완
→ 문자열 길이(str_len) 기준으로 앞뒤에 (13 - str_len)/2 개수만큼 공백 삽입 - 0605: 출력 위치 여전히 미세하게 오른쪽으로 쏠림
→ 문자 폭 단위로 정확한 중앙 위치 조정
→ 텍스트 X 기준점을 (CHAR_WIDTH * TOTAL_CHARS) / 2 기준으로 좌측 정렬
- game over 시
-> 이진필터 - 타이머 가동 될때마다
-> 색깔 필터 증가 (r1, r2, r2 등등...)