이 프로젝트에서는 거리를 측정하기 위해 HC-SR04 초음파 센서 모듈을 Raspberry Pi에 인터페이스 할 것 입니다. 우리는 이전에 Raspberry Pi와 함께 초음파 센서를 사용하여 장애물 회피 로봇을 구축했습니다. 더 진행하기 전에 초음파 센서에 대해 알려주십시오.
HC-SR04 초음파 센서:
초음파 센서는 높은 정확도와 안정적인 판독으로 거리를 측정하는 데 사용됩니다. 2cm에서 400cm 또는 1 인치에서 13 피트까지의 거리를 측정 할 수 있습니다. 공기 중에 40KHz의 주파수로 초음파를 방출하고 물체가 방해를 받으면 센서로 다시 반사됩니다. 물체를 치고 돌아 오는 데 걸리는 시간을 사용하여 거리를 계산할 수 있습니다.
초음파 센서는 "ECHO"라는 기술을 사용합니다. "ECHO"는 단순히 반사 된 음파입니다. 막 다른 골목에 도달 한 후 소리가 다시 반사되면 에코가 발생합니다.
HCSR04 모듈은 'Trigger'핀을 약 10us 동안 높이면 초음파 범위에서 소리 진동이 발생하여 소리의 속도로 8주기의 음파 버스트를 보내고 물체를 치면 Echo 핀으로 수신됩니다. 소리 진동이 돌아 오는 데 걸리는 시간에 따라 적절한 펄스 출력을 제공합니다. 물체가 멀리 떨어져 있으면 ECHO가 들리는 데 더 많은 시간이 걸리고 출력 펄스 폭이 커집니다. 장애물이 가까우면 ECHO가 더 빨리 들리고 출력 펄스 폭이 더 작아집니다.
초음파가 센서로 돌아 오는 데 걸리는 시간을 기준으로 물체의 거리를 계산할 수 있습니다. 소리의 시간과 속도를 알고 있으므로 다음 공식으로 거리를 계산할 수 있습니다.
- 거리 = (시간 x 공기 중 음속 (343m / s)) / 2.
파도가 같은 거리를 앞뒤로 이동하므로 값을 2로 나눈 값이므로 장애물에 도달하는 데 걸리는 시간은 총 소요 시간의 절반에 불과합니다.
따라서 센티미터 단위의 거리 = 17150 * T
우리는 이전에이 초음파 센서와 Arduino를 사용하여 많은 유용한 프로젝트를 만들었습니다. 아래에서 확인하십시오.
- 초음파 센서를 사용한 Arduino 기반 거리 측정
- Arduino 및 초음파 센서를 사용한 도어 알람
- Arduino를 사용한 IOT 기반 쓰레기통 모니터링
필요한 구성 요소:
여기 에서는 Raspbian Jessie OS와 함께 Raspberry Pi 2 Model B를 사용하고 있습니다. 모든 기본 하드웨어 및 소프트웨어 요구 사항은 이전에 논의되었으며, 시작하려면 Raspberry Pi 소개 및 Raspberry PI LED Blinking에서 찾아 볼 수 있습니다.
- OS가 사전 설치된 Raspberry Pi
- HC-SR04 초음파 센서
- 전원 공급 장치 (5v)
- 1KΩ 저항 (3 개)
- 1000uF 커패시터
- 16 * 2 문자 LCD
회로 설명:
Raspberry Pi와 LCD 간의 연결은 아래 표에 나와 있습니다.
LCD 연결 |
라즈베리 파이 연결 |
GND |
GND |
VCC |
+ 5V |
VEE |
GND |
RS |
GPIO17 |
R / W |
GND |
KO |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
이 회로에서는 LCD와 Raspberry Pi를 연결하기 위해 8bit 통신 (D0-D7)을 사용하였으나 이는 필수 사항이 아니며 4bit 통신 (D4-D7)도 사용할 수 있지만 4bit 통신 프로그램을 사용하면 비트가됩니다. 초보자에게는 복잡하므로 8 비트 통신으로 이동하십시오. 여기에서 우리는 8 개의 핀이 데이터 핀이고 2 개의 핀이 제어 핀인 라즈베리 파이에 10 개의 LCD 핀을 연결했습니다.
아래는 거리 측정을 위해 HC-SR04 센서와 LCD를 Raspberry Pi와 연결하는 회로도입니다.
그림과 같이 HC-SR04 초음파 센서에는 4 개의 핀이 있습니다.
- PIN1- VCC 또는 + 5V
- PIN2- TRIGGER (센서가 거리를 감지하도록 지시하기 위해 10us 높은 펄스 제공)
- PIN3- ECHO (폭이 트리거 후 거리를 나타내는 펄스 출력 제공)
- PIN4- 접지
Echo 핀은 Raspberry Pi에 직접 연결할 수없는 + 5V 출력 펄스를 제공합니다. 따라서 + 5V 로직 대신 + 3.3V 로직을 얻기 위해 전압 분배기 회로 (R1 및 R2를 사용하여 구축 됨)를 사용할 것입니다.
작동 설명:
Raspberry Pi Distance Measure 의 완전한 작업 은 다음과 같습니다.
1. 10uS 용 트리거 핀을 당겨 센서를 트리거합니다.
2. 센서가 음파를 보냅니다. ECHO를 수신 한 후 센서 모듈은 거리에 비례하는 출력을 제공합니다.
3. 출력 펄스가 LOW에서 HIGH로, 그리고 다시 HIGH에서 LOW로 갈 때 시간을 기록합니다.
4. 시작 및 중지 시간이 있습니다. 거리 방정식을 사용하여 거리를 계산합니다.
5. 거리는 16x2 LCD 디스플레이에 표시됩니다.
따라서 다음 기능을 수행하기 위해 Raspberry Pi 용 Python 프로그램 을 작성했습니다.
1. 센서에 트리거 보내기
2. 센서에서 출력되는 펄스의 시작 및 중지 시간을 기록합니다.
3. START 및 STOP 시간을 사용하여 거리를 계산합니다.
4. 얻은 결과를 16 * 2 LCD에 표시합니다.
전체 프로그램 및 데모 비디오 는 다음과 같습니다. 프로그램은 댓글을 통해 잘 설명되어 있으며, 의문이 있으시면 아래 댓글 섹션에서 질문하실 수 있습니다.