5.15. Exercise: HC-SR04#
Instructions
Read the case study on Case Study: HC-SR04 Ultrasonic Sensor.
Question 1
Question 2
Answer the following:
Create a wiring diagram of the sensor connected to your microcontroller using Wokwi.
Solution
Solution is locked
Question 3
Answer the following:
Annotate the provided MicroPython code to match the steps outlined on the case study.
Note
The code provided is for the micro:Maqueen robot. You may need to adjust the pins used for your particular robot.
import utime def ultrasound_measure(): pin1.write_digital(1) utime.sleep_us(10) pin1.write_digital(0) timeout = utime.ticks_us() while True: pulseBegin = utime.ticks_us() if 1 == pin2.read_digital(): break if (pulseBegin - timeout) > 5000: return -1 # error: no echo start detected while True: pulseEnd = utime.ticks_us() if 0 == pin2.read_digital(): break if (pulseEnd - pulseBegin) > 5000: return -2 # error: echo too long (timeout) x = pulseEnd - pulseBegin # time in µs d = x * 0.01715 # distance in cm return int(d) while True: dist = ultrasound_measure() if dist >= 0: # only process valid readings print(dist) sleep(100)Solution
Solution is locked
Question 4
The measurements from the HC-SR04 can be noisy.
Extend the code so that:
the distance is smoothed using a moving average
small changes are suppressed with deadband
Solution
Solution is locked

