[마이크로프로세서]맹인안내로봇(장애물회피로봇)
- 최초 등록일
- 2007.06.30
- 최종 저작일
- 2005.09
- 10페이지/ 한컴오피스
- 가격 6,900원
소개글
`마이크로프로세서 응용설계` 라는 학부수업 텀프로젝트로 만든 작품입니다. ATmega128, DC 모터 2개, 서보 모터 1개, 거리측정센서를 응용해 전방의 물체를 감지하여 사용자에게 알려주고 피해가는 로봇 시스템을 구현했습니다. 로봇이 주행을 하다가 적외선 센서로 전방에 장애물을 감지하면 회피하면서 주행하는데, 손잡이에 진동모터가 있어 사용자로 하여금 전방에 장애물이 있다는 것을 확인시켜줍니다. 이 레포트에는 이 모바일 로봇을 구성하는 부품, 기본원리, 알고리즘, 그리고 주행프로그램 소스 전부를 담았습니다.
목차
마이크로응용설계 텀 프로젝트 최종 보고서
1. 프로젝트 개요
2. 사용부품
3. 전반적인 system 작동
4. 시스템 구성부
◆ 전원부(레귤레이터 회로)
◆ 모터부
1)DC모터
2)서보모터
◆ 센서부
적외선센서
◆ 본체와 손잡이
5. 사진
6. 프로그램 소스
본문내용
- 전반적인 system 작동
먼저 본체에 연결된 스위치로 On/Off 가 가능하고, 서보모터가 회전하면서 기본 주행을 한다. 만약 센서가전방의 물체를 감지하면 손잡이에 달린 진동으로 사용자는 전방 장애물을 알 수 있다. 로봇은 장애물을 만나기 30~40 cm 정도 거리이내에서 센싱을 해 방향 회전을 한다.
- 센서부
AD컨버터 기능이 내장되어있는 AVR 을 이용하여 거리 측정된 아날로그 값을 디지털로 바꾸었다. 센서를 서보모터 위에 달아 회전하면서 센싱을 하고 그 값의 정확도를 높이기 위해 3us 간격으로 저장하고 평균값을 얻어 평균값이 30~40cm 이내에 있는 물체일 경우 물체를 회피하도록 프로그램하였다.
서보모터의 각도가 -75~0° 사이에서 장애물이 감지되면 로봇은 우측으로 이동하고, 0~75° 사이에서 장애물이 감지되면 로봇은 좌측으로 이동하게 된다.
<프로그램 소스>
Chip type : ATmega128
Program type : Application
Clock frequency : 16.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 1024
*****************************************************
#include <mega128.h>
#include <delay.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0x00
unsigned short int i, j, temp, ir;
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
.........................(이하 프로그램 소스 생략)
참고 자료
없음