Page 300 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 300
GPIO.cleanup()
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
def distanceInCm(duration):
return (duration/2)/29.1
def print_distance(distance):
if distance == 0:
distanceMsg = 'Distance : out of range \r'
else:
distanceMsg = 'Distance : ' + str(distance) + 'cm' + ' \r'
sys.stdout.write(distanceMsg)
sys.stdout.flush()
def main():
GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG, GPIO.OUT) # 트리거 출력
GPIO.setup(ECHO, GPIO.IN) # 에코 입력
print('To Exit, Press the CTRL+C Keys')
GPIO.output(TRIG, False)
print('Waiting For Sensor To Ready')
time.sleep(1) # 1 초
print('Start!!')
while True:
fail = False
time.sleep(0.1)
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
timeout = time.time()
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
if ((pulse_start - timeout)*1000000) >= MAX_DURATION_TIMEOUT:
fail = True
break
if fail:
continue
timeout = time.time()
while GPIO.input(ECHO) == 1: - 312 -