전기전자2010.11.08 21:51

거리센서 테스트 2번째 이야기입니다.
종전방식은 그냥 거리에 따른 출력 전압변화를 전압계로 관측하는 정도 였습니다.
이번엔 조금 더 발전하여 아듀이노 보드에서 거리센서에서 출력해주는 전압을 받은 뒤, 시리얼 통신으로 PC에 전달하고,
PC측에서는 시리얼통신으로 전송받은 수치를 그래프로 표현해주는 serial Chart 라는 프로그램으로 시각화 하는 예제가 되겠습니다.


[거리센서+아듀이노+시리얼통신+시리얼챠트 = 실시간 거리센서 파형관찰 ]



[ 동영상. 거리센서 결과를 SerialChart로 관측하기 ]

아마도 아듀이노로 할 수 있는 가장 그럴듯한 초보적 예제중 하나일듯 합니다.

1. 아듀이노 : 거리센서 Pin 연결도

 거리센서  아듀이노 보드
 +  5V
 -  GND
 V out
 Analog IN 0


2. 아듀이노 Sketch 소스코드

/**
 * 기본포함된 예제인 AnalogInSerial를  PC측 SerialChart 프로그램에서 인식할수 있도록 한 줄 추가한 코드입니다.
 */

 void setup() {
  Serial.begin(9600);
 }
 
 void loop() {
  // read the analog input into a variable:
   int analogValue = analogRead(0) /4;
   // print the result:
   Serial.print(analogValue);
      Serial.println("");   //serialChart 프로그램에서 data 패킷 단위를 구분(0x0d 0x0a가 전달됨)해주기 위해 필요합니다.

   // wait 10 milliseconds for the analog-to-digital converter
   // to settle after the last reading:
   delay(10);
 }


3. SerialChart 프로그램용 configuration 설정파일.
: 시리얼차트 프로그램은 입력받은 data를 configuration파일에 정의에따라 해석하여 그래프로 나타내줍니다.
아래의 예는 가장 간단하게 구성해본 예입니다. 더 다양한 설정이 가능하니 직접 해보시기 바랍니다.
 파일( 가령  imu_arduino.scc )에 아래의 내용을 적은 뒤 불러들이면 됩니다.
주의: COM3 같은 port 번호는 컴퓨터 설정마다 다른건 알고계시겠죠.. 자신의 설정에 맞게 수정해줍니다.

[_setup_]

port=COM3
baudrate=9600
width=700
height=500
background_color = white
grid_h_origin = 100
grid_h_step = 1
grid_h_color = #EEE
grid_h_origin_color = #CCC
grid_v_origin = 0
grid_v_step = 0.5
grid_v_color = #EEE
grid_v_origin_color = transparent

[_default_]
min=0
max=255

[DistanceSensor]
color=red



[관련 블로그글]

거리센서 출력전압 관측

우편함 뮤직로봇 응용예제

거리센서 판매



[참고사이트]
시리얼챠트 프로그램 다운로드:
 http://www.starlino.com/data/imu_kalman_arduino/SerialChart_01.zip  시리얼챠트 코드구글

아듀이노 스토리 까페: http://cafe.naver.com/arduinostory.cafe (시리얼차트프로그램도 여기 회원분을 통해 알게되었습니다.)
아듀이노 공식사이트: http://arduino.cc

저작자 표시 비영리 변경 금지
신고
Posted by 로보밥 로보밥

댓글을 달아 주세요

  1. 안상훈

    안녕하세요 궁금한게 있어서 댓글 남깁니다. 혹시 측정값을 lcd에 나타낼 수도 있나요?
    거리 측정 센서값이 수직이 아니라서 값을 변환해서 나타내서 일정한 값이 나오면 글도 나오게 하고 싶은데 궁금해서
    댓글을 남기게 되었습니다.

    2013.11.25 02:10 신고 [ ADDR : EDIT/ DEL : REPLY ]

전기전자2010.11.08 16:04
이번엔 거리센서 테스트를 해봤습니다.
본 센서의 사용예는 광범위한데요 여러분이 가장 손쉽게 접하는것은 아마도 최근 많은 화장실에 설치된 손 건조기 일겁니다.
손을 갖다대면 히터가 작동하는 기계말입니다. ( 제조하시는분 왈: 요녀석이 그 용도로는 짱이랍니다.)

