#implement the micropython script for the reverse parking sensor
from machine import Pin, time_pulse_us, PWM
import time

trigger_pin = Pin(23, Pin.OUT)
echo_pin = Pin(21, Pin.IN)
buzzer_pin = Pin(12, Pin.OUT)

def measure_distance():
    trigger_pin.on()
    time.sleep_us(10)
    trigger_pin.off()
    while not echo_pin.value():
        pass
    pulse_start = time.ticks_us()

    while echo_pin.value():
        pass
    pulse_end = time.ticks_us()
    pulse_duration = time.ticks_diff(pulse_end, pulse_start)

    distance = pulse_duration * 0.0343 / 2

    return distance

def activate_buzzer():  
    pwm = PWM(buzzer_pin)  
    pwm.freq(1000)  
    pwm.duty(512)  

def deactivate_buzzer():  
    buzzer_pin.off()

while True:
    distance = measure_distance()
    print("Distance: {} cm".format(distance))
    if distance < 100:
        print("Obstacle detected! Activating buzzer...")  
        activate_buzzer()
    else:
        print("No obstacle detected.") 
        deactivate_buzzer()

    time.sleep(0.1)
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
bz1:1
bz1:2