목차
1.서론
1.1 작품 개발 동기...................................4
1.2 작품 개발 배경....................................4
1.3 작품 개발 목적............................4
1.4 보고서 구성 설명..................................4
2. 본론
2.1 스테핑 모터.....................................5
2.1.1 스테핑 모터에 관한 기본적 소개.................5
2.1.2 스테핑 모터의 기본원리..........................5
2.1.3 Stepping motor의 특징............................6
2.1.4 기본 동작방법...............................7
2.1.5 회전시키기 위한 순서..........................7
2.1.6 stepping motor의 종류와 구조......................8
2.1.7 설계에 사용된 스텝 모터 설명......................9
2.1.7.1 H-546 2상 스테핑 모터.....................9
2.1.7.2 SLA7024M 모터 드라이브.....................11
2.2 음성 인식 이론 소개.........................11
2.2.1 음성인식의 개요...............................11
2.2.2 음성인식의 역사............................12
2.2.3 음성인식 시스템의 분류.........................12
2.2.3 음성인식 시스템의 분류..........................12
2.2.4 음성인식 방법.............................13
2.3 음성인식 모듈 (RSC-300)...........................14
2.3.1 RSC-300 I/O PIN 구성.........................16
2.3.2 RSC-300 Reference Circuit...........................17
2.3.3 Timing diagram.............................18
2.4 8051 Micro Processor....................................19
2.4.1 8051 Micro Processor의 기본적인 특징................19
2.4.2 8051 Micro Processor의 계열별 특징......................20
2.5 완성 회로도....................................20
2.5 구동 소스 코드.................................22
2.5.1 가속도 측정용 헤더 소스........................22
2.5.2 프로젝트 구동 소스...........................24
3. 프로젝트 구동 결과
3.1 프로젝트 구동...................................30
4. 결론..............................................32
5. 참고문헌...........................................32
6. 졸업 작품 후기......................................33
1.1 작품 개발 동기...................................4
1.2 작품 개발 배경....................................4
1.3 작품 개발 목적............................4
1.4 보고서 구성 설명..................................4
2. 본론
2.1 스테핑 모터.....................................5
2.1.1 스테핑 모터에 관한 기본적 소개.................5
2.1.2 스테핑 모터의 기본원리..........................5
2.1.3 Stepping motor의 특징............................6
2.1.4 기본 동작방법...............................7
2.1.5 회전시키기 위한 순서..........................7
2.1.6 stepping motor의 종류와 구조......................8
2.1.7 설계에 사용된 스텝 모터 설명......................9
2.1.7.1 H-546 2상 스테핑 모터.....................9
2.1.7.2 SLA7024M 모터 드라이브.....................11
2.2 음성 인식 이론 소개.........................11
2.2.1 음성인식의 개요...............................11
2.2.2 음성인식의 역사............................12
2.2.3 음성인식 시스템의 분류.........................12
2.2.3 음성인식 시스템의 분류..........................12
2.2.4 음성인식 방법.............................13
2.3 음성인식 모듈 (RSC-300)...........................14
2.3.1 RSC-300 I/O PIN 구성.........................16
2.3.2 RSC-300 Reference Circuit...........................17
2.3.3 Timing diagram.............................18
2.4 8051 Micro Processor....................................19
2.4.1 8051 Micro Processor의 기본적인 특징................19
2.4.2 8051 Micro Processor의 계열별 특징......................20
2.5 완성 회로도....................................20
2.5 구동 소스 코드.................................22
2.5.1 가속도 측정용 헤더 소스........................22
2.5.2 프로젝트 구동 소스...........................24
3. 프로젝트 구동 결과
3.1 프로젝트 구동...................................30
4. 결론..............................................32
5. 참고문헌...........................................32
6. 졸업 작품 후기......................................33
본문내용
low Interrupt를 Disable로 설정)
EA=1;
delay_msc(10);
stop_motor();
for(i=0;i<10;i++) {
LED_R=0;
LED_G=1;
delay_msc(50);
LED_R=1;
LED_G=0;
delay_msc(50);
}
for(;;) {
static unsigned char motion=STOP;
static unsigned char speed=SLOW;
// 음성으로 인식된 명령을 판단한다.
switch(voice_command_value()) {
case 1: motion=GO;
break;
case 2: motion=GO_BACK;
break;
case 3: motion=TURN_LEFT;
break;
case 4: motion=TURN_RIGHT;
break;
case 5: speed=SLOW; // 속도를 느리게 변환
break;
case 6: speed=FAST; // 속도를 빠르게 변환
break;
case 7: motion=STOP;
break;
}
if(speed==FAST) { // 속도를 빠르게 할 경우
static unsigned char t=0;
switch(motion) {
case GO: start_motor();
motor_speed(235,235); // 전진
break
case GO_BACK: start_motor();
motor_speed(-150,-150); // 후진
break;
case TURN_LEFT: start_motor();
motor_speed(50,200); // 좌회전
break;
case TURN_RIGHT: start_motor();
motor_speed(200,50); // 우회전
break;
case STOP: stop_motor(); // 정지
break;
default: break;
}
LED_R=1;
if(++t>200) LED_G=0; // 녹색LED 점등
else LED_G=1;
}
else { // 속도를 느리게 할 경우
static unsigned char t=0;
switch(motion) {
case GO: start_motor();
motor_speed(70,70); // 전진
break;
case GO_BACK: start_motor();
motor_speed(-45,-45); // 후진
break;
case TURN_LEFT: start_motor();
motor_speed(-25,25); // 좌회전
break;
case TURN_RIGHT: start_motor();
motor_speed(25,-25); // 우회전
break;
case STOP: stop_motor(); // 정지
break;
default: break;
}
if(++t>200) LED_R=0; // 적색LED 점등
else LED_R=1;
LED_G=1;
}
}
} // End of main
3. 프로젝트 구동 결과
3.1 프로젝트 구동
다음은 프로젝트 구동 순서이다.
① 전원을 ‘on' 시킨 후 발광 다이오드를 초기화가 올바른지를 확인한다.
② ‘Reset’버튼과 + ‘학습’버튼을 누른 채로 ‘Reset’버튼을 땐다.
③ ‘인식 조정’키를 눌러 인식률을 조정한다.
(인식률이 높을수록 자신의 음성에만 반응하며, 낮을수록 다른 사람의 목소리에도 반응한다.)
④ 중간 값인 5로 음성 인식률을 조절한다.
⑤ ‘Reset' 버튼을 눌러 reset 시킨 후 ‘학습’ 버튼을 눌러 녹음을 시작한다.
⑥ 1번에서 7번째까지의 명령어를 입력시킨다. (명령어는 사용자의 임의로 지정)
⑦ ‘동작’ 키를 누른다.
⑧ 마이크에 대고 지정된 명령어를 입력한다.
⑨ 모형 자동차의 움직임을 확인한다.
'Reset'키
‘동작’키
‘학습’키
‘인식률’키
4. 결론
마이크를 통한 음성인식을 이용하여 전진, 후진, 좌, 우, 빠르게, 느리게 그리고 정지 동작을 확인 하였다. 따라서 서론에서 언급한 목적은 어느 정도 달성했다고 할 수 있다.
그렇지만 이 작품의 경우 마이크선의 길이에 따른 이동의 한계가 있었다. 실제로 마이크를 자동차 본체에 장착하는 방법도 고려하여 보았으나 인식률의 저조하고 입을 마이크에 가까이에 대고 음성을 입력해야 한다는 단점이 있었다. 보완책으로 무선 통신을 이용하여 사용자의 음성을 자동차에 전달하는 방법을 고려하였으나 제출 일정에 다 마치지 못할 것이란 판단에 스텝모터의 특성을 이용한 속도 변화를 추가하였다.
-본 프로젝트의 결과물 (모형 자동차, 마이크)
5. 참고문헌
- C 언어를 이용한 80C196KC와 MicroMouse : 성안당
- 초보자를 위한 8051,AT89S51 마이크로컨트롤러 : 성안당
- 음성 인식 기법 : 이행세 저,청문각
- 음성인식(Speech Rcogition) : 이건상 외, 한양대학교 출판부
- http://cafe.daum.net/8051plus : 다음 카페 ‘8051 플러스’
- http://cafe.daum.net/avr8051 : 다음 카페 ‘AVR_8051'
6. 졸업 작품 후기
원래의 작품 일정보다 늦은 2차 배정 후 프로젝트에 착수하였고 또한 혼자 프로젝트를 수행하였다는 점에서 예정된 일정을 맞추기가 쉽지 않았다. 특히 재료 구입, 프로그램 소스 구성, 모형 자동차 제작 그리고 마이크로프로세서 이해 등을 혼자서 하는 것이 생각보다 쉽지 않은 작업이었다. 또한 1년 휴학 후 복학한 상황에서 예전 친구들이 대부분 졸업 및 군복무 하고 있는 상태에서 중간에 막히는 부분과 의문점을 질문할 환경 또한 되지 않았다. 이러한 점에서 팀을 조직하여 작품을 준비하는 사람들이 많이 부러웠던 것도 사실이다. 그렇지만 오히려 혼자 한 가지씩 고민하여 보고 해결하는 과정에서 전공 및 마이크로프로세서에 대한 좀 더 깊은 이해가 이루어진 듯하다.
온라인상의 서로 얼굴도 모르는 상태에서 귀찮을 법도 한 질문을 친절하게 답변해준 마이크로프로세서 카페 회원들에게 많은 배움을 얻었다. 또한 제작 도중 많은 편의를 봐주신 졸업 작품 담당 조교님, 그리고 바쁘신 시간에도 졸업 작품 이외에도 여러 가지 가르침을 주신 박상규 교수님께 감사의 말씀을 드린다.
EA=1;
delay_msc(10);
stop_motor();
for(i=0;i<10;i++) {
LED_R=0;
LED_G=1;
delay_msc(50);
LED_R=1;
LED_G=0;
delay_msc(50);
}
for(;;) {
static unsigned char motion=STOP;
static unsigned char speed=SLOW;
// 음성으로 인식된 명령을 판단한다.
switch(voice_command_value()) {
case 1: motion=GO;
break;
case 2: motion=GO_BACK;
break;
case 3: motion=TURN_LEFT;
break;
case 4: motion=TURN_RIGHT;
break;
case 5: speed=SLOW; // 속도를 느리게 변환
break;
case 6: speed=FAST; // 속도를 빠르게 변환
break;
case 7: motion=STOP;
break;
}
if(speed==FAST) { // 속도를 빠르게 할 경우
static unsigned char t=0;
switch(motion) {
case GO: start_motor();
motor_speed(235,235); // 전진
break
case GO_BACK: start_motor();
motor_speed(-150,-150); // 후진
break;
case TURN_LEFT: start_motor();
motor_speed(50,200); // 좌회전
break;
case TURN_RIGHT: start_motor();
motor_speed(200,50); // 우회전
break;
case STOP: stop_motor(); // 정지
break;
default: break;
}
LED_R=1;
if(++t>200) LED_G=0; // 녹색LED 점등
else LED_G=1;
}
else { // 속도를 느리게 할 경우
static unsigned char t=0;
switch(motion) {
case GO: start_motor();
motor_speed(70,70); // 전진
break;
case GO_BACK: start_motor();
motor_speed(-45,-45); // 후진
break;
case TURN_LEFT: start_motor();
motor_speed(-25,25); // 좌회전
break;
case TURN_RIGHT: start_motor();
motor_speed(25,-25); // 우회전
break;
case STOP: stop_motor(); // 정지
break;
default: break;
}
if(++t>200) LED_R=0; // 적색LED 점등
else LED_R=1;
LED_G=1;
}
}
} // End of main
3. 프로젝트 구동 결과
3.1 프로젝트 구동
다음은 프로젝트 구동 순서이다.
① 전원을 ‘on' 시킨 후 발광 다이오드를 초기화가 올바른지를 확인한다.
② ‘Reset’버튼과 + ‘학습’버튼을 누른 채로 ‘Reset’버튼을 땐다.
③ ‘인식 조정’키를 눌러 인식률을 조정한다.
(인식률이 높을수록 자신의 음성에만 반응하며, 낮을수록 다른 사람의 목소리에도 반응한다.)
④ 중간 값인 5로 음성 인식률을 조절한다.
⑤ ‘Reset' 버튼을 눌러 reset 시킨 후 ‘학습’ 버튼을 눌러 녹음을 시작한다.
⑥ 1번에서 7번째까지의 명령어를 입력시킨다. (명령어는 사용자의 임의로 지정)
⑦ ‘동작’ 키를 누른다.
⑧ 마이크에 대고 지정된 명령어를 입력한다.
⑨ 모형 자동차의 움직임을 확인한다.
'Reset'키
‘동작’키
‘학습’키
‘인식률’키
4. 결론
마이크를 통한 음성인식을 이용하여 전진, 후진, 좌, 우, 빠르게, 느리게 그리고 정지 동작을 확인 하였다. 따라서 서론에서 언급한 목적은 어느 정도 달성했다고 할 수 있다.
그렇지만 이 작품의 경우 마이크선의 길이에 따른 이동의 한계가 있었다. 실제로 마이크를 자동차 본체에 장착하는 방법도 고려하여 보았으나 인식률의 저조하고 입을 마이크에 가까이에 대고 음성을 입력해야 한다는 단점이 있었다. 보완책으로 무선 통신을 이용하여 사용자의 음성을 자동차에 전달하는 방법을 고려하였으나 제출 일정에 다 마치지 못할 것이란 판단에 스텝모터의 특성을 이용한 속도 변화를 추가하였다.
-본 프로젝트의 결과물 (모형 자동차, 마이크)
5. 참고문헌
- C 언어를 이용한 80C196KC와 MicroMouse : 성안당
- 초보자를 위한 8051,AT89S51 마이크로컨트롤러 : 성안당
- 음성 인식 기법 : 이행세 저,청문각
- 음성인식(Speech Rcogition) : 이건상 외, 한양대학교 출판부
- http://cafe.daum.net/8051plus : 다음 카페 ‘8051 플러스’
- http://cafe.daum.net/avr8051 : 다음 카페 ‘AVR_8051'
6. 졸업 작품 후기
원래의 작품 일정보다 늦은 2차 배정 후 프로젝트에 착수하였고 또한 혼자 프로젝트를 수행하였다는 점에서 예정된 일정을 맞추기가 쉽지 않았다. 특히 재료 구입, 프로그램 소스 구성, 모형 자동차 제작 그리고 마이크로프로세서 이해 등을 혼자서 하는 것이 생각보다 쉽지 않은 작업이었다. 또한 1년 휴학 후 복학한 상황에서 예전 친구들이 대부분 졸업 및 군복무 하고 있는 상태에서 중간에 막히는 부분과 의문점을 질문할 환경 또한 되지 않았다. 이러한 점에서 팀을 조직하여 작품을 준비하는 사람들이 많이 부러웠던 것도 사실이다. 그렇지만 오히려 혼자 한 가지씩 고민하여 보고 해결하는 과정에서 전공 및 마이크로프로세서에 대한 좀 더 깊은 이해가 이루어진 듯하다.
온라인상의 서로 얼굴도 모르는 상태에서 귀찮을 법도 한 질문을 친절하게 답변해준 마이크로프로세서 카페 회원들에게 많은 배움을 얻었다. 또한 제작 도중 많은 편의를 봐주신 졸업 작품 담당 조교님, 그리고 바쁘신 시간에도 졸업 작품 이외에도 여러 가지 가르침을 주신 박상규 교수님께 감사의 말씀을 드린다.
추천자료
화장품 전문 쇼핑몰-코스메틱랜드
컴퓨터 활용
Cepstrum과 PSD(Power Spectral Density)
북한의 IT산업과 남북 IT경협의 현황 및 문제점
자연언어처리,인공지능,기계학습
데이터마이닝(유사도계산)
[모바일 엔터테인먼트][엔터테인먼트산업]모바일 엔터테인먼트 벨소리, 모바일 엔터테인먼트 ...
`2005년 어느 비즈니스맨의 하루와 정보통신 기술`
이어셋(Earset) 및 헤드셋(Headset) 시장 분석
정보기술환경
오디오북(Audio-Book)
소리의 세계 - 심리음향효과에 대한 조사
미래주택
금융제도의이해)인터넷전문은행의 등장으로 인한 우리나라 은행권의 변화를 설명하고, 향후 ...
소개글