
from machine import ADC, Pin  # Импортируем необходимые классы для работы с аналогово-цифровым преобразователем и пинами
import time  # Импортируем модуль time для работы с задержками

# Инициализируем аналоговые пины для считывания значений
x_pin = ADC(Pin(34))  # Создаем объект ADC для пина 34 (ось X)
y_pin = ADC(Pin(35))  # Создаем объект ADC для пина 35 (ось Y)

# Устанавливаем аттенюацию (уменьшение диапазона) для пинов
x_pin.atten(ADC.ATTN_11DB)  # Устанавливаем аттенюацию 11 дБ для пина X
y_pin.atten(ADC.ATTN_11DB)  # Устанавливаем аттенюацию 11 дБ для пина Y

while True:  # Бесконечный цикл для постоянного считывания значений
    x_read = x_pin.read()  # Считываем значение с пина X
    y_read = y_pin.read()  # Считываем значение с пина Y

    # Нормализуем значения, вычитая среднее значение (2048)
    x_normalized = (x_read - 2048)   # Нормализуем значение по оси X
    y_normalized = (y_read - 2048)   # Нормализуем значение по оси Y

    # Проверяем, превышает ли нормализованное значение по оси X порог
    if abs(x_normalized) > 500:      # Если значение по оси X больше 500 или меньше -500
        if x_normalized > 0:         # Если значение положительное
            direction_x = "Left"     # Движение влево
        else:
            direction_x = "Right"    # Движение вправо
    else:
        direction_x = "stoim po X"   # Если значение в пределах порога, стоим по X

    # Проверяем, превышает ли нормализованное значение по оси Y порог
    if abs(y_normalized) > 500:      # Если значение по оси Y больше 500 или меньше -500
        if y_normalized > 0:         # Если значение положительное
            direction_y = "Forward"  # Движение вперед
        else:
            direction_y = "Back"     # Движение назад
    else:
        direction_y = "stoim po Y"   # Если значение в пределах порога, стоим по Y

    
    print(f"X: {direction_x}, Y: {direction_y}")  # Выводим направления движения по осям X и Y в терминал

    time.sleep(0.1)                               # Задержка 0.1 секунды перед следующим считыванием


