아두이노프로세싱 프로그래밍

아두이노 프로마이크로 적외선 거리센서 (Sharp Ir GPY2Y0A21) 실험

coding art 2017. 8. 3. 17:42
728x90



아두이노 처럼 라즈베리를 사용하고 싶으신가요? 이 책에서 해답을 찾으세요.



______________________________________________________________________________________________________________________________________________________

______________________________________up to here commercial area--------------------------------------------------------------------------------------

아두이노에서 거리측정용 센서로서 적외선 센서와 초음파 센서가 있는데 여기서는 초음파에 비해 측정 거리가  상대적으로 짧은 적외선 거리 센서(Sharp Ir GPY2Y0A21)의 성능을 알아보기로 한다.



아두이노 우노 보드르 사용해도 무방하나 여기서는 드론 응용을 염두에 두고 아두이노 드론용 비행제어보드에 많이 사용되는 프로 미니 보드를 사용하기로 한다.

아두이노 프로 미니는 아날로그 핀이 A0,A1,A2,A3 4개가 다. 아울러 디지털 데이터 핀으로서 0번과 1번에 해당하는 TX 와 RX 핀이 있고 나머지 2∼13까지 있어 아두이노 우노와 거의 비슷한 구조이다.

하지만 적외선 센서는 전원선 Vcc 및 GND 와 아날로그 전압 채널로 A0를 사용하면 된다.

Sharp 적외선 센서 GPY2Y0A21 규격을 알아보자.
전압: 4.5∼5.5V  전류: 30 mA  감지거리: 10∼80 cm  출력전압 변동폭: 1.9V
샘플링 주기: 38∓10 msec



더블클릭을 하시면 이미지를 수정할 수 있습니다외선 센서 규격 중에서 작동 전압이 4.5V  이상이라야 하는데 USB 전원을 쓰는 경우 4.5V를 하회하는 경우가 있어 적외선 센서의 거리 측정 성능이 상당히 줄어들 수 있음에 유의하자. 일반적으로 아두이노 보드에서 Vcc 는 5V 근방의 출력 전압을 주는 것으로 알고 있으나 의외로 변동 폭이 클 수 있음에 유의해야 하며 이 적외선 센서를 사용하려면 반드시 멀티메터로 전압을 측정 확인할 필요가 있다.
 
현재 실험 대상인 프로 마이크로의 Vcc 전압은 4.37V 로 측정 되었다. 한편 실제로  12V 리튬 폴리머 배터리를 장착한 드론에서는 거의 5V 값이 측정되었다.














거리 감지 측정 실험에 관계 없이 5V Vcc 전압에서 ∓10% 를 벗어나면

센서 거리 감지 성능이 크게 떨어지지만 감지 가능한 거리 내에서는

 비교적 정확한 값을 준다.


  



















 거리 측정 결과는 예상했던 대로 상당히 큰 폭의 오차를 보여주지만 그 근본 원인은 앞서 지적했듯이

기준 전압 Vcc 값이 5V에서  ∓10%를 벗어나기 때문인듯하다.









코드 시작 부분에서 아날로그 채널 A0 와  setup() 문에서 통신 속도를 9600을 설정한다.
거리 계산은 즉 0∼1023의  정수 범위를 가지도록 측정된 아날로그 전압의 –1.15 승을 계산하여 상수 계수 12343.85를 곱하면 된다.
일단 전압이 4.5V 이상이라면 지수 값 –1.15를 –1.14에서 –1.16 정도 범위 내에서 조절하는 것도 보다 정밀한 결과를 얻을 수 있을 것이다.


참고로 4.5V  이상의 전압을 제공하는 아두이노 우노에서 실험했을 경우에 10∼70 cm  범위까지 깜짝 놀랄 정도로 대단히 정확한 값을 준다. 이때의 거리 계산식 float v = 5.0*analogRead(sensorPin)/1024; 에서 Vcc 전압에 해당하는 5.0V를 멀티메터로 측정한 값으로 대체하면 된다.

시간지연 500 msec는 샘플링 주기 3810 msec fm 감안한 적정 수치이다.