import random
import random
import time
from machine import Pin, PWM, ADC
print('Inicialitza paràmetres')
# Paràmetres Moviment - Coordenades
min_x = 500
max_x = 2500
min_y = 500
max_y = 2500
# Paràmetres Moviment - Velocitats
min_temps_espera = 150
max_temps_espera = 250
# Temps de moviment i làser sense parar en segons
temps_pausa = 30
temps_laser_quiet = 2
temps_laser_apagat = 2
# Pins
laser_pin = 5
servo1_pin = 9
servo2_pin = 10
resist_pin = 2
# Inicialització dels servos
servo_x = PWM(Pin(servo1_pin))
servo_y = PWM(Pin(servo2_pin))
servo_x.freq(50)
servo_y.freq(50)
servo_x.duty_ns(500000)
servo_y.duty_ns(500000)
angle_x = (max_x + min_x) // 2
angle_y = min_y
nova_pos_x = random.randint(min_x, max_x)
nova_pos_y = random.randint(min_y, max_y)
temps_espera = random.randint(min_temps_espera, max_temps_espera)
inc_x = 1 if nova_pos_x > angle_x else -1
inc_y = 1 if nova_pos_y > angle_y else -1
led = Pin(laser_pin, Pin.OUT)
led.value(1)
resist = ADC(resist_pin)
temps = int(time.time() * 1000) + temps_pausa * 1000
while True:
while nova_pos_x == angle_x:
nova_pos_x = random.randint(min_x, max_x)
temps_espera = random.randint(min_temps_espera, max_temps_espera)
inc_x = 1 if nova_pos_x > angle_x else -1
while nova_pos_y == angle_y:
nova_pos_y = random.randint(min_y, max_y)
inc_y = 1 if nova_pos_y > angle_y else -1
angle_x += inc_x
angle_y += inc_y
duty_x = angle_x * 1000
duty_y = angle_y * 1000
servo_x.duty_ns(duty_x)
servo_y.duty_ns(duty_y)
temps_espera = (resist.read_u16() / 65535) / 50
print(f'pos_x:{angle_x}, pos_y:{angle_y}, resistencia:{resist.read_u16()}, Espera:{temps_espera}')
time.sleep(temps_espera)