print("REVERSE PARKING SENSOR!!!")
#IMPORT MODULES / LIBRARY
import hcsr04 #ultrasonic sensor
import ssd1306 #import oled
from utime import sleep
from machine import SoftI2C, Pin, PWM #PWM = pulse width modulation
#ULTRASONIC SENSOR, TO CREATE THE OBJECT
ultrasonic_sensor = hcsr04.HCSR04(trigger_pin=13, echo_pin=27, echo_timeout_us=500*2*30)
#OLED SET UP
i2c_oleddisplay=SoftI2C(scl=Pin(22),sda=Pin(21))
oled_width=128
oled_height=64
#USE OOP TO CREATE THE OBJECT
oled=ssd1306.SSD1306_I2C(oled_width,oled_height,i2c_oleddisplay)
#BUZZER, DECLARE/CREATE THE CONNECTION
buzzer=PWM(Pin(23),Pin.OUT)
#TEST ULTRASONIC SENSOR, BUZZER AND OLED
while True:
distance_cm=ultrasonic_sensor.distance_cm
distance_mm=ultrasonic_sensor.distance_mm
print("AN OBJECT IS DETECTED WITHIN : ",distance_cm, 'cm')
print("AN OBJECT IS DETECTED WITHIN : ",distance_mm, 'mm')
#TO DISPLAY THE DISTANCE IN OLED
oled.fill(1)
oled.text('OBJECT DETECTED',3,0,1 )
oled.text(str( distance_cm), 0,20,1)
oled.text('cm',80,20,1)
oled.text(str( distance_mm), 0,40,1)
oled.text('mm',80,40,1)
oled.show()
#TO DETERMINE THE DISTANCE 50CM OR 150CM
if distance_cm<50:
for i in range(10):
buzzer.init(freq=1703, duty=400)
sleep(0.5)
buzzer.init(freq=1, duty=400)
sleep(0.5)
elif 50 <= distance_cm<150:
for i in range(10):
buzzer.init(freq=1703, duty=400)
sleep(0.1)
buzzer.init(freq=1, duty=400)
sleep(0.1)
else :
buzzer.init(freq=1, duty=0)
sleep(5)