초음파센서를 이용한 거리측정기 개발AVR – Atmega32, 초음파센서 – SRF05(04), Display - CLCD[날짜 선택][회사 이름 입력]Windows 사용자목차초음파센서초음파센서 개요초음파센서 구조초음파센서 동작원리초음파센서를 활용한 거리측정방식다양한 초음파센서 및 사용법회로도펌웨어 코드lcd_routines.cMain.c1. 초음파 센서1.1 초음파센서 개요초음파는 사람의 귀로는 소리로서 느낄 수 없는 약 20㎑이상의 음파이다. 초음파는 본질적으로는 가청범위의 음파와 성질이 같으나, 주파수가 높고 따라서 파장이 짧기 때문에 상당히 강한 진동이 생기므로 보통의 소리에서는 볼 수 없는 성질도 나타낸다. 예를 들어 그 진로가 방향성을 가지면서 짧은 펄스(pulse)가 나오게 되는 것 등인데, 박쥐가 어두운 밤에 가느다란 물체까지 식별하는 것은 몸에서 초음파를 나오게 하여 장애물에 비추어 그 반사파를 감지하는 능력을 가졌기 때문이다.가정의 오디오에서 사용하는 마이크, 스피커의 내부 형태와 동작이 유사하다. 하지만 마이크와 스피커는 사람이 들을 수 있는 16[Hz]~2만[Hz]사이인 낮은 소리에너지를 검출 또는 발생하는 것이고 초음파센서는 이보다 높은 영역인 20[khz]~ 수백[khz]의 소리에너지를 검출, 발생한다.초음파 센서는 압전소자를 사용한 진동자의 송파기로부터 발진된 초음파의 에코(Echo)가 수파기에 도달할 때까지의 소요시간으로 거리를 검출하는 것이다. 즉, 초음파를 일정시간 발생시킨 뒤 벽에 반사되어 돌아오는 신호를 검출하여 그 시간차로 거리를 측정한다.일반적으로 초음파 센서의 종류 중에는 대향형과 반사형이 있다. 대향형은 광전로봇시스템 응용스위치의 투과형과 같이 송파기에 수파기를 마주대하고, 송파기로부터 방출된 초음파가 물체에 의해 차단될 때 수파기 측의 신호 변화를 검출하는 방식이다.1.2 초음파센서 구조초음파센서는 송파기와 수파기로 나누어져 초음파를 발생, 검출하나 일반적으로 두 가지의 센서의 구조는 동일하다. 외부로 나와 있는 단작원리초음파를 발생시키고 이를 검출하는 것은 전자유도 현상, 자왜 현상, 압전 현상에 의한 진동효과를 이용하는 것이다. 전자 유도형 진동자는 다이나믹형 스피커와 같다. 자왜 진동자와 마찬가지로 자계 속에서 전자나 금속 또는 금속 산화물l 받는 힘에 의해 진동자가 진동하는 것이다. 자왜 진동자는 고유 진동수에서 공진하는 공진형인 것에 비해 전자 유도형 진동자는 비공진형이어서 공진 주파수에 좌우 되지 않고 구조나 사용법이 간단하다. 반면 주파수가 높아지면 변환 효율이 나빠지고 노이즈를 많이 타는 결점이 있다. 현재 가장 많이 이용되고 있는 것이 압전효과를 이용한 압전 진동자로서, 두 개의 압전 소자를 맞붙여 양쪽에 걸리는 전압이 매번 바뀜에 따라 한쪽이 늘어나면 다른 쪽이 줄어드는 방식으로 해서 진동시키는 것이다. 이것이 송신기이며 역으로 음압이 가해지면 기전력을 발생시크는 것이 수신기이다.이것의 공진 주파수는 23~25㎑, 40~45㎑가 표준형이다.압전소자는 전압에 따라 수축 또는 팽창하는 성질을 가지고 있다. 이 압전소자 두개를 각각 반대 방향으로 붙여 진동소자를 만든 것이다. 그림에서 (a)는 전압이 인가되지 않은 상태를 나타내는 것으로 압전소자에 아무런 변화도 생기지 않는다. 여기서 전압이 인가되면 그림(b)처럼 압전소자 A는 수축되고 압전소자 B는 신장된다. 또한 반대 전압을 가하면 그림(c)과 같이 압전소자 A는 신장되고 압전소자 B는 수축된다.초음파센서는 대표적으로 거리측정과 유량속도를 측정할 때 많이 쓰이며, 그 외 의료용 및 초음파 진동을 활용한 연마기, 세척기에 많이 응용되고 있다.1.4 초음파센서를 활용한 거리측정 방식초음파센서는 수신기와 송신기로 나누어져 있다. 송신기에서 발생한 발신초음파가 검출물체에 의하여 반사되어 수신기로 들어간다. 이때 송신기에서 발생한 초음파신호부터 수신기로 들어오는 신호까지의 시간을 2로 나누어 거리를 알아낼 수 있다.검출방식에는 송수신기를 서로 마주보개 배치하는 대향형과 반사형 및 송수파 겸용 반사형이 있다.이들의 속도를 V라고 하며 초음파가 발사된 후 돌아오기까지의 시간을 T라 하면거리를 측정하려면 V를 빛의 속도인 C로 바꾸어 계산하면 된다. 단 음파의 속도 V는 331.5+0.607t (m/s)이다. 여기서 t는 공기 중의온도이다. 매질이 공기가 아니라면 매질에 따라 속도는 달라지므로 물리학 전문서적을 참고하도록 한다.1.5 다양한 초음파센서 및 사용법초음파는 응용분야에 따라 다양하게 쓰이고 있는데 우선 측정용으로는 거리,두께 , 유량 등 측정 장치, 의료용 초음파 진단장치, 비파괴 검사장치 등으로 쓰인다. 또한 초음파 동력을 활용한 응용장치는 초음파 가공기(연마기, 커터기), 세정기,용접기, 가습기 등 초음파의 강력한 에너지를 활용한 장치이다. 그리고 최근에는 초음파 치료기, 음식물 숙성기 등 활용분야가 점점 확대되고 있다. 초음파센서의 대표적인 응용분야인 거리측정, 유량속도측정 센서의 응용 예를 보면 다음과 같다.초음파센서(SRF04) 센서제원SRF04는 영국 Robot Electronics의 초음파 거리감지 센서로 스타트신호를 입력한 후에 거리에 따른 시간지연 신호가 출력되며, 마이컴에서 타이머 기능을 이용하여 거리를 측정한다. 또한 모듈 내부에 마이컴이 있으며 신뢰성이 매우 높은 초음파 거리감지 센서로 일반적으로 많이 쓰이고 있다.1) 입력전압: 5V2) 동작전류범위- 30㎃, 최대 50㎃3) 주파수- 40㎑4) 최대측정가능거리 - 3m5) 최소측정가능거리 - 3㎝6) 감도 – 최소 3㎝ 최대 2m 크기까지 감지가능7) 입력펄스- 최소 10㎲. TTL 레벨펄스8) 사이즈 - 43㎜ x 20㎜ x 17㎜초음파센서(SRF04) 사용법RF04는 트리거신호로 10㎲동안 high신호를 입력하면 잠시 후 Echo Pulse Output으로 송신부에서 나간 초음파가 돌아올 때까지 high신호를 내보낸다. 이 동작의 최대 주기는 36㎳이며, 이 사이에서 Echo Pulse Output에서 high신호가 나오는 시간을 계산해서 거리를 측정하면 된다. 밑의 구림은 SRF04100㎲에서 18㎳까지의 길이를 가진다.③ 만약 36㎳ 지연시간 동안 라이징펄스가 발생하지 않는다면 장애물이 없는 것이다.④ 최초 100㎲를 발생하고 최소 36㎳~50㎳이상 지연시간을 가진 다음 트리거 신호를 보내면 된다.⑤ Echo Pulse Output의 길이가 길수록 장애물이 멀리 있다는 것이고, 짧을수록 장애물이 가까이 있는 것이다.⑥ 이 라이징 펄스의 길이로 물체와의 거리를 측정하는 것이다.⑦ 위에서 언급한 것처럼 장애물이 가시거리에 없으면 라이징펄스가 발생하지 않는다.초음파센서(SRF05) 센서제원-입력전압 : +5VDC-소비전류 : 4mA Typical-주파수 : 40Khz-최대 측정거리 : 4M-최소 측정거리 : 1cm-모드 : mode 1 => SRF04 모드 (Input핀과 Output 핀이 분리됨)mode 2 => Single Pin Mode (Input핀과 Output 핀을 공유함)-> SRF05의 특징-입력신호 : 10usec의 TTL High Pulse-에코펄스신호(출력되는 신호) : Positive TTL level Signal(측정거리에 따라 Pulse Width가 달라짐)-크기 : 43 * 20 * 17mm-초당 측정횟수 : 약 20회/sec (한번 측정에 최대 50m Sec 소요)초음파센서(SRF05) 사용법 Mode-11) Trigger Input 핀에 10usec의 High Pulse를 출력2) 10usec 의 펄스를 입력해 주면 8 싸이클의 초음파(40khz)가 발생3) 이렇게 초음파가 출력되고 물체에 부딪쳐서 반사되어 다시 센서로 되돌아 오게 되면 Echo Output 핀쪽에서 해당 거리에 따라 High Pulse가 출력되게 됨. 즉, 측정된 거리에 따라 High Pulse의 Width가 달라짐.100usec ~ 25msec까지 출력되고 30msec가 넘어가면 물체를 감지하지 못한것으로 간주함(Time OUT) 따라서 High Pulse의 Width의 시간폭을 알아내면 측정거리를 알 수 있음.4) 펄스 폭에 대해 거리 계 in uS, then dividing by 58 will give you the distance in cm, or dividing by 148 will give the distance in inches. uS/58=cm or uS/148=inches.: 위의 글에 따르면 58usec = 1cm 이고 148usec = 1inch 로 계산즉, Cm 단위를 사용하기 위해 출력되는 펄스의 시간적 폭을 58usec씩 구분하면 됨2. 회로도3. 펌웨어 코드3.1 lcd_routines.c#include // Standard AVR header#include // Delay loop functions#include #include #include //Commands for the LCD//#define lcd_on PORTD |= 0x80//#define lcd_off PORTD &= ~0x80//#define lcd_data PORTD |= 0x20//#define lcd_command PORTD &= ~0x20//#define lcd_on PORTD |= 0x04//#define lcd_off PORTD &= ~0x04//#define lcd_data PORTD |= 0x01//#define lcd_command PORTD &= ~0x01//#define lcd_on PORTA |= 0x80 //Enable//#define lcd_off PORTA &= ~0x80 //Disable//#define lcd_data PORTA |= 0x20 //RS 1//#define lcd_command PORTA &= ~0x20 //RS0//PORTD.3 : RS, PORTD.4 : RW, PORTD.7 : E#define lcd_on PORTD |= 0x80 //Enable#define lcd_off PORTD &= ~0x80 //Disable#define lcd_data PORTD |= 0x08 //RS 1#define lcd_command PORTD &= ~0x08 //RS=0;i
1.Bootloader의 개요새로운 시스템이 새롭게 시작되는 것을 ‘부팅(booting)`이라고 표현한다.그리고 이 부팅 과정을 부트스트랩(bootstrap)이라고 하는데, 부트스트랩이란 ’자신의 장화(boot)의 끈(strap)을 묶고서 일어서려는 사람‘을 의미한다.Bootloader란 부트스트랩로더(bootstrap loader)를 뜻하는 것이다. Bootloader의 사전적 의미를 살펴보면 다음과 같다.“컴퓨터를 부팅하거나 시동시킬 때 사용자가 컴퓨터를 사용할 수 있도록외부 기억 장치로부터 운영 체계를 읽어와 주기억 장치에 적재해 주는 프로그램. 일반적으로 컴퓨터의 읽기용 기억 장치(ROM)에 저장되어 있다.”위의 정의는 Bootloader의 기능을 간단하게 표현하고 있다. 하지만Bootloader의 동작 자체가 간단한 것은 아니다. 운영 체계를 주기억 장치에적재하기 위해서는 하드웨어가 시스템에 적합하게 초기화 되어야 하고 정상적인 동작을 해야 한다. 이런 테스트와 초기화를 수행하는 것 또한Bootloader의 역할이다. 보편적인 임베디드 시스템에서 Bootloader를 개발할 때 다음과 같은 기능을 수행한다.