(atmega128) 도트매트릭스를 이용한 팽이게임
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

(atmega128) 도트매트릭스를 이용한 팽이게임에 대한 보고서 자료입니다.

목차

1. 작품명

2. 동작개요

3. 작품구성도

4. 입출력 사용핀 및 연결 디바이스

5. 회로도

6. 알고리즘

7. 전체동작흐름도

8. 소스

9. 작품사진

본문내용

ount] = led_start[red][data_count];
if(move_z < 200) mode = 1; //뒤집으면 오프닝 모드 시작
}
}
/*--------------------- Timer/counter 0 interrupt ------------------------*/
interrupt [TIM0_OVF] void time0(void){
TCCR0 = 0x04;//CLK/64 prescale
TCNT0 = 0x06; //1msec
//1/16us x 64 x (256 - 6) = 1,000us
time++;
if(time == 5000) { //5초가 될때
top_energy++; //팽이의 회전속도 감소
enemy_energy++;
time = 0;
}
if(cursor_cnt_value == 30){ //스핀 모드일때
if((340 //팽이가 가만히 있으면
mode = 4; //게임모드로
}
else top_speed++; //아니면 팽이회전속도 증가
}
cursor_count++;
if(cursor_count>cursor_cnt_value) { //준비화면 설정 count는 속도
cursor_count=0;
if(cursor>=cursor_value){
if(cursor_cnt_value == 20){ //오프닝 모드 일때
op_cnt++;
if(op_cnt == 13){ //준비된 패턴이 끝나면
op_cnt = 0;
mode = 2;
}
}
if(cursor_cnt_value == 21){ //고샷 모드 일때
op_cnt++;
if(op_cnt == 4){ //준비된 패턴이 끝나면
op_cnt = 0;
mode = 3;
}
}
if(cursor_cnt_value == 23){ //vs 모드 일때
op_cnt++;
if(op_cnt == 4){ //준비된 패턴이 끝나면
op_cnt = 0;
mode = 4;
}
}
if(cursor_cnt_value == 8){ //skill 모드 일때
op_cnt++;
if(op_cnt == 9){ //준비된 패턴이 끝나면
op_cnt = 0;
mode = 4;
}
}
if(cursor_cnt_value == 24 || cursor_cnt_value == 25){ //win모드이거나 lose모드일때
op_cnt++;
if(op_cnt == 5){ //준비된 패턴이 끝나면
op_cnt = 0;
mode = 9; //replay or start 모드로
}
}
cursor=0; //준비화면 설정 cursor는 길이
}
else cursor++;
} //도트매트릭스 구현 display 함수 호출
display();
}
9. 작품 사진
큐브 사진
위에서 본 큐브
SW와 ISP케이블
측면 SW와 ISP케이블
바닥 볼캐스터 부분
큐브 측면
배터리 사진(탈부착 가능)
내부 전체적인 모습
3축 가속도 내부 장착 사진
MCU내부 장착 사진
패턴 사진
Start 패턴
openning 패턴
3초 대기 패턴
Go shot 패턴
게임 패턴
에너지상태 패턴
Skill 패턴
lose 패턴
10. 작품 후기
3학년 1학기 때 시작한 마이크로 프로세서 2 라는 과목.
8051의 한계에서 벗어나 더 쉽고, 다양하고, 더 많이 사용되어지는 atmega128 이라는 CPU를 이용하여 작품을 만들어 보았습니다.
공학도라면 창의적이여야 한다는 기존 머릿속에 박힌 생각 때문인지 작품을 선정할 때 많은 고민을 하였습니다. LED 큐브로 display되는 모션캡쳐도 생각해보았고, 요즘에 떠오르는 스마트폰 어플을 이용한 작품도 생각해보았습니다.
여러 가지 생각을 거친 뒤에 선정한 작품이 바로 팽이 큐브(탑 블레이드)입니다.
이 작품을 선정하면서 마이크로프로세서 1에서 부족하다고 느꼈던 하드웨어(센서류)나 소프트웨어 부분에 있어 더 많은 발전이 있을 것이라고 생각하며 선정하였습니다.
솔직히 마이크로프로세서1에서 만든 작품은 부피가 상당히 차지하기 때문에 여러 번의 이사 끝에 망가져버렸습니다. 그래서 이번엔 부피가 작은 작품을 만들어 소장을 하고 싶습니다.
평소엔 KUT128 인터페이스 보드를 이용하여 책의 예제를 실행시키거나 LED, segment를 구동시키는 것 등의 간단한 예제를 주로 하다가 막상 작품을 시작해볼려고 하니 보드에서 MCU를 뜯어내고 기판에다가 납땜하는 것부터 어려움이 찾아왔습니다.
게다가 3축 가속도 센서의 제어까지 많은 수렁에 빠지기도 하였습니다. 게임의 주된 포인트는 팽이를 사용자가 집적 손으로 회전을 시키는 것인데 회전 속도를 측정하는 쪽은 가속도 센서보다 자이로 센서가 더 사용하기에 좋다는 것을 알고 작품 진행에 있어 상당히 차질이 있었습니다.
게다가 처음 이용해보는 도트매트릭스. 8x8 도트매트릭스와 SLM1604 도트매트릭스의 구동원리가 조금 달라서 처음 접하는데 애를 먹었습니다. 처음엔 점 하나를 움직이는 것을 시작하여. 점 2개를 움직여보고
가만히 움직이는 패턴도 만들어보고 한 칸씩 움직여보는 것을 시작으로 회전 하고 있는 팽이 자체를 움직이는 것을 해보았습니다.
이쪽을 해보고 저쪽도 해보고 두 가지를 합쳐가는 씩으로 작품을 만들다 보니 합치는 과정에서 불필요한 소스코드나 중복된 소스가 많아 최적화 시키는 것에도 많은 시간을 투자했습니다.
그래도 누구 앞에서 내세울 순 없지만 제 스스로 프로그래밍 능력이 조금은 올라서 매우 만족하고 있습니다.
마이크로프로세서2 라는 과목은 저에게 있어 작은 졸업 설계라고 생각했습니다. 어떤 디바이스를 이용하든 어떤 함수를 사용하든 작품을 마치고 나면 그 분야에 대해서는 상당한 지식을 가지게 되기 때문입니다.
게다가 아무것도 할 줄 모르던 제가 이렇게 작품을 만들고 그것에 대한 보고서를 쓰며 남들 앞에 보여줄 수 있다는 것 자체로도 정말 의미 있는 과목이라 생각합니다.
아직까지 사용 못해 본 센서나 다른 부품들은 산더미처럼 많이 있습니다. 그 부품을 언제 사용할지는 모르겠으나 졸업 설계나 다른 기회가 되면 여러 부품을 이용하여 그 분야에 대해서 많은 지식을 얻고 싶습니다.
  • 가격8,000
  • 페이지수35페이지
  • 등록일2013.09.24
  • 저작시기2012.7
  • 파일형식한글(hwp)
  • 자료번호#881311
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니