from distance_sensor import DistanceSensor
from display import Display
from servo import Servo
from time import sleep, time
from random import randint
# Pines (reemplazar según tu simulación)
distance_sensor_pin = 1
servo_pin = 2
led_pin = 3
display_width = 128
display_height = 64
distance_sensor = DistanceSensor(pin=distance_sensor_pin)
servo = Servo(pin=servo_pin)
led = LED(pin=led_pin)
display = Display(width=display_width, height=display_height)
# Constantes
MIN_DISTANCE = 10 # Distancia mínima para detectar un zancudo
SCAN_DURATION = 3 # Duración de cada barrido del radar
SERVO_MIN_ANGLE = 0 # Ángulo mínimo del servo
SERVO_MAX_ANGLE = 180 # Ángulo máximo del servo
def draw_radar(angle, distance):
"""Dibuja el radar en la pantalla."""
display.clear()
display.circle(display_width // 2, display_height // 2, 30, color=0xFFFFFF)
display.line((display_width // 2, display_height // 2),
(display_width // 2 + int(distance * math.cos(angle * math.pi / 180)),
display_height // 2 - int(distance * math.sin(angle * math.pi / 180))),
color=0xFFFFFF)
display.text(f"Distancia: {distance} cm", 0, 0, color=0xFFFFFF)
def scan_for_mosquitos():
"""Simula la detección de zancudos."""
global detecting
start_time = time()
while time() - start_time < SCAN_DURATION:
distance_cm = distance_sensor.distance_cm
draw_radar(angle, distance_cm)
if distance_cm <= MIN_DISTANCE:
detecting = True
led.on()
break
else:
detecting = False
led.off()
angle = (angle + 3) % 360
sleep(0.05)
# Bucle principal
while True:
scan_for_mosquitos()
if detecting:
print("¡Zancudo detectado!")
# Puedes agregar aquí acciones adicionales para repeler el zancudo
sleep(1)
servo.angle = angle
sleep(0.1)