또한가지 용도는 로봇에 장착하여 벽이나 주변 물체를 감지하는데 사용하곤 합니다.
제가 이번에 소개시켜드릴 거리센서는 로보티즈사의 바이올로이드 같은 로봇에서 절대거리 센서로 이용되고 있습니다. (동일모델)

본 센서의 장점은 부차적인 회로없이 거리값에 비례하는 전압을 출력해준다는점 입니다.
이 출력전압을 ADC입력핀에 넣어주면 MCU측에서 절대거리값을 구해낼수 있습니다.
온도를 전압으로 변화시켜주는 LM35 와 유사하게 사용할 수 있습니다.

내부를 들여다 보면, 자체적인 오실레이터와 측정 및 전압출력 회로가 내장 되어있음을 볼 수있는데요,
재밌는것은 내부를 분해해보시면, 그안에 카메라 화상 센서 (CCD) 같은 부분이 있는것을 볼 수 있습니다.
아마도 저해상도의 CCD 어레이를 직선방향으로 배열하여 거리를 삼각측량방식으로 구해내는듯 합니다.
(참고로 구형 메모리칩을 뚜껑을 분해해서 저해상도 카메라로 사용할 수도 있습니다. 요즘엔 그런 무시무시한 일은 하지 않아도 저렴한 카메라가 넘쳐나니 그렇다는것 정도만 알아둡시다. )

테스트결과:
공급전압이 5V일경우
정면 80Cm 거리 이내에 물체감지가 안되면 약 0.2V 출력이 나왔고요,
10Cm정도까지 근접할때 3.2V에 조금 못미치는 전압이 출력되었습니다.
단, 10Cm보다 더 근접하면 오히려 값이 떨어집니다.


테스트 방법:
회로도도 필요없는 간단한 구성입니다.
작동 테스트를 위해서 멀티테스터와 5V정도의 정전압만 있으면 됩니다. 사양서를 보니 공급전압은 7V까지 지원하는 듯 합니다.
하지만 얼렁뚱땅 표준전압인 5V가 좋습니다. 
조금 부유한 장비를 보유하신 분들이라면 오실로스코프를 이용하시면 시간에따른 변위를 한눈에 보실 수 있으니 더 좋겠죠. 멀티테스터와 동일한 위치에 Probe를 함께 연결해 주시면 끝입니다.  용도에 따라 전압이나 주변회로와 함께 사용하 실 때는 저항,콘덴서 1~2개로 노이즈 제거해주시면 되고요. 여기서는 생략했습니다.

어설픈 회로도와  동영상 감상하시는 것으로 마무리 하겠습니다.



[거리센서-정면]


[거리센서-측면]




[거리센서- 내부]


[절대거리감지기 테스트용 연결도]




[거리센서 - 변위에 따른 전압 변화 ]


관련링크

거리센서 + 아듀이노 =시리얼 통신=> 그래프 파형 관측 
우편함 뮤직로봇 응용예제
거리센서 판매(감지거리는 다릅니다)
로보티즈사 절대거리센서 도움문서


참고자료: DataSheet

SHARP_GP2Y0A21YK.pdf

샤프거리센서-원리및상세기술자료.pdf




저작자 표시 비영리 변경 금지
신고
Posted by 로보밥 로보밥

댓글을 달아 주세요

  1. 나그네...

    거리값에 비례해서 출력전압이 나온다고 쓰셨지만, 곡선으로 나오는지라 비례해서 나온다기도 뭐하더군요...
    거리에 따른 오차를 줄일려면 식을 잘 써야 합니다.

    2010.11.08 19:39 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 맞는 말씀이십니다. 출력전압 특성이 정비례(기울기1)는 아닙니다.
    그래도 관용적인 의미로 비례라는 용어도 틀린 말은 아닙니다. 그냥 2차함수 비례정도 되겠네요...
    정밀한 거리 측정용 부품이 아니니 그점을 감안하고 사용해야하겠습니다.
    본 제품을 이용하시는 분들은 첨부된 데이타시트의 거리:전압 관계도를 꼭 참조하시기 바랍니다.

    2010.11.08 21:12 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 멘토

    혹시 10cm 이하로 거리를 사용할 수 있는 방법이 있을 까여...?

    2013.01.16 16:37 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 빛을 활용하는 거리센서의 경우 삼각함수 측정방식이어서 최소측정거리가 비교적 큽니다. 피사체의 매질에따라 초음파 센서를 활용할수도 있을것 같습니다.

      2013.01.23 11:51 신고 [ ADDR : EDIT/ DEL ]