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  -
   295   296   297   298   299   300   301   302   303   304   305