Jun-09-2020, 12:20 PM
#!/usr/bin/env python3 ######################################################################## # Filename : UltrasonicRanging.py # Description : Get distance via UltrasonicRanging sensor # auther : www.freenove.com # modification: 2019/12/28 ######################################################################## import RPi.GPIO as GPIO import time trigPin = 20 echoPin = 19 MAX_DISTANCE = 220 # define the maximum measuring distance, unit: cm timeOut = MAX_DISTANCE*60 # calculate timeout according to the maximum measuring distance GPIO.setwarnings(False) # prevents some errors def pulseIn(pin,level,timeOut): # obtain pulse time of a pin under timeOut t0 = time.time() while(GPIO.input(pin) != level): if((time.time() - t0) > timeOut*0.000001): return 0; t0 = time.time() while(GPIO.input(pin) == level): if((time.time() - t0) > timeOut*0.000001): return 0; pulseTime = (time.time() - t0)*1000000 return pulseTime def getSonar(): # get the measurement results of ultrasonic module,with unit: cm GPIO.output(trigPin,GPIO.HIGH) # make trigPin output 10us HIGH level time.sleep(0.00001) # 10us GPIO.output(trigPin,GPIO.LOW) # make trigPin output LOW level pingTime = pulseIn(echoPin,GPIO.HIGH,timeOut) # read plus time of echoPin distance = pingTime * 340.0 / 2.0 / 10000.0 # calculate distance with sound speed 340m/s return distance def setup(): # GPIO.setmode(GPIO.BCM) # use PHYSICAL GPIO Numbering GPIO.setup(trigPin, GPIO.OUT) # set trigPin to OUTPUT mode GPIO.setup(echoPin, GPIO.IN) # set echoPin to INPUT mode def multi_signal_cleanup (trig, echo): # averages 10 signals from ultrasound samples = [s1, s2, s3] for variable in samples: variable = getSonar() sample_ave = (s1+s2+s3)/3 return sample_ave def loop(): # while(True): distance = multi_signal_cleanup(20, 19) # get distance *3 print ("The distance is : %.2f cm"%(distance)) time.sleep(1) if __name__ == '__main__': # Program entrance print ('Program is starting...') setup() # try: loop() # except KeyboardInterrupt: # Press ctrl-c to end the program. GPIO.cleanup() # release GPIO resourceThis is a test code I am working on and not the whole robot code, but it is where I am getting the error.
thanks for the help.
Gary