from machine import Pin, SoftI2C, PWM
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
from servo import Servo
from time import sleep
ir_sensor_pin = 18
buzzer_pin = 15
servo_pin = 14 # Assuming GPIO 14 for servo control
ir_sensor = Pin(ir_sensor_pin, Pin.IN)
buzzer = Pin(buzzer_pin, Pin.OUT)
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=400000)
try:
lcd = I2cLcd(i2c, 0x27, 2, 16)
except Exception as e:
print("Error initializing LCD:", e)
lcd = None
servo = Servo(servo_pin)
def check_ir_sensor():
return ir_sensor.value()
def activate_buzzer():
buzzer.value(1)
sleep(1)
buzzer.value(0)
def display_message(msg):
if lcd:
lcd.move_to(0, 0)
lcd.putstr(msg)
def rotate_servo(angle):
# Adjust the servo angle
servo.write(angle)
while True:
if check_ir_sensor():
activate_buzzer()
display_message("YES yes yes")
rotate_servo(180) # Rotate servo 180 degrees
else:
display_message("NO no no")
rotate_servo(0) # Rotate servo back to 0 degrees
sleep(0.1)