졸업논문 2011. 11. 15. 1 초음파센서를이용한자동주차차량 Automatic Parking Car Using Ultrasonic Sensors 김정수, 김형필, 장호진 Jeong-su Kim, Hyoung-pil Kim, Ho-jin Jang 강원대학교 IT대학전기전자전공 E-mail: nextstep12@nate.com, kimhp@kangwon.ac.kr,jini870720@nate.com 요약 : 마이크로컨트롤러의한종류인 atmega128 를사용하여모터의제어방법과초음파센서의동작및사용을이해한다. 자동주차차량의기능은초음파센서를이용하여자동으로주차하는자동차를말하며 atmega128을이용하였으며 3 개의초음파센서를이용하여거리값을받아모터를제어( 방향및속도) 할수있도록하였다. 국내자동차등록대수가 I. 서론 1800만대를넘어가면서세대 당 0.91 대에이르게되었다. 조만간 1세대 1차량시대가 개막될것으로예측되고있는가운데주차난은더욱극 심해질것이다. 주차난이심각할수록작고한정된공간 에서주차를해야되는경우가많다. 운전이미숙하거나 몸이불편한사람들같은경우어려움을겪을수있다. 이러한부족한운전실력을부분적으로나마대신할수 만있다면시간과인력낭비를줄이는데많은도움을줄 수있을것이다. 또한이러한지능을가진자동차의산 업이나군사분야에서의이용은안전성과효율성면에서 많은이점이있다. 현재자동주차시스템기술로 2003년 세계최초로도요타자동차에서무인주차시스템의기 능을갖춘 프리우스 를개발했다. 내비게이션화면을통 한자동주차시스템을상용화하여판매를하고있다. 국내업체로는현대자동차가 자동주차시스템인 2007 서울모터쇼에출품한 PAS(Parking Assist System) 을선보 였다. 후방카메라를이용한영상시뮬레이션을통해자 동후진주차를실시하는모델이다. 앞의도요타자동차에 서는프리우스란차량의옵션으로판매를하고있으며, 현대자동차에서는후방카메라로감지는되지만장애물 탐지기능이없어사람이브레이크를밟아주어야한다. 이와같이자동차시장에서자동주차에대한관심이커 져가고있으며, 계속발전할것이다. 본논문에서는실제 차량을축소한모형을제작하여자동주차를구현한다. II. 프로젝트구성 fig fig 2-1. 주차장크기 2-1. Parking lot size 2-2. 자동차크기 2-1. car size 자동주차를구현해보기위해서주차장의크기는 2-1과같이가로30cm 세로 32cm 로구성해보았다. 실 제로주차를수행하게되는차량의크기는 보이는것과같이길이 35cm 폭 15cm 로되어있다. 초음파센서, LCD Atmega 128 2-2에 2-3. 프로젝트구성도 fig 2-3. Project block diagram 2-3 의프로젝트구성도는프로젝트가어떤방식으로작동하는지를보여주는표이다. 초음파센서의거리값으로제어조건에맞는주차공간을확보한다음주차를시작하게된다.
2 졸업논문 2011. 11. 15. 기도한다. 주요특징들은다음과같다. - 고성능, 저전력으로동작하는 8비트의마이크로 컨트롤러 - 133 개의기계어명령을가지며거의한클럭에 명령어하나를실행. - 8비트레지스터가 32개있으며 16MHz에 16MIPS 동작속도를가지고곱셈기동작시 2사 이클소요 - 2개의 8 비트타이머/ 카운터 - 2개의 16 비트타이머/ 카운터 - 리얼타임카운터 - 2개의 8비트 PWM 채널 - 8 채널, 10비트 ADC 2-4. 하드웨어구성도 fig 2-4. Hardware block diagram 1. I/O Port ATmega128 은 64개의 pin이있으며 7개 Port, 총 53개 의 I/O pin 을내장하고있다. 표 3-1. I/O Port 사용 Table 3-1. I/O Port use Port 기능 PortA PortB PortC PortD PortE PortF 초음파센서 DC 모터스텝모터 Text_LCD 표3-1은이번프로젝트에서 ATmega128 의각핀에 어느부품을연결하여사용하였는지보여주고있는표이 다. 2-5. 프로그램순서 fig 2-5. Program procedure III. atmega 128 ATmega128 이란 1984년창립된미국의 ATMEL상에 서 1997년에처음발표한 8비트제어용마이크로프로세 서로서, 이는 Alf-Egil Bogen과 Vegard Wollan의진보 된 RISC 첫글자를따서 기술을기반으로설계되었다고하여이것들의 AVR 이라고명명된것으로알려져있 으며, 혹자는 Advanced Virtual RISC의약어라고말하 3-1. ATmega128 의회로도 fig 3-1. ATmega128's circuit diagram
졸업논문 2011. 11. 15. 3 PortA 에는초음파센서를연결하여주었고, 0-3pin에는 Triger 신호를, 4-6pin에는 Echo신호를연결하여주었 다. PortB에는 DC모터를연결하여주였고 3,4pin에는 Enable,DIR 을연결하였고, 5pin에는속도제어를위한 PWM 핀을연결하여주었다. PortC의 0-3핀에는스텝모 터를 PortD에는 Text_LCD 를연결하여주었다. IV. 센서부 초음파센서는사람의귀에들리지않을정도로높은 주파수( 약 20khz 이상) 의소리인초음파가가지고있는 특성을이용한센서로초음파는공기나액체, 고체에사 용할수있다. 주파수가높고파장이짧기때문에높은 분해력을계측할수있다. 대상에초음파를보내고반사 된초음파를받는데걸리는시간을거리로환산해대상 물의거리를측정할수있는센서이다. SRF-05 는 40khz의주파수를사용하는초음파센서로 최대측정거리 4m에서최소측정거리 1cm까지측정이 가능하다. 두가지모드를지원하는데 Input핀과 Output 핀이분리되어동작하는 SRF-04 와동일한 Mode 1과 Input핀과 Output핀을공유해사용하는 Single Pin Mode인 Mode 2가있는데여기서는 Mode 1을사용하였 다. 입력신호는 10usec의 TTL High Pulse를사용하고 에코신호( 출력되는신호) 는측정거리에따라 Pulse Width가달라지는 다. Positive TTL level Signal을사용한 4-2. SRF-05 fig 4-2. SRF-05 표 4-1. 초음파센서제품사양 Table 4-1. Ultrasonic sensor products specification 제품사양 제품타입 : 반사파초음초음파 주파수 : 40KHz 초음파송신부 : N1076 초음파수신부 : N1081 I/O 포트수 : 2개의디지털 PIN (1 output, 1 input) 최소범위 최대범위 : 약 3cm : 약 3cm 입력전압 : 5vdc 4-1. SRF-05 타이밍다이어그램 (Mode 1) fig 4-1. SRF-05 Timing diagram (Mode 1) 동작은 Trigger Input핀에 10usec의 High Pulse를출 력하게되면 2번째펄스과같이 8 싸이클의초음파 (40khz) 가발생되는데이초음파가물체에부딪혀서반 사되어다시센서로되돌아오게되면 Echo Output핀에 서해당거리에따라 High Pulse 가출력되게된다. 즉 측정된거리에따라 High Pulse의 Width가달라지고측 정된펄스의시간폭을알아내면측정거리를알수있게 된다. 펄스폭에대해거리를계산하는방식은 us/58=cm or us/148=inches 로출력되는펄스의시간 적폭을 58usec로구분하면 Cm 단위로계산할수있다. 4-3. 초음파센서회로도 fig 4-3. Ultrasonic sensor circuit diagram
4 졸업논문 2011. 11. 15. 표 4-2. 초음파센서소스 Table 4-2. Ultrasonic sensor source 이프로젝트에서는스텝모터를사용하였다. 스텝 모터는 다음과같은특징이있다. unsigned int getecho(char ch){ unsigned int range; switch(ch){ case 0: Trigger3=1; delay_us(10); Trigger3=0; break; // 10uS case 1: Trigger2=1; delay_us(10); Trigger2=0; break; // 10uS case 2: Trigger1=1; delay_us(10); Trigger1=0; break; // 10uS switch(ch){ case 0: while(!echo3); TCNT1=0; TCCR1B=2; while(echo3); break; case 1: while(!echo2); TCNT1=0; TCCR1B=2; while(echo2); break; case 2: while(!echo1); TCNT1=0; TCCR1B=2; while(echo1); break; TCCR1B=8; range=tcnt1/116; // the range in CM return(range); 표 5-1. 스텝모터의장단점 Table 5-1. Stepping motor's strengths and weaknesses 장점 1. 피드백구성이없어도 지시대로회전하기때문에 제어시스템이간단하며 펄스입력에서오픈루프 제어가가능하다. 2. 모터의회전각도와입 력펄스수가완전히비례 한다. 단점 1. 크고무겁다. 3. 1 스테핑상각도의오차 가적고오차는누적이되 지않는다. 4. 기동, 정지, 역회전의응 답이다. 5. 모터의축을부하로직 결한상태에서극저속동 기운전이가능하다. 2. 큰것에비해서토크가 적다. 3. 고속회전이곤란하다. 4. 저속회전할때에진동 이생긴다. V. 모터부 자동주차차량의모터부는크게두가지가있다. 하나 는스텝모터이고, 또하나는 DC 모터이다. 이것들에대해 서간단히설명하면스텝모터의경우에는입력되는펄스 의주기로써속도를조정하고 DC 모터는입력되는전압 의크기에따라속도를조절한다. 1. DC 모터 (DC motor) DC 모터는높은회전수를얻을수있으며비교적싼 값에큰출력을얻을수있는장점이있다. 그러나모터 의수명이짧으며, 속도를일정하게유지한다든지일정 한거리를정확히이동하게속도를일정하게유지한다든 지일정한거리를정확히이동하게한다든지하는일을 시키기위해선복잡한부가장비들을붙여야한다는단 점이있다. 6. 자기보지력이있기때문에브러시등을사용하지않아도정지위치를보유할수있다. 7. 펄스신호의주파수에비례한회전속도를얻을수있고제로 (zero) 회전에서광범위한변속을할수있다. 5. 전력소비가크다. 2. 스텝모터 (Stepping motor) 스텝모터는펄스에의해일정한각도씩제어할수있는 모터로, 주로위치결정용도로서사용된다. 스텝모터는 디지털신호로제어하기용이하므로컴퓨터로사용하기 에아주적합하다. 5-1. 스텝모터부사진 fig 5-1. Stepping motor picture
졸업논문 2011. 11. 15. 5 void _delay_ms(unsigned int m){ int i,j; for(i=0;i<m;i++)for(j=0;j<1200;j++); /*600 속도빠름 1200 속도느림스텝모터의펄스크기값 */ 5-2. DC모터회로도 fig 5-2. DC motor circuit diagram 표 5-2. DC 모터부소스 Table 5-2. DC motor source void DCmotor_Stop() { PORTB.3 = 0; //Enable PORTB.4 = 0; //DIR //motor stop OCR1AL = 0; //PORTB.5,PWM= 정지 void rotation(char j){ /* 스텝모터정방향으로회전하기위한위상값 */ PORTC = 0b00010101; _delay_ms(j); //AaBb PORTC = 0b01010001; _delay_ms(j); PORTC = 0b01101001; _delay_ms(j); PORTC = 0b10101000; _delay_ms(j); PORTC = 0b00011000; _delay_ms(j); //AaBb PORTC = 0b01011010; _delay_ms(j); PORTC = 0b01100010; _delay_ms(j); PORTC = 0b10100110; _delay_ms(j); PORTC = 0b10100100; _delay_ms(j); void rerotation(char j){ /* 스텝모터정방향으로회전하기위한위상값 */ PORTC = 0b10100100; _delay_ms(j); //AaBb PORTC = 0b10100110; _delay_ms(j); PORTC = 0b01100010; _delay_ms(j); PORTC = 0b01011010; _delay_ms(j); PORTC = 0b00011000; _delay_ms(j); //AaBb PORTC = 0b10101000; _delay_ms(j); PORTC = 0b01101001; _delay_ms(j); PORTC = 0b01010001; _delay_ms(j); PORTC = 0b00010101; _delay_ms(j); void DCmotor_Rear() //motor low_speed { PORTB.3 = 1; //Enable PORTB.4 = 1; //DIR OCR1AL = ~0x0F; //~0x7F; //PORTB.5,PWM= 정지 delay_ms(100); void DCmotor_Forward() //motor stop { PORTB.3 = 1; //Enable PORTB.4 = 0; //DIR OCR1AL = ~0x0F; //PORTB.5,PWM= 정지 delay_ms(100); 먼저 Ⅵ. 전원부 12v로구동되는스텝모터를구동하기위해 1.5V AA건전지를 8 개사용하였다. 또한스텝모터와 MCU, DC모터가구동될때전류부족으로인해 되지않는것을방지하기위해 5V MCU가동작 정전압레귤레이터인 7805CT를사용하여 MCU와센서전원 VCC1과모터전 원 VCC2 를구성하였다. 6-1. 전원부회로도 표 5-3. 스텝모터부소스 Table 5-3. stepping motor source fig 6-1. Power supply circuit diagram
6 졸업논문 2011. 11. 15. Ⅶ. 결론 초음파센서와모터제어를이용하여자동주차를구현해보았다. 구현해본결과자동주차차량은직접주차하는것보다안정성이나편의성에서확실히탁월하다. 인력손실은물론시간도절약할수있으니앞으로는자동주차시스템을탑재한차량이점차상용화되지않을까생각한다. 참고문헌 [1] 신동욱. ( 알기쉽게배우는) AVR ATmega128 응용 Ohm 사. 2010 [2] 김상훈. DC AC BLDC 모터제어, I복두출판사