Hardware | HY-SRF05 초음파 거리 측정기를 사용해 보자

|

1. 거리 측정기


거리를 측정하는 방법에는 여러가지가 있습니다.

일전에 laser 모듈을 이용하여 측정하는 방법을 구현해 봤습니다.


* Hardware | VL53L0X 레이저 거리 측정 센서 사용해 보기

http://chocoball.tistory.com/entry/Hardware-VL53L0X-laser-ranging-sensor


다만, 두개의 눈같이 생긴 센서가 자꾸 눈에 들어 옵니다.

로보트를 만든 사람들은 누구나 사용하는 센서인 듯 보이고, Arduino Starter Kit 에도 꼭 포함되어 있는 센서 입니다.


사용해 보지 않을 이유가 없습니다.

궂이 필요성은 없지만 서도...


AliExpress 에서 검색하니 그냥 나옵니다. 흠흠.


* 5Pin HY-SRF05 SRF05 Ultrasonic Distance Sensor Module For Arduino Replace SR04 Electronic Brick Compatible Interface DC 5V


https://ko.aliexpress.com/item/MAX6675-Module-K-Type-Thermocouple-Thermocouple-Sensor-for-Arduino-AL/32247186623.html



지금까지 구입하지 않고 오래 지났으니, 이제 구입할 시기라고 정당화 하면서 바로 구입합니다.




2. 도착


그리 오래 걸리지 않고 도착했습니다.

한 2주 정도?



뽁뽁이로 잘 쌓여 있고요.



아니 이게... WTF.

왜 너는 pin 들이 죄다 구부러져 있니?

너무 이쁘게 구부러져 있어서 원래 그런거라고 자답 위안을 삼아 봅니다.




3. 외형


앞모습 입니다. 두개의 눈처럼 생겼습니다.



뒷모습.



HC-SR04 버전과 비교해 보면, 조금 더 component 들이 더 많이 있음을 알 수 있습니다.




또한, SRF04 의 업그레이드 버전인 SRF08 도 있습니다.


SRF04 > SRF05 (좀더 정확해짐) > SRF08 (거리가 늘어나고 낮은 ampere)


http://www.f15ijp.com/2012/09/arduino-ultrasonic-sensor-hc-sr04-or-hy-srf05/

http://www.junun.org/MarkIII/Info.jsp?item=32


SRF08 은 photoresistor 까지 달려 있네요.




사실은 Ultrasonic 거리 측정기는 제품 넘버링 만큼 많이 있습니다.

https://www.robot-r-us.com/vmchk/sensor-ultrasonic.html






4. Layout


Pin 연결들은 다음과 같습니다.


  HY-SRF05  | Arduino Nano
---------------------------
    Vcc     |     5V
    Trig    |     D13
    Echo    |     D12
    OUT     |     
    GND     |     GND
---------------------------


  SSD1306   | Arduino Nano
---------------------------
    GND     |     GND
    VDD     |     3.3V
    SCK     |     A5
    SDA     |     A4
---------------------------


회로도는 다음과 같습니다.



짜잔~ 전체 사진입니다.






5. Sketch


소스는 아래 link 를 참조하였습니다.


* Distance Measurement with an Ultrasonic Sensor HY-SRF05

- https://create.arduino.cc/projecthub/Nicholas_N/distance-measurement-with-an-ultrasonic-sensor-hy-srf05-64554e


#include "Adafruit_SSD1306.h"
Adafruit_SSD1306 display = Adafruit_SSD1306();

const unsigned int TRIG_PIN=13;
const unsigned int ECHO_PIN=12;
const unsigned int BAUD_RATE=9600;

void setup() {
	pinMode(TRIG_PIN, OUTPUT);
	pinMode(ECHO_PIN, INPUT);
	Serial.begin(BAUD_RATE);
	
	display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
	// init done
	display.display();
	display.setTextSize(2);
	display.setTextColor(WHITE);
}

void loop() {
	digitalWrite(TRIG_PIN, LOW);
	delayMicroseconds(2);
	digitalWrite(TRIG_PIN, HIGH);
	delayMicroseconds(10);
	digitalWrite(TRIG_PIN, LOW);
	
	const unsigned long duration= pulseIn(ECHO_PIN, HIGH);
	int distance= duration/29/2;
	
	if(duration==0) {
		Serial.println("Warning: no pulse from sensor");
	} else {
		display.clearDisplay();
		display.setCursor(0,0);
		display.print(distance);
		display.print(" Cm");
		
		display.display();
	}
	
	delay(500);
}


수정한 부분은 output 을 Serical Monitor 가 아닌, OLED 로 표시하는 부분 뿐입니다.




6. 측정


구성을 하고 몇가지 측정해 봤습니다.



오차가 좀 있지만, 조정만 하면 정확한 계측용으로 사용이 가능할 것 같습니다.

20Cm 정도 떨어트린 곳에서 측정해보면 20Cm 정도 나오는 장면입니다.


동영상으로도 찍어 봤습니다.

40Cm > 30Cm > 20Cm > 10Cm > 0 순으로 해봤습니다.



센서 바로 앞은 논리적으로 0Cm 이지만 이상한 값을 뿌려줍니다.

이는 Ultrasonic 을 보내고 받을 수 있는 공간이 나오지 않아서 그런것 같아요.




7. 추가


뜬금없이 사용 전류량을 알고 싶어졌습니다.

전류 측정은 직렬로 연결해야 알 수 있으므로, sensor 의 ground 부분을 멀티미터 +/- 를 통하게 만들어서 측정해 봤습니다.



대략 5.36 mA 가 나오네요.

스펙상으로는 2mA 이하라고 나오는데, 어느쪽이 잘못된건지 모르겠습니다.


측정할 수 있는 최대 거리를 보고자 10m 정도 앞을 비추었더니, 아래와 같이 38m 값이 나옵니다.

유효한 거리는 대략 4m 정도로 보입니다. (스펙에도 4.5 m 로 표기되어 있슴)



오실로스코프를 이용하여 Ultrasonic sound 와 반사파를 측정하는 동영상이 있습니다.


* #40 Ultrasonic Distance Sensors Arduino Tutorial and Comparison for HC-SR04, HY-SRF05, US-015

https://www.youtube.com/watch?v=aLkkAsrSibo



거리에 따라 Response 값이 변하는 것을 알 수 있습니다.



그치만, 저의 DIY 오실로스코프는 측정하지 못합니다.

DC 에 200 us 이 필요한데, 제가 만든 DIY 오실로스코프는 10us 가 최대치 입니다.


* Hardware | DSO150 Oscilloscope

http://chocoball.tistory.com/entry/HardwareDSO150Oscilloscope


처음으로 좀더 좋은 Oscilloscope 를 갖고싶다는 생각을 했습니다.




FIN


로보트 등에 많이 사용되는 센서인데, 구동이나 사용법은 간단한것 같습니다.

Ultrasonic 이라서, 귀에 들리지 않는다는 것이 좀 아쉽고 궁금하군요.

(아니 당연한 것을...)


And