일시 : 2018.01.10
내용 : Ultrasonic Sensor(초음파 센서)
//
Ultrasonic Sensor (초음파 센서)
초음파를 방사한 후 물체에 반사되어 돌아오는 시간을 계산해 거리를 파악. (Peri0 2cm ~ 400cm 거리 측정 가능)
10마이크로 초 동안 Trigger핀에 High 신호 전달(StartTime) -> 초음파 발생시킴
되돌아온 초음파를 감지하면 echo핀은 high에서 low출력으로 변함(endTime)
따라서 echo 핀의 high 레벨 펄스는 거리에 해당.
초음파 수신 시간(duration) = endTime - startTime
물체와의 거리 = duration * 17000
실습
거리 측정하여 출력하기
돌아온 시간을 초음파 센서는 알고 있음.
echo 핀을 통해 rasp에서 cpu로 알려주는 것.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
trig = 0
echo = 1
GPIO.setup(trig, GPIO.OUT)
GPIO.setup(echo, GPIO.IN)
try:
while True:
GPIO.output(trig, False) # trig핀 low로 유지
time.sleep(0.5)
## trig핀 high로 만들어서 초음파 보냄. 10ms동안 유지
GPIO.output(trig, True)
time.sleep(0.00001)
GPIO.output(trig, False)
while GPIO.input(echo) == False: # echo핀 low일 때 시간 출력
pulse_start = time.time()
while GPIO.input(echo) == True: # echo핀 high일 때 시간 출력
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start # high로 유지한 시간 (거리)
distance = pulse_duration * 17000
distance = round(distance, 2)
##소수점 둘째자리까지
print("Distance : ", distance, "cm")
except:
GPIO.cleanup()
'2017 멀티캠퍼스 > Raspberry Pi' 카테고리의 다른 글
#12 라즈베리파이 온습도 센서 (0) | 2018.01.30 |
---|---|
#11 라즈베리파이 조도센서 (0) | 2018.01.30 |
#9 라즈베리파이 PWM (0) | 2018.01.30 |
#8 라즈베리파이 Piezo 센서 (0) | 2018.01.30 |
#7 라즈베리파이 I2C 통신 (0) | 2018.01.14 |