from machine import Pin, SoftI2C
from oled import SSD1306_I2C
from time import sleep_us, ticks_us, ticks_diff, sleep_ms
trigPin = Pin(25, Pin.OUT)
echoPin = Pin(26, Pin.IN)
soundVelocity = 360
distance = 0
i2c = SoftI2C(scl=Pin(5), sda=Pin(18))
def getSonar():
trigPin.value(1)
sleep_us(5)
trigPin.value(0)
while not echoPin.value():
pass
pingStart = ticks_us()
while echoPin.value():
pass
pingStop = ticks_us()
pingTime = ticks_diff(pingStop, pingStart)
distance = pingTime * soundVelocity // 2 // 10000
sleep_ms(2000)
return int(distance)
oled_width = 128
oled_height = 64
oled = SSD1306_I2C(oled_width, oled_height, i2c)
while True:
distance = getSonar()
if distance >= 300:()
oled.text(f"distance {distance}cm", 0, 0)
oled.text("RAS", 0, 15)
sleep_ms(200)
elif 100 < distance < 300:
oled.text(f"distance {distance}cm", 0, 0)
oled.text("Objet en approche", 0, 30)
sleep_ms(200)
elif distance <= 100:
oled.text(f"distance {distance}cm", 0, 0)
oled.text("DANGER IMMINENT", 0, 50)
sleep_ms(200)
oled.show()