"""
pins.py — Definició de pins GPIO (BCM) de la Raspberry Pi Zero 2W.
Equivalent a io.h del codi Arduino/ESP32.
Tots els números fan referència a la numeració BCM.
"""

# ==================
# MOTORS
# ==================

# Servo d'expulsió de blocs
EN_SERVO  = 9
SERVO_PWM = 10

# Motor pas a pas xeringa
STEP_SY = 8
DIR_SY  = 5

# Motor pas a pas roda dreta
STEP_R_W = 25
DIR_R_W  = 23

# Motor pas a pas roda esquerra
STEP_L_W = 7
DIR_L_W  = 11

# Enable motors de rodes (compartit)
EN_W = 6

# Motor pas a pas braç dret
STEP_R_A = 3
DIR_R_A  = 4

# Motor pas a pas braç esquerre
STEP_L_A = 13
DIR_L_A  = 0

# Enable motors de braços (compartit)
EN_A = 21

# ==================
# SENSORS
# ==================

# Bus I2C principal — VL53L0X (distància) i PAJ7620U2 (gestos), compartit
SDA_DIST = 2
SCL_DIST = 1
SDA_GEST = SDA_DIST  # mateixa línia
SCL_GEST = SCL_DIST  # mateixa línia
# INT_GEST no connectat a la PCB — el driver usa polling

# Bus I2C sensor de color TCS34725 (bit-bang)
SDA_COL = 22
SCL_COL = 27

# Final de carrera xeringa (efecte Hall)
END_SY = 12

# Final de carrera braç dret (efecte Hall)
END_RA = 16

# Final de carrera braç esquerre (efecte Hall)
END_LA = 17

# Sensors seguidors de línia (TCRT5000)
LINES_R = 14
LINES_L = 15

# ==================
# DISPLAY
# ==================

# Dades matriu LED 8x8 RGB WS2811 (2x ull)
LED_DATA = 26

# ==================
# ÀUDIO (afegit per company, no usat pel robot)
# ==================

# I2S — amplificador MAX98357A + micròfon SPH0645
I2C_BCLK  = 18
I2C_LRCLK = 19
AMP_DIN   = 24
MIC       = 20
